diff --git a/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java b/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java index 0704742..07be2f8 100644 --- a/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java @@ -354,4 +354,7 @@ public interface DeviceInstallMapper extends BaseMapper { @ResultMap("rs") @Select("select * from device_install where building_id = #{buildingId} and device_type = #{deviceType} ") List selectOfflineDevice(String buildingId, String deviceType); + + @Select("select count(1) from device_install where building_id = #{buildingId} and device_type = '热泵' ") + int queryPumpCount(String buildingId); } diff --git a/user-service/src/main/java/com/mh/user/mapper/NowPublicDataMapper.java b/user-service/src/main/java/com/mh/user/mapper/NowPublicDataMapper.java index 490d135..d12b094 100644 --- a/user-service/src/main/java/com/mh/user/mapper/NowPublicDataMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/NowPublicDataMapper.java @@ -110,4 +110,31 @@ public interface NowPublicDataMapper { @Update("update now_public_data set single_temp=#{singleTemp} where building_id=#{buildingId}") void updateSingleTemp(@Param("singleTemp") String singleTemp,@Param("buildingId") String buildingId); + @Results(value = { + @Result(property="buildingId",column="building_id"), + @Result(property="buildingName",column="building_name"), + @Result(property ="singleTemp",column ="single_temp"), + @Result(property ="avgTemp",column ="avg_temp") + }) + @Select("SELECT " + + " di.building_id, " + + " di.building_name, " + + " CASE " + + " WHEN SUM(CASE WHEN di.is_single_box <> 1 AND di.is_online = '在线' THEN 1 ELSE 0 END) > 0 " + + " THEN CAST(ROUND(AVG(CASE WHEN di.is_single_box <> 1 AND di.is_online = '在线' THEN CAST(nd.water_temp AS FLOAT) + 3 END), 1) AS VARCHAR(10)) " + + " ELSE '--' " + + " END AS avg_temp, " + + " CASE " + + " WHEN SUM(CASE WHEN di.is_single_box = 1 AND di.is_online = '在线' THEN 1 ELSE 0 END) > 0 " + + " THEN CAST(ROUND(AVG(CASE WHEN di.is_single_box = 1 AND di.is_online = '在线' THEN CAST(nd.water_temp AS FLOAT) + 3 END), 1) AS VARCHAR(10)) " + + " ELSE '--' " + + " END AS single_temp " + + "FROM device_install di " + + "JOIN now_data nd " + + " ON di.building_id = nd.building_id " + + " AND di.device_addr = nd.pump_id " + + "WHERE di.device_type = '热泵' " + + "GROUP BY di.building_id, di.building_name " + + "ORDER BY di.building_id;") + List queryNowWtTemp2(); } diff --git a/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java b/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java index 247e8cc..041c6b2 100644 --- a/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java +++ b/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java @@ -192,4 +192,6 @@ public interface DeviceInstallService { * @return */ String selectSinglePumpId(String buildingId, String pumpId); + + int queryPumpCount(String buildingId); } diff --git a/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java index 7d0c448..508973b 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java @@ -475,5 +475,10 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { public String selectSinglePumpId(String buildingId, String pumpId) { return deviceInstallMapper.selectSinglePumpId(buildingId, pumpId); } + + @Override + public int queryPumpCount(String buildingId) { + return deviceInstallMapper.queryPumpCount(buildingId); + } } diff --git a/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java index 68b802a..bffd538 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java @@ -179,6 +179,7 @@ public class NowDataServiceImpl implements NowDataService { if (deviceType.equals("温控") && !name.contains(Constant.CUSTOM_NAME_HUAXIA) && !name.contains(Constant.CUSTOM_NAME_HUARUAN) ) { + log.error("进入到热泵1------------------------"); //为了兼容旧系统,旧系统热泵信息保存在楼面表,从楼面表获取热泵资料 PumpModel pump=deviceFloorMapper.selectDeviceId2("热泵",buildingId); String pumpId="1"; diff --git a/user-service/src/main/java/com/mh/user/service/impl/NowPublicDataServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/NowPublicDataServiceImpl.java index 67cc040..832257c 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/NowPublicDataServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/NowPublicDataServiceImpl.java @@ -1,11 +1,13 @@ package com.mh.user.service.impl; +import com.mh.user.constants.Constant; import com.mh.user.entity.NowPublicDataEntity; import com.mh.user.mapper.BuildingMapper; import com.mh.user.mapper.DeviceInstallMapper; import com.mh.user.mapper.NowDataMapper; import com.mh.user.mapper.NowPublicDataMapper; import com.mh.user.model.TempModel; +import com.mh.user.service.DealDataService; import com.mh.user.service.NowPublicDataService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -34,6 +36,9 @@ public class NowPublicDataServiceImpl implements NowPublicDataService { @Autowired private NowDataMapper nowDataMapper; + @Autowired + private DealDataService dealDataService; + @Override public void saveNowPublicData(NowPublicDataEntity nowPublicDataEntity) { nowPublicDataMapper.saveNowPublicData(nowPublicDataEntity); @@ -108,6 +113,12 @@ public class NowPublicDataServiceImpl implements NowPublicDataService { //查询楼栋水箱平均温度 @Override public List queryWtTemp() { + // 查看当前项目是什么项目 + // 如果是华夏,则取新增得字段标识为热泵ID + String name = dealDataService.customName(); + if (name.contains(Constant.CUSTOM_NAME_HUARUAN)) { + return nowPublicDataMapper.queryNowWtTemp2(); + } return nowPublicDataMapper.queryWtTemp(); } diff --git a/user-service/src/main/java/com/mh/user/strategy/HeatPumpStrategy.java b/user-service/src/main/java/com/mh/user/strategy/HeatPumpStrategy.java index 9e1ee47..42fcf34 100644 --- a/user-service/src/main/java/com/mh/user/strategy/HeatPumpStrategy.java +++ b/user-service/src/main/java/com/mh/user/strategy/HeatPumpStrategy.java @@ -531,7 +531,7 @@ public class HeatPumpStrategy implements DeviceStrategy { String pumpId = nowDataService.selectMinPumpId(buildingId); // 如果是华夏,则取新增得字段标识为热泵ID String name = dealDataService.customName(); - if (name.contains(Constant.CUSTOM_NAME_HUAXIA)) { + if (name.contains(Constant.CUSTOM_NAME_HUAXIA) || name.contains(Constant.CUSTOM_NAME_HUARUAN)) { pumpId = deviceInstallService.selectSinglePumpId(buildingId, addr); } log.info("---------------addr:" + addr + ",pumpId:" + pumpId + " ---------------"); diff --git a/user-service/src/main/java/com/mh/user/strategy/WaterLevelSwitchStrategy.java b/user-service/src/main/java/com/mh/user/strategy/WaterLevelSwitchStrategy.java index adee190..98941e1 100644 --- a/user-service/src/main/java/com/mh/user/strategy/WaterLevelSwitchStrategy.java +++ b/user-service/src/main/java/com/mh/user/strategy/WaterLevelSwitchStrategy.java @@ -354,7 +354,9 @@ public class WaterLevelSwitchStrategy implements DeviceStrategy { map.put("8", "不运行"); } int count = buildingService.selectPumpCount(buildingId); //楼栋热泵数 - if (count > 0) { + // 判断是否有实际热泵 + int pumpCount = deviceInstallService.queryPumpCount(buildingId); + if (count > 0 && pumpCount == 0) { for (Map.Entry entry : map.entrySet()) { addr = entry.getKey(); //获取Key值作为热泵ID runState = entry.getValue(); @@ -510,7 +512,7 @@ public class WaterLevelSwitchStrategy implements DeviceStrategy { publicData.setBackWater("不运行"); } log.info("-----------------供水/回水状态:" + l8 + "-----------------"); - } else if (Constant.CUSTOM_NAME_HUARUAN.equals(customName)) { + } else if (customName.contains(Constant.CUSTOM_NAME_HUARUAN)) { if (l2.equals("0001") || l3.equals("0001")) { //2,3路,0000表示有输入,0001表示无输入 publicData.setUseWater("运行"); //供水 } else {