From f5f205cec6a7852ca39f1b1f8d4e04af8b37d1d7 Mon Sep 17 00:00:00 2001 From: youjie <j.you@huahengweld.com> Date: Tue, 23 Feb 2021 13:55:05 +0800 Subject: [PATCH] 限制移库任务只能在同巷道里进行 --- src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java | 48 ++++++++++++++++++++++++++++++++++++------------ src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java | 3 +++ src/main/resources/templates/monitor/locationstatus/locationstatus.html | 4 ++-- 3 files changed, 41 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java index 510fd04..ed4f76e 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java @@ -178,9 +178,12 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea taskDetail1.setCompanyCode(taskHeader.getCompanyCode()); LambdaQueryWrapper<TaskDetail> td = Wrappers.lambdaQuery(taskDetail1); List<TaskDetail> taskDetailList = taskDetailService.list(td); - TaskDetail taskDetail = taskDetailList.get(0); - if (taskDetail == null) { - throw new ServiceException("任务明细条目错误"); + TaskDetail taskDetail = null; + if(taskDetailList != null && taskDetailList.size() > 0) { + taskDetail = taskDetailList.get(0); + if (taskDetail == null) { + throw new ServiceException("任务明细条目错误"); + } } //删除子任务 LambdaQueryWrapper<TaskDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); @@ -231,6 +234,20 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea //更新托盘、库位状态 locationService.updateStatus(taskHeader.getToLocation(), "empty"); } + LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); + inventoryHeaderLambdaQueryWrapper.eq(InventoryHeader::getContainerCode, taskHeader.getContainerCode()); + InventoryHeader inventoryHeader = inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper); + Container container = new Container(); + container.setStatus("empty"); + if(inventoryHeader != null) { + if("some".equals(inventoryHeader.getContainerStatus())) { + container.setStatus("some"); + } + } + container.setLocationCode(taskHeader.getFromLocation()); + LambdaUpdateWrapper<Container> containerUpdateWrapper = Wrappers.lambdaUpdate(); + containerUpdateWrapper.eq(Container::getCode, taskHeader.getContainerCode()); + containerService.update(container, containerUpdateWrapper); } if (taskHeader.getInternalTaskType().equals(QuantityConstant.TASK_INTENERTYPE_WORK)) { if (taskHeader.getFromLocation() != null) { @@ -260,17 +277,24 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (StringUtils.isNotEmpty(taskHeader.getToLocation())) { //更新托盘、库位状态 locationService.updateStatus(taskHeader.getToLocation(), "empty"); - if(taskHeader.getTaskType().equals(QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT)) { - LambdaQueryWrapper<ReceiptContainerHeader> lambda = Wrappers.lambdaQuery(); - lambda.eq(ReceiptContainerHeader::getContainerCode, taskHeader.getContainerCode()) - .ne(ReceiptContainerHeader::getStatus, QuantityConstant.RECEIPT_CONTAINER_FINISHED) - .eq(ReceiptContainerHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()); - ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getOne(lambda); - receiptContainerHeader.setToLocation(""); - receiptContainerHeaderService.update(receiptContainerHeader, lambda); + LambdaQueryWrapper<ReceiptContainerHeader> lambda = Wrappers.lambdaQuery(); + lambda.eq(ReceiptContainerHeader::getContainerCode, taskHeader.getContainerCode()) + .ne(ReceiptContainerHeader::getStatus, QuantityConstant.RECEIPT_CONTAINER_FINISHED) + .eq(ReceiptContainerHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()); + ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getOne(lambda); + receiptContainerHeader.setToLocation(""); + receiptContainerHeaderService.update(receiptContainerHeader, lambda); + LambdaQueryWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); + receiptContainerDetailLambdaQueryWrapper.eq(ReceiptContainerDetail::getReceiptContainerId, receiptContainerHeader.getId()); + List<ReceiptContainerDetail> receiptContainerDetailList = receiptContainerDetailService.list(receiptContainerDetailLambdaQueryWrapper); + for(ReceiptContainerDetail receiptContainerDetail : receiptContainerDetailList) { + LambdaQueryWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaQueryWrapper1 = Wrappers.lambdaQuery(); + receiptContainerDetailLambdaQueryWrapper1.eq(ReceiptContainerDetail::getId, receiptContainerDetail.getId()); + receiptContainerDetail.setLocationCode(""); + receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaQueryWrapper1); } } - if (taskHeader.getFromLocation() != null) { + if (StringUtils.isNotEmpty(taskHeader.getFromLocation())) { //更新托盘、库位状态 locationService.updateStatus(taskHeader.getFromLocation(), "empty"); } diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java index 0e15b9f..8614e08 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TransferTaskService.java @@ -94,6 +94,9 @@ public class TransferTaskService { if (taskHeaderService.getUncompleteTaskInNear(desLocation) > 0) { return AjaxResult.error("目标库位:" + desLocationCode + "旁边存在任务,请完成任务以后再分配"); } + if(!sourceLocation.getRoadway().equals(desLocation.getRoadway())) { + return AjaxResult.error("目标库位和源库位不在同一个巷道"); + } if(sourceLocation.getRowFlag() == 1) { Location location1 = locationService.getNear(sourceLocation); //内侧库位 diff --git a/src/main/resources/templates/monitor/locationstatus/locationstatus.html b/src/main/resources/templates/monitor/locationstatus/locationstatus.html index 34e6664..ca28c38 100644 --- a/src/main/resources/templates/monitor/locationstatus/locationstatus.html +++ b/src/main/resources/templates/monitor/locationstatus/locationstatus.html @@ -52,7 +52,7 @@ <ul id="select_info"> <li> <select id="locationType" name="locationType" style="width: 100px"> - <option value="L" selected>立库库位</option> + <option value="A" selected>立库库位</option> <option value="Q">钱柜库位</option> <option value="PK">平面库位</option> </select> @@ -175,7 +175,7 @@ var grid_num_11=0; var grid_num_12=0; $(function() { - resetAjax("L"); + resetAjax("A"); //库位类型和行列层选择 $("#editable-select").change(function () { -- libgit2 0.22.2