diff --git a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java index 5f0473d..05f851e 100644 --- a/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java +++ b/web/src/main/java/com/zhehekeji/web/service/ksec/KsecDecoder.java @@ -15,6 +15,9 @@ import org.slf4j.LoggerFactory; import org.springframework.util.StringUtils; import java.nio.charset.Charset; +import java.time.LocalDate; +import java.util.HashMap; +import java.util.Map; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -33,6 +36,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder { private static String lastLotnum; + private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(7,21,30, TimeUnit.MILLISECONDS,new ArrayBlockingQueue<>(20000)); private PlcService plcService; @@ -62,6 +66,12 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder { private PlcService plcService; + /** + * 用来记录 订单的时间,因为昆船的任务号没到30000就重新开始 + * 这里加上一个日期 + */ + private Map dateMap = new HashMap<>(); + public KescRunnable(ByteBuf body,ChannelHandlerContext ctx,PlcService plcService){ this.in = body; this.ctx = ctx; @@ -97,7 +107,14 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder { }else { dataInfo.setToDirection(1); } - plcCmdInfo = new PlcCmdInfo(dataInfo.getSRMNumber(), dataInfo.getTaskId(), dataInfo.getFromSide(), dataInfo.getFromDirection(), dataInfo.getFromColumn(), dataInfo.getFromRow(), dataInfo.getFromSeparation(),dataInfo.getToSide(), dataInfo.getToDirection(), dataInfo.getToColumn(), dataInfo.getToRow(),dataInfo.getToSeparation(),lotnum); + LocalDate now = LocalDate.now(); + if(dateMap.get(dataInfo.getTaskId()) == null){ + dateMap.put(dataInfo.getTaskId(),now); + }else { + now = dateMap.get(dataInfo.getTaskId()); + } + //dataInfo.setTaskId(dataInfo.getTaskId()+"-"+now.toString()); + plcCmdInfo = new PlcCmdInfo(dataInfo.getSRMNumber(), dataInfo.getTaskId()+"-"+now, dataInfo.getFromSide(), dataInfo.getFromDirection(), dataInfo.getFromColumn(), dataInfo.getFromRow(), dataInfo.getFromSeparation(),dataInfo.getToSide(), dataInfo.getToDirection(), dataInfo.getToColumn(), dataInfo.getToRow(),dataInfo.getToSeparation(),lotnum); srmNumber = dataInfo.getSRMNumber(); cmdName = dataInfo.getCmdName(); @@ -140,6 +157,7 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder { } plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name()); plcService.orderStop(plcCmdInfo); + dateMap.remove(dataInfo.getTaskId()); } } else if (Cmd.C.name().equals(ksecInfo.getType())) {