From c9944fa15889ef97236960fcc9370a582cd86267 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 17 三月 2026 14:37:34 +0800
Subject: [PATCH] 1.wcs下发出库任务方式需更改,先采集数据再一次性下发:下发组batch和序号batch_seq 2.库位分配逻辑需优化,目前分配单个巷道 3.

---
 src/main/java/com/zy/asrs/controller/OpenController.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 47 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 19c03a1..deba829 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -14,10 +14,11 @@
 import com.zy.asrs.service.OpenService;
 import com.zy.asrs.service.WaitPakinService;
 import com.zy.asrs.service.WrkDetlService;
+import com.zy.asrs.service.WrkMastLogService;
+import com.zy.asrs.service.WrkMastService;
 import com.zy.common.model.DetlDto;
 import com.zy.common.model.LocDetlDto;
 import com.zy.common.model.enums.WorkNoType;
-import com.zy.common.utils.Synchro;
 import com.zy.common.web.BaseController;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,6 +51,10 @@
     private WaitPakinService waitPakinService;
     @Autowired
     private WrkDetlService wrkDetlService;
+    @Autowired
+    private WrkMastService wrkMastService;
+    @Autowired
+    private WrkMastLogService wrkMastLogService;
 
 //    @PostMapping("/order/matSync/default/v1")
 ////    @AppAuth(memo = "鍟嗗搧淇℃伅鍚屾鎺ュ彛")
@@ -425,7 +430,8 @@
      */
     @PostMapping("/comb/auth")
     public synchronized R comb(@RequestBody ArrayList<MesToCombParam> param){
-        List<MesToCombReturnParam> errorComb = Lists.newArrayList();
+        List<MesToCombParam> errorComb = Lists.newArrayList();
+        List<MesToCombParam> validComb = Lists.newArrayList();
         for (MesToCombParam mesToCombParam : param) {
 //            if (mesToCombParam.getPalletId().length() != 8) {
 //                return R.error(mesToCombParam.getPalletId()+"-璇ユ墭鐩樼爜涓嶄负8浣�");
@@ -438,18 +444,18 @@
             int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", mesToCombParam.getPalletId()));
 //        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getPalletId()));
             if (countLoc > 0 || countWrk > 0) {
-                MesToCombReturnParam mesToCombReturnParam = new MesToCombReturnParam();
-                Synchro.Copy(mesToCombParam, mesToCombReturnParam);
-                errorComb.add(mesToCombReturnParam);
+                errorComb.add(mesToCombParam);
 //                return R.error(mesToCombParam.getPalletId()+"-宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�");
+                continue;
             }
             // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
             if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                     eq("zpallet", mesToCombParam.getPalletId()).eq("io_status", "N")) > 0) {
                 waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", mesToCombParam.getPalletId()));
             }
+            validComb.add(mesToCombParam);
         }
-        for (MesToCombParam mesToCombParam : param) {
+        for (MesToCombParam mesToCombParam : validComb) {
             openService.mesToComb(mesToCombParam);
         }
         // TODO:寰呮祴璇�
@@ -466,20 +472,48 @@
 
     @PostMapping("/outOrder")
     public synchronized R outOrder (@RequestBody ArrayList<OutTaskParam> params){
-        List<OutTaskReturnParam> errorOutOrders = Lists.newArrayList();
+        if (Cools.isEmpty(params)) {
+            return R.error("璇锋眰鍙傛暟涓嶈兘涓虹┖");
+        }
+        Set<String> orderIds = new LinkedHashSet<>();
+        for (OutTaskParam outTaskParam : params) {
+            if (Cools.isEmpty(outTaskParam) || Cools.isEmpty(outTaskParam.getOrderId())) {
+                return R.error("鍑哄簱鍗曞彿涓嶈兘涓虹┖");
+            }
+            orderIds.add(outTaskParam.getOrderId());
+        }
+        if (!orderIds.isEmpty()) {
+            Set<String> existedOrderIds = new LinkedHashSet<>();
+            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("user_no", orderIds));
+            for (WrkMast wrkMast : wrkMasts) {
+                if (!Cools.isEmpty(wrkMast.getUserNo())) {
+                    existedOrderIds.add(wrkMast.getUserNo());
+                }
+            }
+            List<WrkMastLog> wrkMastLogs = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>().in("user_no", orderIds));
+            for (WrkMastLog wrkMastLog : wrkMastLogs) {
+                if (!Cools.isEmpty(wrkMastLog.getUserNo())) {
+                    existedOrderIds.add(wrkMastLog.getUserNo());
+                }
+            }
+            if (!existedOrderIds.isEmpty()) {
+                return R.error("鍑哄簱鍗曞彿宸插瓨鍦ㄤ换鍔℃。鎴栦换鍔″巻鍙叉。锛�" + String.join("锛�", existedOrderIds));
+            }
+        }
+
+        List<OutTaskParam> errorOutOrders = Lists.newArrayList();
+        List<OutTaskParam> validOutOrders = Lists.newArrayList();
         for (OutTaskParam outTaskParam : params) {
             // TODO:寰呮脯瑭︼紝鏍¢搴瓨淇℃伅锛屼笉瀛樺湪鍓囪繑鍥�
             int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", outTaskParam.getPalletId()));
             if (countLoc == 0){
-                OutTaskReturnParam outTaskReturnParam = new OutTaskReturnParam();
-                Synchro.Copy(outTaskParam, outTaskReturnParam);
-                errorOutOrders.add(outTaskReturnParam);
-
-                params.remove(outTaskParam);
+                errorOutOrders.add(outTaskParam);
+                continue;
             }
+            validOutOrders.add(outTaskParam);
         }
 
-        for (OutTaskParam outTaskParam : params) {
+        for (OutTaskParam outTaskParam : validOutOrders) {
             R r = openService.outOrder(outTaskParam);
             if (!r.get("code").equals(200)){
                 return r;

--
Gitblit v1.9.1