From e6d3803d1bafb782c0907fa925ec110932bc3f23 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期三, 25 二月 2026 14:46:34 +0800
Subject: [PATCH] lsh#

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java       |   18 +++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/OutStockService.java                |    2 +
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java       |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/OutStockToTaskParams.java |   16 +++++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java         |   50 ++++++++++++-------------
 5 files changed, 60 insertions(+), 28 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java
index a8d6f84..8ed81dd 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaOutStockController.java
@@ -157,7 +157,7 @@
 
         return outStockService.getOrderOutTaskItem(orderOutTaskParam,param.getOrderItemId());
     }
-    //
+    //q
     @PostMapping("/orderOut/getOutLocRun")
     public R orderOutGetOutLocRun(@RequestBody OrderOutGeneralParam param) {
         LocItem locItem = locItemService.getById(param.getItemId());
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 0cb4583..67eefb8 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
@@ -18,6 +18,8 @@
 import com.vincent.rsf.server.common.domain.BaseParam;
 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;
@@ -552,19 +554,13 @@
                     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)) {
+//                            outStockService.getOrderOutTaskItem(orderOutTaskParam,param.getOrderItemId());
                             //鍑哄簱
-                            List<OutStockToTaskParams> param = new ArrayList<>();
-                            for (WkOrderItem wkOrderItem : orderItems){
-                                OutStockToTaskParams outStockToTaskParams = new OutStockToTaskParams(wkOrderItem);
-                                outStockToTaskParams.setLocCode(loc.getCode());
-                                outStockToTaskParams.setSiteNo(syncOrder.getStationId());
-                                param.add(outStockToTaskParams);
-                            }
 //                        boolean itemsCheck = waitPakinService.mergeItemsCheck(pakinParam, loginUserId);
 //                            if (true) {
                             CompletableFuture.runAsync(() -> {
                                 try {
-                                    asyncOutboundExecutionWcs(param, wkOrder.getId(), loginUserId);
+                                    asyncOutboundExecutionWcs(syncOrder.getStationId(), wkOrder.getId(), loginUserId);
                                 } catch (Exception e) {
                                     log.warn("璁㈠崟 {} 寮�濮嬭嚜鍔ㄥ嚭搴�", syncOrder.getOrderNo());
                                 }
@@ -613,29 +609,31 @@
     }
 
     @Async
-    public void asyncOutboundExecutionWcs(List<OutStockToTaskParams> param, Long orderId, Long loginUserId) {
+    public void asyncOutboundExecutionWcs(String stationId ,Long orderId, Long loginUserId) {
         try {
-//            int i = 0;
-//            List<OutStockToTaskParams> tasks = new ArrayList<>();
-//            while (true) {
-//                tasks = new ArrayList<>();
-//                i++;
-//                if (i > 5) return;
-//                Thread.sleep(3000);
-//                for (OutStockToTaskParams taskParam : new OutStockToTaskParams[param.size()]) {
-//                    if (StringUtils.isNotBlank(taskParam.getLocCode())) {
-//                        tasks.add(taskParam);
-//                    }
-//                }
-//                break;
-//            }
-            if (param.isEmpty()){
+
+            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){
+                OutStockToTaskParams outStockToTaskParams = new OutStockToTaskParams(orderOutItemDto);
+                outStockToTaskParams.setId(orderOutItemDto.getLocItem().getId());
+//                                outStockToTaskParams.setOutQty(locItemServiceOne.getAnfme());
+                outStockToTaskParams.setLocCode(orderOutItemDto.getLocItem().getLocCode());
+                outStockToTaskParams.setBarcode(orderOutItemDto.getLocItem().getBarcode());
+                outStockToTaskParams.setSiteNo(stationId);
+                tasks.add(outStockToTaskParams);
+            }
+            if (tasks.isEmpty()){
                 log.warn("璁㈠崟ID {} 娌℃湁鎵惧埌鍙嚭搴撴槑缁嗭紝璺宠繃鑷姩鍑哄簱", orderId);
                 return;
             }
-            outStockService.genOutStockTask(param, loginUserId, orderId);
+            outStockService.genOutStockTask(tasks, loginUserId, orderId);
 
-            log.info("璁㈠崟ID {} 鑷姩鍑哄簱锛屽叡澶勭悊 {} 涓槑缁�", orderId, param.size());
+            log.info("璁㈠崟ID {} 鑷姩鍑哄簱锛屽叡澶勭悊 {} 涓槑缁�", orderId, tasks.size());
         } catch (Exception e) {
             log.error("璁㈠崟ID {} 鑷姩鍑哄簱: {}", orderId, e.getMessage(), e);
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/OutStockToTaskParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/OutStockToTaskParams.java
index e3ae7c3..5a60f7b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/OutStockToTaskParams.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/OutStockToTaskParams.java
@@ -2,6 +2,7 @@
 
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.vincent.rsf.server.manager.controller.dto.OrderOutItemDto;
 import com.vincent.rsf.server.manager.entity.WkOrderItem;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -48,9 +49,22 @@
 
     public OutStockToTaskParams(){};
 
+    public OutStockToTaskParams(OrderOutItemDto orderOutItemDto){
+//        this.locCode = w;//搴撲綅
+//        this.id = wkOrderItem.getId();
+        this.barcode = orderOutItemDto.getBarcode();
+        this.batch = orderOutItemDto.getBatch();
+        this.unit = orderOutItemDto.getUnit();
+        this.platOrderCode = orderOutItemDto.getPlatOrderCode();
+        this.fieldsIndex = orderOutItemDto.getFieldsIndex();
+        this.extendFields = orderOutItemDto.getExtendFields();
+        this.outQty = orderOutItemDto.getAnfme();
+//        this.siteNo = siteNo;
+    };
+
     public OutStockToTaskParams(WkOrderItem wkOrderItem){
 //        this.locCode = w;//搴撲綅
-        this.id = wkOrderItem.getId();
+//        this.id = wkOrderItem.getId();
         this.barcode = wkOrderItem.getBarcode();
         this.batch = wkOrderItem.getBatch();
         this.unit = wkOrderItem.getPurUnit();
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/OutStockService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/OutStockService.java
index 358b0f9..e17259f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/OutStockService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/OutStockService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.server.manager.controller.dto.OrderOutItemDto;
 import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
 import com.vincent.rsf.server.manager.controller.params.GenWaveParams;
 import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam;
@@ -26,6 +27,7 @@
 
     R getOrderOutTaskItem(OrderOutTaskParam param);
     R getOrderOutTaskItem(OrderOutTaskParam param,Long orderItemId);
+    List<OrderOutItemDto> getOrderOutTaskItemAuto(OrderOutTaskParam param);
 
     R genOutStockTask(List<OutStockToTaskParams> params, Long loginUserId, Long outId);
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
index c4a7d0c..04d3d0e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -481,6 +481,24 @@
         return R.ok(locItems);
     }
 
+    @Override
+    public List<OrderOutItemDto>  getOrderOutTaskItemAuto(OrderOutTaskParam param) {
+        if (Cools.isEmpty(param.getWaveId())) {
+            throw new CoolException("绛栫暐鍙傛暟涓虹┖");
+        }
+        if (Cools.isEmpty(param.getOrderId())) {
+            throw new CoolException("鍗曟嵁ID涓虹┖");
+        }
+        WaveRule waveRule = waveRuleService.getOne(new LambdaQueryWrapper<WaveRule>()
+                .eq(WaveRule::getId, param.getWaveId()));
+        if (Cools.isEmpty(waveRule)) {
+            throw new CoolException("鏈壘鍒板綋鍓嶇瓥鐣�");
+        }
+        List<OrderOutItemDto> locItems = null;
+        locItems = getOutOrderList(param.getOrderId(), waveRule);
+        return locItems;
+    }
+
     /**
      * 鐢熸垚鍑哄簱浠诲姟
      *

--
Gitblit v1.9.1