柳州烟草问题修改

merge-requests/6/head
yiming 4 years ago
parent 5c9194b9a3
commit dc14848a5c

@ -116,7 +116,7 @@ public class StockController {
@RequestMapping(value = "/checkInfo", method = RequestMethod.POST) @RequestMapping(value = "/checkInfo", method = RequestMethod.POST)
public Result<Stock> checkInfo(@RequestBody StockCheckSearch stockCheck) { public Result<Stock> checkInfo(@RequestBody StockCheckSearch stockCheck) {
validatorUtil.validate(stockCheck); validatorUtil.validate(stockCheck);
Stock stock = new Stock(); Stock stock = stockService.stock(stockCheck);
return Result.success(stock); return Result.success(stock);
} }

@ -28,6 +28,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
* *
*/ */
public boolean ptzControlUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("up start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
@ -35,6 +36,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
} }
public boolean ptzControlUpEnd(Integer cameraId, int nChannelID) { public boolean ptzControlUpEnd(Integer cameraId, int nChannelID) {
log.info("up end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_UP_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
@ -44,12 +46,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
* *
*/ */
public boolean ptzControlDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("down start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public boolean ptzControlDownEnd(Integer cameraId, int nChannelID) { public boolean ptzControlDownEnd(Integer cameraId, int nChannelID) {
log.info("down end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_DOWN_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
@ -59,12 +63,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
* *
*/ */
public boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlLeftStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("left start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public boolean ptzControlLeftEnd(Integer cameraId, int nChannelID) { public boolean ptzControlLeftEnd(Integer cameraId, int nChannelID) {
log.info("left end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_LEFT_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
@ -74,12 +80,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
* *
*/ */
public boolean ptzControlRightStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlRightStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("right start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public boolean ptzControlRightEnd(Integer cameraId, int nChannelID) { public boolean ptzControlRightEnd(Integer cameraId, int nChannelID) {
log.info("right end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL, NetSDKLib.NET_PTZ_ControlType.NET_PTZ_RIGHT_CONTROL,
0, 0, 0, 1); 0, 0, 0, 1);
@ -89,12 +97,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
* *
*/ */
public boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlLeftUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("up left start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID) { public boolean ptzControlLeftUpEnd(Integer cameraId, int nChannelID) {
log.info("up left end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTTOP,
0, 0, 0, 1); 0, 0, 0, 1);
@ -104,12 +114,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
* *
*/ */
public boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlRightUpStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info("up right start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID) { public boolean ptzControlRightUpEnd(Integer cameraId, int nChannelID) {
log.info("up right end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTTOP,
0, 0, 0, 1); 0, 0, 0, 1);
@ -119,6 +131,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
* *
*/ */
public boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlLeftDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info(" left down start");
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
@ -129,6 +142,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
} }
public boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) { public boolean ptzControlLeftDownEnd(Integer cameraId, int nChannelID) {
log.info(" left down end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_LEFTDOWN,
0, 0, 0, 1); 0, 0, 0, 1);
@ -138,12 +152,14 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
* *
*/ */
public boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) { public boolean ptzControlRightDownStart(Integer cameraId, int nChannelID, int lParam1, int lParam2) {
log.info(" right down start");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
lParam1, lParam2, 0, 0); lParam1, lParam2, 0, 0);
} }
public boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID) { public boolean ptzControlRightDownEnd(Integer cameraId, int nChannelID) {
log.info(" right down end");
return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID, return JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx(CameraConnMap.getConnId(cameraId), nChannelID,
NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN, NetSDKLib.NET_EXTPTZ_ControlType.NET_EXTPTZ_RIGHTDOWN,
0, 0, 0, 1); 0, 0, 0, 1);
@ -306,6 +322,7 @@ public class JoywareCameraControlModuleImpl implements CameraControlModule {
* @param cameraId * @param cameraId
*/ */
public void toPtz(Integer ptzId, Integer cameraId) { public void toPtz(Integer ptzId, Integer cameraId) {
log.info("to ptz,ptzId:{},cameraId:{}",ptzId,cameraId);
int dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_MOVE_CONTROL; int dwPTZCommand = NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_MOVE_CONTROL;
Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand, 0, ptzId, 0, 0, null); Boolean ok = JoywareLoginModuleImpl.netsdk.CLIENT_DHPTZControlEx2(CameraConnMap.getConnId(cameraId), 0, dwPTZCommand, 0, ptzId, 0, 0, null);
if (!ok) { if (!ok) {

@ -7,7 +7,7 @@ import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@Data @Data
public class StockCheckSearch { public class StockCheckSearch {
@NotEmpty(message = "巷道标识符不能为空") @NotEmpty(message = "巷道标识符不能为空")
@ApiModelProperty("巷道标识符") @ApiModelProperty("巷道标识符")

@ -26,6 +26,9 @@ import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@Component @Component
@EnableScheduling @EnableScheduling
@ -44,12 +47,19 @@ public class CronTab {
//10分钟 //10分钟
private static BigInteger timeDIff = BigInteger.valueOf(10*60*1000); private static BigInteger timeDIff = BigInteger.valueOf(10*60*1000);
private static int gByte = 1024* 1024 * 1024;
@Scheduled(cron = "0 0 0 * * ?") @Scheduled(cron = "0 0 0 * * ?")
//@Scheduled(cron = "0 0/1 * * * *") //@Scheduled(cron = "0 0/1 * * * *")
public void file() { public void file() {
log.info(" corn delete file"); log.info(" corn delete file");
now = LocalDateTime.now(); now = LocalDateTime.now();
File dir = new File(configProperties.getSavePath().getMediaPath()); File dir = new File(configProperties.getSavePath().getMediaPath());
long space = dir.getFreeSpace() / gByte;
log.info(" free space :{}",space);
if(space > 150){
return;
}
checkFileTime(dir,configProperties.getDeleteFileDays()); checkFileTime(dir,configProperties.getDeleteFileDays());
File dir2 = new File(configProperties.getSavePath().getMp4Path()); File dir2 = new File(configProperties.getSavePath().getMp4Path());
checkFileTime(dir2,configProperties.getDeleteFileDays()); checkFileTime(dir2,configProperties.getDeleteFileDays());

@ -15,6 +15,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/** /**
* TCP JSON * TCP JSON
@ -30,6 +33,8 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
private static String lastLotnum; private static String lastLotnum;
private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(7,21,30, TimeUnit.MILLISECONDS,new ArrayBlockingQueue<>(20000));
private PlcService plcService; private PlcService plcService;
public KsecDecoder(int maxFrameLength, ByteBuf delimiter, PlcService plcService) { public KsecDecoder(int maxFrameLength, ByteBuf delimiter, PlcService plcService) {
@ -44,86 +49,120 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
log.debug("no data"); log.debug("no data");
return null; return null;
} }
String body = in.toString(Charset.forName("UTF-8")); KescRunnable kescRunnable = new KescRunnable(in,ctx,plcService);
if (body.startsWith("<")){ threadPoolExecutor.execute(kescRunnable);
// 去掉首尾标识符 return null;
body = body.substring(1, body.length()); }
KsecInfo ksecInfo = JSONObject.parseObject(body, KsecInfo.class);
if (Cmd.A.name().equals(ksecInfo.getType())) {
in.release();
return null;
}
KsecDataInfo dataInfo = ksecInfo.getData();
String lotnum = dataInfo.getLotnum();
PlcCmdInfo plcCmdInfo = null;
String srmNumber = null;
String cmdName = null;
if(dataInfo != null){
//左右换过来
if(dataInfo.getFromDirection() == 1){
dataInfo.setFromDirection(2);
}else {
dataInfo.setFromDirection(1);
}
if(dataInfo.getToDirection() != null && dataInfo.getToDirection() == 1){
dataInfo.setToDirection(2);
}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);
srmNumber = dataInfo.getSRMNumber(); public static class KescRunnable implements Runnable{
cmdName = dataInfo.getCmdName();
} private ByteBuf in;
if (Cmd.A.name().equals(ksecInfo.getType())) {
//心跳
log.debug("receieve heart ");
} else if (Cmd.B.name().equals(ksecInfo.getType())) {
tcpLogger.info("info:{}",body);
//任务
if (Cmd.B1.name().equals(cmdName)) {
//昆船盘点模式下也会发B1 ,但是不会发送B2
//这里判断下,是否存在盘点批次号 若存在既是盘点的B1,无需处理若不存在lotnum则是随行的B1
if(StringUtils.isEmpty(dataInfo.getLotnum())){
//任务开始 旋转到原点位
plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name());
plcService.orderStart(plcCmdInfo);
}else {
log.info("check move");
}
} else if (Cmd.B2.name().equals(cmdName)) { private ChannelHandlerContext ctx;
//B2 C4 一起发的需要停止等B2
//这里判断是不是双伸 private PlcService plcService;
if(plcCmdInfo.getSeparation2() == 2){
//深测货架延迟 public KescRunnable(ByteBuf body,ChannelHandlerContext ctx,PlcService plcService){
Thread.sleep(plcService.getConfigProperties().getCameraConfig().getB2OutDelayTime()); this.in = body;
this.ctx = ctx;
this.plcService = plcService;
}
@Override
public void run() {
String body = in.toString(Charset.forName("UTF-8"));
tcpLogger.info(body);
if (body.startsWith("<")){
// 去掉首尾标识符
body = body.substring(1, body.length());
KsecInfo ksecInfo = JSONObject.parseObject(body, KsecInfo.class);
if (Cmd.A.name().equals(ksecInfo.getType())) {
in.release();
return ;
}
KsecDataInfo dataInfo = ksecInfo.getData();
String lotnum = dataInfo.getLotnum();
PlcCmdInfo plcCmdInfo = null;
String srmNumber = null;
String cmdName = null;
if(dataInfo != null){
//左右换过来
if(dataInfo.getFromDirection() == 1){
dataInfo.setFromDirection(2);
}else { }else {
//浅侧延迟 dataInfo.setFromDirection(1);
Thread.sleep(plcService.getConfigProperties().getCameraConfig().getB2DelayTime());
} }
plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name()); if(dataInfo.getToDirection() != null && dataInfo.getToDirection() == 1){
plcService.orderStop(plcCmdInfo); dataInfo.setToDirection(2);
} }else {
} else if (Cmd.C.name().equals(ksecInfo.getType())) { dataInfo.setToDirection(1);
tcpLogger.info("info:{}",body); }
//动作 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);
String code = dataInfo.getCmdName();
log.info("action code,{},orderInfo:{}", code, plcCmdInfo.toString()); srmNumber = dataInfo.getSRMNumber();
if (Cmd.isBaseAction(code)) { cmdName = dataInfo.getCmdName();
//执行动作,需要保存执行到第几步了
Integer times = GoodsActionTimes.put(plcCmdInfo.getOrderNum());
plcCmdInfo.setTimes(times);
code = code + "-" + plcCmdInfo.getLeftRightStr(times) + plcCmdInfo.getInOutStr(times);
//执行动作
plcService.action(plcCmdInfo, times, code);
}else {
log.info("other C code :{}",code);
} }
} else if (Cmd.D.name().equals(ksecInfo.getType())) { if (Cmd.A.name().equals(ksecInfo.getType())) {
tcpLogger.info("info:{}",body); //心跳
//柳州去掉告警 log.debug("receieve heart ");
} else if (Cmd.B.name().equals(ksecInfo.getType())) {
//任务
if (Cmd.B1.name().equals(cmdName)) {
//昆船盘点模式下也会发B1 ,但是不会发送B2
//这里判断下,是否存在盘点批次号 若存在既是盘点的B1,无需处理若不存在lotnum则是随行的B1
if(StringUtils.isEmpty(dataInfo.getLotnum())){
//任务开始 旋转到原点位
plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name());
plcService.orderStart(plcCmdInfo);
}else {
log.info("check move");
}
} else if (Cmd.B2.name().equals(cmdName)) {
//B2 C4 一起发的需要停止等B2
//这里判断是不是双伸
if(plcCmdInfo.getSeparation2() == 2){
//深测货架延迟
try {
Thread.sleep(plcService.getConfigProperties().getCameraConfig().getB2OutDelayTime());
} catch (InterruptedException e) {
e.printStackTrace();
}
}else {
//浅侧延迟
try {
Thread.sleep(plcService.getConfigProperties().getCameraConfig().getB2DelayTime());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
plcService.gyrateCamera(plcCmdInfo,Cmd.C5.name());
plcService.orderStop(plcCmdInfo);
}
} else if (Cmd.C.name().equals(ksecInfo.getType())) {
//动作
String code = dataInfo.getCmdName();
log.info("action code,{},orderInfo:{}", code, plcCmdInfo.toString());
if (Cmd.isBaseAction(code)) {
//执行动作,需要保存执行到第几步了
Integer times = GoodsActionTimes.put(plcCmdInfo.getOrderNum());
plcCmdInfo.setTimes(times);
code = code + "-" + plcCmdInfo.getLeftRightStr(times) + plcCmdInfo.getInOutStr(times);
//执行动作
try {
plcService.action(plcCmdInfo, times, code);
} catch (InterruptedException e) {
e.printStackTrace();
}
}else {
log.info("other C code :{}",code);
}
} else if (Cmd.D.name().equals(ksecInfo.getType())) {
//柳州去掉告警
// String code = dataInfo.getCmdName(); // String code = dataInfo.getCmdName();
// if(code.equals(Cmd.D1.name())){ // if(code.equals(Cmd.D1.name())){
// log.info("plcId:{},warn start",plcCmdInfo.getPlcId()); // log.info("plcId:{},warn start",plcCmdInfo.getPlcId());
@ -140,44 +179,31 @@ public class KsecDecoder extends DelimiterBasedFrameDecoder {
// }else { // }else {
// log.info("other D code :{}",code); // log.info("other D code :{}",code);
// } // }
} else if (Cmd.E.name().equals(ksecInfo.getType())) { } else if (Cmd.E.name().equals(ksecInfo.getType())) {
tcpLogger.info("info:{}",body);
//盘点 //盘点
//转球机到盘点位 然后拍照 //转球机到盘点位 然后拍照
if(!StringUtils.isEmpty(lotnum) && !lotnum.equals(lastLotnum)){ if(!StringUtils.isEmpty(lotnum) && !lotnum.equals(lastLotnum)){
//需要把stock表truncate //需要把stock表truncate
FileUtil.save(lotnum,"lastLotnum"); FileUtil.save(lotnum,"lastLotnum");
tcpLogger.info("truncate table ,last lotnum:{},new lotnum:{}",lastLotnum,lotnum); tcpLogger.info("truncate table ,last lotnum:{},new lotnum:{}",lastLotnum,lotnum);
plcService.truncateStock(); plcService.truncateStock();
lastLotnum = lotnum; lastLotnum = lotnum;
} }
plcCmdInfo.setTimes(1); plcCmdInfo.setTimes(1);
Boolean ok = plcService.check(plcCmdInfo,ksecInfo.getData().getCmdName(), dataInfo.getCode(), dataInfo.getTrayCode()); Boolean ok = plcService.check(plcCmdInfo,ksecInfo.getData().getCmdName(), dataInfo.getCode(), dataInfo.getTrayCode());
if(ok){ if(ok){
ksecInfo.getData().setAckStatus(1); ksecInfo.getData().setAckStatus(1);
}else { }else {
ksecInfo.getData().setAckStatus(0); ksecInfo.getData().setAckStatus(0);
}
ctx.channel().writeAndFlush(ksecInfo);
} }
ctx.channel().writeAndFlush(ksecInfo);
}
//找到该货位的最后一张照片与现在的照片比照 //找到该货位的最后一张照片与现在的照片比照
//plcService.recordStock(plcCmdInfo, dataInfo.getCode(), 0, 0); //plcService.recordStock(plcCmdInfo, dataInfo.getCode(), 0, 0);
} }
in.release(); in.release();
return null;
}
public class StopThread extends Thread {
private PlcCmdInfo plcCmdInfo;
public StopThread(PlcCmdInfo plcCmdInfo){
this.plcCmdInfo = plcCmdInfo;
}
@Override
public void run() {
plcService.orderStop(plcCmdInfo);
} }
} }
} }

@ -32,7 +32,7 @@ public class SickSocket {
writeCmd(os); writeCmd(os);
is = socket.getInputStream(); is = socket.getInputStream();
code = read(is); code = read(is);
tcpLogger.info(code); tcpLogger.info("ip:{},code:{}",ip,code);
if(code!= null){ if(code!= null){
code = code.replace("\\n",""); code = code.replace("\\n","");
} }

@ -14,7 +14,7 @@ spring:
testWhileIdle: false testWhileIdle: false
timeBetweenEvictionRunsMillis: 60000 timeBetweenEvictionRunsMillis: 60000
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://172.16.0.70:3306/lia_duoji?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 url: jdbc:mysql://172.16.0.64:3306/lia_duoji?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: root username: root
validationQuery: SELECT 1 FROM DUAL validationQuery: SELECT 1 FROM DUAL
# --------本服务端口号 # --------本服务端口号

Loading…
Cancel
Save