diff --git a/threecolor-modbus-collector/src/main/java/com/xujie/modbus/entity/Resource.java b/threecolor-modbus-collector/src/main/java/com/xujie/modbus/entity/Resource.java index 536b493..2d0b04d 100644 --- a/threecolor-modbus-collector/src/main/java/com/xujie/modbus/entity/Resource.java +++ b/threecolor-modbus-collector/src/main/java/com/xujie/modbus/entity/Resource.java @@ -30,4 +30,5 @@ public class Resource { private Integer registerPort; private Integer registerNum; private String cuttingSymbol; + private Integer failureTime; } diff --git a/threecolor-modbus-collector/src/main/java/com/xujie/modbus/service/impl/ModbusCollectServiceImpl.java b/threecolor-modbus-collector/src/main/java/com/xujie/modbus/service/impl/ModbusCollectServiceImpl.java index de33c43..fe3dc42 100644 --- a/threecolor-modbus-collector/src/main/java/com/xujie/modbus/service/impl/ModbusCollectServiceImpl.java +++ b/threecolor-modbus-collector/src/main/java/com/xujie/modbus/service/impl/ModbusCollectServiceImpl.java @@ -183,6 +183,7 @@ public class ModbusCollectServiceImpl int port = folderLocation.getRegisterPort() != null ? folderLocation.getRegisterPort() : 502; int quantity = folderLocation.getRegisterNum() != null ? folderLocation.getRegisterNum() : 3; int offset = 0x00; + Integer failureTime = folderLocation.getFailureTime() != null ? folderLocation.getFailureTime() : 5; String cuttingSymbol = folderLocation.getCuttingSymbol(); if (StringUtils.isNotBlank(cuttingSymbol)) { try { @@ -234,7 +235,7 @@ public class ModbusCollectServiceImpl System.out.println("寄存器数据:"+ registerData); logger.info("寄存器数据: {}", registerData); //site+equipmentNo查询前5分钟,如果5条都是0,0,1,就往sfdc_time_hist插入数据,先要确认中间表有工单号 - List colorLampLisByTime = threeColorLampMapper.getThreeColorLampLisByTime(folderLocation.getSite(), folderLocation.getResourceId(), 5); + List colorLampLisByTime = threeColorLampMapper.getThreeColorLampLisByTime(folderLocation.getSite(), folderLocation.getResourceId(), failureTime); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("site", folderLocation.getSite()); queryWrapper.eq("resource_id", folderLocation.getResourceId()); @@ -280,7 +281,7 @@ public class ModbusCollectServiceImpl sfdcTimeHist.setSeqNo(soscheduled.getSeqno()); sfdcTimeHist.setHistSeqno(histSeqno+1); Date currentTime = new Date(); - Date fiveMinutesAgo = new Date(currentTime.getTime() - 5 * 60 * 1000); + Date fiveMinutesAgo = new Date(currentTime.getTime() - failureTime * 60 * 1000); sfdcTimeHist.setEventTime(fiveMinutesAgo); sfdcTimeHist.setEnteredBy(null); sfdcTimeHist.setEventDesc(null); @@ -334,6 +335,9 @@ public class ModbusCollectServiceImpl if (resourceScheduleds != null && resourceScheduleds.size()>0){ for(ResourceScheduled resourceScheduled:resourceScheduleds){ ThreeColorLamp colorLamp = threeColorLampMapper.selectThreeColorLastByResourceId(folderLocation.getSite(),resourceScheduled.getResourceId()); + if(colorLamp == null){ + break; + } ThreeColorLampDownlog downlogChangeLast = threeColorLampDownlogMapper.selectDownlogLast(folderLocation.getSite(),folderLocation.getResourceId()); if(!mapValueToString(registerData.get(0)).equals(colorLamp.getGreen()) || !mapValueToString(registerData.get(1)).equals(colorLamp.getOrange())|| !mapValueToString(registerData.get(2)).equals(colorLamp.getRed())){ if(downlogChangeLast != null){ @@ -418,23 +422,14 @@ public class ModbusCollectServiceImpl }else{ ThreeColorLamp colorLamp = threeColorLampMapper.selectThreeColorLastByResourceId(folderLocation.getSite(),folderLocation.getResourceId()); - ThreeColorLampDownlog downlogChangeLast = threeColorLampDownlogMapper.selectDownlogLast(folderLocation.getSite(),folderLocation.getResourceId()); - if(!mapValueToString(registerData.get(0)).equals(colorLamp.getGreen()) || !mapValueToString(registerData.get(1)).equals(colorLamp.getOrange())|| !mapValueToString(registerData.get(2)).equals(colorLamp.getRed())){ - if(downlogChangeLast != null){ - downlogChangeLast.setEndDate(new Date()); - threeColorLampDownlogMapper.updateById(downlogChangeLast); - } + if(colorLamp != null){ + ThreeColorLampDownlog downlogChangeLast = threeColorLampDownlogMapper.selectDownlogLast(folderLocation.getSite(),folderLocation.getResourceId()); + if(!mapValueToString(registerData.get(0)).equals(colorLamp.getGreen()) || !mapValueToString(registerData.get(1)).equals(colorLamp.getOrange())|| !mapValueToString(registerData.get(2)).equals(colorLamp.getRed())){ + if(downlogChangeLast != null){ + downlogChangeLast.setEndDate(new Date()); + threeColorLampDownlogMapper.updateById(downlogChangeLast); + } - ThreeColorLampDownlog downlog = new ThreeColorLampDownlog(); - downlog.setSite(folderLocation.getSite()); - downlog.setEventDesc("计划停机"); - downlog.setStartDate(new Date()); - downlog.setCreateDate(new Date()); - String nowlamp = registerData.get(0)+"" + registerData.get(1) + ""+registerData.get(2); - downlog.setLamp(nowlamp); - threeColorLampDownlogMapper.insert(downlog); - }else{ - if(downlogChangeLast == null){ ThreeColorLampDownlog downlog = new ThreeColorLampDownlog(); downlog.setSite(folderLocation.getSite()); downlog.setEventDesc("计划停机"); @@ -444,9 +439,20 @@ public class ModbusCollectServiceImpl downlog.setLamp(nowlamp); threeColorLampDownlogMapper.insert(downlog); }else{ - if("999".equals(downlogChangeLast.getLamp()) && folderLocation.getResourceId().equals(downlogChangeLast.getResourceId())){ - downlogChangeLast.setEndDate(new Date()); - threeColorLampDownlogMapper.updateById(downlogChangeLast); + if(downlogChangeLast == null){ + ThreeColorLampDownlog downlog = new ThreeColorLampDownlog(); + downlog.setSite(folderLocation.getSite()); + downlog.setEventDesc("计划停机"); + downlog.setStartDate(new Date()); + downlog.setCreateDate(new Date()); + String nowlamp = registerData.get(0)+"" + registerData.get(1) + ""+registerData.get(2); + downlog.setLamp(nowlamp); + threeColorLampDownlogMapper.insert(downlog); + }else{ + if("999".equals(downlogChangeLast.getLamp()) && folderLocation.getResourceId().equals(downlogChangeLast.getResourceId())){ + downlogChangeLast.setEndDate(new Date()); + threeColorLampDownlogMapper.updateById(downlogChangeLast); + } } } }