Commit 0ad6690d 孙克

半成品线体对接时先绑定料箱和cartonId

1 个父辈 5d1d73ac
...@@ -204,6 +204,8 @@ public class Barcode extends BasePo implements Serializable { ...@@ -204,6 +204,8 @@ public class Barcode extends BasePo implements Serializable {
// 箱号 // 箱号
private String cartonId; private String cartonId;
//设备端上传的cartonId
private String scanCartonId;
// 栈板号 // 栈板号
private String palletId; private String palletId;
......
...@@ -435,6 +435,7 @@ public class CDeviceController { ...@@ -435,6 +435,7 @@ public class CDeviceController {
boxBarcode.updateSubCodes(barcode); boxBarcode.updateSubCodes(barcode);
barcodeManager.save(boxBarcode); barcodeManager.save(boxBarcode);
//TODO: barcode是否也要保存?? 24002AT这盘料未人subBarcode中清除
barcode.setAmount(amount); barcode.setAmount(amount);
DataLog dataLog = new DataLog(new Storage(), barcode, new StoragePos()); DataLog dataLog = new DataLog(new Storage(), barcode, new StoragePos());
dataLog.setSubSourceId(orderItemId); dataLog.setSubSourceId(orderItemId);
......
...@@ -29,6 +29,7 @@ import com.neotel.smfcore.security.annotation.AnonymousAccess; ...@@ -29,6 +29,7 @@ import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
...@@ -59,9 +60,6 @@ public class LineController { ...@@ -59,9 +60,6 @@ public class LineController {
@Autowired @Autowired
private TaskService taskService; private TaskService taskService;
@Autowired
private IStoragePosManager storagePosManager;
/** /**
* 线体第一个扫码器扫码调用 * 线体第一个扫码器扫码调用
...@@ -71,19 +69,25 @@ public class LineController { ...@@ -71,19 +69,25 @@ public class LineController {
@AnonymousAccess @AnonymousAccess
public ResultBean validCarton(@RequestBody Map<String, String> paramMap) { public ResultBean validCarton(@RequestBody Map<String, String> paramMap) {
String cartonId = paramMap.get("cartonId"); String boxId = paramMap.get("cartonId");
log.info("线体第一个扫码枪扫描到箱号["+boxId+"]校验箱号");
//1.解析条码 //1.解析条码
Barcode barcode = codeResolve.resolveCode(cartonId); Barcode barcode = codeResolve.resolveOneValideBarcode("=2x2="+boxId);
if (barcode == null) { if (barcode == null) {
return ResultBean.newErrorResult(-1, "smfcore.error.barcode.invalid", "条码无效"); return ResultBean.newErrorResult(-1, "smfcore.error.barcode.invalid", "条码无效");
} }
String scanCartonId = barcode.getScanCartonId();
if(Strings.isBlank(scanCartonId)){
return ResultBean.newErrorResult(-1, "smfcore.error.barcode.noBind", "条码未绑定CartonId");
}
//如果是人工作业 直接返回ok //如果是人工作业 直接返回ok
if (ManualWorkUtil.bindManualWork(barcode.getBarcode())) { if (ManualWorkUtil.bindManualWork(barcode.getBarcode())) {
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
} }
try { try {
ValidCartonResult result = LuxsanApi.validCarton(new ValidCartonRequest("", cartonId, CommonUtil.plantCode)); ValidCartonResult result = LuxsanApi.validCarton(new ValidCartonRequest("", scanCartonId, CommonUtil.plantCode));
//设置barcode的其他参数 //设置barcode的其他参数
barcode.setPlantCode(result.getPLANT()); barcode.setPlantCode(result.getPLANT());
barcode.setCartonId(result.getCARTON_ID()); barcode.setCartonId(result.getCARTON_ID());
...@@ -114,14 +118,13 @@ public class LineController { ...@@ -114,14 +118,13 @@ public class LineController {
@AnonymousAccess @AnonymousAccess
public synchronized ResultBean fetchPalletInfo(@RequestBody Map<String, String> paramMap) { public synchronized ResultBean fetchPalletInfo(@RequestBody Map<String, String> paramMap) {
String cartonId = paramMap.get("cartonId"); String boxId = paramMap.get("cartonId");
log.info("线体第二个扫码枪扫描到箱号["+boxId+"],判断过账是否完成");
//1.解析条码 //1.解析条码
Barcode barcode = codeResolve.resolveCode(cartonId); Barcode barcode = codeResolve.resolveOneValideBarcode("=2x2="+boxId);
if (barcode == null) { if (barcode == null) {
return ResultBean.newErrorResult(-1, "smfcore.error.barcode.invalid", "条码无效"); return ResultBean.newErrorResult(-1, "smfcore.error.barcode.invalid", "条码无效");
} }
String palletId = barcode.getPalletId();
//如果是人工作业的,直接入库 //如果是人工作业的,直接入库
...@@ -130,6 +133,7 @@ public class LineController { ...@@ -130,6 +133,7 @@ public class LineController {
} else { } else {
//2.请求接口判断是否过账 //2.请求接口判断是否过账
try { try {
String palletId = barcode.getPalletId();
FetchPalletInfoResult fetchPalletInfo = null; FetchPalletInfoResult fetchPalletInfo = null;
List<FetchPalletInfoResult> fetchPalletList = LuxsanApi.fetchPalletInfo(new FetchPalletInfoRequest("", CommonUtil.plantCode, Arrays.asList(palletId))); List<FetchPalletInfoResult> fetchPalletList = LuxsanApi.fetchPalletInfo(new FetchPalletInfoRequest("", CommonUtil.plantCode, Arrays.asList(palletId)));
for (FetchPalletInfoResult result : fetchPalletList) { for (FetchPalletInfoResult result : fetchPalletList) {
...@@ -159,7 +163,7 @@ public class LineController { ...@@ -159,7 +163,7 @@ public class LineController {
StoragePos pos = taskService.findEmptyPosForPutIn(storageList, barcode, "", ""); StoragePos pos = taskService.findEmptyPosForPutIn(storageList, barcode, "", "");
if (pos == null) { if (pos == null) {
return ResultBean.newErrorResult(-1, "", cartonId + "未找到可用库位"); return ResultBean.newErrorResult(-1, "", boxId + "未找到可用库位");
} }
//3.锁定库位 //3.锁定库位
...@@ -174,6 +178,9 @@ public class LineController { ...@@ -174,6 +178,9 @@ public class LineController {
return ResultBean.newErrorResult(-1, "", "[" + barcode.getBarcode() + "]库位[" + reelLocInfo.getLockPosName() + "]已被锁定,暂停入库", new String[]{}); return ResultBean.newErrorResult(-1, "", "[" + barcode.getBarcode() + "]库位[" + reelLocInfo.getLockPosName() + "]已被锁定,暂停入库", new String[]{});
} }
//清理扫描的cartonId
barcode.setScanCartonId("");
//4.生成入库任务 //4.生成入库任务
DataLog dataLog = taskService.addPutInTaskToExecute(storage, barcode, pos); DataLog dataLog = taskService.addPutInTaskToExecute(storage, barcode, pos);
...@@ -188,8 +195,8 @@ public class LineController { ...@@ -188,8 +195,8 @@ public class LineController {
@RequestMapping("/odnReCartonQty") @RequestMapping("/odnReCartonQty")
@AnonymousAccess @AnonymousAccess
public ResultBean odnReCartonQty(@RequestBody Map<String, String> paramMap) { public ResultBean odnReCartonQty(@RequestBody Map<String, String> paramMap) {
String cartonId = paramMap.get("cartonId"); String boxId = paramMap.get("cartonId");
DataLog dataLog = dataLogManager.findOne(new Query(Criteria.where("barcode").is(cartonId).and("type").is(OP.CHECKOUT))); DataLog dataLog = dataLogManager.findOne(new Query(Criteria.where("barcode").is(boxId).and("type").is(OP.CHECKOUT)));
if (dataLog != null) { if (dataLog != null) {
if (dataLog.isCheckOutTask() && dataLog.isFinished()) { if (dataLog.isCheckOutTask() && dataLog.isFinished()) {
String sourceId = dataLog.getSourceId(); String sourceId = dataLog.getSourceId();
...@@ -223,15 +230,31 @@ public class LineController { ...@@ -223,15 +230,31 @@ public class LineController {
@RequestMapping("/uploadCarPallInfo") @RequestMapping("/uploadCarPallInfo")
@AnonymousAccess @AnonymousAccess
public ResultBean uploadCarPallInfo(@RequestBody Map<String, String> paramMap) { public ResultBean uploadCarPallInfo(@RequestBody Map<String, String> paramMap) {
String cartonId = paramMap.get("cartonId"); String boxId = paramMap.get("cartonId");
String palletId = paramMap.get("palletId"); String cartonId = paramMap.get("palletId");
Map<String, String> cacheMap = dataCache.getCache(CacheNameUtil.CHCHE_UPLOAD_CARPALLINFO); log.info("线体设备扫描到箱号["+boxId+"]和CartonId:" + cartonId);
if (cacheMap == null) { //1.解析条码
cacheMap = new HashMap<>(); Barcode barcode = codeResolve.resolveOneValideBarcode("=2x2="+boxId);
if (barcode == null) {
return ResultBean.newErrorResult(-1, "smfcore.error.barcode.invalid", "条码无效");
}
barcode.setScanCartonId(cartonId);
barcodeManager.saveBarcode(barcode);
return ResultBean.newOkResult("");
}
@ApiOperation("手动绑定料箱和cartonId")
@RequestMapping("/bindCartonId")
@AnonymousAccess
public ResultBean bindCartonId(String boxId, String cartonId){
log.info("手动绑定箱号["+boxId+"]和CartonId:" + cartonId);
//1.解析条码
Barcode barcode = codeResolve.resolveOneValideBarcode("=2x2="+boxId);
if (barcode == null) {
return ResultBean.newErrorResult(-1, "smfcore.error.barcode.invalid", "条码无效");
} }
cacheMap.put(cartonId, palletId); barcode.setScanCartonId(cartonId);
dataCache.updateCache(CacheNameUtil.CHCHE_UPLOAD_CARPALLINFO, cacheMap); barcodeManager.saveBarcode(barcode);
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!