|
|
|
|
@ -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<String, LocalDate> 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())) {
|
|
|
|
|
|
|
|
|
|
|