From 273f2e5d3941b0e720e5eabd7dba9cfc042c3267 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 17 六月 2025 17:04:53 +0800
Subject: [PATCH] 出库单生成波次功能开发

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java |   47 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
index 5692412..be17fde 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
@@ -7,6 +7,7 @@
 import com.vincent.rsf.server.manager.entity.AsnOrderItemLog;
 import com.vincent.rsf.server.manager.entity.AsnOrderLog;
 import com.vincent.rsf.server.manager.enums.AsnExceStatus;
+import com.vincent.rsf.server.manager.enums.OrderType;
 import com.vincent.rsf.server.manager.service.AsnOrderItemLogService;
 import com.vincent.rsf.server.manager.service.AsnOrderItemService;
 import com.vincent.rsf.server.manager.service.AsnOrderLogService;
@@ -19,7 +20,6 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -54,10 +54,45 @@
     @Scheduled(cron = "0 0/05 * * * ?  ")
     @Transactional(rollbackFor = Exception.class)
     public void moveOrderToLog() {
-        List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val));
+        List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>()
+                        .eq(AsnOrder::getType, OrderType.ORDER_IN.type)
+                .eq(AsnOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val));
         if (asnOrders.isEmpty()) {
             return;
         }
+        moveOrderToLog(asnOrders, OrderType.ORDER_IN.type);
+    }
+
+
+    /**
+    * @author Ryan
+    * @description 鍑哄簱鍗曞畬鎴愬悗锛岀姸鎬佷慨鏀�
+    * @param
+    * @return
+    * @time 2025/6/16 08:35
+    */
+    @Scheduled(cron = "0/30 * * * * ?  ")
+    @Transactional(rollbackFor = Exception.class)
+    public void outStockComplete() {
+        List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>()
+                        .eq(AsnOrder::getType, OrderType.ORDER_OUT.type)
+                .apply("anfme=work_qty")
+        );
+        if (asnOrders.isEmpty()) {
+            return;
+        }
+        moveOrderToLog(asnOrders, OrderType.ORDER_OUT.type);
+    }
+
+    /**
+     * @param
+     * @param type
+     * @return
+     * @author Ryan
+     * @description 娣诲姞鍘嗗彶鍗曟嵁
+     * @time 2025/6/16 08:56
+     */
+    private void moveOrderToLog(List<AsnOrder> asnOrders, String type) {
         Set<Long> longSet = asnOrders.stream().map(AsnOrder::getId).collect(Collectors.toSet());
         List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getAsnId, longSet));
         if (orderItems.isEmpty()) {
@@ -66,6 +101,10 @@
 
         for (AsnOrder order : asnOrders) {
             AsnOrderLog orderLog = new AsnOrderLog();
+            if (type.equals(OrderType.ORDER_OUT.type)) {
+                order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val);
+                order.setQty(order.getWorkQty());
+            }
             BeanUtils.copyProperties(order, orderLog);
             orderLog.setId(null);
             orderLog.setAsnId(order.getId());
@@ -86,7 +125,7 @@
             });
 
             if (!asnOrderItemLogService.saveBatch(logs)) {
-                throw new CoolException("閫氱煡鍗曟槑缁嗗巻鍙叉。淇濆瓨澶辫触锛侊紒");
+                throw new CoolException("鍗曟嵁鏄庣粏鍘嗗彶妗d繚瀛樺け璐ワ紒锛�");
             }
         }
 
@@ -97,4 +136,6 @@
             throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
         }
     }
+
+
 }

--
Gitblit v1.9.1