From 4806bbb2fa93e2df150bb69f720459f6b0c50c9a Mon Sep 17 00:00:00 2001
From: yiwenpeng <ywp303@163.com>
Date: Fri, 9 Aug 2024 10:17:46 +0800
Subject: [PATCH] feat:优化自动出库

---
 src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java | 39 +++++++++++++++++++++++++++++++--------
 src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java             |  1 -
 src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html                    | 10 +++++-----
 3 files changed, 36 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java
index f882c42..d94b624 100644
--- a/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java
+++ b/src/main/java/com/huaheng/pc/shipment/shipmentHeader/service/ShipmentHeaderServiceImpl.java
@@ -25,6 +25,7 @@ import com.huaheng.pc.config.shipmentType.service.ShipmentTypeService;
 import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
 import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
 import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
+import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader;
 import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService;
 import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
 import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService;
@@ -39,7 +40,9 @@ import com.huaheng.pc.shipment.shipmentHeaderHistory.service.ShipmentHeaderHisto
 import com.huaheng.pc.system.dict.service.IDictDataService;
 import com.huaheng.pc.task.taskDetail.domain.TaskDetail;
 import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
+import com.huaheng.pc.task.taskHeader.domain.ShipmentTaskCreateModel;
 import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
+import com.huaheng.pc.task.taskHeader.service.ShipmentTaskService;
 import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -57,6 +60,8 @@ import java.util.stream.Collectors;
 
 @Service
 public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, ShipmentHeader> implements ShipmentHeaderService {
+    @Resource
+    private ShipmentTaskService shipmentTaskService;
 
     @Resource
     private ConfigService configService;
@@ -569,7 +574,7 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper,
     @Override
     public void autoShipmentExecute(ShipmentHeader shipmentHeader) {
         shipmentHeader.setAutoShipmentStatus(4);
-        shipmentHeader.setErrorMsg("自动组盘过程中程序错误,请手动继续");
+        shipmentHeader.setErrorMsg("自动组盘过程中程序错误,请手动组盘");
         updateById(shipmentHeader);
         //自动组盘
         AjaxResult containerResult = shipmentContainerHeaderService.autoCombination(shipmentHeader.getCode(), true);
@@ -578,14 +583,28 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper,
             return;
         }
         shipmentHeader.setAutoShipmentStatus(4);
-        shipmentHeader.setErrorMsg("自生成任务过程中程序错误,请手动继续");
+        shipmentHeader.setErrorMsg("自生成任务过程中程序错误,请手动生成任务");
         updateById(shipmentHeader);
-        //生成任务
-        List<Integer> ids = (List<Integer>) containerResult.getData();
-        AjaxResult taskResult = shipmentContainerHeaderService.createAutoTask(ids);
-        if (!updateShipmentErrorMsg(taskResult, shipmentHeader)) {
-            return;
+
+
+        List<ShipmentContainerHeader> shipmentContainerHeaders = shipmentContainerHeaderService.list(new LambdaQueryWrapper<ShipmentContainerHeader>()
+                .eq(ShipmentContainerHeader::getStatus, QuantityConstant.SHIPMENT_CONTAINER_BUILD));
+        for (ShipmentContainerHeader item : shipmentContainerHeaders) {
+            ShipmentTaskCreateModel shipmentTask = new ShipmentTaskCreateModel();
+            shipmentTask.setShipmentContainerHeaderIds(item.getId());
+            AjaxResult taskResult = shipmentTaskService.createTaskFromShipmentContainers(shipmentTask, false);
+            if (!updateShipmentErrorMsg(taskResult, shipmentHeader)) {
+                return;
+            }
         }
+
+        //生成任务
+        //List<Integer> ids = (List<Integer>) containerResult.getData();
+        //AjaxResult taskResult = shipmentContainerHeaderService.createAutoTask(ids);
+        //if (!updateShipmentErrorMsg(taskResult, shipmentHeader)) {
+        //    return;
+        //}
+        
         //自动打印
         int isPrint = Integer.parseInt(configService.getKey(QuantityConstant.AUTO_SHIPMENT_PRINT));
         if (isPrint == 1) {
@@ -608,7 +627,11 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper,
     public boolean updateShipmentErrorMsg(AjaxResult result, ShipmentHeader shipmentHeader) {
         if (result.getCode() != 200) {
             shipmentHeader.setAutoShipmentStatus(4);
-            shipmentHeader.setErrorMsg(result.getMsg());
+            String errorMsg = result.getMsg();
+            if (errorMsg.length() > 500) {
+                errorMsg = errorMsg.substring(0, 500);
+            }
+            shipmentHeader.setErrorMsg(errorMsg);
             updateById(shipmentHeader);
             return false;
         }
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 07d0f76..ac920a7 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
@@ -977,7 +977,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         //组盘表新建状态任务+任务表任务
         Integer tasknum = shipmentContainerHeaderService.list(new LambdaQueryWrapper<ShipmentContainerHeader>()
                 .in(ShipmentContainerHeader::getStatus, 1, 10)
-                .eq(ShipmentContainerHeader::getFlat, 0)
                 .apply("(SUBSTRING(locationCode, 1, 3) in ('K05','K06','K07','K08') )")).size();
         return tasknum;
     }
diff --git a/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html b/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html
index b1f3991..cb957fa 100644
--- a/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html
+++ b/src/main/resources/templates/shipment/shipmentHeader/shipmentHeader.html
@@ -212,7 +212,7 @@
                            shiro:hasPermission="shipment:bill:close">
                             <i></i> 关闭自动出库
                         </a>
-                        
+
 
                         <a class="btn btn-outline btn-success btn-rounded"
                            onclick="autoShipmentChoose()"
@@ -289,10 +289,10 @@
                             <i class="fa fa-code-fork"></i> 自动组盘
                         </a>
 
-                        <!--                        <a class="btn btn-outline btn-primary btn-rounded auto-shipment-task" onclick="Toshipping(2)"-->
-                        <!--                           shiro:hasPermission="shipment:shippingCombination:combination">-->
-                        <!--                            <i class="fa fa-code-fork"></i> 自动组盘并生成任务-->
-                        <!--                        </a>-->
+                        <a class="btn btn-outline btn-primary btn-rounded auto-shipment-task" onclick="Toshipping(2)"
+                           shiro:hasPermission="shipment:shippingCombination:combination">
+                            <i class="fa fa-code-fork"></i> 自动组盘并生成任务
+                        </a>
                         <a class="btn btn-outline btn-primary btn-rounded auto-shipment" onclick="Toshipping(3)"
                            shiro:hasPermission="shipment:shippingCombination:combination">
                             <i class="fa fa-code-fork"></i> 自动平库组盘
--
libgit2 0.22.2