|
|
|
@ -184,6 +184,7 @@ public class ModbusCollectServiceImpl |
|
|
|
int quantity = folderLocation.getRegisterNum() != null ? folderLocation.getRegisterNum() : 3; |
|
|
|
int offset = 0x00; |
|
|
|
Integer failureTime = folderLocation.getFailureTime() != null ? folderLocation.getFailureTime() : 5; |
|
|
|
Integer runTime = folderLocation.getRunTime() != null ? folderLocation.getRunTime() : 4; |
|
|
|
String cuttingSymbol = folderLocation.getCuttingSymbol(); |
|
|
|
if (StringUtils.isNotBlank(cuttingSymbol)) { |
|
|
|
try { |
|
|
|
@ -237,11 +238,60 @@ public class ModbusCollectServiceImpl |
|
|
|
//site+equipmentNo查询前failureTime分钟,如果failureTime条都是0,0,1,就往sfdc_time_hist插入数据,先要确认中间表有工单号 |
|
|
|
//获取前几条数据,默认5 |
|
|
|
List<ThreeColorLamp> colorLampLisByTime = threeColorLampMapper.getThreeColorLampLisByTime(folderLocation.getSite(), folderLocation.getResourceId(), failureTime); |
|
|
|
List<ThreeColorLamp> colorLampLisByTimeGreen = threeColorLampMapper.getThreeColorLampLisByTime(folderLocation.getSite(), folderLocation.getResourceId(), runTime); |
|
|
|
//查询中间表是否有设备和派工单号 |
|
|
|
List<ResourceScheduled> resourceScheduleds = resourceScheduledMapper.selectResourceScheduledAndResourceList(folderLocation.getSite(), folderLocation.getResourceId()); |
|
|
|
//不为空并大于0,往mes表插数据 |
|
|
|
if (resourceScheduleds != null && resourceScheduleds.size()>0){ |
|
|
|
for(ResourceScheduled resourceScheduled:resourceScheduleds){ |
|
|
|
//runtime时间未到,要去清空 |
|
|
|
if(!(1 == registerData.get(0) && 0 == registerData.get(1) && 0 == registerData.get(2))){ |
|
|
|
|
|
|
|
boolean greenInsertHist = false; |
|
|
|
if (colorLampLisByTimeGreen != null && colorLampLisByTimeGreen.size() > 0) { |
|
|
|
// 只取最近 failureTime 条记录做判断 |
|
|
|
for (ThreeColorLamp lamp3 : colorLampLisByTimeGreen) { |
|
|
|
boolean isGreen = ("1".equals(lamp3.getGreen())) && |
|
|
|
("0".equals(lamp3.getOrange())) && |
|
|
|
("0".equals(lamp3.getRed())); |
|
|
|
if (!isGreen) { |
|
|
|
greenInsertHist = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
boolean isLastGreen = false; |
|
|
|
|
|
|
|
ThreeColorLamp lastGreenColorLamp = threeColorLampMapper.selectThreeColorLastByResourceId(folderLocation.getSite(),resourceScheduled.getResourceId()); |
|
|
|
if(lastGreenColorLamp != null){ |
|
|
|
if("1".equals(lastGreenColorLamp.getGreen()) && "0".equals(lastGreenColorLamp.getOrange())&& "0".equals(lastGreenColorLamp.getRed())){ |
|
|
|
isLastGreen = true; |
|
|
|
} |
|
|
|
} |
|
|
|
if(greenInsertHist && isLastGreen){ |
|
|
|
SfdcTimeHist sfdcTimeHistByGreen = sfdcTimeHistMapper.selectSfdcTimeHistByNew(folderLocation.getSite(), resourceScheduled.getSeqNo(), "自动停机"); |
|
|
|
if(sfdcTimeHistByGreen != null){ |
|
|
|
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()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
logger.info("获取前几条灯数据: {}", colorLampLisByTime); |
|
|
|
// site+equipmentNo 查询前 failureTime 分钟,如果 **failureTime 条记录全部为 0,0,1**,才插入 sfdc_time_hist |
|
|
|
boolean shouldInsertHist = false; |
|
|
|
|