Browse Source

三色灯修改

master
shenzhouyu 1 month ago
parent
commit
774cde7bff
  1. 4
      threecolor-modbus-collector/src/main/java/com/xujie/modbus/entity/ResourceScheduled.java
  2. 2
      threecolor-modbus-collector/src/main/java/com/xujie/modbus/mapper/ResourceScheduledMapper.java
  3. 193
      threecolor-modbus-collector/src/main/java/com/xujie/modbus/service/impl/ModbusCollectServiceImpl.java
  4. 3
      threecolor-modbus-collector/src/main/resources/dao/ResourceScheduledMapper.xml

4
threecolor-modbus-collector/src/main/java/com/xujie/modbus/entity/ResourceScheduled.java

@ -22,4 +22,8 @@ public class ResourceScheduled {
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer sfdcid;
private String closeFlag;
private String oriCloseFlag;
}

2
threecolor-modbus-collector/src/main/java/com/xujie/modbus/mapper/ResourceScheduledMapper.java

@ -9,4 +9,6 @@ import java.util.List;
@Mapper
public interface ResourceScheduledMapper extends BaseMapper<ResourceScheduled> {
List<ResourceScheduled> selectResourceScheduledAndResourceList(String site, String resourceId);
ResourceScheduled getOneResourceSchedule(String site, String resourceId, String seqNo);
}

193
threecolor-modbus-collector/src/main/java/com/xujie/modbus/service/impl/ModbusCollectServiceImpl.java

@ -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());

3
threecolor-modbus-collector/src/main/resources/dao/ResourceScheduledMapper.xml

@ -5,4 +5,7 @@
<select id="selectResourceScheduledAndResourceList" resultType="com.xujie.modbus.entity.ResourceScheduled">
select * from resource_scheduled where site = #{site} and resource_id = #{resourceId} and seq_no is not null and RTRIM(LTRIM(seq_no)) != ''
</select>
<select id="getOneResourceSchedule" resultType="com.xujie.modbus.entity.ResourceScheduled">
select top 1 * from resource_scheduled where site = #{site} and resource_id = #{resourceId} and seq_no=#{seqNo}
</select>
</mapper>
Loading…
Cancel
Save