Browse Source

1、监视界面now_data表相关逻辑修改;

dev
3067418132@qq.com 1 month ago
parent
commit
9ab82fbe9c
  1. 2
      user-service/src/main/java/com/mh/user/entity/DeviceInstallEntity.java
  2. 60
      user-service/src/main/java/com/mh/user/job/S7PlcCollectionJob.java
  3. 11
      user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java
  4. 66
      user-service/src/main/java/com/mh/user/mapper/NowPublicDataMapper.java
  5. 11
      user-service/src/test/java/com/mh/user/UserServiceApplicationTests.java

2
user-service/src/main/java/com/mh/user/entity/DeviceInstallEntity.java

@ -43,4 +43,6 @@ public class DeviceInstallEntity {
// 是否单箱 1:是 0:其他 // 是否单箱 1:是 0:其他
private int isSingleBox; private int isSingleBox;
private int orderNum;
} }

60
user-service/src/main/java/com/mh/user/job/S7PlcCollectionJob.java

@ -4,11 +4,10 @@ import com.mh.user.constants.Constant;
import com.mh.user.entity.CollectionParamsManageEntity; import com.mh.user.entity.CollectionParamsManageEntity;
import com.mh.user.entity.DeviceInstallEntity; import com.mh.user.entity.DeviceInstallEntity;
import com.mh.user.entity.GatewayManageEntity; import com.mh.user.entity.GatewayManageEntity;
import com.mh.user.mapper.CollectionParamsManageMapper; import com.mh.user.mapper.*;
import com.mh.user.mapper.DeviceInstallMapper; import com.mh.user.model.MultiControlModel;
import com.mh.user.mapper.GatewayManageMapper;
import com.mh.user.mapper.NowDataMapper;
import com.mh.user.s7.S7ConnectorUtil; import com.mh.user.s7.S7ConnectorUtil;
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.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
@ -40,13 +39,17 @@ public class S7PlcCollectionJob {
private static final Map<String, S7ConnectorUtil> connectorCache = new ConcurrentHashMap<>(); private static final Map<String, S7ConnectorUtil> connectorCache = new ConcurrentHashMap<>();
private final DeviceInstallMapper deviceInstallMapper; private final DeviceInstallMapper deviceInstallMapper;
private final NowDataMapper nowDataMapper; private final NowDataMapper nowDataMapper;
private final NowDataService nowDataService;
private final NowPublicDataMapper nowPublicDataMapper;
public S7PlcCollectionJob(GatewayManageMapper gatewayManageMapper, public S7PlcCollectionJob(GatewayManageMapper gatewayManageMapper,
CollectionParamsManageMapper collectionParamsManageMapper, DeviceInstallMapper deviceInstallMapper, NowDataMapper nowDataMapper, NowDataMapper nowDataMapper1) { CollectionParamsManageMapper collectionParamsManageMapper, DeviceInstallMapper deviceInstallMapper, NowDataMapper nowDataMapper, NowDataMapper nowDataMapper1, NowDataService nowDataService, NowPublicDataMapper nowPublicDataMapper) {
this.gatewayManageMapper = gatewayManageMapper; this.gatewayManageMapper = gatewayManageMapper;
this.collectionParamsManageMapper = collectionParamsManageMapper; this.collectionParamsManageMapper = collectionParamsManageMapper;
this.deviceInstallMapper = deviceInstallMapper; this.deviceInstallMapper = deviceInstallMapper;
this.nowDataMapper = nowDataMapper1; this.nowDataMapper = nowDataMapper1;
this.nowDataService = nowDataService;
this.nowPublicDataMapper = nowPublicDataMapper;
} }
/** /**
@ -148,10 +151,12 @@ public class S7PlcCollectionJob {
// map值有cur_value,cur_time,通过stream判断cur_time是否是当前时间,然后cur_value如果存在一天记录等于1的,back_water_state=运行,否则back_water_state=不运行 // map值有cur_value,cur_time,通过stream判断cur_time是否是当前时间,然后cur_value如果存在一天记录等于1的,back_water_state=运行,否则back_water_state=不运行
backWaterStates.forEach(backWaterState -> { backWaterStates.forEach(backWaterState -> {
if (backWaterState.get("cur_time").toString().substring(0, 10).equals(dateStr.substring(0, 10))) { if (backWaterState.get("cur_time").toString().substring(0, 10).equals(dateStr.substring(0, 10))) {
if (backWaterState.get("cur_value").equals(1)) { if (new BigDecimal(backWaterState.get("cur_value").toString()).intValue() > 0) {
nowDataMapper.updateBackWaterState(buildingId, "运行"); nowDataMapper.updateBackWaterState(buildingId, "1");
nowPublicDataMapper.updateBackWaterState(buildingId, "运行");
} else { } else {
nowDataMapper.updateBackWaterState(buildingId, "不运行"); nowDataMapper.updateBackWaterState(buildingId, "0");
nowPublicDataMapper.updateBackWaterState(buildingId, "不运行");
} }
} }
}); });
@ -190,10 +195,12 @@ public class S7PlcCollectionJob {
nowDataMapper.updateUpWaterState(deviceInstallEntity.getBuildingId(), nowDataMapper.updateUpWaterState(deviceInstallEntity.getBuildingId(),
deviceInstallEntity.getDeviceAddr(), deviceInstallEntity.getDeviceAddr(),
"2", deviceInstallEntity.getDeviceName()); "2", deviceInstallEntity.getDeviceName());
nowPublicDataMapper.updateUpWaterState(Long.valueOf(deviceInstallEntity.getBuildingId()), "异常");
} else if (deviceInstallEntity.getDeviceType().equals("补水电磁阀")) { } else if (deviceInstallEntity.getDeviceType().equals("补水电磁阀")) {
nowDataMapper.updateUseWaterState(deviceInstallEntity.getBuildingId(), nowDataMapper.updateUseWaterState(deviceInstallEntity.getBuildingId(),
deviceInstallEntity.getDeviceAddr(), deviceInstallEntity.getDeviceAddr(),
"2", deviceInstallEntity.getDeviceName()); "2", deviceInstallEntity.getDeviceName());
nowPublicDataMapper.updateUseWaterState(Long.valueOf(deviceInstallEntity.getBuildingId()), "异常");
} }
return; return;
} }
@ -236,8 +243,8 @@ public class S7PlcCollectionJob {
if (deviceInstallEntity != null) { if (deviceInstallEntity != null) {
// 更新设备安装表中的now_date字段,根据param.getParamTypeId()的值进行判断 // 在对now_date进行更新 // 更新设备安装表中的now_date字段,根据param.getParamTypeId()的值进行判断 // 在对now_date进行更新
// 查询当前点位是否是运行状态、压力、液位、液位设置、回水温度、故障状态 // 查询当前点位是否是运行状态、压力、液位、液位设置、回水温度、故障状态
log.error("进入nowData设置==>{}", param.toString()); // log.error("进入nowData设置==>{}", param.toString());
switch(param.getParamTypeId()) { switch (param.getParamTypeId()) {
case 2: // 运行状态 case 2: // 运行状态
nowDataMapper.updateRunState(deviceInstallEntity.getBuildingId(), nowDataMapper.updateRunState(deviceInstallEntity.getBuildingId(),
deviceInstallEntity.getDeviceAddr(), deviceInstallEntity.getDeviceAddr(),
@ -249,10 +256,12 @@ public class S7PlcCollectionJob {
nowDataMapper.updateUpWaterState(deviceInstallEntity.getBuildingId(), nowDataMapper.updateUpWaterState(deviceInstallEntity.getBuildingId(),
deviceInstallEntity.getDeviceAddr(), deviceInstallEntity.getDeviceAddr(),
String.valueOf(curValue.intValue()), deviceInstallEntity.getDeviceName()); String.valueOf(curValue.intValue()), deviceInstallEntity.getDeviceName());
nowPublicDataMapper.updateUpWaterState(Long.valueOf(deviceInstallEntity.getBuildingId()), curValue.intValue() == 1 ? "运行" : "不运行");
} else if (deviceInstallEntity.getDeviceType().equals("补水电磁阀")) { } else if (deviceInstallEntity.getDeviceType().equals("补水电磁阀")) {
nowDataMapper.updateUseWaterState(deviceInstallEntity.getBuildingId(), nowDataMapper.updateUseWaterState(deviceInstallEntity.getBuildingId(),
deviceInstallEntity.getDeviceAddr(), deviceInstallEntity.getDeviceAddr(),
String.valueOf(curValue.intValue()), deviceInstallEntity.getDeviceName()); String.valueOf(curValue.intValue()), deviceInstallEntity.getDeviceName());
nowPublicDataMapper.updateUseWaterState(Long.valueOf(deviceInstallEntity.getBuildingId()), curValue.intValue() == 1 ? "运行" : "不运行");
} }
break; break;
case 5: // 压力 case 5: // 压力
@ -263,12 +272,17 @@ public class S7PlcCollectionJob {
} }
break; break;
case 31: // 液位 case 31: // 液位
if (param.getOtherName().contains("单箱") && deviceInstallEntity.getIsSingleBox() == 1) { if (param.getOtherName().contains("单箱")) {
// 查询热泵类型的device_install以及是单箱的
deviceInstallEntity = deviceInstallMapper.selectSingleBoxDeviceInstall(deviceInstallEntity.getBuildingId(), "热泵", 1);
if (deviceInstallEntity == null) {
return;
}
// 更新单箱液位 // 更新单箱液位
nowDataMapper.updateBoxLevel(deviceInstallEntity.getBuildingId(), nowDataMapper.updateBoxLevel(deviceInstallEntity.getBuildingId(),
null, deviceInstallEntity.getDeviceAddr(),
curValue.setScale(1, RoundingMode.HALF_UP).toString(), curValue.setScale(1, RoundingMode.HALF_UP).toString(),
null, 1); deviceInstallEntity.getDeviceName(), 1);
} else { } else {
// 获取多箱的液位 // 获取多箱的液位
nowDataMapper.updateBoxLevel(deviceInstallEntity.getBuildingId(), nowDataMapper.updateBoxLevel(deviceInstallEntity.getBuildingId(),
@ -278,13 +292,24 @@ public class S7PlcCollectionJob {
} }
break; break;
case 26: // 液位设置 case 26: // 液位设置
if (param.getOtherName().contains("单箱液位") && param.getOtherName().contains("上限") && deviceInstallEntity.getIsSingleBox() == 1) { if (param.getOtherName().contains("单箱液位") && param.getOtherName().contains("上限")) {
// 查询热泵类型的device_install以及是单箱的
deviceInstallEntity = deviceInstallMapper.selectSingleBoxDeviceInstall(deviceInstallEntity.getBuildingId(), "热泵", 1);
if (deviceInstallEntity == null) {
return;
}
// 更新单箱液位 // 更新单箱液位
nowDataMapper.updateBoxLevelSet(deviceInstallEntity.getBuildingId(), nowDataMapper.updateBoxLevelSet(deviceInstallEntity.getBuildingId(),
null, deviceInstallEntity.getDeviceAddr(),
curValue.setScale(1, RoundingMode.HALF_UP).toString(), curValue.setScale(1, RoundingMode.HALF_UP).toString(),
null, 1); deviceInstallEntity.getDeviceName(), 1);
} if (param.getOtherName().contains("多箱液位") && param.getOtherName().contains("上限") && deviceInstallEntity.getIsSingleBox() == 0) { }
if (param.getOtherName().contains("多箱液位") && param.getOtherName().contains("上限")) {
// 查询热泵类型的device_install以及是单箱的
deviceInstallEntity = deviceInstallMapper.selectSingleBoxDeviceInstall(deviceInstallEntity.getBuildingId(), "热泵", 0);
if (deviceInstallEntity == null) {
return;
}
// 获取多箱的液位 // 获取多箱的液位
nowDataMapper.updateBoxLevelSet(deviceInstallEntity.getBuildingId(), nowDataMapper.updateBoxLevelSet(deviceInstallEntity.getBuildingId(),
null, null,
@ -301,6 +326,7 @@ public class S7PlcCollectionJob {
nowDataMapper.updateBackWaterTemp(deviceInstallEntity.getBuildingId(), nowDataMapper.updateBackWaterTemp(deviceInstallEntity.getBuildingId(),
null, null,
curValue.setScale(1, RoundingMode.HALF_UP).toString(), null); curValue.setScale(1, RoundingMode.HALF_UP).toString(), null);
nowPublicDataMapper.updateBackWaterTemp(Long.valueOf(deviceInstallEntity.getBuildingId()), curValue.setScale(1, RoundingMode.HALF_UP).toString());
break; break;
case 3: // 故障状态 case 3: // 故障状态
nowDataMapper.updatePressureSet(deviceInstallEntity.getBuildingId(), nowDataMapper.updatePressureSet(deviceInstallEntity.getBuildingId(),

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

@ -76,7 +76,12 @@ public interface DeviceInstallMapper extends BaseMapper<DeviceInstallEntity> {
@Result(property="remarks",column="remarks"), @Result(property="remarks",column="remarks"),
@Result(property="use",column="is_use"), @Result(property="use",column="is_use"),
@Result(property="fault",column="is_fault"), @Result(property="fault",column="is_fault"),
@Result(property="faultState",column="fault_state") @Result(property="faultState",column="fault_state"),
@Result(property="isSingleBox",column="is_single_box"),
@Result(property="orderNum",column="order_num"),
@Result(property="dayValue",column="dayValue"),
@Result(property="seat",column="seat"),
@Result(property="deviationValue",column="deviation_value")
}) })
@Select("select * from (\n" + @Select("select * from (\n" +
"select *,ROW_NUMBER() over(order by id) as rn from device_install \n" + "select *,ROW_NUMBER() over(order by id) as rn from device_install \n" +
@ -402,4 +407,8 @@ public interface DeviceInstallMapper extends BaseMapper<DeviceInstallEntity> {
@Update("update device_install set is_online = '离线' where id = #{deviceInstallId} ") @Update("update device_install set is_online = '离线' where id = #{deviceInstallId} ")
void updateNotOnlineById(Long deviceInstallId); void updateNotOnlineById(Long deviceInstallId);
@ResultMap("rs")
@Select("select top 1 * from device_install where building_id = #{buildingId} and device_type = #{deviceType} and is_single_box = #{isSingleBox}")
DeviceInstallEntity selectSingleBoxDeviceInstall(String buildingId, String deviceType, int isSingleBox);
} }

66
user-service/src/main/java/com/mh/user/mapper/NowPublicDataMapper.java

@ -33,14 +33,14 @@ public interface NowPublicDataMapper {
//查询监控界面公共实时信息 //查询监控界面公共实时信息
@Results(value = { @Results(value = {
@Result(property="curDate",column="cur_date"), @Result(property = "curDate", column = "cur_date"),
@Result(property="buildingId",column="building_id"), @Result(property = "buildingId", column = "building_id"),
@Result(property="buildingName",column="building_name"), @Result(property = "buildingName", column = "building_name"),
@Result(property="upWater",column="up_water"), @Result(property = "upWater", column = "up_water"),
@Result(property ="useWater",column ="use_water"), @Result(property = "useWater", column = "use_water"),
@Result(property ="backWater",column ="back_water"), @Result(property = "backWater", column = "back_water"),
@Result(property="useWaterTemp",column="use_water_temp"), @Result(property = "useWaterTemp", column = "use_water_temp"),
@Result(property ="backWaterTemp",column ="back_water_temp") @Result(property = "backWaterTemp", column = "back_water_temp")
}) })
@Select("select * from now_public_data where building_id=#{buildingId}") @Select("select * from now_public_data where building_id=#{buildingId}")
NowPublicDataEntity queryNowPublicData(@Param("buildingId") String buildingId); NowPublicDataEntity queryNowPublicData(@Param("buildingId") String buildingId);
@ -64,13 +64,14 @@ public interface NowPublicDataMapper {
void updateHistoryPublicData(NowPublicDataEntity nowPublicDataEntity); void updateHistoryPublicData(NowPublicDataEntity nowPublicDataEntity);
//查询监控界面公共历史信息 //查询监控界面公共历史信息
@SelectProvider(type = NowPublicDataProvider.class,method = "queryHistoryPublicData") @SelectProvider(type = NowPublicDataProvider.class, method = "queryHistoryPublicData")
List<NowPublicDataEntity> queryHistoryPublicData(@Param("curDate") String curDate, @Param("buildingId") String buildingId, List<NowPublicDataEntity> queryHistoryPublicData(@Param("curDate") String curDate, @Param("buildingId") String buildingId,
@Param("page") int page, @Param("limit") int limit); @Param("page") int page, @Param("limit") int limit);
//查询记录数 //查询记录数
@SelectProvider(type = NowPublicDataProvider.class,method = "getHistoryPublicDataCount") @SelectProvider(type = NowPublicDataProvider.class, method = "getHistoryPublicDataCount")
int getHistoryPublicDataCount(@Param("curDate") String curDate, @Param("buildingId") String buildingId, int getHistoryPublicDataCount(@Param("curDate") String curDate, @Param("buildingId") String buildingId,
@Param("page") int page, @Param("limit") int limit); @Param("page") int page, @Param("limit") int limit);
//判断实时表有没有记录(非热泵) //判断实时表有没有记录(非热泵)
@Select("select count(*) from now_public_data where building_id=#{buildingId} ") @Select("select count(*) from now_public_data where building_id=#{buildingId} ")
@ -78,14 +79,14 @@ public interface NowPublicDataMapper {
//判断历史表有没有记录(非热泵) //判断历史表有没有记录(非热泵)
@Select("select count(*) from history_public_data where convert(varchar(19),cur_date,121)=#{curDate} and building_id=#{buildingId} ") @Select("select count(*) from history_public_data where convert(varchar(19),cur_date,121)=#{curDate} and building_id=#{buildingId} ")
int selectHistoryPublicDataCount(@Param("curDate") String curDate,@Param("buildingId") String buildingId); int selectHistoryPublicDataCount(@Param("curDate") String curDate, @Param("buildingId") String buildingId);
//查询所有楼栋水箱平均温度 //查询所有楼栋水箱平均温度
@Results(value = { @Results(value = {
@Result(property="buildingId",column="building_id"), @Result(property = "buildingId", column = "building_id"),
@Result(property="buildingName",column="building_name"), @Result(property = "buildingName", column = "building_name"),
@Result(property ="singleTemp",column ="single_temp"), @Result(property = "singleTemp", column = "single_temp"),
@Result(property ="avgTemp",column ="use_water_temp") @Result(property = "avgTemp", column = "use_water_temp")
}) })
@Select("select building_id,building_name," + @Select("select building_id,building_name," +
" convert(numeric(23,2),use_water_temp)+3 as use_water_temp, " + " convert(numeric(23,2),use_water_temp)+3 as use_water_temp, " +
@ -95,10 +96,10 @@ public interface NowPublicDataMapper {
//查询单个楼栋水箱平均温度 //查询单个楼栋水箱平均温度
@Results(value = { @Results(value = {
@Result(property="buildingId",column="building_id"), @Result(property = "buildingId", column = "building_id"),
@Result(property="buildingName",column="building_name"), @Result(property = "buildingName", column = "building_name"),
@Result(property ="singleTemp",column ="single_temp"), @Result(property = "singleTemp", column = "single_temp"),
@Result(property ="avgTemp",column ="use_water_temp") @Result(property = "avgTemp", column = "use_water_temp")
}) })
@Select("select building_id,building_name," + @Select("select building_id,building_name," +
" convert(numeric(23,2),use_water_temp)+3 as use_water_temp, " + " convert(numeric(23,2),use_water_temp)+3 as use_water_temp, " +
@ -108,13 +109,13 @@ public interface NowPublicDataMapper {
//更新单箱温度 //更新单箱温度
@Update("update now_public_data set single_temp=#{singleTemp} where building_id=#{buildingId}") @Update("update now_public_data set single_temp=#{singleTemp} where building_id=#{buildingId}")
void updateSingleTemp(@Param("singleTemp") String singleTemp,@Param("buildingId") String buildingId); void updateSingleTemp(@Param("singleTemp") String singleTemp, @Param("buildingId") String buildingId);
@Results(value = { @Results(value = {
@Result(property="buildingId",column="building_id"), @Result(property = "buildingId", column = "building_id"),
@Result(property="buildingName",column="building_name"), @Result(property = "buildingName", column = "building_name"),
@Result(property ="singleTemp",column ="single_temp"), @Result(property = "singleTemp", column = "single_temp"),
@Result(property ="avgTemp",column ="avg_temp") @Result(property = "avgTemp", column = "avg_temp")
}) })
@Select("SELECT " + @Select("SELECT " +
" di.building_id, " + " di.building_id, " +
@ -137,4 +138,17 @@ public interface NowPublicDataMapper {
"GROUP BY di.building_id, di.building_name " + "GROUP BY di.building_id, di.building_name " +
"ORDER BY di.building_id;") "ORDER BY di.building_id;")
List<TempModel> queryNowWtTemp2(); List<TempModel> queryNowWtTemp2();
@Update("update now_public_data set back_water=#{value} where building_id=#{buildingId}")
void updateBackWaterState(Long buildingId, String value);
@Update("update now_public_data set up_water= #{value} where building_id= #{buildingId}")
void updateUpWaterState(Long buildingId, String value);
@Update("update now_public_data set use_water= #{value} where building_id= #{buildingId}")
void updateUseWaterState(Long buildingId, String value);
@Update("update now_public_data set back_water_temp= #{value} where building_id= #{buildingId}")
void updateBackWaterTemp(Long buildingId, String value);
} }

11
user-service/src/test/java/com/mh/user/UserServiceApplicationTests.java

@ -1,9 +1,11 @@
package com.mh.user; package com.mh.user;
import com.mh.user.entity.DeviceInstallEntity;
import com.mh.user.entity.DeviceManageEntity; import com.mh.user.entity.DeviceManageEntity;
import com.mh.user.entity.GaugeEntity; import com.mh.user.entity.GaugeEntity;
import com.mh.user.job.DealDataJob; import com.mh.user.job.DealDataJob;
import com.mh.user.job.StartOrStopHotpumpJob; import com.mh.user.job.StartOrStopHotpumpJob;
import com.mh.user.mapper.DeviceInstallMapper;
import com.mh.user.serialport.SerialPortThread; import com.mh.user.serialport.SerialPortThread;
import com.mh.user.service.DeviceManageService; import com.mh.user.service.DeviceManageService;
import com.mh.user.service.GaugeService; import com.mh.user.service.GaugeService;
@ -28,6 +30,15 @@ class UserServiceApplicationTests {
void contextLoads() { void contextLoads() {
} }
@Autowired
private DeviceInstallMapper deviceInstallMapper;
@Test
public void testDeviceInstall() {
DeviceInstallEntity deviceInstallEntity = deviceInstallMapper.selectSingleBoxDeviceInstall("9", "热泵", 1);
System.out.println(deviceInstallEntity.toString());
}
@Autowired @Autowired
private StartOrStopHotpumpJob startOrStopHotpumpJob; private StartOrStopHotpumpJob startOrStopHotpumpJob;

Loading…
Cancel
Save