Browse Source

1、珠海北师大监视管理添加热泵列表内容数据

dev
3067418132@qq.com 2 weeks ago
parent
commit
2cedf6c143
  1. 6
      user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java
  2. 6
      user-service/src/main/java/com/mh/user/mapper/PumpSetMapper.java
  3. 8
      user-service/src/main/java/com/mh/user/model/MultiControlModel.java
  4. 2
      user-service/src/main/java/com/mh/user/service/DeviceInstallService.java
  5. 1
      user-service/src/main/java/com/mh/user/service/PumpSetService.java
  6. 5
      user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java
  7. 27
      user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java
  8. 5
      user-service/src/main/java/com/mh/user/service/impl/PumpSetServiceImpl.java
  9. 38
      user-service/src/main/java/com/mh/user/strategy/HeatPumpStrategy.java

6
user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java

@ -389,4 +389,10 @@ public interface DeviceInstallMapper extends BaseMapper<DeviceInstallEntity> {
" and brand = #{brand} " +
" and device_addr = #{deviceAddr} ")
Integer selectDeviceByParam(String buildingId, String dataCom, String deviceType, String brand, String deviceAddr);
@Update("update device_install set is_fault=#{isFault} where device_addr=#{deviceAddr} and device_type=#{deviceType} and device_name=#{deviceName}")
void updateDeviceFaultAndDeviceName(@Param("isFault") String number,
@Param("deviceAddr") String addr,
@Param("deviceType") String deviceType,
@Param("deviceName") String deviceName);
}

6
user-service/src/main/java/com/mh/user/mapper/PumpSetMapper.java

@ -56,4 +56,10 @@ public interface PumpSetMapper {
@ResultMap("rs")
@Select("select * from Pump_Set where building_id='001'")
PumpSetEntity queryHandTime();
@Update("update pump_set set temp_set= #{tempSet} where building_id = #{buildingId} and pump_id= #{pumpId} and pump_name=#{pumpName}")
void updatePumpSetTempAndPumpName(@Param("tempSet") String string,
@Param("buildingId") String buildingId,
@Param("pumpId") String addr,
@Param("pumpName") String deviceName);
}

8
user-service/src/main/java/com/mh/user/model/MultiControlModel.java

