Commit 2725366b 孙克

半成品仓增加入库完成处理逻辑

1 个父辈 22d00a6d
package com.neotel.smfcore.custom.luxsan.factory_c.wipstor.controller; package com.neotel.smfcore.custom.luxsan.factory_c.wipstor.controller;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.bean.ReelLockPosInfo; import com.neotel.smfcore.common.bean.ReelLockPosInfo;
import com.neotel.smfcore.common.bean.ResultBean; import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.utils.ReelLockPosUtil; import com.neotel.smfcore.common.utils.ReelLockPosUtil;
import com.neotel.smfcore.common.utils.StringUtils; import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager; import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.barcode.utils.CodeResolve; import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.enums.OP; import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS; import com.neotel.smfcore.core.device.enums.OP_STATUS;
...@@ -18,6 +21,7 @@ import com.neotel.smfcore.core.system.service.po.DataLog; ...@@ -18,6 +21,7 @@ import com.neotel.smfcore.core.system.service.po.DataLog;
import com.neotel.smfcore.core.system.util.TaskService; import com.neotel.smfcore.core.system.util.TaskService;
import com.neotel.smfcore.custom.luxsan.api.LuxsanApi; import com.neotel.smfcore.custom.luxsan.api.LuxsanApi;
import com.neotel.smfcore.custom.luxsan.api.bean.request.FetchPalletInfoRequest; import com.neotel.smfcore.custom.luxsan.api.bean.request.FetchPalletInfoRequest;
import com.neotel.smfcore.custom.luxsan.api.bean.request.PalletUpdateRequest;
import com.neotel.smfcore.custom.luxsan.api.bean.request.ValidCartonRequest; import com.neotel.smfcore.custom.luxsan.api.bean.request.ValidCartonRequest;
import com.neotel.smfcore.custom.luxsan.api.bean.result.FetchPalletInfoResult; import com.neotel.smfcore.custom.luxsan.api.bean.result.FetchPalletInfoResult;
import com.neotel.smfcore.custom.luxsan.api.bean.result.ValidCartonResult; import com.neotel.smfcore.custom.luxsan.api.bean.result.ValidCartonResult;
...@@ -53,6 +57,12 @@ public class LineController { ...@@ -53,6 +57,12 @@ public class LineController {
@Autowired @Autowired
private IBarcodeManager barcodeManager; private IBarcodeManager barcodeManager;
@Autowired
private IStoragePosManager storagePosManager;
@Autowired
private IComponentManager componentManager;
@Autowired @Autowired
private IDataLogManager dataLogManager; private IDataLogManager dataLogManager;
...@@ -128,14 +138,23 @@ public class LineController { ...@@ -128,14 +138,23 @@ public class LineController {
} }
} }
if (fetchPalletInfo != null) { if (fetchPalletInfo != null) {
if (fetchPalletInfo.getSTATUS() != PalletEnum.INVENTORY_IN_WAREHOUSE) { if (fetchPalletInfo.getSTATUS() != PalletEnum.POSTED_AND_PENDING_SHELVING) {
return ResultBean.newErrorResult(-1, "", fetchPalletInfo.getPALLET_ID() + "不是在库库存状态,不允许入库"); return ResultBean.newErrorResult(-1, "", fetchPalletInfo.getPALLET_ID() + "不是[6 已过账,待上架],不允许入库");
} }
//设置barcode的其他参数 //设置barcode的其他参数
barcode.setPlantCode(fetchPalletInfo.getPLANT()); barcode.setPlantCode(fetchPalletInfo.getPLANT());
barcode.setCartonId(fetchPalletInfo.getPALLET_ID()); barcode.setCartonId(fetchPalletInfo.getPALLET_ID());
barcode.setPalletId(fetchPalletInfo.getPALLET_ID()); barcode.setPalletId(fetchPalletInfo.getPALLET_ID());
barcode.setPn(fetchPalletInfo.getMATERIAL_CODE()); barcode.setPn(fetchPalletInfo.getMATERIAL_CODE());
barcode.setPartNumber(fetchPalletInfo.getMATERIAL_CODE());
Component component = componentManager.findOneByPN(barcode.getPartNumber());
if(component == null){
component = new Component();
component.setPartNumber(barcode.getPartNumber());
component.setPlateSize(Integer.valueOf(2));
component.setHeight(Integer.valueOf(2));
componentManager.save(component);
}
barcode.setModelFamily(fetchPalletInfo.getMODEL_FAMILY()); barcode.setModelFamily(fetchPalletInfo.getMODEL_FAMILY());
barcode.setMaterialType(fetchPalletInfo.getMATERIAL_TYPE()); barcode.setMaterialType(fetchPalletInfo.getMATERIAL_TYPE());
barcode.setWarehouseCode(fetchPalletInfo.getWAREHOUSE_CODE()); barcode.setWarehouseCode(fetchPalletInfo.getWAREHOUSE_CODE());
...@@ -184,7 +203,7 @@ public class LineController { ...@@ -184,7 +203,7 @@ public class LineController {
barcode.setScanCartonId(""); barcode.setScanCartonId("");
//4.生成入库任务 //4.生成入库任务
DataLog dataLog = taskService.addPutInTaskToExecute(storage, barcode, pos); taskService.addPutInTaskToExecute(storage, barcode, pos);
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
} }
...@@ -281,8 +300,33 @@ public class LineController { ...@@ -281,8 +300,33 @@ public class LineController {
} }
private void finishedPutInTask(DataLog queueTask){ private void finishedPutInTask(DataLog queueTask){
Barcode barcode = barcodeManager.findByBarcode(queueTask.getBarcode());
//通知WMS
PalletUpdateRequest palletUpdateRequest = new PalletUpdateRequest();
palletUpdateRequest.setREQUEST_ID(System.currentTimeMillis()+"");
palletUpdateRequest.setPALLET_LIST(Lists.newArrayList(barcode.getPalletId()));
palletUpdateRequest.setBIN_CODE(queueTask.getPosName());
palletUpdateRequest.setBIZ_TYPE("M");
LuxsanApi.palletUpdate(palletUpdateRequest);
//已完成,加入库存,并且从完成队列中清除
StoragePos storagePos = storagePosManager.get(queueTask.getPosId());
if (barcode != null) {
barcode.setUsedCount(barcode.getUsedCount() + 1);
barcode.setPutInTime(System.currentTimeMillis());
barcode.setInOpor("");
barcode.setCheckOutDate(null, "");
barcode.setPosName(queueTask.getPosName());
barcode = barcodeManager.save(barcode);
}
storagePos.setBarcode(barcode);
storagePos.setUsed(true);
storagePos.setCanCheckOutTime(System.currentTimeMillis());
storagePosManager.save(storagePos);
queueTask.setStatus(OP_STATUS.FINISHED.name()); queueTask.setStatus(OP_STATUS.FINISHED.name());
//TODO: 保存库存, 通知WMS
taskService.moveTaskToFinished(queueTask); taskService.moveTaskToFinished(queueTask);
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!