diff --git a/user-service/src/main/java/com/mh/user/mapper/NowDataMapper.java b/user-service/src/main/java/com/mh/user/mapper/NowDataMapper.java index bacacfd..72781b3 100644 --- a/user-service/src/main/java/com/mh/user/mapper/NowDataMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/NowDataMapper.java @@ -23,16 +23,16 @@ public interface NowDataMapper { //修改监控界面实时信息(热泵) @Update("") void updateNowData(NowDataEntity nowDataEntity); @@ -40,17 +40,17 @@ public interface NowDataMapper { //修改监控界面实时信息(不包含热泵) @Update("") void updateNowData2(NowDataEntity nowDataEntity); @@ -395,20 +395,26 @@ public interface NowDataMapper { //按高低区更新water_Level - @Update("update now_data SET now_data.water_Level=#{waterLevel} FROM device_install where now_data.pump_id =device_install.device_addr AND device_install.seat=#{seat} and now_data.building_id=#{buildingId} ") + @Update("update now_data SET now_data.water_Level=#{waterLevel} FROM device_install " + + " where now_data.pump_id =device_install.device_addr AND device_install.seat=#{seat} and now_data.building_id=#{buildingId} " + + " and now_data.building_id = device_install.building_id ") void nowDataWaterLevel(@Param("waterLevel") String waterLevel, @Param("seat") String seat, @Param("buildingId") String buildingId); //按高低区更新levelSet - @Update("update now_data SET now_data.level_set=#{levelSet} FROM device_install where now_data.pump_id =device_install.device_addr AND device_install.seat=#{seat} and now_data.building_id=#{buildingId} ") + @Update("update now_data SET now_data.level_set=#{levelSet} FROM device_install " + + " where now_data.pump_id =device_install.device_addr AND device_install.seat=#{seat} and now_data.building_id=#{buildingId} " + + " and now_data.building_id = device_install.building_id ") void nowDataLevelSet(@Param("levelSet") String levelSet, @Param("seat") String seat, @Param("buildingId") String buildingId); //按高低区更新water_Level @Update("update history_Data SET history_Data.water_Level=#{waterLevel} FROM device_install where history_Data.pump_id =device_install.device_addr AND device_install.seat=#{seat} " + - " and history_Data.building_id=#{buildingId} and convert(varchar(13),cur_date,121)=left(#{curDate},13) ") + " and history_Data.building_id=#{buildingId} " + + " and convert(varchar(13),cur_date,121)=left(#{curDate},13)" + + " and history_Data.building_id = device_install.building_id ") void historyDataWaterLevel(@Param("waterLevel") String waterLevel, @Param("seat") String seat, @Param("buildingId") String buildingId, @@ -416,7 +422,9 @@ public interface NowDataMapper { //按高低区更新levelSet @Update("update history_Data SET history_Data.level_set=#{levelSet} FROM device_install where history_Data.pump_id =device_install.device_addr AND device_install.seat=#{seat} " + - " and history_Data.building_id=#{buildingId} and convert(varchar(13),cur_date,121)=left(#{curDate},13) ") + " and history_Data.building_id=#{buildingId} " + + " and convert(varchar(13),cur_date,121)=left(#{curDate},13) " + + " and history_Data.building_id = device_install.building_id ") void historyDataLevelSet(@Param("levelSet") String levelSet, @Param("seat") String seat, @Param("buildingId") String buildingId, diff --git a/user-service/src/main/java/com/mh/user/serialport/SendAndReceiveByCom.java b/user-service/src/main/java/com/mh/user/serialport/SendAndReceiveByCom.java index 6d88786..ebc4fb1 100644 --- a/user-service/src/main/java/com/mh/user/serialport/SendAndReceiveByCom.java +++ b/user-service/src/main/java/com/mh/user/serialport/SendAndReceiveByCom.java @@ -184,7 +184,7 @@ public class SendAndReceiveByCom { //去掉空格和null receiveStr = receiveStr.replace("null", ""); receiveStr = receiveStr.replace(" ", ""); - log.info("串口" + serialPort + "接受第" + i + "数据:" + receiveStr + ",大小: " + receiveStr.length()); + log.info("串口:" + serialPort.getName() + ",接受第" + i + "数据:" + receiveStr + ",大小: " + receiveStr.length()); //返回值全部变成大写 String receiveData = receiveStr.toUpperCase(); //截取去掉FE 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 9478f31..a5b5029 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 @@ -1,5 +1,6 @@ package com.mh.user.service.impl; +import com.mh.common.utils.StringUtils; import com.mh.user.entity.*; import com.mh.user.mapper.DeviceFloorMapper; import com.mh.user.mapper.DeviceInstallMapper; @@ -142,18 +143,25 @@ public class NowDataServiceImpl implements NowDataService { strDate=strDate.substring(0,13)+":00:00"; try{ - if (dataType.equals("tempSet")){ //温度设定 - data.setTempSet(strData); - }else if (dataType.equals("waterTemp")){ //水箱水温 - data.setWaterTemp(strData); - }else if (dataType.equals("runState")){ //运行状态 - data.setRunState(strData); - }else if (dataType.equals("isFault")){ //是否故障 - data.setIsFault(strData); - }else if (dataType.equals("levelSet")){ //水位设定 - data.setLevelSet(strData); - }else if (dataType.equals("waterLevel")){//实际水位 - data.setWaterLevel(strData); + switch (dataType) { + case "tempSet": //温度设定 + data.setTempSet(strData); + break; + case "waterTemp": //水箱水温 + data.setWaterTemp(strData); + break; + case "runState": //运行状态 + data.setRunState(strData); + break; + case "isFault": //是否故障 + data.setIsFault(strData); + break; + case "levelSet": //水位设定 + data.setLevelSet(strData); + break; + case "waterLevel": //实际水位 + data.setWaterLevel(strData); + break; } //从安装表获取设备信息 DeviceInstallEntity deviceInstallEntity=deviceInstallMapper.selectDevice(deviceAddr,deviceType,buildingId); @@ -188,15 +196,15 @@ public class NowDataServiceImpl implements NowDataService { nowDataMapper.saveNowData(data); }else { if (deviceType.equals("压变")) { - String seat=deviceInstallService.selectSeat("压变",deviceAddr,buildingId); + String seat=deviceInstallService.selectSeat(deviceType,deviceAddr,buildingId); log.info("-------楼栋:"+buildingName+",类型:"+deviceType+",地址:"+deviceAddr+",区位:"+seat+",数值:"+strData+"------"); - if (seat!=null){ + if (!StringUtils.isBlank(seat)){ nowDataMapper.nowDataWaterLevel(strData,seat,buildingId); }else{ nowDataMapper.updateNowData2(data); } }else if (deviceType.equals("水位开关")){ - String seat=deviceInstallService.selectSeat("水位开关",deviceAddr,buildingId); + String seat=deviceInstallService.selectSeat(deviceType,deviceAddr,buildingId); log.info("-------楼栋:"+buildingName+",类型:"+deviceType+",地址:"+deviceAddr+",区位:"+seat+",数值:"+strData+"------"); if (seat!=null){ nowDataMapper.nowDataLevelSet(strData,seat,buildingId); @@ -213,17 +221,17 @@ public class NowDataServiceImpl implements NowDataService { nowDataMapper.saveHistoryData(data); }else { if (deviceType.equals("压变")) { - String seat=deviceInstallService.selectSeat("压变",deviceAddr,buildingId); - if (seat!=null){ - nowDataMapper.historyDataWaterLevel(strData,seat,buildingId,""); + String seat=deviceInstallService.selectSeat(deviceType,deviceAddr,buildingId); + if (!StringUtils.isBlank(seat)){ + nowDataMapper.historyDataWaterLevel(strData,seat,buildingId,strDate); log.info("------楼栋:"+buildingName+",历史记录压变区位:"+seat+"------"); }else{ nowDataMapper.updateHistoryData2(data); } }else if (deviceType.equals("水位开关")){ - String seat=deviceInstallService.selectSeat("水位开关",deviceAddr,buildingId); - if (seat!=null){ - nowDataMapper.historyDataLevelSet(strData,seat,buildingId,""); + String seat=deviceInstallService.selectSeat(deviceType,deviceAddr,buildingId); + if (!StringUtils.isBlank(seat)){ + nowDataMapper.historyDataLevelSet(strData,seat,buildingId,strDate); log.info("------楼栋:"+buildingName+",历史记录水位开关区位:"+seat+"------"); }else{ nowDataMapper.updateHistoryData2(data); @@ -246,14 +254,19 @@ public class NowDataServiceImpl implements NowDataService { strDate=strDate.substring(0,13)+":00:00"; NowDataEntity data=new NowDataEntity(); try{ - if (dataType.equals("tempSet")){ //温度设定 - data.setTempSet(strData); - }else if (dataType.equals("waterTemp")){ //水箱水温 - data.setWaterTemp(strData); - }else if (dataType.equals("runState")){ //运行状态 - data.setRunState(strData); - }else if (dataType.equals("isFault")){ //是否故障 - data.setIsFault(strData); + switch (dataType) { + case "tempSet": //温度设定 + data.setTempSet(strData); + break; + case "waterTemp": //水箱水温 + data.setWaterTemp(strData); + break; + case "runState": //运行状态 + data.setRunState(strData); + break; + case "isFault": //是否故障 + data.setIsFault(strData); + break; } String buildingName=buildingService.queryBuildingName(buildingId); //判断实时表是否有记录 @@ -297,14 +310,19 @@ public class NowDataServiceImpl implements NowDataService { }else { NowDataEntity data2=nowDataMapper.selectHistoryData(strDate,buildingId,pumpId); if (data2!=null){ - if (dataType.equals("tempSet")){ //温度设定 - data2.setTempSet(strData); - }else if (dataType.equals("waterTemp")){ //水箱水温 - data2.setWaterTemp(strData); - }else if (dataType.equals("runState")){ //运行状态 - data2.setRunState(strData); - }else if (dataType.equals("isFault")){ //是否故障 - data2.setIsFault(strData); + switch (dataType) { + case "tempSet": //温度设定 + data2.setTempSet(strData); + break; + case "waterTemp": //水箱水温 + data2.setWaterTemp(strData); + break; + case "runState": //运行状态 + data2.setRunState(strData); + break; + case "isFault": //是否故障 + data2.setIsFault(strData); + break; } nowDataMapper.updateHistoryData(data2); } diff --git a/user-service/src/test/java/com/mh/user/UserServiceApplicationTests.java b/user-service/src/test/java/com/mh/user/UserServiceApplicationTests.java index 1965211..e74cd1f 100644 --- a/user-service/src/test/java/com/mh/user/UserServiceApplicationTests.java +++ b/user-service/src/test/java/com/mh/user/UserServiceApplicationTests.java @@ -2,15 +2,18 @@ package com.mh.user; import com.mh.user.entity.DeviceManageEntity; import com.mh.user.entity.GaugeEntity; +import com.mh.user.factory.PressureTrans; import com.mh.user.serialport.SerialPortThread; import com.mh.user.service.DeviceManageService; import com.mh.user.service.GaugeService; +import com.mh.user.strategy.PressureTransStrategy; import com.mh.user.utils.*; import org.checkerframework.checker.units.qual.A; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import java.util.Date; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ThreadPoolExecutor; @@ -108,4 +111,17 @@ class UserServiceApplicationTests { AnalysisReceiveOrder485 analysisReceiveOrder485 = new AnalysisReceiveOrder485(); analysisReceiveOrder485.analysisRelayOrder4852("26 03 10 00 00 00 00 00 01 00 01 00 01 00 01 00 00 00 00 FE 86 ".replace(" ", ""), "0018", "远向", "1", "1栋"); } + + @Test + public void testPressure() { + PressureTransStrategy.getInstance().analysisReceiveData( + DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss"), + "压变", + "49", + "澳升", + "59", + "46栋", + "30030200E105C8" + ); + } }