From 9528744b1db4b4c63beac11aa70c2c2f547858b6 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 11 十二月 2025 16:09:56 +0800
Subject: [PATCH] #AGV任务转历史档

---
 src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java |  107 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 104 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index dc6f573..013cf95 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -2,14 +2,13 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.zy.asrs.entity.WaitPakin;
-import com.zy.asrs.entity.WrkDetl;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
 import com.zy.asrs.utils.OrderInAndOutUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -39,6 +38,14 @@
     private WaitPakinLogService waitPakinLogService;
     @Autowired
     private OrderService orderService;
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private TaskLogService taskLogService;
+    @Autowired
+    private TaskDetlService taskDetlService;
+    @Autowired
+    private TaskDetlLogService taskDetlLogService;
 
     @Transactional
     public ReturnT<String> start(WrkMast wrkMast) {
@@ -125,4 +132,98 @@
         return SUCCESS;
     }
 
+    public ReturnT<String> AgvStart(Task task) {
+        try {
+            List<TaskDetl> taskDetls = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
+            // 淇敼璁㈠崟鐘舵�� 浣滀笟涓� ===>> 宸插畬鎴�
+            if (!Cools.isEmpty(taskDetls)) {
+                Iterator<TaskDetl> iterator = taskDetls.iterator();
+                while (iterator.hasNext()) {
+                    TaskDetl taskDetl = iterator.next();
+                    if (!Cools.isEmpty(taskDetl.getOrderNo())) {
+//                        orderService.checkComplete(wrkDetl.getOrderNo());
+                        if (task.getIoType() ==  1 || task.getIoType() == 8 ||  task.getIoType() == 54 ||  task.getIoType() == 104){
+                            OrderInAndOutUtil.checkComplete(Boolean.TRUE,taskDetl.getOrderNo());
+                        } else {
+                            OrderInAndOutUtil.checkComplete(Boolean.FALSE,taskDetl.getOrderNo());
+                        }
+                        iterator.remove();
+                    }
+                }
+            }
+
+            // 鍏ュ簱 --------------------------------------------------------------------------------
+            if (task.getWrkSts() == 5) {
+                // 鍏ㄦ澘鍏ュ簱
+                if (task.getIoType() == 1) {
+                    // 鍏ュ簱閫氱煡鍗�
+                    if (!Cools.isEmpty(task.getBarcode())) {
+                        // 淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。
+                        if (!waitPakinLogService.save(task.getBarcode())) {
+//                            exceptionHandle("淇濆瓨鍏ュ簱閫氱煡妗e巻鍙叉。[workNo={0}]澶辫触", wrkMast.getWrkNo());
+                        }
+                        // 鍒犻櫎鍏ュ簱閫氱煡妗�
+                        if (!waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", task.getBarcode()))) {
+//                            exceptionHandle("鍒犻櫎鍏ュ簱閫氱煡妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+                        }
+                    }
+//                    // 鎵嬪姩鍏ュ簱鐢熸垚鍗曟嵁 銆� 涓婃姤涓夋柟骞冲彴 銆�
+//                    if (!Cools.isEmpty(wrkDetls)) {
+//                        if (!orderService.saveHandlerOrder(Boolean.TRUE, wrkMast, wrkDetls)) {
+//                            exceptionHandle("鐢熸垚鎵嬪姩鍏ュ簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+//                        }
+//                    }
+                    // 鎷f枡鍐嶅叆搴�
+                } else if (task.getIoType() == 53) {
+//                    if (!Cools.isEmpty(wrkDetls)) {
+//                        if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
+//                            exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+//                        }
+//                    }
+                }
+
+                // 鍑哄簱 --------------------------------------------------------------------------------
+            } else if (task.getWrkSts() == 15) {
+//                if (!Cools.isEmpty(wrkDetls)) {
+//                    if (!orderService.saveHandlerOrder(Boolean.FALSE, wrkMast, wrkDetls)) {
+//                        exceptionHandle("鐢熸垚鎵嬪姩鍑哄簱鍗曟嵁[workNo={0}]澶辫触", wrkMast.getWrkNo());
+//                    }
+//                }
+            }
+
+
+
+            for (TaskDetl taskDetl :taskDetls){
+                TaskDetlLog taskDetlLog = new TaskDetlLog();
+                BeanUtils.copyProperties(taskDetl, taskDetlLog);
+
+                // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
+                if (!taskDetlLogService.insert(taskDetlLog)) {
+                exceptionHandle("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗workNo={0}]澶辫触", task.getWrkNo());
+                }
+                // 鍒犻櫎宸ヤ綔鏄庣粏妗�
+                if (!taskDetlService.deleteById(taskDetl)) {
+                exceptionHandle("鍒犻櫎宸ヤ綔鏄庣粏妗workNo={0}]澶辫触", task.getWrkNo());
+                }
+            }
+            TaskLog taskLog = new TaskLog();
+            BeanUtils.copyProperties(task, taskLog);
+            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+            if (!taskLogService.insert(taskLog)) {
+                exceptionHandle("淇濆瓨AGV宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", task.getWrkNo());
+            }
+
+            // 鍒犻櫎宸ヤ綔涓绘。
+            if (!taskService.deleteById(task)) {
+                exceptionHandle("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触", task.getWrkNo());
+            }
+
+        } catch (Exception e) {
+            log.error("fail", e);
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return FAIL.setMsg(e.getMessage());
+        }
+        return SUCCESS;
+    }
 }

--
Gitblit v1.9.1