|
|
|
@ -340,23 +340,29 @@ public class ModbusCollectServiceImpl |
|
|
|
break; |
|
|
|
} |
|
|
|
if (!skipReopenHist) { |
|
|
|
sfdcTimeHistByGreen.setTillTime(null); |
|
|
|
sfdcTimeHistByGreen.setTillenteredTime(null); |
|
|
|
sfdcTimeHistByGreen.setCompletedFlag("N"); |
|
|
|
int i = sfdcTimeHistMapper.updateById(sfdcTimeHistByGreen); |
|
|
|
if(i>0){ |
|
|
|
UpdateWrapper<ResourceScheduled> updateWrapper = new UpdateWrapper<>(); |
|
|
|
updateWrapper.eq("site", folderLocation.getSite()); |
|
|
|
updateWrapper.eq("resource_id", folderLocation.getResourceId()); |
|
|
|
updateWrapper.eq("seq_no", sfdcTimeHistByGreen.getSeqNo()); |
|
|
|
updateWrapper.set("issend", "Y"); |
|
|
|
updateWrapper.set("sfdcid",sfdcTimeHistByGreen.getId()); |
|
|
|
resourceScheduledMapper.update(updateWrapper); |
|
|
|
logger.info("停机恢复后正常运行时间未到指定时间,sfdcid变为之前的,id:{}",sfdcTimeHistByGreen.getId()); |
|
|
|
fireAndForget("syncMesFormStop", () -> |
|
|
|
syncMesFormStop(folderLocation.getSite(), sfdcTimeHistByGreen.getSeqNo(), |
|
|
|
sfdcTimeHistByGreen.getId(), sfdcTimeHistByGreen.getEventTime())); |
|
|
|
ResourceScheduled getone = resourceScheduledMapper.getOneResourceSchedule(folderLocation.getSite(),folderLocation.getResourceId(),sfdcTimeHistByGreen.getSeqNo()); |
|
|
|
UpdateWrapper<ResourceScheduled> updateWrapper = new UpdateWrapper<>(); |
|
|
|
updateWrapper.eq("site", folderLocation.getSite()); |
|
|
|
updateWrapper.eq("resource_id", folderLocation.getResourceId()); |
|
|
|
updateWrapper.eq("seq_no", sfdcTimeHistByGreen.getSeqNo()); |
|
|
|
updateWrapper.set("issend", "Y"); |
|
|
|
updateWrapper.set("sfdcid",sfdcTimeHistByGreen.getId()); |
|
|
|
updateWrapper.set("close_flag",getone.getOriCloseFlag()); |
|
|
|
resourceScheduledMapper.update(updateWrapper); |
|
|
|
ResourceScheduled getoneTwo = resourceScheduledMapper.getOneResourceSchedule(folderLocation.getSite(),folderLocation.getResourceId(),sfdcTimeHistByGreen.getSeqNo()); |
|
|
|
if(!"Y".equals(getoneTwo.getCloseFlag())){ |
|
|
|
sfdcTimeHistByGreen.setTillTime(null); |
|
|
|
sfdcTimeHistByGreen.setTillenteredTime(null); |
|
|
|
sfdcTimeHistByGreen.setCompletedFlag("N"); |
|
|
|
int i = sfdcTimeHistMapper.updateById(sfdcTimeHistByGreen); |
|
|
|
if(i>0){ |
|
|
|
logger.info("停机恢复后正常运行时间未到指定时间,sfdcid变为之前的,id:{}",sfdcTimeHistByGreen.getId()); |
|
|
|
fireAndForget("syncMesFormStop", () -> |
|
|
|
syncMesFormStop(folderLocation.getSite(), sfdcTimeHistByGreen.getSeqNo(), |
|
|
|
sfdcTimeHistByGreen.getId(), sfdcTimeHistByGreen.getEventTime())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -382,7 +388,8 @@ public class ModbusCollectServiceImpl |
|
|
|
} |
|
|
|
|
|
|
|
if (shouldInsertHist){ |
|
|
|
if(!"X".equals(resourceScheduled.getIssend())){ |
|
|
|
ResourceScheduled redSchedule = resourceScheduledMapper.getOneResourceSchedule(folderLocation.getSite(), folderLocation.getResourceId(), resourceScheduled.getSeqNo()); |
|
|
|
if(!"X".equals(resourceScheduled.getIssend()) && !"Y".equals(redSchedule.getCloseFlag())){ |
|
|
|
SfdcTimeHist timeHist = sfdcTimeHistMapper.selectSfdcTimeHistByNew(folderLocation.getSite(), resourceScheduled.getSeqNo(), "自动停机"); |
|
|
|
if(timeHist == null){ |
|
|
|
logger.info("开始空空插入前红灯寻找 sfdc_time_hist, seq_no:{}", resourceScheduled.getSeqNo()); |
|
|
|
@ -530,7 +537,8 @@ public class ModbusCollectServiceImpl |
|
|
|
} |
|
|
|
|
|
|
|
if (yellowInsertHist){ |
|
|
|
if(!"X".equals(resourceScheduled.getIssend())){ |
|
|
|
ResourceScheduled yellowSchedule = resourceScheduledMapper.getOneResourceSchedule(folderLocation.getSite(), folderLocation.getResourceId(), resourceScheduled.getSeqNo()); |
|
|
|
if(!"X".equals(resourceScheduled.getIssend()) && !"Y".equals(yellowSchedule.getCloseFlag())){ |
|
|
|
SfdcTimeHist timeHist = sfdcTimeHistMapper.selectSfdcTimeHistByNew(folderLocation.getSite(), resourceScheduled.getSeqNo(), "自动停机"); |
|
|
|
if(timeHist == null){ |
|
|
|
logger.info("开始插入空空前黄灯寻找 sfdc_time_hist, seq_no:{}", resourceScheduled.getSeqNo()); |
|
|
|
@ -678,7 +686,8 @@ public class ModbusCollectServiceImpl |
|
|
|
} |
|
|
|
|
|
|
|
if (whiteInsertHist){ |
|
|
|
if(!"X".equals(resourceScheduled.getIssend())){ |
|
|
|
ResourceScheduled whiteSchedule = resourceScheduledMapper.getOneResourceSchedule(folderLocation.getSite(), folderLocation.getResourceId(), resourceScheduled.getSeqNo()); |
|
|
|
if(!"X".equals(resourceScheduled.getIssend()) && !"Y".equals(whiteSchedule.getCloseFlag())){ |
|
|
|
SfdcTimeHist timeHist = sfdcTimeHistMapper.selectSfdcTimeHistByNew(folderLocation.getSite(), resourceScheduled.getSeqNo(), "自动停机"); |
|
|
|
if(timeHist == null){ |
|
|
|
logger.info("开始插入空空前白灯寻找 sfdc_time_hist, seq_no:{}", resourceScheduled.getSeqNo()); |
|
|
|
@ -824,8 +833,9 @@ public class ModbusCollectServiceImpl |
|
|
|
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())){ |
|
|
|
Date LampDownlogEndTime = new Date(); |
|
|
|
if(downlogChangeLast != null){ |
|
|
|
downlogChangeLast.setEndDate(new Date()); |
|
|
|
downlogChangeLast.setEndDate(LampDownlogEndTime); |
|
|
|
threeColorLampDownlogMapper.updateById(downlogChangeLast); |
|
|
|
} |
|
|
|
|
|
|
|
@ -838,14 +848,29 @@ public class ModbusCollectServiceImpl |
|
|
|
downlog.setOrderNo(soscheduled.getOrderno() == null ? null : soscheduled.getOrderno()); |
|
|
|
downlog.setSeqNo(soscheduled.getSeqno() == null ? null : soscheduled.getSeqno()); |
|
|
|
downlog.setSShiftno(soscheduled.getSShiftno() == null ? null : soscheduled.getSShiftno()); |
|
|
|
ResourceScheduled shortScheduled = resourceScheduledMapper.getOneResourceSchedule(folderLocation.getSite(), folderLocation.getResourceId(), resourceScheduled.getSeqNo()); |
|
|
|
if(registerData.get(2) == 1){ |
|
|
|
downlog.setEventDesc("短暂停"); |
|
|
|
|
|
|
|
if(shortScheduled != null && "Y".equals(shortScheduled.getCloseFlag())){ |
|
|
|
downlog.setEventDesc("短暂停(手动结束停机)"); |
|
|
|
}else{ |
|
|
|
downlog.setEventDesc("短暂停"); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
if(registerData.get(0) == 1){ |
|
|
|
downlog.setEventDesc("正常运作"); |
|
|
|
if(shortScheduled != null && "Y".equals(shortScheduled.getCloseFlag())){ |
|
|
|
downlog.setEventDesc("正常运作(手动结束停机)"); |
|
|
|
}else { |
|
|
|
downlog.setEventDesc("正常运作"); |
|
|
|
} |
|
|
|
} |
|
|
|
if(registerData.get(0) == 0 && registerData.get(1) == 0 && registerData.get(2) == 0){ |
|
|
|
downlog.setEventDesc("设备离线"); |
|
|
|
if(shortScheduled != null && "Y".equals(shortScheduled.getCloseFlag())){ |
|
|
|
downlog.setEventDesc("设备离线(手动结束停机)"); |
|
|
|
}else { |
|
|
|
downlog.setEventDesc("设备离线"); |
|
|
|
} |
|
|
|
} |
|
|
|
downlog.setStartDate(new Date()); |
|
|
|
downlog.setCreateDate(new Date()); |
|
|
|
@ -860,48 +885,75 @@ public class ModbusCollectServiceImpl |
|
|
|
logger.info("正常中间表发送状态{},sfdcid{}", resourceScheduled.getIssend(),updateResourceScheduled.getSfdcid()); |
|
|
|
//如果发送标记不为null,且sfdcid不为null,修改mes表 |
|
|
|
if(StringUtils.isNotBlank(resourceScheduled.getIssend()) && updateResourceScheduled.getSfdcid() != null){ |
|
|
|
SfdcTimeHist sfdcTimeHist = new SfdcTimeHist(); |
|
|
|
sfdcTimeHist.setId(updateResourceScheduled.getSfdcid()); |
|
|
|
sfdcTimeHist.setSite(folderLocation.getSite()); |
|
|
|
sfdcTimeHist.setTillTime(new Date()); |
|
|
|
sfdcTimeHist.setTillenteredTime(new Date()); |
|
|
|
sfdcTimeHist.setCompletedFlag("Y"); |
|
|
|
int i = sfdcTimeHistMapper.updatesfdcTimeHistById(sfdcTimeHist); |
|
|
|
logger.info("更新了sfdc表,completedFlaf变为{},id:{}",sfdcTimeHist.getCompletedFlag(),updateResourceScheduled.getSfdcid()); |
|
|
|
SfdcTimeHist sfdcTimeHist1 = sfdcTimeHistMapper.selectById(sfdcTimeHist.getId()); |
|
|
|
if(sfdcTimeHist1 != null){ |
|
|
|
logger.info("获取的sfdc表数据{}",sfdcTimeHist1); |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
|
|
|
if(StringUtils.isNotBlank(sfdcTimeHist1.getEventDesc())){ |
|
|
|
String startTime = sdf.format(sfdcTimeHist1.getEventTime()); |
|
|
|
String endTime = sdf.format(sfdcTimeHist1.getTillTime()); |
|
|
|
threeColorLampDownlogMapper.updateDownLogEventDesc( |
|
|
|
startTime, |
|
|
|
endTime, |
|
|
|
sfdcTimeHist1.getEventDesc(), |
|
|
|
folderLocation.getSite(), |
|
|
|
folderLocation.getResourceId(), |
|
|
|
sfdcTimeHist1.getSeqNo(), |
|
|
|
sfdcTimeHist1.getOrderNo(), |
|
|
|
runTime |
|
|
|
); |
|
|
|
|
|
|
|
if(!"Y".equals(updateResourceScheduled.getCloseFlag())){ |
|
|
|
SfdcTimeHist sfdcTimeHist = new SfdcTimeHist(); |
|
|
|
sfdcTimeHist.setId(updateResourceScheduled.getSfdcid()); |
|
|
|
sfdcTimeHist.setSite(folderLocation.getSite()); |
|
|
|
sfdcTimeHist.setTillTime(LampDownlogEndTime); |
|
|
|
sfdcTimeHist.setTillenteredTime(LampDownlogEndTime); |
|
|
|
sfdcTimeHist.setCompletedFlag("Y"); |
|
|
|
int i = sfdcTimeHistMapper.updatesfdcTimeHistById(sfdcTimeHist); |
|
|
|
logger.info("更新了sfdc表,completedFlaf变为{},id:{}",sfdcTimeHist.getCompletedFlag(),updateResourceScheduled.getSfdcid()); |
|
|
|
SfdcTimeHist sfdcTimeHist1 = sfdcTimeHistMapper.selectById(sfdcTimeHist.getId()); |
|
|
|
if(sfdcTimeHist1 != null){ |
|
|
|
logger.info("获取的sfdc表数据{}",sfdcTimeHist1); |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
|
|
|
if(StringUtils.isNotBlank(sfdcTimeHist1.getEventDesc())){ |
|
|
|
String startTime = sdf.format(sfdcTimeHist1.getEventTime()); |
|
|
|
String endTime = sdf.format(sfdcTimeHist1.getTillTime()); |
|
|
|
threeColorLampDownlogMapper.updateDownLogEventDesc( |
|
|
|
startTime, |
|
|
|
endTime, |
|
|
|
sfdcTimeHist1.getEventDesc(), |
|
|
|
folderLocation.getSite(), |
|
|
|
folderLocation.getResourceId(), |
|
|
|
sfdcTimeHist1.getSeqNo(), |
|
|
|
sfdcTimeHist1.getOrderNo(), |
|
|
|
runTime |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
if(i >0){ |
|
|
|
logger.info("发送请求",resourceScheduled.getId()); |
|
|
|
fireAndForget("syncMesFormStart", () -> |
|
|
|
syncMesFormStart(folderLocation.getSite(), resourceScheduled.getSeqNo(), |
|
|
|
sfdcTimeHist.getId(), sfdcTimeHist.getEventTime())); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
SfdcTimeHist sfdcTimeHist1 = sfdcTimeHistMapper.selectById(updateResourceScheduled.getSfdcid()); |
|
|
|
if(sfdcTimeHist1 != null){ |
|
|
|
logger.info("获取的sfdc表数据{}",sfdcTimeHist1); |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
|
|
|
if(StringUtils.isNotBlank(sfdcTimeHist1.getEventDesc())){ |
|
|
|
String startTime = sdf.format(sfdcTimeHist1.getEventTime()); |
|
|
|
String endTime = sdf.format(sfdcTimeHist1.getTillTime()); |
|
|
|
threeColorLampDownlogMapper.updateDownLogEventDesc( |
|
|
|
startTime, |
|
|
|
endTime, |
|
|
|
sfdcTimeHist1.getEventDesc(), |
|
|
|
folderLocation.getSite(), |
|
|
|
folderLocation.getResourceId(), |
|
|
|
sfdcTimeHist1.getSeqNo(), |
|
|
|
sfdcTimeHist1.getOrderNo(), |
|
|
|
runTime |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
if(i >0){ |
|
|
|
UpdateWrapper<ResourceScheduled> updateWrapper = new UpdateWrapper<>(); |
|
|
|
updateWrapper.eq("site", folderLocation.getSite()); |
|
|
|
updateWrapper.eq("resource_id", folderLocation.getResourceId()); |
|
|
|
updateWrapper.eq("seq_no", resourceScheduled.getSeqNo()); |
|
|
|
updateWrapper.set("issend", "Y"); |
|
|
|
updateWrapper.set("sfdcid",null); |
|
|
|
resourceScheduledMapper.update(updateWrapper); |
|
|
|
logger.info("更新了中间表,sfdcid变为null,id:{}",resourceScheduled.getId()); |
|
|
|
fireAndForget("syncMesFormStart", () -> |
|
|
|
syncMesFormStart(folderLocation.getSite(), resourceScheduled.getSeqNo(), |
|
|
|
sfdcTimeHist.getId(), sfdcTimeHist.getEventTime())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
UpdateWrapper<ResourceScheduled> updateWrapper = new UpdateWrapper<>(); |
|
|
|
updateWrapper.eq("site", folderLocation.getSite()); |
|
|
|
updateWrapper.eq("resource_id", folderLocation.getResourceId()); |
|
|
|
updateWrapper.eq("seq_no", resourceScheduled.getSeqNo()); |
|
|
|
updateWrapper.set("issend", "Y"); |
|
|
|
updateWrapper.set("sfdcid",null); |
|
|
|
updateWrapper.set("ori_close_flag",updateResourceScheduled.getCloseFlag()); |
|
|
|
updateWrapper.set("close_flag","N"); |
|
|
|
resourceScheduledMapper.update(updateWrapper); |
|
|
|
logger.info("更新了中间表,sfdcid变为null,id:{}",resourceScheduled.getId()); |
|
|
|
} |
|
|
|
} |
|
|
|
}else{ |
|
|
|
@ -914,14 +966,27 @@ public class ModbusCollectServiceImpl |
|
|
|
downlog.setOrderNo(soscheduled.getOrderno()== null ? null : soscheduled.getOrderno()); |
|
|
|
downlog.setSeqNo(soscheduled.getSeqno()== null ? null : soscheduled.getSeqno()); |
|
|
|
downlog.setSShiftno(soscheduled.getSShiftno()== null ? null : soscheduled.getSShiftno()); |
|
|
|
ResourceScheduled shortScheduled = resourceScheduledMapper.getOneResourceSchedule(folderLocation.getSite(), folderLocation.getResourceId(), resourceScheduled.getSeqNo()); |
|
|
|
if(registerData.get(2) == 1){ |
|
|
|
downlog.setEventDesc("短暂停"); |
|
|
|
if(shortScheduled != null && "Y".equals(shortScheduled.getCloseFlag())){ |
|
|
|
downlog.setEventDesc("短暂停(手动结束停机)"); |
|
|
|
}else{ |
|
|
|
downlog.setEventDesc("短暂停"); |
|
|
|
} |
|
|
|
} |
|
|
|
if(registerData.get(0) == 1){ |
|
|
|
downlog.setEventDesc("正常运作"); |
|
|
|
if(shortScheduled != null && "Y".equals(shortScheduled.getCloseFlag())){ |
|
|
|
downlog.setEventDesc("正常运作(手动结束停机)"); |
|
|
|
}else { |
|
|
|
downlog.setEventDesc("正常运作"); |
|
|
|
} |
|
|
|
} |
|
|
|
if(registerData.get(0) == 0 && registerData.get(1) == 0 && registerData.get(2) == 0){ |
|
|
|
downlog.setEventDesc("设备离线"); |
|
|
|
if(shortScheduled != null && "Y".equals(shortScheduled.getCloseFlag())){ |
|
|
|
downlog.setEventDesc("设备离线(手动结束停机)"); |
|
|
|
}else{ |
|
|
|
downlog.setEventDesc("设备离线"); |
|
|
|
} |
|
|
|
} |
|
|
|
downlog.setStartDate(new Date()); |
|
|
|
downlog.setCreateDate(new Date()); |
|
|
|
|