@ -231,28 +231,24 @@ public class ModbusCollectServiceImpl
}
} else {
/ / 如果寄存器不为空
System . out . println ( "寄存器数据:" + registerData ) ;
logger . info ( "寄存器数据: {}" , registerData ) ;
/ / site + equipmentNo查询前failureTime分钟 , 如果failureTime条都是0 , 0 , 1 , 就往sfdc_time_hist插入数据 , 先要确认中间表有工单号
/ / 获取前几条数据 , 默认5
List < ThreeColorLamp > colorLampLisByTime = threeColorLampMapper . getThreeColorLampLisByTime ( folderLocation . getSite ( ) , folderLocation . getResourceId ( ) , failureTime ) ;
QueryWrapper < ResourceScheduled > queryWrapper = new QueryWrapper < > ( ) ;
queryWrapper . eq ( "site" , folderLocation . getSite ( ) ) ;
queryWrapper . eq ( "resource_id" , folderLocation . getResourceId ( ) ) ;
queryWrapper . isNotNull ( "seq_no" ) ;
List < ResourceScheduled > resourceScheduleds = resourceScheduledMapper . selectList ( queryWrapper ) ;
/ / 查询中间表是否有设备和派工单号
List < ResourceScheduled > resourceScheduleds = resourceScheduledMapper . selectResourceScheduledAndResourceList ( folderLocation . getSite ( ) , folderLocation . getResourceId ( ) ) ;
/ / 不为空并大于0 , 往mes表插数据
if ( resourceScheduleds ! = null & & resourceScheduleds . size ( ) > 0 ) {
for ( ResourceScheduled resourceScheduled : resourceScheduleds ) {
logger . info ( "获取前几条灯数据: {}" , colorLampLisByTime ) ;
/ / site + equipmentNo 查询前 failureTime 分钟 , 如果 * * failureTime 条记录全部为 0 , 0 , 1 * * , 才插入 sfdc_time_hist
boolean shouldInsertHist = false ;
if ( colorLampLisByTime ! = null & & colorLampLisByTime . size ( ) > = failureTime ) {
if ( colorLampLisByTime ! = null & & colorLampLisByTime . size ( ) > 0 ) {
/ / 只取最近 failureTime 条记录做判断
int size = colorLampLisByTime . size ( ) ;
List < ThreeColorLamp > lastN = colorLampLisByTime . subList ( size - failureTime , size ) ;
/ / 要求条数刚好为 failureTime , 且每条都是 0 , 0 , 1
if ( lastN . size ( ) = = failureTime ) {
shouldInsertHist = true ;
for ( ThreeColorLamp lamp3 : lastN ) {
for ( ThreeColorLamp lamp3 : colorLampLisByTime ) {
boolean isRed = ( "0" . equals ( lamp3 . getGreen ( ) ) ) & &
( "0" . equals ( lamp3 . getOrange ( ) ) ) & &
( "1" . equals ( lamp3 . getRed ( ) ) ) ;
@ -262,13 +258,13 @@ public class ModbusCollectServiceImpl
}
}
}
}
if ( shouldInsertHist ) {
if ( ! "X" . equals ( resourceScheduled . getIssend ( ) ) ) {
SfdcTimeHist timeHist = sfdcTimeHistMapper . selectSfdcTimeHistByNew ( folderLocation . getSite ( ) , resourceScheduled . getSeqNo ( ) , "自动停机" ) ;
if ( timeHist = = null ) {
SoscheduledroutingVo soscheduled = threeColorLampMapper . getSoscheduled ( resourceScheduled . getSeqNo ( ) ) ;
if ( soscheduled ! = null ) {
int histSeqno = threeColorLampMapper . selectHistSeqno ( folderLocation . getSite ( ) , resourceScheduled . getSeqNo ( ) ) ;
SfdcTimeHist sfdcTimeHist = new SfdcTimeHist ( ) ;
sfdcTimeHist . setSite ( folderLocation . getSite ( ) ) ;
@ -301,9 +297,9 @@ public class ModbusCollectServiceImpl
sfdcTimeHist . setReplaceFlag ( "0" ) ;
sfdcTimeHist . setBatchNo ( null ) ;
sfdcTimeHist . setRemark ( null ) ;
sfdcTimeHistMapper . insert ( sfdcTimeHist ) ;
int insert = sfdcTimeHistMapper . insert ( sfdcTimeHist ) ;
logger . info ( "停机红灯插入数据: {}" , sfdcTimeHist ) ;
if ( insert > 0 ) {
UpdateWrapper < ResourceScheduled > updateWrapper = new UpdateWrapper < > ( ) ;
updateWrapper . eq ( "site" , folderLocation . getSite ( ) ) ;
updateWrapper . eq ( "resource_id" , folderLocation . getResourceId ( ) ) ;
@ -312,9 +308,14 @@ public class ModbusCollectServiceImpl
updateWrapper . set ( "sfdcid" , sfdcTimeHist . getId ( ) ) ;
resourceScheduledMapper . update ( updateWrapper ) ;
logger . info ( "更新了中间表,变为X,sfdcid:{}" , sfdcTimeHist . getId ( ) ) ;
}
}
} else {
if ( "Y" . equals ( timeHist . getCompletedFlag ( ) ) ) {
SoscheduledroutingVo soscheduled = threeColorLampMapper . getSoscheduled ( resourceScheduled . getSeqNo ( ) ) ;
if ( soscheduled ! = null ) {
int histSeqno = threeColorLampMapper . selectHistSeqno ( folderLocation . getSite ( ) , resourceScheduled . getSeqNo ( ) ) ;
SfdcTimeHist sfdcTimeHist = new SfdcTimeHist ( ) ;
sfdcTimeHist . setSite ( folderLocation . getSite ( ) ) ;
@ -347,9 +348,9 @@ public class ModbusCollectServiceImpl
sfdcTimeHist . setReplaceFlag ( "0" ) ;
sfdcTimeHist . setBatchNo ( null ) ;
sfdcTimeHist . setRemark ( null ) ;
sfdcTimeHistMapper . insert ( sfdcTimeHist ) ;
int insert = sfdcTimeHistMapper . insert ( sfdcTimeHist ) ;
logger . info ( "停机红灯插入数据: {}" , sfdcTimeHist ) ;
if ( insert > 0 ) {
UpdateWrapper < ResourceScheduled > updateWrapper = new UpdateWrapper < > ( ) ;
updateWrapper . eq ( "site" , folderLocation . getSite ( ) ) ;
updateWrapper . eq ( "resource_id" , folderLocation . getResourceId ( ) ) ;
@ -359,6 +360,10 @@ public class ModbusCollectServiceImpl
resourceScheduledMapper . update ( updateWrapper ) ;
logger . info ( "更新了中间表,变为X,sfdcid:{}" , sfdcTimeHist . getId ( ) ) ;
}
}
}
}
}
@ -379,14 +384,16 @@ public class ModbusCollectServiceImpl
} else {
logger . error ( "设备或工单号不存在 - 设备: {}" , folderLocation . getRegisterIp ( ) ) ;
}
/ / 记录变灯时长
/ / 不为空并大于0
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 ) {
downlogChangeLast . setEndDate ( new Date ( ) ) ;
@ -397,11 +404,11 @@ public class ModbusCollectServiceImpl
SoscheduledroutingVo soscheduled = threeColorLampMapper . getSoscheduled ( resourceScheduled . getSeqNo ( ) ) ;
ThreeColorLampDownlog downlog = new ThreeColorLampDownlog ( ) ;
downlog . setSite ( folderLocation . getSite ( ) ) ;
downlog . setResourceId ( soscheduled . getSResourceid ( ) ) ;
downlog . setWorkShop ( soscheduled . getSWorkcenterno ( ) ) ;
downlog . setOrderNo ( soscheduled . getOrderno ( ) ) ;
downlog . setSeqNo ( soscheduled . getSeqno ( ) ) ;
downlog . setSShiftno ( soscheduled . getSShiftno ( ) ) ;
downlog . setResourceId ( soscheduled . getSResourceid ( ) = = null ? folderLocation . getResourceId ( ) : soscheduled . getSResourceid ( ) ) ;
downlog . setWorkShop ( soscheduled . getSWorkcenterno ( ) = = null ? null : soscheduled . getSWorkcenterno ( ) ) ;
downlog . setOrderNo ( soscheduled . getOrderno ( ) = = null ? null : soscheduled . getOrderno ( ) ) ;
downlog . setSeqNo ( soscheduled . getSeqno ( ) = = null ? null : soscheduled . getSeqno ( ) ) ;
downlog . setSShiftno ( soscheduled . getSShiftno ( ) = = null ? null : soscheduled . getSShiftno ( ) ) ;
if ( registerData . get ( 2 ) = = 1 ) {
downlog . setEventDesc ( "设备故障" ) ;
}
@ -421,7 +428,8 @@ public class ModbusCollectServiceImpl
if ( 1 = = registerData . get ( 0 ) & & 0 = = registerData . get ( 1 ) & & 0 = = registerData . get ( 2 ) ) {
ResourceScheduled updateResourceScheduled = resourceScheduledMapper . selectById ( resourceScheduled . getId ( ) ) ;
logger . info ( "正常中间表发送状态{},sfdcid{}" , resourceScheduled . getIssend ( ) , resourceScheduled . getSfdcid ( ) ) ;
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 ( ) ) ;
@ -429,17 +437,20 @@ public class ModbusCollectServiceImpl
sfdcTimeHist . setTillTime ( new Date ( ) ) ;
sfdcTimeHist . setTillenteredTime ( new Date ( ) ) ;
sfdcTimeHist . setCompletedFlag ( "Y" ) ;
sfdcTimeHistMapper . updatesfdcTimeHistById ( sfdcTimeHist ) ;
int i = sfdcTimeHistMapper . updatesfdcTimeHistById ( sfdcTimeHist ) ;
logger . info ( "更新了sfdc表,completedFlaf变为{},id:{}" , sfdcTimeHist . getCompletedFlag ( ) , updateResourceScheduled . getSfdcid ( ) ) ;
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" , null ) ;
updateWrapper . set ( "issend" , "Y" ) ;
updateWrapper . set ( "sfdcid" , null ) ;
resourceScheduledMapper . update ( updateWrapper ) ;
logger . info ( "更新了中间表,变为null,id:{}" , resourceScheduled . getSfdcid ( ) ) ;
logger . info ( "更新了中间表,sfdcid变为null,id:{}" , resourceScheduled . getId ( ) ) ;
}
}
}
} else {
@ -447,11 +458,11 @@ public class ModbusCollectServiceImpl
SoscheduledroutingVo soscheduled = threeColorLampMapper . getSoscheduled ( resourceScheduled . getSeqNo ( ) ) ;
ThreeColorLampDownlog downlog = new ThreeColorLampDownlog ( ) ;
downlog . setSite ( folderLocation . getSite ( ) ) ;
downlog . setResourceId ( soscheduled . getSResourceid ( ) ) ;
downlog . setWorkShop ( soscheduled . getSWorkcenterno ( ) ) ;
downlog . setOrderNo ( soscheduled . getOrderno ( ) ) ;
downlog . setSeqNo ( soscheduled . getSeqno ( ) ) ;
downlog . setSShiftno ( soscheduled . getSShiftno ( ) ) ;
downlog . setResourceId ( soscheduled . getSResourceid ( ) = = null ? folderLocation . getResourceId ( ) : soscheduled . getSResourceid ( ) ) ;
downlog . setWorkShop ( soscheduled . getSWorkcenterno ( ) = = null ? null : soscheduled . getSWorkcenterno ( ) ) ;
downlog . setOrderNo ( soscheduled . getOrderno ( ) = = null ? null : soscheduled . getOrderno ( ) ) ;
downlog . setSeqNo ( soscheduled . getSeqno ( ) = = null ? null : soscheduled . getSeqno ( ) ) ;
downlog . setSShiftno ( soscheduled . getSShiftno ( ) = = null ? null : soscheduled . getSShiftno ( ) ) ;
if ( registerData . get ( 2 ) = = 1 ) {
downlog . setEventDesc ( "设备故障" ) ;
}
@ -467,6 +478,17 @@ public class ModbusCollectServiceImpl
downlog . setLamp ( nowlamp ) ;
threeColorLampDownlogMapper . insert ( downlog ) ;
} else {
/ / 如果有最后一条 , 并且灯是100并是无工单运作 , 就去更新那最后一条数据
if ( 1 = = registerData . get ( 0 ) & & 0 = = registerData . get ( 1 ) & & 0 = = registerData . get ( 2 ) & & "无工单运作" . equals ( downlogChangeLast . getEventDesc ( ) ) ) {
SoscheduledroutingVo soscheduled = threeColorLampMapper . getSoscheduled ( resourceScheduled . getSeqNo ( ) ) ;
downlogChangeLast . setWorkShop ( soscheduled . getSWorkcenterno ( ) = = null ? null : soscheduled . getSWorkcenterno ( ) ) ;
downlogChangeLast . setOrderNo ( soscheduled . getOrderno ( ) = = null ? null : soscheduled . getOrderno ( ) ) ;
downlogChangeLast . setSeqNo ( soscheduled . getSeqno ( ) = = null ? null : soscheduled . getSeqno ( ) ) ;
downlogChangeLast . setSShiftno ( soscheduled . getSShiftno ( ) = = null ? null : soscheduled . getSShiftno ( ) ) ;
downlogChangeLast . setEventDesc ( "正常运作" ) ;
threeColorLampDownlogMapper . updateById ( downlogChangeLast ) ;
}
/ / 如果是999 , 并且工单是同一个 , 则结束
if ( "999" . equals ( downlogChangeLast . getLamp ( ) ) & & folderLocation . getResourceId ( ) . equals ( downlogChangeLast . getResourceId ( ) ) ) {
downlogChangeLast . setEndDate ( new Date ( ) ) ;
threeColorLampDownlogMapper . updateById ( downlogChangeLast ) ;
@ -476,9 +498,11 @@ public class ModbusCollectServiceImpl
}
} else {
/ / 没有工单 , 查设备的最后一条亮灯
ThreeColorLamp colorLamp = threeColorLampMapper . selectThreeColorLastByResourceId ( folderLocation . getSite ( ) , folderLocation . getResourceId ( ) ) ;
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 ( ) ) ;
@ -488,7 +512,11 @@ public class ModbusCollectServiceImpl
ThreeColorLampDownlog downlog = new ThreeColorLampDownlog ( ) ;
downlog . setSite ( folderLocation . getSite ( ) ) ;
downlog . setResourceId ( folderLocation . getResourceId ( ) ) ;
if ( registerData . get ( 0 ) = = 1 ) {
downlog . setEventDesc ( "无工单运作" ) ;
} else {
downlog . setEventDesc ( "计划停机" ) ;
}
downlog . setStartDate ( new Date ( ) ) ;
downlog . setCreateDate ( new Date ( ) ) ;
String nowlamp = registerData . get ( 0 ) + "" + registerData . get ( 1 ) + "" + registerData . get ( 2 ) ;
@ -499,7 +527,11 @@ public class ModbusCollectServiceImpl
ThreeColorLampDownlog downlog = new ThreeColorLampDownlog ( ) ;
downlog . setSite ( folderLocation . getSite ( ) ) ;
downlog . setResourceId ( folderLocation . getResourceId ( ) ) ;
if ( registerData . get ( 0 ) = = 1 ) {
downlog . setEventDesc ( "无工单运作" ) ;
} else {
downlog . setEventDesc ( "计划停机" ) ;
}
downlog . setStartDate ( new Date ( ) ) ;
downlog . setCreateDate ( new Date ( ) ) ;
String nowlamp = registerData . get ( 0 ) + "" + registerData . get ( 1 ) + "" + registerData . get ( 2 ) ;
@ -514,6 +546,7 @@ public class ModbusCollectServiceImpl
}
}
}
/ / 不管上面 , 始终插入
ThreeColorLamp lamp = new ThreeColorLamp ( ) ;
lamp . setSite ( folderLocation . getSite ( ) ) ;
lamp . setEquipmentNo ( folderLocation . getResourceId ( ) ) ;