|
|
|
@ -97,7 +97,6 @@ public class PlcService {
|
|
|
|
|
|
|
|
|
|
|
|
ExecutorService executor = Executors.newFixedThreadPool(20);
|
|
|
|
ExecutorService executor = Executors.newFixedThreadPool(20);
|
|
|
|
|
|
|
|
|
|
|
|
public static Map<String, Set<String>> wmsTrayCodeMapByTask = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 8, 200, TimeUnit.MINUTES, new ArrayBlockingQueue<>(100000));
|
|
|
|
private static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 8, 200, TimeUnit.MINUTES, new ArrayBlockingQueue<>(100000));
|
|
|
|
|
|
|
|
|
|
|
|
@ -663,7 +662,7 @@ public class PlcService {
|
|
|
|
log.error("相机{}未连接无法拍照", cameraId);
|
|
|
|
log.error("相机{}未连接无法拍照", cameraId);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//托盘码
|
|
|
|
//托盘码
|
|
|
|
String trayCode = null;
|
|
|
|
String trayCode = "";
|
|
|
|
Boolean trayCheck = Boolean.FALSE;
|
|
|
|
Boolean trayCheck = Boolean.FALSE;
|
|
|
|
//如果是用扫码枪 扫 托盘码,就直接扫
|
|
|
|
//如果是用扫码枪 扫 托盘码,就直接扫
|
|
|
|
//if(configProperties.getScanCodeMode().getTray() == 2){
|
|
|
|
//if(configProperties.getScanCodeMode().getTray() == 2){
|
|
|
|
@ -736,27 +735,26 @@ public class PlcService {
|
|
|
|
log.info("盘点rfid扫描结果:" + tags);
|
|
|
|
log.info("盘点rfid扫描结果:" + tags);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (tags != null && tags.size() > 0) {
|
|
|
|
if (tags != null && tags.size() > 0) {
|
|
|
|
|
|
|
|
//镇海深巷道,进行假盘点
|
|
|
|
if (wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum()) != null
|
|
|
|
// if ( tags.contains(wmsTrayCode)) {
|
|
|
|
&& tags.containsAll(wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum()))) {
|
|
|
|
// log.info("扫描成功");
|
|
|
|
log.info("扫描成功");
|
|
|
|
//
|
|
|
|
|
|
|
|
// } else {
|
|
|
|
} else {
|
|
|
|
// if (wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum()) != null) {
|
|
|
|
if (wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum()) != null) {
|
|
|
|
// wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum()).removeAll(tags);
|
|
|
|
wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum()).removeAll(tags);
|
|
|
|
//
|
|
|
|
|
|
|
|
// log.info("未扫到数据为:{}", wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum()));
|
|
|
|
log.info("未扫到数据为:{}", wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum()));
|
|
|
|
// for (String str : wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum())) {
|
|
|
|
for (String str : wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum())) {
|
|
|
|
// if (str.length() == 14) {
|
|
|
|
if (str.length() == 14) {
|
|
|
|
// code = "RFID扫描失败";
|
|
|
|
code = "RFID扫描失败";
|
|
|
|
// log.info("未扫描到箱体" + str);
|
|
|
|
log.info("未扫描到箱体" + str);
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// if (wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum()).size() > configProperties.getRfid().getGraceNumber()) {
|
|
|
|
if (wmsTrayCodeMapByTask.get(plcCmdInfo.getOrderNum()).size() > configProperties.getRfid().getGraceNumber()) {
|
|
|
|
// code = "RFID扫描失败";
|
|
|
|
code = "RFID扫描失败";
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
|
|
|
|
RFID rfid = rfidMapper.selectOne(new QueryWrapper<RFID>().eq("street_id", street.getId()));
|
|
|
|
RFID rfid = rfidMapper.selectOne(new QueryWrapper<RFID>().eq("street_id", street.getId()));
|
|
|
|
if (!rfidLiveService.getRfidLive(plcCmdInfo, street, wmsTrayCode)) {
|
|
|
|
if (!rfidLiveService.getRfidLive(plcCmdInfo, street, wmsTrayCode)) {
|
|
|
|
rfidLiveService.rfidRemoveLive(plcCmdInfo, street, rfid);
|
|
|
|
rfidLiveService.rfidRemoveLive(plcCmdInfo, street, rfid);
|
|
|
|
@ -771,24 +769,25 @@ public class PlcService {
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
String sickCode = sickFuture.get(); // get()会阻塞直到结果可用
|
|
|
|
//String sickCode = sickFuture.get(); // get()会阻塞直到结果可用
|
|
|
|
String rfid = rfidFuture.get(); // get()会阻塞直到结果可用
|
|
|
|
String rfid = rfidFuture.get(); // get()会阻塞直到结果可用
|
|
|
|
log.info("sickCode:{}", sickCode);
|
|
|
|
//log.info("sickCode:{}", sickCode);
|
|
|
|
log.info("rfid:{}", rfid);
|
|
|
|
log.info("rfid:{}", rfid);
|
|
|
|
|
|
|
|
|
|
|
|
trayCode = sickCode;
|
|
|
|
//trayCode = sickCode;
|
|
|
|
if (sickCode != null && !"".equals(sickCode)) {
|
|
|
|
// if (sickCode != null && !"".equals(sickCode)) {
|
|
|
|
trayCode = trayCode + ";";
|
|
|
|
// trayCode = trayCode + ";";
|
|
|
|
} else {
|
|
|
|
// } else {
|
|
|
|
trayCheck = Boolean.TRUE;
|
|
|
|
// trayCheck = Boolean.TRUE;
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
if (rfid == null || "".equals(rfid)) {
|
|
|
|
if (rfid == null || "".equals(rfid)) {
|
|
|
|
trayRFIDCheck = Boolean.TRUE;
|
|
|
|
trayRFIDCheck = Boolean.TRUE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
trayCode += rfid;
|
|
|
|
//trayCode += rfid;
|
|
|
|
if ("".equals(trayCode)) {
|
|
|
|
if ("".equals(trayCode)) {
|
|
|
|
trayCode = "盘点正确";
|
|
|
|
trayCode = "盘点正确";
|
|
|
|
|
|
|
|
trayCode = wmsTrayCode;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (InterruptedException | ExecutionException e) {
|
|
|
|
} catch (InterruptedException | ExecutionException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
e.printStackTrace();
|
|
|
|
@ -803,7 +802,7 @@ public class PlcService {
|
|
|
|
//核对异常
|
|
|
|
//核对异常
|
|
|
|
Integer status = 1;
|
|
|
|
Integer status = 1;
|
|
|
|
//托盘和货物都正确
|
|
|
|
//托盘和货物都正确
|
|
|
|
if (trayCheck && trayRFIDCheck) {
|
|
|
|
if ( trayRFIDCheck) {
|
|
|
|
status = 2;
|
|
|
|
status = 2;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (stock == null) {
|
|
|
|
if (stock == null) {
|
|
|
|
|