Commit 170b492c zshaohui

手动出入库修改

1 个父辈 5a4a168b
......@@ -623,6 +623,35 @@ public class OutLineController {
public ResultBean getOutBoxNum(@RequestBody Map<String, String> paramMap) {
String code = paramMap.get("code");
//code = getBoxStrbyBoxPartition(code);
Barcode barcode = codeResolve.resolveOneValideBarcode(code);
if (barcode == null) {
return ResultBean.newErrorResult(-1,"smfcore.error.barcode.invalid", "条码无效");
}
DataLog dataLog = null;
for (DataLog task : taskService.getAllTasks()) {
if (barcode.getBarcode().equals(task.getBarcode())){
if (!task.isFinished() && !task.isCancel()){
if (task.isPutInTask()) {
return ResultBean.newErrorResult(-1, "", code + "有正在执行中的任务,请确认");
} else {
dataLog = task;
break;
}
}
}
}
if (dataLog != null){
if (!dataLog.isOutFromPos()){
taskService.moveTaskToFinished(dataLog);
BoxHandleUtil.outFromPos(dataLog);
dataLog.setOutFromPos(true);
}
dataLog.setStatus(OP_STATUS.FINISHED.name());
taskService.updateFinishedTask(dataLog);
}
//判断是否有出库任务,如果有就完成
Map<String, Object> resultMap = getBoxInfo(code);
return ResultBean.newOkResult(resultMap);
......
......@@ -289,7 +289,7 @@ public class ManualGrPutInController {
@ApiOperation("完成装箱并入库")
@RequestMapping("/boxToPos")
@AnonymousAccess
public synchronized ResultBean boxToPosNew(String boxStr, String posName) {
public synchronized ResultBean boxToPosNew(String boxStr, String posName,String type) {
if (StringUtils.isEmpty(boxStr)) {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{0}不能为空", new String[]{"料箱信息"});
......@@ -307,6 +307,7 @@ public class ManualGrPutInController {
if (subCodeList != null && !subCodeList.isEmpty()){
for (Barcode barcode : subCodeList) {
if (barcode.isOut()){
log.info(boxStr+"有需要出库的料盘:"+barcode.getBarcode()+"需要改成不出库");
String orderItemId = barcode.getOrderItemId();
barcode.setOdn("");
barcode.setOrderId("");
......@@ -332,52 +333,68 @@ public class ManualGrPutInController {
return ResultBean.newErrorResult(-1, "", boxStr + "有正在执行的入库任务,请确认");
} else {
log.info(boxStr + "有正在执行的出库任务,服务器更改状态为完成");
if (!dataLog.isOutFromPos()){
taskService.moveTaskToFinished(dataLog);
BoxHandleUtil.outFromPos(dataLog);
dataLog.setOutFromPos(true);
}
dataLog.setStatus(OP_STATUS.FINISHED.name());
taskService.updateFinishedTask(dataLog);
}
}
}
//2.判断传过来的库位是否为空,为空入到智能仓
if (StringUtils.isEmpty(posName)) {
//如果是type为0时,入智能仓
if ("0".equals(type)){
StoragePos pos = BoxHandleUtil.locOnePos(boxBarcode);
if (pos == null) {
return ResultBean.newErrorResult(-1, "", boxStr + "未找到可用库位");
}
pos.setBarcode(boxBarcode);
storagePosManager.save(pos);
log.info(boxStr+"入库到智能仓,分配的储位为:"+pos.getPosName());
Storage storage = dataCache.getStorageById(pos.getStorageId());
DataLog dataLog = taskService.addPutInTaskToExecute(storage, boxBarcode, pos, TaskCurrentLoc.Manual_DischargeHole);
return ResultBean.newOkResult("");
}
else if ("1".equals(type)){
if (StringUtils.isEmpty(posName)){
return ResultBean.newErrorResult(-1,"","库位不能为空");
}
//如果不为空,则入到虚拟仓
else {
//判断库位有没有正在执行的任务
for (DataLog task : taskService.getAllTasks()) {
if (posName.equals(task.getPosName())){
if (!task.isCancel() && !task.isFinished()){
return ResultBean.newErrorResult(-1,"",posName+"当前库位有正在执行的任务,请确认");
}
}
}
//判断虚拟仓库位是否存在
StoragePos pos = storagePosManager.getByPosName(posName);
if (pos == null){
return ResultBean.newErrorResult(-1,"",boxStr+"对应的虚拟仓库位"+posName+"不存在");
return ResultBean.newErrorResult(-1,"",boxStr+"对应的库位"+posName+"不存在");
}
String storageId = pos.getStorageId();
Storage storage = dataCache.getStorageById(storageId);
if (storage == null || !storage.isVirtual()){
return ResultBean.newErrorResult(-1,"",posName+"不属于虚拟仓的库位");
}
Barcode barcode = pos.getBarcode();
if (barcode != null){
return ResultBean.newErrorResult(-1,"",posName+"已经存在料箱:"+barcode.getBarcode());
if (!barcode.getBarcode().equals(boxBarcode.getBarcode())) {
return ResultBean.newErrorResult(-1, "", posName + "已经存在料箱:" + barcode.getBarcode());
}
}
//判断当前箱子是否在其他库位中
StoragePos oldPos = storagePosManager.getByBarcode(boxBarcode.getBarcode());
if (oldPos != null){
log.info(boxStr+"清空原来的储位:"+oldPos.getPosName());
oldPos.setBarcode(null);
oldPos.setUsed(false);
storagePosManager.save(oldPos);
}
taskService.addTaskToFinished(pos,boxBarcode,"虚拟入库");
pos.setBarcode(null);
taskService.addTaskToFinished(pos,boxBarcode,"手动入库");
return ResultBean.newOkResult("");
}
return ResultBean.newErrorResult(-1,"","请选择手动入库");
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!