@ -34,6 +34,14 @@ public class MultiControlModel {
private int gwRunState; // 网关运行状态 标志位(连接状态) 0:正常;1:不在线;2:异常
private String pumpName; //水泵名称
private String pumpId; //水泵编号
private String tempSet; //温度设置
private String waterTemp; //当前温度
private String waterLevel; //水位
private String isFault; //是否故障
private String pumpRunState; //运行状态
@Override
public String toString() {
return new StringJoiner(", ", MultiControlModel.class.getSimpleName() + "[", "]")

2
user-service/src/main/java/com/mh/user/service/DeviceInstallService.java

@ -188,4 +188,6 @@ public interface DeviceInstallService {
int queryPumpCount(String buildingId);
Integer selectDeviceByOtherParams(DeviceCodeParamEntity deviceCodeParamEntity);
void updateDeviceFaultAndDeviceName(String number, String addr, String deviceType, String deviceName);
}

1
user-service/src/main/java/com/mh/user/service/PumpSetService.java

@ -12,4 +12,5 @@ public interface PumpSetService {
PumpSetEntity queryHandTime();
void updatePumpSetTempAndPumpName(String string, String buildingId, String addr, String deviceName);
}

5
user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java

@ -486,6 +486,11 @@ public class DeviceInstallServiceImpl implements DeviceInstallService {
deviceInstallMapper.updateDeviceFault(isFault, deviceAddr, deviceType);
}
@Override
public void updateDeviceFaultAndDeviceName(String number, String addr, String deviceType, String deviceName) {
deviceInstallMapper.updateDeviceFaultAndDeviceName(number, addr, deviceType, deviceName);
}
//查询设备品牌
@Override
public String selectBrand(String buildingId, String deviceAddr) {

27
user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java

@ -14,6 +14,7 @@ import com.mh.user.service.DeviceInstallService;
import com.mh.user.service.NowDataService;
import com.mh.user.utils.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
@ -106,6 +107,7 @@ public class NowDataServiceImpl implements NowDataService {
break;
}
}
// 在判断网关在线情况
List<DeviceInstallEntity> devices = deviceInstallMapper.selectOfflineDevice(buildingId, "多路控制");
if (!devices.isEmpty()) {
@ -113,7 +115,30 @@ public class NowDataServiceImpl implements NowDataService {
int online = gatewayManageMapper.queryGatewayByDataCom(deviceInstallEntity.getDataCom());
multiControlModel.setGwRunState(online);
}
result.add(multiControlModel);
// 在进行遍历,获取包含热泵的对应数据
list.stream().filter(nowDataEntity -> nowDataEntity.getPumpName().contains("热泵")).forEach(
nowDataEntity -> {
MultiControlModel multiControlModel1 = new MultiControlModel();
BeanUtils.copyProperties(nowDataEntity, multiControlModel1);
multiControlModel1.setBuildingId(buildingId);
multiControlModel1.setBuildingName(list.get(0).getBuildingName());
multiControlModel1.setPumpName(nowDataEntity.getPumpName());
multiControlModel1.setPumpId(nowDataEntity.getPumpId());
multiControlModel1.setTempSet(nowDataEntity.getTempSet());
multiControlModel1.setWaterTemp(nowDataEntity.getWaterTemp());
multiControlModel1.setIsFault(nowDataEntity.getIsFault()); // Fixed method name
multiControlModel1.setPumpRunState(nowDataEntity.getRunState()); // Fixed method name
if (!StringUtils.isBlank(nowDataEntity.getWaterLevel())) {
multiControlModel1.setWaterLevel(nowDataEntity.getWaterLevel());
}
result.add(multiControlModel1); // Add to result list
}
);
// result再根据热泵名称的数字进行排序
result.sort(Comparator.comparingInt(multiControlModel1 ->
Integer.parseInt(multiControlModel1.getPumpName().replaceAll("[^0-9]", ""))
));
return result;
}

5
user-service/src/main/java/com/mh/user/service/impl/PumpSetServiceImpl.java

@ -29,6 +29,11 @@ public class PumpSetServiceImpl implements PumpSetService {
pumpSetMapper.updatePumpSetTemp(tempSet,buildingId,pumpId);
}
@Override
public void updatePumpSetTempAndPumpName(String string, String buildingId, String addr, String deviceName) {
pumpSetMapper.updatePumpSetTempAndPumpName(string,buildingId,addr,deviceName);
}
@Override
public PumpSetEntity queryPumpSet(String pumpId, String buildingId) {
return pumpSetMapper.queryPumpSet(pumpId,buildingId);

38
user-service/src/main/java/com/mh/user/strategy/HeatPumpStrategy.java

@ -331,7 +331,7 @@ public class HeatPumpStrategy implements DeviceStrategy {
log.info("正帝热泵解析 - 地址: {}, 原始值: {}, 解析结果: {}", regAddr, value, parsedValue);
// 根据不同的寄存器地址处理不同的业务逻辑
processZhengDiData(regAddr, parsedValue, value, buildingId, buildingName, addr, dataType);
processZhengDiData(regAddr, parsedValue, value, buildingId, buildingName, addr, dataType, deviceCodeParamEntity.getDeviceName());
sValue = String.valueOf(parsedValue);
// 这里根据com口、deviceType、brand、deviceAddr、buildingId查询对应deviceInstall的ID值
Integer deviceInstallId = deviceInstallService.selectDeviceByOtherParams(deviceCodeParamEntity);
@ -354,7 +354,7 @@ public class HeatPumpStrategy implements DeviceStrategy {
*/
private void processZhengDiData(String regAddr, Object parsedValue, int rawValue,
String buildingId, String buildingName, String addr,
StringBuffer dataType) {
StringBuffer dataType, String deviceName) {
try {
// 温度相关数据
if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_DISPLAY_WATER_TEMP) ||
@ -363,14 +363,32 @@ public class HeatPumpStrategy implements DeviceStrategy {
dataType.setLength(0);
dataType.append("waterTemp");
String tempStr = parsedValue.toString();
// 保存公共数据
String avgTemp = nowDataService.selectAve(buildingId);
NowPublicDataEntity publicData = new NowPublicDataEntity();
publicData.setBuildingId(buildingId);
publicData.setUseWaterTemp(avgTemp);
publicData.setBackWaterTemp(avgTemp);
String pumpId = nowDataService.selectMinPumpId(buildingId);
// 如果是华夏,则取新增得字段标识为热泵ID
String name = dealDataService.customName();
if (name.contains(Constant.CUSTOM_NAME_HUAXIA)) {
pumpId = deviceInstallService.selectSinglePumpId(buildingId, addr);
}
log.info("---------------addr:" + addr + ",pumpId:" + pumpId + " ---------------");
if (addr.equals(pumpId)) { //取ID最小的热泵为单箱温度
publicData.setSingleTemp(tempStr);
log.info("---------------单箱温度:" + tempStr + "---------------");
}
nowPublicDataService.saveNowHistoryPublicData(publicData);
log.info("楼栋名称:" + buildingName + ",热泵编号:" + addr);
log.info("楼栋名称:{}, 热泵编号:{}, 水箱温度:{}", buildingName, addr, tempStr);
// // 保存公共数据
// NowPublicDataEntity publicData = new NowPublicDataEntity();
// publicData.setBuildingId(buildingId);
// publicData.setSingleTemp(tempStr);
// nowPublicDataService.saveNowHistoryPublicData(publicData);
//
// log.info("楼栋名称:{}, 热泵编号:{}, 水箱温度:{}", buildingName, addr, tempStr);
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_OUTLET_TEMP)) {
// 出水温度
@ -394,25 +412,25 @@ public class HeatPumpStrategy implements DeviceStrategy {
// 制冷设置温度
dataType.setLength(0);
dataType.append("coolSetTemp");
pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
//pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_HEAT_SET_TEMP)) {
// 制热设置温度
dataType.setLength(0);
dataType.append("heatSetTemp");
pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
//pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_HOT_WATER_SET_TEMP)) {
// 热水设置温度
dataType.setLength(0);
dataType.append("hotWaterSetTemp");
pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
pumpSetService.updatePumpSetTempAndPumpName(parsedValue.toString(), buildingId, addr, deviceName);
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_CONSTANT_TEMP_SET)) {
// 恒温设置温度
dataType.setLength(0);
dataType.append("constantTempSet");
pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
// pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_MODE)) {
// 运行模式
@ -436,7 +454,7 @@ public class HeatPumpStrategy implements DeviceStrategy {
dataType.append("isFault");
String faultStatus = (rawValue == 0) ? "无故障" : "有故障";
deviceInstallService.updateDeviceFault((rawValue == 0) ? "0" : "1", addr, "热泵");
deviceInstallService.updateDeviceFaultAndDeviceName((rawValue == 0) ? "0" : "1", addr, "热泵", deviceName);
log.info("楼栋名称:{}, 热泵编号:{}, 故障状态:{}", buildingName, addr, faultStatus);
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_INPUT_SWITCH_STATUS)) {

Loading…
Cancel
Save