|
@@ -200,9 +200,107 @@ public class ModbusTask {
|
|
|
F.set(StringUtils.substringBefore(callTheRoll, "F"));
|
|
|
// 获取检测的数据名称
|
|
|
String dataName = StringUtils.substringAfterLast(callTheRoll, "_");
|
|
|
-
|
|
|
+ switch (dataName){
|
|
|
+ case "CHO":
|
|
|
+ DmEnvHistoryWarnConfig dmEnvHistoryWarnConfigCho = dmEnvHistoryWarnConfigService.selectWarnDataByName("CHO");
|
|
|
+ dmEnvHistoryModbusData.setCho(number.toString());
|
|
|
+ if (!ObjectUtil.isEmpty(dmEnvHistoryWarnConfigCho) && Integer.valueOf(dmEnvHistoryModbusData.getCho())>=Integer.valueOf(dmEnvHistoryWarnConfigCho.getWarnValue())){
|
|
|
+ DmEnvHistoryWarn dmEnvHistoryWarn = new DmEnvHistoryWarn();
|
|
|
+ dmEnvHistoryWarn.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
+ dmEnvHistoryWarn.setDeviceIdentifier(device.getDeviceId().toString());
|
|
|
+ dmEnvHistoryWarn.setDeviceName(device.getDeviceName());
|
|
|
+ dmEnvHistoryWarn.setWarnIndex(dmEnvHistoryWarnConfigCho.getWarnValue());
|
|
|
+ dmEnvHistoryWarn.setWarnValue(dmEnvHistoryModbusData.getCho());
|
|
|
+ dmEnvHistoryWarn.setWarnContent("甲醛过高");
|
|
|
+ dmEnvHistoryWarnService.create(dmEnvHistoryWarn);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "CO2":
|
|
|
+ DmEnvHistoryWarnConfig dmEnvHistoryWarnConfigCo2 = dmEnvHistoryWarnConfigService.selectWarnDataByName("CO2");
|
|
|
+ dmEnvHistoryModbusData.setCo2(number.toString());
|
|
|
+ if (!ObjectUtil.isEmpty(dmEnvHistoryWarnConfigCo2) && Integer.valueOf(dmEnvHistoryModbusData.getCo2())>=Integer.valueOf(dmEnvHistoryWarnConfigCo2.getWarnValue())){
|
|
|
+ DmEnvHistoryWarn dmEnvHistoryWarn = new DmEnvHistoryWarn();
|
|
|
+ dmEnvHistoryWarn.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
+ dmEnvHistoryWarn.setDeviceIdentifier(device.getDeviceId().toString());
|
|
|
+ dmEnvHistoryWarn.setDeviceName(device.getDeviceName());
|
|
|
+ dmEnvHistoryWarn.setWarnIndex(dmEnvHistoryWarnConfigCo2.getWarnValue());
|
|
|
+ dmEnvHistoryWarn.setWarnValue(dmEnvHistoryModbusData.getCo2());
|
|
|
+ dmEnvHistoryWarn.setWarnContent("二氧化碳过高");
|
|
|
+ dmEnvHistoryWarnService.create(dmEnvHistoryWarn);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "H":
|
|
|
+ DmEnvHistoryWarnConfig dmEnvHistoryWarnConfigH = dmEnvHistoryWarnConfigService.selectWarnDataByName("H");
|
|
|
+ dmEnvHistoryModbusData.setH(number.toString());
|
|
|
+ if (!ObjectUtil.isEmpty(dmEnvHistoryWarnConfigH) && Integer.valueOf(dmEnvHistoryModbusData.getH())>=Integer.valueOf(dmEnvHistoryWarnConfigH.getWarnValue())){
|
|
|
+ DmEnvHistoryWarn dmEnvHistoryWarn = new DmEnvHistoryWarn();
|
|
|
+ dmEnvHistoryWarn.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
+ dmEnvHistoryWarn.setDeviceIdentifier(device.getDeviceId().toString());
|
|
|
+ dmEnvHistoryWarn.setDeviceName(device.getDeviceName());
|
|
|
+ dmEnvHistoryWarn.setWarnIndex(dmEnvHistoryWarnConfigH.getWarnValue());
|
|
|
+ dmEnvHistoryWarn.setWarnValue(dmEnvHistoryModbusData.getH());
|
|
|
+ dmEnvHistoryWarn.setWarnContent("湿度过高");
|
|
|
+ dmEnvHistoryWarnService.create(dmEnvHistoryWarn);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "PM10":
|
|
|
+ DmEnvHistoryWarnConfig dmEnvHistoryWarnConfigPm10 = dmEnvHistoryWarnConfigService.selectWarnDataByName("PM10");
|
|
|
+ dmEnvHistoryModbusData.setPm10(number.toString());
|
|
|
+ if (!ObjectUtil.isEmpty(dmEnvHistoryWarnConfigPm10) && Integer.valueOf(dmEnvHistoryModbusData.getPm10())>=Integer.valueOf(dmEnvHistoryWarnConfigPm10.getWarnValue())){
|
|
|
+ DmEnvHistoryWarn dmEnvHistoryWarn = new DmEnvHistoryWarn();
|
|
|
+ dmEnvHistoryWarn.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
+ dmEnvHistoryWarn.setDeviceIdentifier(device.getDeviceId().toString());
|
|
|
+ dmEnvHistoryWarn.setDeviceName(device.getDeviceName());
|
|
|
+ dmEnvHistoryWarn.setWarnIndex(dmEnvHistoryWarnConfigPm10.getWarnValue());
|
|
|
+ dmEnvHistoryWarn.setWarnValue(dmEnvHistoryModbusData.getPm10());
|
|
|
+ dmEnvHistoryWarn.setWarnContent("pm10过高");
|
|
|
+ dmEnvHistoryWarnService.create(dmEnvHistoryWarn);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "PM25":
|
|
|
+ DmEnvHistoryWarnConfig dmEnvHistoryWarnConfigPm25 = dmEnvHistoryWarnConfigService.selectWarnDataByName("PM25");
|
|
|
+ dmEnvHistoryModbusData.setPm25(number.toString());
|
|
|
+ if (!ObjectUtil.isEmpty(dmEnvHistoryWarnConfigPm25) && Integer.valueOf(dmEnvHistoryModbusData.getPm25())>=Integer.valueOf(dmEnvHistoryWarnConfigPm25.getWarnValue())){
|
|
|
+ DmEnvHistoryWarn dmEnvHistoryWarn = new DmEnvHistoryWarn();
|
|
|
+ dmEnvHistoryWarn.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
+ dmEnvHistoryWarn.setDeviceIdentifier(device.getDeviceId().toString());
|
|
|
+ dmEnvHistoryWarn.setDeviceName(device.getDeviceName());
|
|
|
+ dmEnvHistoryWarn.setWarnIndex(dmEnvHistoryWarnConfigPm25.getWarnValue());
|
|
|
+ dmEnvHistoryWarn.setWarnValue(dmEnvHistoryModbusData.getPm25());
|
|
|
+ dmEnvHistoryWarn.setWarnContent("pm2.5过高");
|
|
|
+ dmEnvHistoryWarnService.create(dmEnvHistoryWarn);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "T":
|
|
|
+ DmEnvHistoryWarnConfig dmEnvHistoryWarnConfigT = dmEnvHistoryWarnConfigService.selectWarnDataByName("T");
|
|
|
+ dmEnvHistoryModbusData.setT(number.toString());
|
|
|
+ if (!ObjectUtil.isEmpty(dmEnvHistoryWarnConfigT) && Integer.valueOf(dmEnvHistoryModbusData.getT())>=Integer.valueOf(dmEnvHistoryWarnConfigT.getWarnValue())){
|
|
|
+ DmEnvHistoryWarn dmEnvHistoryWarn = new DmEnvHistoryWarn();
|
|
|
+ dmEnvHistoryWarn.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
+ dmEnvHistoryWarn.setDeviceIdentifier(device.getDeviceId().toString());
|
|
|
+ dmEnvHistoryWarn.setDeviceName(device.getDeviceName());
|
|
|
+ dmEnvHistoryWarn.setWarnIndex(dmEnvHistoryWarnConfigT.getWarnValue());
|
|
|
+ dmEnvHistoryWarn.setWarnValue(dmEnvHistoryModbusData.getT());
|
|
|
+ dmEnvHistoryWarn.setWarnContent("温度过高");
|
|
|
+ dmEnvHistoryWarnService.create(dmEnvHistoryWarn);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "VOC":
|
|
|
+ DmEnvHistoryWarnConfig dmEnvHistoryWarnConfigVoc = dmEnvHistoryWarnConfigService.selectWarnDataByName("VOC");
|
|
|
+ dmEnvHistoryModbusData.setVoc(number.toString());
|
|
|
+ if (!ObjectUtil.isEmpty(dmEnvHistoryWarnConfigVoc) && Integer.valueOf(dmEnvHistoryModbusData.getVoc())>=Integer.valueOf(dmEnvHistoryWarnConfigVoc.getWarnValue())){
|
|
|
+ DmEnvHistoryWarn dmEnvHistoryWarn = new DmEnvHistoryWarn();
|
|
|
+ dmEnvHistoryWarn.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
+ dmEnvHistoryWarn.setDeviceIdentifier(device.getDeviceId().toString());
|
|
|
+ dmEnvHistoryWarn.setDeviceName(device.getDeviceName());
|
|
|
+ dmEnvHistoryWarn.setWarnIndex(dmEnvHistoryWarnConfigVoc.getWarnValue());
|
|
|
+ dmEnvHistoryWarn.setWarnValue(dmEnvHistoryModbusData.getVoc());
|
|
|
+ dmEnvHistoryWarn.setWarnContent("VOC过高");
|
|
|
+ dmEnvHistoryWarnService.create(dmEnvHistoryWarn);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
- break;
|
|
|
}
|
|
|
}catch (Exception e) {
|
|
|
log.error("调用读取InputRegisters模拟量数据,modbus读取数据失败,失败原因:{}, 失败地址寄存器地址: {}",e.getMessage(),Integer.valueOf(data.getSoftwareRegisterAddress()));
|