From fabc045268d2fe29ca8b0f25093b9429d5818d22 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 25 六月 2025 19:23:43 +0800
Subject: [PATCH] 出库生成任务优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java |   26 ++++++++++++++++++++------
 1 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
index 36d255b..5ad2d1d 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
@@ -46,6 +46,8 @@
     private WcsService wcsService;
     @Autowired
     private OutStockService outStockService;
+    @Autowired
+    private WaveService waveService;
 
 
     /**
@@ -72,9 +74,17 @@
         List<LocItem> items = map.getItems();
         Map<Long, List<LocItem>> listMap = items.stream().collect(Collectors.groupingBy(LocItem::getLocId));
         AsnOrder order;
+        Wave wave;
         if (!Objects.isNull(map.getSourceId())) {
-            order = outStockService.getById(map.getSourceId());
+            if (map.getType().equals(Constants.TASK_TYPE_WAVE_OUT_STOCK)) {
+                order = new AsnOrder();
+                wave = waveService.getById(map.getSourceId());
+            } else {
+                wave = new Wave();
+                order = outStockService.getById(map.getSourceId());
+            }
         } else {
+            wave = new Wave();
             order = new AsnOrder();
         }
 
@@ -117,9 +127,11 @@
             List<LocItem> locItemList = listMap.get(key);
             Double outQty = locItemList.stream().mapToDouble(LocItem::getOutQty).sum();
 
-            if (map.getType().equals(Constants.TASK_TYPE_OUT_STOCK) || map.getType().equals(Constants.TASK_TYPE_ORDER_OUT_STOCK)) {
+            if (map.getType().equals(Constants.TASK_TYPE_OUT_STOCK)
+                    || map.getType().equals(Constants.TASK_TYPE_ORDER_OUT_STOCK)
+                    || map.getType().equals(Constants.TASK_TYPE_WAVE_OUT_STOCK)) {
                 if (orgQty.compareTo(outQty) > 0) {
-                    //鎷f枡鍑哄簱
+                    //鎷f枡鍑哄簱 -- 鐩樼偣鍑哄簱
                     DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                             .eq(DeviceSite::getSite, siteNo)
                             .eq(DeviceSite::getChannel, loc.getChannel())
@@ -199,14 +211,16 @@
                         .setCreateBy(loginUserId)
                         .setCreateTime(new Date())
                         .setUpdateTime(new Date())
-                        .setOrderType(OrderType.ORDER_OUT.type)
-                        .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type));
+                        .setOrderType(OrderType.ORDER_OUT.type);
                 if (map.getType().equals(Constants.TASK_TYPE_ORDER_OUT_STOCK)) {
                     taskItem.setWkType(Short.parseShort(order.getWkType()))
                             .setSourceCode(order.getCode())
                             .setSourceId(order.getId());
+                } else if (map.getType().equals(Constants.TASK_TYPE_WAVE_OUT_STOCK)) {
+                    taskItem.setSourceId(wave.getId()).setSourceCode(wave.getCode());
                 } else if (map.getType().equals(Constants.TASK_TYPE_OUT_CHECK) || map.getType().equals(Constants.TASK_TYPE_OUT_STOCK)) {
-                    taskItem.setSource(item.getId())
+                    taskItem.setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type))
+                            .setSource(item.getId())
                             .setSourceId(item.getLocId())
                             .setSourceCode(item.getLocCode());
                 }

--
Gitblit v1.9.1