From a488088a18a9b8808bc57124681cee8c4ada7299 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 10 三月 2026 17:23:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/devlop-phyz' into devlop-phyz

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java |   77 +++++++++++++++++++++++---------------
 1 files changed, 47 insertions(+), 30 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index af614d7..a8dc8f0 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -19,10 +19,7 @@
 import com.vincent.rsf.server.common.domain.PageParam;
 import com.vincent.rsf.server.manager.controller.dto.LocStockDto;
 import com.vincent.rsf.server.manager.controller.dto.OrderOutItemDto;
-import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam;
-import com.vincent.rsf.server.manager.controller.params.OutStockToTaskParams;
-import com.vincent.rsf.server.manager.controller.params.PakinItem;
-import com.vincent.rsf.server.manager.controller.params.WaitPakinParam;
+import com.vincent.rsf.server.manager.controller.params.*;
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.enums.*;
 import com.vincent.rsf.server.manager.service.*;
@@ -556,19 +553,22 @@
                     // 绔嬪嵆瑙﹀彂寮傛浠诲姟锛屼笉绛夊緟缁撴灉
                     if (!Cools.isEmpty(palletId.get()) && StringUtils.isNotBlank(syncOrder.getOrderNo()) && !Cools.isEmpty(syncOrder.getStationId())) {
                         Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, palletId.get()));
-                        if (!Cools.isEmpty(loc)) {
+                        if (!Cools.isEmpty(loc) && loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
 //                            outStockService.getOrderOutTaskItem(orderOutTaskParam,param.getOrderItemId());
                             //鍑哄簱
 //                        boolean itemsCheck = waitPakinService.mergeItemsCheck(pakinParam, loginUserId);
 //                            if (true) {
                             CompletableFuture.runAsync(() -> {
                                 try {
-                                    asyncOutboundExecutionWcs(syncOrder.getStationId(), wkOrder.getId(), loginUserId);
+                                    asyncOutboundExecutionWcs(syncOrder.getStationId(), wkOrder.getId(), loginUserId,loc.getCode());
                                 } catch (Exception e) {
                                     log.warn("璁㈠崟 {} 寮�濮嬭嚜鍔ㄥ嚭搴�", syncOrder.getOrderNo());
                                 }
                             });
 //                            }
+                        } else {
+                            log.warn("璁㈠崟 {} 鑷姩鍑哄簱澶辫触锛侊紒鏈煡璇㈠埌鎸囧畾搴撳瓨锛侊紒", syncOrder.getOrderNo());
+                            throw new CoolException("鑷姩鍑哄簱澶辫触锛侊紒鏈煡璇㈠埌鎸囧畾搴撳瓨锛侊紒");
                         }
                     }
                 }
@@ -612,35 +612,52 @@
     }
 
     @Async
-    public void asyncOutboundExecutionWcs(String stationId ,Long orderId, Long loginUserId) {
+    public void asyncOutboundExecutionWcs(String stationId ,Long orderId, Long loginUserId,String locCode) {
         try {
-
-            OrderOutTaskParam orderOutTaskParam = new OrderOutTaskParam();
-            orderOutTaskParam.setOrderId(orderId);
-            orderOutTaskParam.setWaveId(16L);
-            List<OrderOutItemDto> orderOutTaskItemAuto = outStockService.getOrderOutTaskItemAuto(orderOutTaskParam);
-
-            List<OutStockToTaskParams> tasks = new ArrayList<>();
-            for (OrderOutItemDto orderOutItemDto : orderOutTaskItemAuto){
-                for (LocItem locItem : orderOutItemDto.getLocItemList()) {
-                    OutStockToTaskParams outStockToTaskParams = new OutStockToTaskParams(orderOutItemDto,locItem);
-                    outStockToTaskParams.setId(locItem.getId());
-                    outStockToTaskParams.setOutQty(locItem.getOutQty());
-                    outStockToTaskParams.setLocCode(locItem.getLocCode());
-                    outStockToTaskParams.setBarcode(locItem.getBarcode());
-                    outStockToTaskParams.setSiteNo(stationId);
-                    tasks.add(outStockToTaskParams);
+            int i = 0;
+            while (true) {
+                i++;
+                if (i > 5) return;
+                Thread.sleep(3000);
+                WkOrder byId = asnOrderService.getById(orderId);
+                if (Cools.isEmpty(byId)) {
+                    continue;
                 }
+                break;
             }
-            if (tasks.isEmpty()){
-                log.warn("璁㈠崟ID {} 娌℃湁鎵惧埌鍙嚭搴撴槑缁嗭紝璺宠繃鑷姩鍑哄簱", orderId);
-                return;
-            }
-            outStockService.genOutStockTask(tasks, loginUserId, orderId);
 
-            log.info("璁㈠崟ID {} 鑷姩鍑哄簱锛屽叡澶勭悊 {} 涓槑缁�", orderId, tasks.size());
+            GenWaveParams genWaveParams = new GenWaveParams();
+            List<Long> ids = new ArrayList<>();
+            ids.add(orderId);
+            genWaveParams.setIds(ids);
+            genWaveParams.setWaveRuleId(16L);
+//            OrderOutTaskParam orderOutTaskParam = new OrderOutTaskParam();
+//            orderOutTaskParam.setOrderId(orderId);
+//            orderOutTaskParam.setWaveId(16L);
+//            List<OrderOutItemDto> orderOutTaskItemAuto = outStockService.getOrderOutTaskItemAuto(orderOutTaskParam);
+//
+//            List<OutStockToTaskParams> tasks = new ArrayList<>();
+//            for (OrderOutItemDto orderOutItemDto : orderOutTaskItemAuto){
+//                for (LocItem locItem : orderOutItemDto.getLocItemList()) {
+//                    OutStockToTaskParams outStockToTaskParams = new OutStockToTaskParams(orderOutItemDto,locItem);
+//                    outStockToTaskParams.setId(locItem.getId());
+//                    outStockToTaskParams.setOutQty(locItem.getOutQty());
+//                    outStockToTaskParams.setLocCode(locItem.getLocCode());
+//                    outStockToTaskParams.setBarcode(locItem.getBarcode());
+//                    outStockToTaskParams.setSiteNo(stationId);
+//                    tasks.add(outStockToTaskParams);
+//                }
+//            }
+//            if (tasks.isEmpty()){
+//                log.warn("璁㈠崟ID {} 娌℃湁鎵惧埌鍙嚭搴撴槑缁嗭紝璺宠繃鑷姩鍑哄簱", orderId);
+//                return;
+//            }
+//            outStockService.genOutStockTask(tasks, loginUserId, orderId);
+            R r = outStockService.generateWavesOrderAuto(genWaveParams, stationId,locCode);
+
+            log.info("璁㈠崟ID {} 鑷姩杞尝娆�", orderId);
         } catch (Exception e) {
-            log.error("璁㈠崟ID {} 鑷姩鍑哄簱: {}", orderId, e.getMessage(), e);
+            log.error("璁㈠崟ID {} 鑷姩杞尝娆�: {}", orderId, e.getMessage(), e);
         }
     }
 

--
Gitblit v1.9.1