From 6e18b1e086f202512eeb9aa988a8b9026cfccec3 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 28 三月 2026 20:28:27 +0800
Subject: [PATCH] 修复

---
 src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java |  160 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 150 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
index 15a3bc3..b1023c7 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderMoveHistoryHandler.java
@@ -2,15 +2,19 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.zy.asrs.entity.Order;
-import com.zy.asrs.entity.OrderDetl;
-import com.zy.asrs.service.OrderDetlService;
-import com.zy.asrs.service.OrderService;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.OrderDetlPakinServiceImpl;
+import com.zy.asrs.service.impl.OrderPakinServiceImpl;
 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.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.util.Date;
 import java.util.List;
@@ -20,27 +24,163 @@
 public class OrderMoveHistoryHandler extends AbstractHandler<String> {
     @Autowired
     private OrderService orderService;
-
+    @Autowired
+    private OrderPakinService orderPakinService;
+    @Autowired
+    private OrderPakoutService orderPakoutService;
     @Autowired
     private OrderDetlService orderDetlService;
+    @Autowired
+    private OrderDetlPakinServiceImpl orderDetlPakinService;
+    @Autowired
+    private OrderDetlPakoutService orderDetlPakoutService;
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
 
-    public ReturnT<String> move(){
-        List<Order> settleEqual6 = orderService.selectList(new EntityWrapper<Order>()
-                .eq("settle", 6));
+    public ReturnT<String> start(){
+//        List<Order> settleEqual6 = orderService.selectList(new EntityWrapper<Order>()
+//                .eq("settle", 6));
+        List<Order> settleEqual6 = OrderInAndOutUtil.selectBySettle(null, 6L);
         for (Order order : settleEqual6) {
-            List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>()
-                    .eq("order_no", order.getOrderNo()));
+//            List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>()
+//                    .eq("order_no", order.getOrderNo()));
+            List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
             moveBoth(order,orderDetls);
             log.info("宸插畬鎴愬崟鎹Щ鍔ㄨ嚦鍘嗗彶琛ㄦ垚鍔� =====>" +order);
         }
         return SUCCESS;
     }
+
+    public ReturnT<String> startOrder(){
+        List<Order> settleEqual6 = orderService.selectList(new EntityWrapper<Order>()
+                .eq("settle", 6));
+//        List<Order> settleEqual6 = OrderInAndOutUtil.selectBySettle(null, 6L);
+        for (Order order : settleEqual6) {
+            List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>()
+                    .eq("order_no", order.getOrderNo()));
+//            List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
+            moveBothOrder(order,orderDetls);
+            log.info("宸插畬鎴愬崟鎹Щ鍔ㄨ嚦鍘嗗彶琛ㄦ垚鍔� =====>" +order);
+        }
+        return SUCCESS;
+    }
+
+    /**
+     * 姣忓ぉ 0 鐐瑰皢鏈墽琛岀殑鍑哄簱鍗曡浆鍏ュ巻鍙叉。锛屽苟鏍囪涓虹郴缁熻嚜鍔ㄥ垹闄ゃ��
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public ReturnT<String> startPakoutAutoArchive() {
+        try {
+            Integer orderCount = jdbcTemplate.queryForObject(
+                    "select count(1) from man_order_pakout where settle = 1",
+                    Integer.class
+            );
+            if (orderCount == null || orderCount == 0) {
+                return SUCCESS;
+            }
+
+            int detailLogCount = jdbcTemplate.update(
+                    "insert into man_order_detl_log_pakout " +
+                            "select * from man_order_detl_pakout " +
+                            "where order_id in (select id from man_order_pakout where settle = 1)"
+            );
+            jdbcTemplate.update(
+                    "update logDetl " +
+                            "set logDetl.memo = case " +
+                            "when logDetl.memo is null or logDetl.memo = '' " +
+                            "then '绯荤粺0鐐硅嚜鍔ㄥ垹闄よ縼绉籟' + convert(varchar(19), getdate(), 120) + ']' " +
+                            "else logDetl.memo + ';绯荤粺0鐐硅嚜鍔ㄥ垹闄よ縼绉籟' + convert(varchar(19), getdate(), 120) + ']' " +
+                            "end, " +
+                            "logDetl.update_by = 0, " +
+                            "logDetl.update_time = getdate() " +
+                            "from man_order_detl_log_pakout logDetl " +
+                            "where exists (" +
+                            "select 1 " +
+                            "from man_order_detl_pakout detl " +
+                            "inner join man_order_pakout pakout on detl.order_id = pakout.id " +
+                            "where pakout.settle = 1 and detl.id = logDetl.id)"
+            );
+            int detailDeleteCount = jdbcTemplate.update(
+                    "delete from man_order_detl_pakout " +
+                            "where order_id in (select id from man_order_pakout where settle = 1)"
+            );
+
+            int orderLogCount = jdbcTemplate.update(
+                    "insert into man_order_log_pakout " +
+                            "select * from man_order_pakout " +
+                            "where settle = 1"
+            );
+            jdbcTemplate.update(
+                    "update logOrder " +
+                            "set logOrder.memo = case " +
+                            "when logOrder.memo is null or logOrder.memo = '' " +
+                            "then '绯荤粺0鐐硅嚜鍔ㄥ垹闄よ縼绉籟' + convert(varchar(19), getdate(), 120) + ']' " +
+                            "else logOrder.memo + ';绯荤粺0鐐硅嚜鍔ㄥ垹闄よ縼绉籟' + convert(varchar(19), getdate(), 120) + ']' " +
+                            "end, " +
+                            "logOrder.update_by = 0, " +
+                            "logOrder.update_time = getdate() " +
+                            "from man_order_log_pakout logOrder " +
+                            "where exists (" +
+                            "select 1 " +
+                            "from man_order_pakout pakout " +
+                            "where pakout.settle = 1 and pakout.id = logOrder.id)"
+            );
+            int orderDeleteCount = jdbcTemplate.update(
+                    "delete from man_order_pakout where settle = 1"
+            );
+
+            log.info(
+                    "0鐐硅嚜鍔ㄨ縼绉诲嚭搴撳崟鑷冲巻鍙叉。瀹屾垚, 璁㈠崟鏁�={}, 璁㈠崟鍘嗗彶鏁�={}, 鏄庣粏鍘嗗彶鏁�={}, 璁㈠崟鍒犻櫎鏁�={}, 鏄庣粏鍒犻櫎鏁�={}",
+                    orderCount, orderLogCount, detailLogCount, orderDeleteCount, detailDeleteCount
+            );
+            return SUCCESS;
+        } catch (Exception e) {
+            log.error("0鐐硅嚜鍔ㄨ縼绉诲嚭搴撳崟鑷冲巻鍙叉。澶辫触", e);
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return FAIL.setMsg(e.getMessage());
+        }
+    }
+
     private void moveBoth(Order order, List<OrderDetl> orderDetls){
         Date now = new Date();
         if (!Cools.isEmpty(orderDetls)) {
             for (OrderDetl orderDetl : orderDetls) {
                 orderDetl.setUpdateBy(0L);
                 orderDetl.setUpdateTime(now);
+//                orderDetlService.addToLogTable(orderDetl);
+                OrderInAndOutUtil.addToLogTableOrderDetl(order.getPakinPakoutStatus$(),orderDetl);
+                if (order.getPakinPakoutStatus() == 1){
+                    orderDetlPakinService.delete(new EntityWrapper<OrderDetlPakin>()
+                            .eq("id",orderDetl.getId()));
+                } else {
+                    orderDetlPakoutService.delete(new EntityWrapper<OrderDetlPakout>()
+                            .eq("id",orderDetl.getId()));
+                }
+            }
+        }
+        if (!Cools.isEmpty(order)){
+            order.setUpdateBy(0L);
+            order.setUpdateTime(now);
+//            orderService.addToLogTable(order);
+            OrderInAndOutUtil.addToLogTableOrder(order.getPakinPakoutStatus$(),order);
+//            orderService.delete(new EntityWrapper<Order>()
+//                    .eq("id",order.getId()));
+            if (order.getPakinPakoutStatus() == 1){
+                orderPakinService.delete(new EntityWrapper<OrderPakin>()
+                        .eq("id",order.getId()));
+            } else {
+                orderPakoutService.delete(new EntityWrapper<OrderPakout>()
+                        .eq("id",order.getId()));
+            }
+        }
+    }
+
+    private void moveBothOrder(Order order, List<OrderDetl> orderDetls){
+        Date now = new Date();
+        if (!Cools.isEmpty(orderDetls)) {
+            for (OrderDetl orderDetl : orderDetls) {
+                orderDetl.setUpdateBy(0L);
+                orderDetl.setUpdateTime(now);
                 orderDetlService.addToLogTable(orderDetl);
                 orderDetlService.delete(new EntityWrapper<OrderDetl>()
                         .eq("id",orderDetl.getId()));

--
Gitblit v1.9.1