Commit 2f87e280 zshaohui

核验绑定信息 提交

1 个父辈 595b0e44
...@@ -256,6 +256,7 @@ public class DataInitManager { ...@@ -256,6 +256,7 @@ public class DataInitManager {
addNewFunctionMenu(11, wip, "manualTransfer", "手动储位转移", "manualTransfer", "manualTransfer/index", "manualTransfer", functionMenuMap); addNewFunctionMenu(11, wip, "manualTransfer", "手动储位转移", "manualTransfer", "manualTransfer/index", "manualTransfer", functionMenuMap);
addNewFunctionMenu(12, wip, "pickBox", "出货计算", "pickBox", "SemiFinishProducts/pickBox/index", "", functionMenuMap); addNewFunctionMenu(12, wip, "pickBox", "出货计算", "pickBox", "SemiFinishProducts/pickBox/index", "", functionMenuMap);
addNewFunctionMenu(13, wip, "checkCarton", "核验绑定信息", "checkCarton", "checkCarton/index", "checkCarton", functionMenuMap);
//MSD管理:MSD库存.MSD追溯性.MSD设置 //MSD管理:MSD库存.MSD追溯性.MSD设置
......
...@@ -240,6 +240,13 @@ public class Barcode extends BasePo implements Serializable { ...@@ -240,6 +240,13 @@ public class Barcode extends BasePo implements Serializable {
//设备端上传的cartonId //设备端上传的cartonId
private String scanCartonId; private String scanCartonId;
private boolean manicheScanCartonId = true;
private Date bindScanCartonIdDate;
//上传的cartonId,绑定时间
private Date verificationCartonIdDate;
// 栈板号 // 栈板号
private String palletId; private String palletId;
......
...@@ -41,7 +41,7 @@ public class BaseEquipHandler implements IEquipmentHandler { ...@@ -41,7 +41,7 @@ public class BaseEquipHandler implements IEquipmentHandler {
} }
//记录提示信息 //记录提示信息
if (statusBean.getMsgList() != null) { if (statusBean.getMsgList() != null) {
for (EquipMsg msg : /*for (EquipMsg msg :
statusBean.getMsgList()) { statusBean.getMsgList()) {
//判断是否有内容 //判断是否有内容
//判断消息是否有内容 //判断消息是否有内容
...@@ -61,7 +61,7 @@ public class BaseEquipHandler implements IEquipmentHandler { ...@@ -61,7 +61,7 @@ public class BaseEquipHandler implements IEquipmentHandler {
DeviceMessageUtil.addDeviceMessage(statusBean.getCid(), msg.getType(), msg.getModule(), msg.getMsgCode(), msg.getMsg(), msg.getMsgParams(),""); DeviceMessageUtil.addDeviceMessage(statusBean.getCid(), msg.getType(), msg.getModule(), msg.getMsgCode(), msg.getMsg(), msg.getMsgParams(),"");
} }
} }
} }*/
} }
EquipStatusUtil.updateStatusBean(statusBean); EquipStatusUtil.updateStatusBean(statusBean);
......
...@@ -106,6 +106,10 @@ public class LineController { ...@@ -106,6 +106,10 @@ public class LineController {
//如果是人工作业 直接返回ok //如果是人工作业 直接返回ok
if (ManualWorkUtil.bindManualWork(barcode.getBarcode()) || ManualWorkUtil.bindShipCancelUpShelf(barcode.getBarcode())) { if (ManualWorkUtil.bindManualWork(barcode.getBarcode()) || ManualWorkUtil.bindShipCancelUpShelf(barcode.getBarcode())) {
log.info(barcode.getBarcode()+"绑定人工作业或者砍单回库作业,不进行校验"); log.info(barcode.getBarcode()+"绑定人工作业或者砍单回库作业,不进行校验");
String cartonId = barcode.getCartonId();
if (StringUtils.isEmpty(cartonId)){
return ResultBean.newErrorResult(-1,"",boxId+"重新绑定过栈板信息,请在人工作业页面,移除信息后,重新检验,才能入库");
}
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
} }
...@@ -114,6 +118,32 @@ public class LineController { ...@@ -114,6 +118,32 @@ public class LineController {
return ResultBean.newErrorResult(-1, "smfcore.error.barcode.noBind", "条码未绑定CartonId"); return ResultBean.newErrorResult(-1, "smfcore.error.barcode.noBind", "条码未绑定CartonId");
} }
Date bindScanCartonIdDate = barcode.getBindScanCartonIdDate();
if (bindScanCartonIdDate == null){
return ResultBean.newErrorResult(-1,"","箱号:"+barcode.getBarcode()+",栈板号:"+scanCartonId+"请先绑定后,再进行入库");
}
Date verificationCartonIdDate = barcode.getVerificationCartonIdDate();
if (barcode.isManicheScanCartonId()) {
if (System.currentTimeMillis() - bindScanCartonIdDate.getTime() >= 1000 * 60 * 5) {
if (verificationCartonIdDate == null){
return ResultBean.newErrorResult(-1, "", "箱号:" + barcode.getBarcode() + ",栈板号:" + scanCartonId + "绑定超过5分钟,请核验后再进行入库");
} else if (System.currentTimeMillis() - verificationCartonIdDate.getTime() >= 1000 * 60){
return ResultBean.newErrorResult(-1, "", "箱号:" + barcode.getBarcode() + ",栈板号:" + scanCartonId + "核验超过5分钟,请重新核验后再进行入库");
}
}
} else {
if (System.currentTimeMillis() - bindScanCartonIdDate.getTime() >= 1000 * 60 * 2) {
if (verificationCartonIdDate == null){
return ResultBean.newErrorResult(-1, "", "箱号:" + barcode.getBarcode() + ",栈板号:" + scanCartonId + "绑定超过2分钟,请核验后再进行入库");
} else if (System.currentTimeMillis() - verificationCartonIdDate.getTime() >= 1000 * 60){
return ResultBean.newErrorResult(-1, "", "箱号:" + barcode.getBarcode() + ",栈板号:" + scanCartonId + "核验超过5分钟,请重新核验后再进行入库");
}
}
}
try { try {
ValidCartonResult result = LuxsanApi.validCarton(new ValidCartonRequest("", scanCartonId, CommonUtil.plantCode)); ValidCartonResult result = LuxsanApi.validCarton(new ValidCartonRequest("", scanCartonId, CommonUtil.plantCode));
...@@ -165,6 +195,10 @@ public class LineController { ...@@ -165,6 +195,10 @@ public class LineController {
//如果是人工作业的,直接入库 //如果是人工作业的,直接入库
if (ManualWorkUtil.bindManualWork(barcode.getBarcode()) || ManualWorkUtil.bindShipCancelUpShelf(barcode.getBarcode())){ if (ManualWorkUtil.bindManualWork(barcode.getBarcode()) || ManualWorkUtil.bindShipCancelUpShelf(barcode.getBarcode())){
log.info(barcode.getBarcode()+"绑定人工作业或者砍单回库作业,不进行校验"); log.info(barcode.getBarcode()+"绑定人工作业或者砍单回库作业,不进行校验");
String cartonId = barcode.getCartonId();
if (StringUtils.isEmpty(cartonId)){
return ResultBean.newErrorResult(-1,"",boxId+"重新绑定过栈板信息,请在人工作业页面,移除信息后,重新检验,才能入库");
}
} else { } else {
//2.请求接口判断是否过账 //2.请求接口判断是否过账
try { try {
...@@ -251,6 +285,8 @@ public class LineController { ...@@ -251,6 +285,8 @@ public class LineController {
//清理扫描的cartonId //清理扫描的cartonId
barcode.setScanCartonId(""); barcode.setScanCartonId("");
barcode.setBindScanCartonIdDate(null);
barcode.setVerificationCartonIdDate(null);
barcode.setOdn(""); barcode.setOdn("");
//4.生成入库任务 //4.生成入库任务
...@@ -317,7 +353,7 @@ public class LineController { ...@@ -317,7 +353,7 @@ public class LineController {
List<DataLog> dataLogList = taskService.getAllTasks(); List<DataLog> dataLogList = taskService.getAllTasks();
for (DataLog task : dataLogList) { for (DataLog task : dataLogList) {
if (task.isCheckOutTask() && !task.isFinished() && !task.isCancel() && !task.isPause() && !OP_STATUS.OUT_ON_LINE.name().equals(task.getStatus())){ if (task.isCheckOutTask() && !task.isFinished() && !task.isCancel() && !task.isPause() /*&&!OP_STATUS.OUT_ON_LINE.name().equals(task.getStatus())*/){
if (StringUtils.isEmpty(soureId)){ if (StringUtils.isEmpty(soureId)){
if (StringUtils.isEmpty(task.getSourceId())){ if (StringUtils.isEmpty(task.getSourceId())){
num = num + 1; num = num + 1;
...@@ -387,6 +423,8 @@ public class LineController { ...@@ -387,6 +423,8 @@ public class LineController {
} }
barcode.setScanCartonId(cartonId); barcode.setScanCartonId(cartonId);
barcode.setManicheScanCartonId(true);
barcode.setBindScanCartonIdDate(new Date());
barcode.setCartonId(""); barcode.setCartonId("");
barcode.setPalletId(""); barcode.setPalletId("");
barcode.setOdn(""); barcode.setOdn("");
...@@ -438,6 +476,8 @@ public class LineController { ...@@ -438,6 +476,8 @@ public class LineController {
} }
barcode.setScanCartonId(cartonId); barcode.setScanCartonId(cartonId);
barcode.setManicheScanCartonId(false);
barcode.setBindScanCartonIdDate(new Date());
barcode.setCartonId(""); barcode.setCartonId("");
barcode.setPalletId(""); barcode.setPalletId("");
barcode.setOdn(""); barcode.setOdn("");
......
...@@ -100,6 +100,10 @@ public class MLineController { ...@@ -100,6 +100,10 @@ public class MLineController {
//如果是人工作业 直接返回ok //如果是人工作业 直接返回ok
if (ManualWorkUtil.bindManualWork(barcode.getBarcode()) || ManualWorkUtil.bindShipCancelUpShelf(barcode.getBarcode())) { if (ManualWorkUtil.bindManualWork(barcode.getBarcode()) || ManualWorkUtil.bindShipCancelUpShelf(barcode.getBarcode())) {
log.info(barcode.getBarcode()+"绑定人工作业或者砍单回库作业,不进行校验"); log.info(barcode.getBarcode()+"绑定人工作业或者砍单回库作业,不进行校验");
String cartonId = barcode.getCartonId();
if (StringUtils.isEmpty(cartonId)){
return ResultBean.newErrorResult(-1,"",boxId+"重新绑定过栈板信息,请在人工作业页面,移除信息后,重新检验,才能入库");
}
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
} }
...@@ -108,6 +112,30 @@ public class MLineController { ...@@ -108,6 +112,30 @@ public class MLineController {
return ResultBean.newErrorResult(-1, "smfcore.error.barcode.noBind", "条码未绑定CartonId"); return ResultBean.newErrorResult(-1, "smfcore.error.barcode.noBind", "条码未绑定CartonId");
} }
Date bindScanCartonIdDate = barcode.getBindScanCartonIdDate();
if (bindScanCartonIdDate == null){
return ResultBean.newErrorResult(-1,"","箱号:"+barcode.getBarcode()+",栈板号:"+scanCartonId+"请先绑定后,再进行入库");
}
Date verificationCartonIdDate = barcode.getVerificationCartonIdDate();
if (barcode.isManicheScanCartonId()) {
if (System.currentTimeMillis() - bindScanCartonIdDate.getTime() >= 1000 * 60 * 5) {
if (verificationCartonIdDate == null){
return ResultBean.newErrorResult(-1, "", "箱号:" + barcode.getBarcode() + ",栈板号:" + scanCartonId + "绑定超过5分钟,请核验后再进行入库");
} else if (System.currentTimeMillis() - verificationCartonIdDate.getTime() >= 1000 * 60){
return ResultBean.newErrorResult(-1, "", "箱号:" + barcode.getBarcode() + ",栈板号:" + scanCartonId + "核验超过5分钟,请重新核验后再进行入库");
}
}
} else {
if (System.currentTimeMillis() - bindScanCartonIdDate.getTime() >= 1000 * 60 * 2) {
if (verificationCartonIdDate == null){
return ResultBean.newErrorResult(-1, "", "箱号:" + barcode.getBarcode() + ",栈板号:" + scanCartonId + "绑定超过2分钟,请核验后再进行入库");
} else if (System.currentTimeMillis() - verificationCartonIdDate.getTime() >= 1000 * 60){
return ResultBean.newErrorResult(-1, "", "箱号:" + barcode.getBarcode() + ",栈板号:" + scanCartonId + "核验超过5分钟,请重新核验后再进行入库");
}
}
}
try { try {
ValidCartonResult result = LuxsanApi.validCarton(new ValidCartonRequest("", scanCartonId, CommonUtil.plantCode)); ValidCartonResult result = LuxsanApi.validCarton(new ValidCartonRequest("", scanCartonId, CommonUtil.plantCode));
...@@ -159,6 +187,10 @@ public class MLineController { ...@@ -159,6 +187,10 @@ public class MLineController {
//如果是人工作业的,直接入库 //如果是人工作业的,直接入库
if (ManualWorkUtil.bindManualWork(barcode.getBarcode()) || ManualWorkUtil.bindShipCancelUpShelf(barcode.getBarcode())){ if (ManualWorkUtil.bindManualWork(barcode.getBarcode()) || ManualWorkUtil.bindShipCancelUpShelf(barcode.getBarcode())){
log.info(barcode.getBarcode()+"绑定人工作业或者砍单回库作业,不进行校验"); log.info(barcode.getBarcode()+"绑定人工作业或者砍单回库作业,不进行校验");
String cartonId = barcode.getCartonId();
if (StringUtils.isEmpty(cartonId)){
return ResultBean.newErrorResult(-1,"",boxId+"重新绑定过栈板信息,请在人工作业页面,移除信息后,重新检验,才能入库");
}
} else { } else {
//2.请求接口判断是否过账 //2.请求接口判断是否过账
try { try {
...@@ -246,6 +278,8 @@ public class MLineController { ...@@ -246,6 +278,8 @@ public class MLineController {
//清理扫描的cartonId //清理扫描的cartonId
barcode.setScanCartonId(""); barcode.setScanCartonId("");
barcode.setOdn(""); barcode.setOdn("");
barcode.setVerificationCartonIdDate(null);
barcode.setBindScanCartonIdDate(null);
//4.生成入库任务 //4.生成入库任务
String boxLoc = TaskLocUtil.MW_IN; String boxLoc = TaskLocUtil.MW_IN;
......
package com.neotel.smfcore.custom.luxsan.factory_c.wipstor.controller;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.Map;
@Slf4j
@RestController
@RequestMapping("/verificationBox")
public class VerificationBoxController {
@Autowired
private CodeResolve codeResolve;
@Autowired
private IBarcodeManager barcodeManager;
@ApiOperation("核验料箱栈板号")
@RequestMapping("/cartonId")
@AnonymousAccess
public ResultBean cartonId(@RequestBody Map<String, String> paramMap) {
String code = paramMap.get("code");
String cartonId = paramMap.get("cartonId");
log.info("核验料箱:" + code + "传入的栈板号为:" + cartonId);
if (StringUtils.isEmpty(cartonId) || StringUtils.isEmpty(code)) {
return ResultBean.newErrorResult(-1, "", "箱号和栈板号都不能为空");
}
Barcode barcode = null;
try {
barcode = codeResolve.resolveOneValideBarcode(code);
}catch (Exception e){
e.printStackTrace();
}
if (barcode == null){
return ResultBean.newErrorResult(-1,"",code+"不是有效的料箱号");
}
String scanCartonId = barcode.getScanCartonId();
log.info("料箱:"+code+",绑定的栈板号为:"+scanCartonId);
if (StringUtils.isEmpty(scanCartonId)){
return ResultBean.newErrorResult(-1,"",code+"没有绑定栈板号");
}
if (!scanCartonId.equals(cartonId)){
return ResultBean.newErrorResult(-1,"",code+"绑定的栈板号为:"+scanCartonId+"与传入的栈板号:"+cartonId+"不一致");
}
barcode.setVerificationCartonIdDate(new Date());
barcodeManager.save(barcode);
return ResultBean.newOkResult("");
}
}
...@@ -19,6 +19,6 @@ public class StorageNameConfig { ...@@ -19,6 +19,6 @@ public class StorageNameConfig {
} }
public static final String semiFinishedCtu5040 = "semi-finished-ctu-5040";//半成品第1台CTU public static final String semiFinishedCtu5040 = "semi-finished-ctu-5040";//半成品第1台CTU
public static final String semiFinishedCtu5041 = "semi-finished-ctu-5040";//半成品第1台CTU public static final String semiFinishedCtu5041 = "semi-finished-ctu-5041";//半成品第1台CTU
public static final String semiFinishedCtu5070 = "semi-finished-ctu-5040";//半成品第1台CTU public static final String semiFinishedCtu5070 = "semi-finished-ctu-5070";//半成品第1台CTU
} }
...@@ -173,7 +173,7 @@ public class KafkaService { ...@@ -173,7 +173,7 @@ public class KafkaService {
/** /**
* 抛送小车心跳 * 抛送小车心跳
*/ */
@Scheduled(fixedRate = 1000 * 5) //@Scheduled(fixedRate = 1000 * 5)
public void sendAgvHeart() { public void sendAgvHeart() {
List<String> agvMachineIdList = StorageNameConfig.getAgvMachineIdList(); List<String> agvMachineIdList = StorageNameConfig.getAgvMachineIdList();
for (String agvMachineId : agvMachineIdList) { for (String agvMachineId : agvMachineIdList) {
...@@ -200,7 +200,7 @@ public class KafkaService { ...@@ -200,7 +200,7 @@ public class KafkaService {
/** /**
* 抛送小车状态 * 抛送小车状态
*/ */
@Scheduled(fixedRate = 1000 * 10) //@Scheduled(fixedRate = 1000 * 10)
public void sendAgvStatus(){ public void sendAgvStatus(){
List<String> agvMachineIdList = StorageNameConfig.getAgvMachineIdList(); List<String> agvMachineIdList = StorageNameConfig.getAgvMachineIdList();
for (String agvMachineId : agvMachineIdList) { for (String agvMachineId : agvMachineIdList) {
...@@ -261,7 +261,7 @@ public class KafkaService { ...@@ -261,7 +261,7 @@ public class KafkaService {
} }
@Scheduled(fixedRate = 1000 * 10) //@Scheduled(fixedRate = 1000 * 10)
public void sendAgvMachineStatus() { public void sendAgvMachineStatus() {
List<String> agvMachineIdList = StorageNameConfig.getAgvMachineIdList(); List<String> agvMachineIdList = StorageNameConfig.getAgvMachineIdList();
for (String agvMachineId : agvMachineIdList) { for (String agvMachineId : agvMachineIdList) {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!