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. 44
      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 brand = #{brand} " +
" and device_addr = #{deviceAddr} ") " and device_addr = #{deviceAddr} ")
Integer selectDeviceByParam(String buildingId, String dataCom, String deviceType, String brand, String 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") @ResultMap("rs")
@Select("select * from Pump_Set where building_id='001'") @Select("select * from Pump_Set where building_id='001'")
PumpSetEntity queryHandTime(); 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 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 @Override
public String toString() { public String toString() {
return new StringJoiner(", ", MultiControlModel.class.getSimpleName() + "[", "]") 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); int queryPumpCount(String buildingId);
Integer selectDeviceByOtherParams(DeviceCodeParamEntity deviceCodeParamEntity); 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(); 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); deviceInstallMapper.updateDeviceFault(isFault, deviceAddr, deviceType);
} }
@Override
public void updateDeviceFaultAndDeviceName(String number, String addr, String deviceType, String deviceName) {
deviceInstallMapper.updateDeviceFaultAndDeviceName(number, addr, deviceType, deviceName);
}
//查询设备品牌 //查询设备品牌
@Override @Override
public String selectBrand(String buildingId, String deviceAddr) { 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.service.NowDataService;
import com.mh.user.utils.DateUtil; import com.mh.user.utils.DateUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -106,6 +107,7 @@ public class NowDataServiceImpl implements NowDataService {
break; break;
} }
} }
// 在判断网关在线情况 // 在判断网关在线情况
List<DeviceInstallEntity> devices = deviceInstallMapper.selectOfflineDevice(buildingId, "多路控制"); List<DeviceInstallEntity> devices = deviceInstallMapper.selectOfflineDevice(buildingId, "多路控制");
if (!devices.isEmpty()) { if (!devices.isEmpty()) {
@ -113,7 +115,30 @@ public class NowDataServiceImpl implements NowDataService {
int online = gatewayManageMapper.queryGatewayByDataCom(deviceInstallEntity.getDataCom()); int online = gatewayManageMapper.queryGatewayByDataCom(deviceInstallEntity.getDataCom());
multiControlModel.setGwRunState(online); 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; 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); pumpSetMapper.updatePumpSetTemp(tempSet,buildingId,pumpId);
} }
@Override
public void updatePumpSetTempAndPumpName(String string, String buildingId, String addr, String deviceName) {
pumpSetMapper.updatePumpSetTempAndPumpName(string,buildingId,addr,deviceName);
}
@Override @Override
public PumpSetEntity queryPumpSet(String pumpId, String buildingId) { public PumpSetEntity queryPumpSet(String pumpId, String buildingId) {
return pumpSetMapper.queryPumpSet(pumpId,buildingId); return pumpSetMapper.queryPumpSet(pumpId,buildingId);

44
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); 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); sValue = String.valueOf(parsedValue);
// 这里根据com口、deviceType、brand、deviceAddr、buildingId查询对应deviceInstall的ID值 // 这里根据com口、deviceType、brand、deviceAddr、buildingId查询对应deviceInstall的ID值
Integer deviceInstallId = deviceInstallService.selectDeviceByOtherParams(deviceCodeParamEntity); Integer deviceInstallId = deviceInstallService.selectDeviceByOtherParams(deviceCodeParamEntity);
@ -352,9 +352,9 @@ public class HeatPumpStrategy implements DeviceStrategy {
/** /**
* 处理正帝热泵解析后的数据 * 处理正帝热泵解析后的数据
*/ */
private void processZhengDiData(String regAddr, Object parsedValue, int rawValue, private void processZhengDiData(String regAddr, Object parsedValue, int rawValue,
String buildingId, String buildingName, String addr, String buildingId, String buildingName, String addr,
StringBuffer dataType) { StringBuffer dataType, String deviceName) {
try { try {
// 温度相关数据 // 温度相关数据
if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_DISPLAY_WATER_TEMP) || if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_DISPLAY_WATER_TEMP) ||
@ -363,14 +363,32 @@ public class HeatPumpStrategy implements DeviceStrategy {
dataType.setLength(0); dataType.setLength(0);
dataType.append("waterTemp"); dataType.append("waterTemp");
String tempStr = parsedValue.toString(); String tempStr = parsedValue.toString();
String avgTemp = nowDataService.selectAve(buildingId);
// 保存公共数据
NowPublicDataEntity publicData = new NowPublicDataEntity(); NowPublicDataEntity publicData = new NowPublicDataEntity();
publicData.setBuildingId(buildingId); publicData.setBuildingId(buildingId);
publicData.setSingleTemp(tempStr); 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); 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)) { } else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_OUTLET_TEMP)) {
// 出水温度 // 出水温度
@ -394,25 +412,25 @@ public class HeatPumpStrategy implements DeviceStrategy {
// 制冷设置温度 // 制冷设置温度
dataType.setLength(0); dataType.setLength(0);
dataType.append("coolSetTemp"); dataType.append("coolSetTemp");
pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr); //pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_HEAT_SET_TEMP)) { } else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_HEAT_SET_TEMP)) {
// 制热设置温度 // 制热设置温度
dataType.setLength(0); dataType.setLength(0);
dataType.append("heatSetTemp"); 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)) { } else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_HOT_WATER_SET_TEMP)) {
// 热水设置温度 // 热水设置温度
dataType.setLength(0); dataType.setLength(0);
dataType.append("hotWaterSetTemp"); 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)) { } else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_CONSTANT_TEMP_SET)) {
// 恒温设置温度 // 恒温设置温度
dataType.setLength(0); dataType.setLength(0);
dataType.append("constantTempSet"); dataType.append("constantTempSet");
pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr); // pumpSetService.updatePumpSetTemp(parsedValue.toString(), buildingId, addr);
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_MODE)) { } else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_MODE)) {
// 运行模式 // 运行模式
@ -436,7 +454,7 @@ public class HeatPumpStrategy implements DeviceStrategy {
dataType.append("isFault"); dataType.append("isFault");
String faultStatus = (rawValue == 0) ? "无故障" : "有故障"; String faultStatus = (rawValue == 0) ? "无故障" : "有故障";
deviceInstallService.updateDeviceFault((rawValue == 0) ? "0" : "1", addr, "热泵"); deviceInstallService.updateDeviceFaultAndDeviceName((rawValue == 0) ? "0" : "1", addr, "热泵", deviceName);
log.info("楼栋名称:{}, 热泵编号:{}, 故障状态:{}", buildingName, addr, faultStatus); log.info("楼栋名称:{}, 热泵编号:{}, 故障状态:{}", buildingName, addr, faultStatus);
} else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_INPUT_SWITCH_STATUS)) { } else if (regAddr.equals(XK814ModbusParamReadUtil.ADDR_INPUT_SWITCH_STATUS)) {

Loading…
Cancel
Save