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. 58
      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. 14
      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:其他
private int isSingleBox;
private int orderNum;
}

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

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

@ -67,6 +67,7 @@ public interface NowPublicDataMapper {
@SelectProvider(type = NowPublicDataProvider.class, method = "queryHistoryPublicData")
List<NowPublicDataEntity> queryHistoryPublicData(@Param("curDate") String curDate, @Param("buildingId") String buildingId,
@Param("page") int page, @Param("limit") int limit);
//查询记录数
@SelectProvider(type = NowPublicDataProvider.class, method = "getHistoryPublicDataCount")
int getHistoryPublicDataCount(@Param("curDate") String curDate, @Param("buildingId") String buildingId,
@ -137,4 +138,17 @@ public interface NowPublicDataMapper {
"GROUP BY di.building_id, di.building_name " +
"ORDER BY di.building_id;")
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;
import com.mh.user.entity.DeviceInstallEntity;
import com.mh.user.entity.DeviceManageEntity;
import com.mh.user.entity.GaugeEntity;
import com.mh.user.job.DealDataJob;
import com.mh.user.job.StartOrStopHotpumpJob;
import com.mh.user.mapper.DeviceInstallMapper;
import com.mh.user.serialport.SerialPortThread;
import com.mh.user.service.DeviceManageService;
import com.mh.user.service.GaugeService;
@ -28,6 +30,15 @@ class UserServiceApplicationTests {
void contextLoads() {
}
@Autowired
private DeviceInstallMapper deviceInstallMapper;
@Test
public void testDeviceInstall() {
DeviceInstallEntity deviceInstallEntity = deviceInstallMapper.selectSingleBoxDeviceInstall("9", "热泵", 1);
System.out.println(deviceInstallEntity.toString());
}
@Autowired
private StartOrStopHotpumpJob startOrStopHotpumpJob;

Loading…
Cancel
Save