From ff66ddf96807fac02e01c7d2ecdfd1ba808af9c5 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 25 四月 2026 18:42:10 +0800
Subject: [PATCH] wms下发任务给wcs时上锁,防止erp发送中止任务

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 20049bc..fb7b29f 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -14,6 +14,7 @@
 import com.zy.asrs.mapper.TagMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.task.support.WorkPublishLockKeys;
 import com.zy.asrs.utils.MatUtils;
 import com.zy.asrs.utils.OrderInAndOutUtil;
 import com.zy.asrs.utils.Utils;
@@ -28,6 +29,7 @@
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import com.zy.common.utils.NodeUtils;
+import com.zy.common.utils.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -121,6 +123,8 @@
     private WcsApiService wcsApiService;
     @Autowired
     private WorkService workService;
+    @Autowired
+    private RedisUtil redisUtil;
     @Autowired
     private BasCrnpService basCrnpService;
     @Autowired
@@ -406,6 +410,10 @@
         }
         if (param.getExecute() == null) {
             throw new CoolException("execute涓嶈兘涓虹┖");
+        }
+        if (Objects.equals(param.getExecute(), 2)
+                && redisUtil.hasKey(WorkPublishLockKeys.outboundUserNoLock(param.getOrderId()))) {
+            return R.error("姝e湪涓嬪彂浠诲姟缁橶CS锛屾棤娉曚腑姝�");
         }
 
         List<WrkMast> activeTasks = findActiveOutboundTasks(param.getOrderId());
@@ -1599,7 +1607,7 @@
             // 7.11锛歟ntryWmsCode銆乷utDoorNo 澶嶇敤鏄庣粏澶囩敤瀛楁銆�
             wrkDetl.setStandby1(param.getEntryWmsCode());
             wrkDetl.setStandby2(param.getOutDoorNo());
-            wrkDetl.setSupp(i+"/"+count);
+            wrkDetl.setSupp(count+"");
             wrkDetl.setTeu(param.getTeu());
 
             if (!wrkDetlService.insert(wrkDetl)) {
@@ -1627,7 +1635,7 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R outOrderBatch(Map<String, List<OutTaskParam>> linesByBatchSeq) {
+    public R outOrderBatch(Map<String, List<OutTaskParam>> linesByBatchSeq,int count) {
         int i = 0;
         for (Map.Entry<String, List<OutTaskParam>> entry : linesByBatchSeq.entrySet()) {
             for (OutTaskParam outTaskParam : entry.getValue()) {
@@ -1636,8 +1644,7 @@
                 }else{
                     i++;
                 }
-                int count = entry.getValue().size();
-                int teu = outTaskParam.getTeu();
+                int teu = Cools.isEmpty(outTaskParam.getTeu())?0:outTaskParam.getTeu();
                 R r = outOrder(outTaskParam, count, teu ,i);
                 if (!Objects.equals(r.get("code"), 200)) {
                     throw new CoolException("鍑哄簱寤哄崟澶辫触");

--
Gitblit v1.9.1