Browse Source

1、代码优化以及添加小程序温度获取接口;

dev
25604 3 days ago
parent
commit
cf64321196
  1. 3
      user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java
  2. 27
      user-service/src/main/java/com/mh/user/mapper/NowPublicDataMapper.java
  3. 2
      user-service/src/main/java/com/mh/user/service/DeviceInstallService.java
  4. 5
      user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java
  5. 1
      user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java
  6. 11
      user-service/src/main/java/com/mh/user/service/impl/NowPublicDataServiceImpl.java
  7. 2
      user-service/src/main/java/com/mh/user/strategy/HeatPumpStrategy.java
  8. 6
      user-service/src/main/java/com/mh/user/strategy/WaterLevelSwitchStrategy.java

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

@ -354,4 +354,7 @@ public interface DeviceInstallMapper extends BaseMapper<DeviceInstallEntity> {
@ResultMap("rs")
@Select("select * from device_install where building_id = #{buildingId} and device_type = #{deviceType} ")
List<DeviceInstallEntity> selectOfflineDevice(String buildingId, String deviceType);
@Select("select count(1) from device_install where building_id = #{buildingId} and device_type = '热泵' ")
int queryPumpCount(String buildingId);
}

27
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<TempModel> queryNowWtTemp2();
}

2
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);
}

5
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);
}
}

1
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";

11
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<TempModel> queryWtTemp() {
// 查看当前项目是什么项目
// 如果是华夏,则取新增得字段标识为热泵ID
String name = dealDataService.customName();
if (name.contains(Constant.CUSTOM_NAME_HUARUAN)) {
return nowPublicDataMapper.queryNowWtTemp2();
}
return nowPublicDataMapper.queryWtTemp();
}

2
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 + " ---------------");

6
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<String, String> 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 {

Loading…
Cancel
Save