From f7b699b0da8aa185edeb38dc1abaaf964ba41d95 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期五, 02 八月 2024 09:15:01 +0800
Subject: [PATCH] #

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java |   91 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 84 insertions(+), 7 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
index 92c46ad..5d793ba 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/WorkServiceImpl.java
@@ -4,6 +4,7 @@
 import com.zy.asrs.framework.exception.CoolException;
 import com.zy.asrs.wms.asrs.entity.*;
 import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
+import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
 import com.zy.asrs.wms.asrs.entity.param.GeneratePakInParam;
 import com.zy.asrs.wms.asrs.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,11 +31,19 @@
     @Autowired
     private TaskDetlFieldService taskDetlFieldService;
     @Autowired
+    private OrderService orderService;
+    @Autowired
     private OrderDetlService orderDetlService;
     @Autowired
     private LocService locService;
     @Autowired
     private LocStsService locStsService;
+    @Autowired
+    private TaskLogService taskLogService;
+    @Autowired
+    private TaskDetlLogService taskDetlLogService;
+    @Autowired
+    private TaskDetlFieldLogService taskDetlFieldLogService;
 
     @Override
     public String generateTaskNo(Long taskType) {
@@ -129,17 +138,32 @@
                 throw new CoolException("缁勬墭閫氱煡妗f洿鏂板け璐�");
             }
 
-            //鏇存柊璁㈠崟鏁版嵁
+            //鏇存柊璁㈠崟鏄庣粏鏁版嵁
             OrderDetl orderDetl = orderDetlService.getById(taskDetl.getDetlId());
             if(orderDetl == null){
-                throw new CoolException("璁㈠崟鏁版嵁寮傚父");
+                throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
             }
 
             orderDetl.setWorkQty(orderDetl.getWorkQty() + taskDetl.getAnfme());
             orderDetl.setUpdateTime(new Date());
             boolean orderDetlUpdate = orderDetlService.updateById(orderDetl);
             if(!orderDetlUpdate){
-                throw new CoolException("璁㈠崟鏇存柊澶辫触");
+                throw new CoolException("璁㈠崟鏄庣粏鏇存柊澶辫触");
+            }
+
+            //鑾峰彇璁㈠崟
+            Order order = orderService.getById(taskDetl.getOrderId());
+            if(order == null){
+                throw new CoolException("璁㈠崟涓嶅瓨鍦�");
+            }
+
+            //鏇存柊璁㈠崟鐘舵��
+            if (order.getOrderSettle().equals(OrderSettleType.WAIT.val())) {
+                order.setOrderSettle(OrderSettleType.WORKING.val());
+                order.setUpdateTime(new Date());
+                if (!orderService.updateById(order)) {
+                    throw new CoolException("璁㈠崟鏁版嵁鏇存柊澶辫触");
+                }
             }
         }
 
@@ -149,6 +173,34 @@
         boolean locUpdate = locService.updateById(loc);
         if(!locUpdate){
             throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�");
+        }
+
+        return true;
+    }
+
+    @Override
+    public boolean completeTask(Long taskId) {
+        Task task = taskService.getById(taskId);
+        if(task == null){
+            throw new CoolException("浠诲姟涓嶅瓨鍦�");
+        }
+
+        List<TaskDetl> taskDetls = taskDetlService.getTaskDetlByTaskId(taskId);
+        if (taskDetls.isEmpty()) {
+            throw new CoolException("浠诲姟鏄庣粏涓嶅瓨鍦�");
+        }
+
+        if (task.getTaskType() < 100) {
+            //鍏ュ簱
+            task.setTaskSts(99L);//99.鍏ュ簱瀹屾垚
+        }else {
+            //鍑哄簱
+            task.setTaskSts(199L);//199.鍑哄簱瀹屾垚
+        }
+
+        task.setUpdateTime(new Date());
+        if (!taskService.updateById(task)) {
+            throw new CoolException("浠诲姟鏇存柊澶辫触");
         }
 
         return true;
@@ -236,10 +288,28 @@
                 }
             }
 
-            //鍒犻櫎鏄庣粏鎵╁睍
-            boolean removeField = taskDetlFieldService.remove(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()));
-            if(!removeField){
-                throw new CoolException("鍥炴粴鎵╁睍鏄庣粏澶辫触");
+            List<TaskDetlField> detlFields = taskDetlFieldService.list(new LambdaQueryWrapper<TaskDetlField>().eq(TaskDetlField::getDetlId, taskDetl.getId()));
+            for (TaskDetlField detlField : detlFields) {
+                //鏄庣粏鎵╁睍瀛楁鏁版嵁淇濆瓨鑷冲巻鍙叉。
+                TaskDetlFieldLog taskDetlFieldLog = new TaskDetlFieldLog();
+                taskDetlFieldLog.sync(detlField);
+                if (!taskDetlFieldLogService.save(taskDetlFieldLog)) {
+                    throw new CoolException("鏄庣粏鎵╁睍瀛楁杞巻鍙叉。妗堝け璐�");
+                }
+
+                //鍒犻櫎鏄庣粏鎵╁睍
+                boolean removeField = taskDetlFieldService.removeById(detlField.getId());
+                if(!removeField){
+                    throw new CoolException("鍥炴粴鎵╁睍鏄庣粏澶辫触");
+                }
+            }
+
+
+            //鏄庣粏鏁版嵁淇濆瓨鑷冲巻鍙叉。
+            TaskDetlLog taskDetlLog = new TaskDetlLog();
+            taskDetlLog.sync(taskDetl);
+            if (!taskDetlLogService.save(taskDetlLog)) {
+                throw new CoolException("鏄庣粏鏁版嵁杞巻鍙叉。妗堝け璐�");
             }
 
             //鍒犻櫎鏄庣粏
@@ -249,6 +319,13 @@
             }
         }
 
+        //鏁版嵁淇濆瓨鑷冲巻鍙叉。
+        TaskLog taskLog = new TaskLog();
+        taskLog.sync(task);
+        if (!taskLogService.save(taskLog)) {
+            throw new CoolException("浠诲姟妗f杞巻鍙叉。妗堝け璐�");
+        }
+
         //鍒犻櫎浠诲姟
         boolean removeTask = taskService.removeById(taskId);
         if(!removeTask){

--
Gitblit v1.9.1