From 1b3d98ac8232c025430db364d1230a9a1dd36be7 Mon Sep 17 00:00:00 2001
From: wangpengyu <1723693596@qq.com>
Date: Thu, 30 Nov 2023 09:21:16 +0800
Subject: [PATCH] 创建出库查看、质检任务添加限制

---
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java | 53 ++++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 36 insertions(+), 17 deletions(-)

diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
index c68e991..2f069cf 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
@@ -320,6 +320,19 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         if (StringUtils.isEmpty(containerCode)) {
             return Result.error("创建出库查看任务时,容器编码为空");
         }
+
+        //创建出库查看任务时,库存不能被冻结
+        LambdaQueryWrapper<InventoryDetail> inventoryDetailWrapper = Wrappers.lambdaQuery();
+        inventoryDetailWrapper.eq(InventoryDetail::getContainerCode,containerCode);
+        List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailWrapper);
+        if (StringUtils.isEmpty(inventoryDetailList)) {
+            return Result.error("创建出库查看任务时,库存详情为空");
+        }
+        List<Integer> enableList = inventoryDetailList.stream().map(InventoryDetail::getEnable).distinct().collect(Collectors.toList());
+        if (enableList.contains(QuantityConstant.INVENTORY_DETAIL_STATUS_CONTAINER)) {
+            return Result.error("创建出库查看任务时,库存详情被冻结");
+        }
+
         if (StringUtils.isEmpty(toPortCode)) {
             return Result.error("创建出库查看任务时,目标站台号为空");
         }
@@ -440,24 +453,30 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper);
         List<TaskDetail> taskDetailList = new ArrayList<>();
         if (inventoryDetailList.size() != 0) {
+            List<Integer> enableList = inventoryDetailList.stream().map(InventoryDetail::getEnable).distinct().collect(Collectors.toList());
+            if (!enableList.contains(QuantityConstant.INVENTORY_DETAIL_STATUS_ENABLE)) {
+                return Result.error("没有正常状态的库存详情");
+            }
             for (InventoryDetail inventoryDetail : inventoryDetailList) {
-                TaskDetail taskDetail = new TaskDetail();
-                taskDetail.setTaskHeaderId(taskHeader.getId());
-                taskDetail.setTaskType(QuantityConstant.TASK_TYPE_QUALITY);
-                taskDetail.setWarehouseCode(warehouseCode);
-                taskDetail.setCompanyCode(inventoryDetail.getCompanyCode());
-                taskDetail.setMaterialCode(inventoryDetail.getMaterialCode());
-                taskDetail.setMaterialName(inventoryDetail.getMaterialName());
-                taskDetail.setMaterialSpec(inventoryDetail.getMaterialSpec());
-                taskDetail.setMaterialUnit(inventoryDetail.getMaterialUnit());
-                taskDetail.setFromInventoryDetailId(inventoryDetail.getId());
-                taskDetail.setInventoryStatus(inventoryDetail.getInventoryStatus());
-                taskDetail.setQty(inventoryDetail.getQty());
-                taskDetail.setBatch(inventoryDetail.getBatch());
-                taskDetail.setLot(inventoryDetail.getLot());
-                taskDetail.setProject(inventoryDetail.getProject());
-                taskDetail.setReceiveTime(inventoryDetail.getReceiveTime());
-                taskDetailList.add(taskDetail);
+                 if (inventoryDetail.getEnable() == QuantityConstant.INVENTORY_DETAIL_STATUS_ENABLE) {
+                     TaskDetail taskDetail = new TaskDetail();
+                     taskDetail.setTaskHeaderId(taskHeader.getId());
+                     taskDetail.setTaskType(QuantityConstant.TASK_TYPE_QUALITY);
+                     taskDetail.setWarehouseCode(warehouseCode);
+                     taskDetail.setCompanyCode(inventoryDetail.getCompanyCode());
+                     taskDetail.setMaterialCode(inventoryDetail.getMaterialCode());
+                     taskDetail.setMaterialName(inventoryDetail.getMaterialName());
+                     taskDetail.setMaterialSpec(inventoryDetail.getMaterialSpec());
+                     taskDetail.setMaterialUnit(inventoryDetail.getMaterialUnit());
+                     taskDetail.setFromInventoryDetailId(inventoryDetail.getId());
+                     taskDetail.setInventoryStatus(inventoryDetail.getInventoryStatus());
+                     taskDetail.setQty(inventoryDetail.getQty());
+                     taskDetail.setBatch(inventoryDetail.getBatch());
+                     taskDetail.setLot(inventoryDetail.getLot());
+                     taskDetail.setProject(inventoryDetail.getProject());
+                     taskDetail.setReceiveTime(inventoryDetail.getReceiveTime());
+                     taskDetailList.add(taskDetail);
+                 }
             }
             success = taskDetailService.saveBatch(taskDetailList);
             if (!success) {
--
libgit2 0.22.2