From 41381a9702a423e72451e9930b0faa51a29e14f8 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期四, 19 三月 2026 18:52:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/plugin/NormalProcess.java |   23 +++++++++++++----------
 1 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/core/plugin/NormalProcess.java b/src/main/java/com/zy/core/plugin/NormalProcess.java
index 5973403..0d4d498 100644
--- a/src/main/java/com/zy/core/plugin/NormalProcess.java
+++ b/src/main/java/com/zy/core/plugin/NormalProcess.java
@@ -4,7 +4,6 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.core.common.SpringUtils;
 import com.zy.asrs.domain.param.CreateInTaskParam;
 import com.zy.asrs.entity.BasCrnp;
 import com.zy.asrs.entity.BasDevp;
@@ -305,14 +304,18 @@
                 }
             }
 
-            try {
-                WmsOperateUtils wmsOperateUtils = SpringUtils.getBean(WmsOperateUtils.class);
-                if (wmsOperateUtils != null) {
-                    wmsOperateUtils.reportCrnDb110Status(crnProtocol.getCrnNo(), currentIndices);
-                }
-            } catch (Exception e) {
-                log.error("Report Crn Db110 Status Fail", e);
+            if (currentIndices.isEmpty()) {
+                continue;
             }
+
+            String reportLockKey = RedisKeyType.REPORT_CRN_DB110_STATUS_LIMIT.key + crnProtocol.getCrnNo();
+            if (redisUtil.get(reportLockKey) != null) {
+                continue;
+            }
+
+            long reportLockSeconds = Math.max(60L, currentIndices.size() * 35L);
+            redisUtil.set(reportLockKey, "lock", reportLockSeconds);
+            wmsOperateUtils.reportCrnDb110StatusAsync(crnProtocol.getCrnNo(), new ArrayList<>(currentIndices));
         }
     }
 
@@ -332,7 +335,7 @@
             Integer stationId = data.getInteger("stationId");
             Integer deviceNo = data.getInteger("deviceNo");
 
-            Object lock = redisUtil.get(RedisKeyType.RECEIVE_IN_TASK_CHANGE_STATION_TASK_SEND_LIMIT.key + stationId);
+            Object lock = redisUtil.get(RedisKeyType.SEND_LIMIT_RECEIVE_IN_TASK_CHANGE_STATION_TASK.key + stationId);
             if(lock != null){
                 continue;
             }
@@ -368,7 +371,7 @@
 
             //缂撳瓨鍛戒护鐩稿悓锛屼笅鍙戝懡浠ゆ敼鍙樺叆搴撲换鍔″彿淇℃伅
             MessageQueue.offer(SlaveType.Devp, deviceNo, new Task(2, command));
-            redisUtil.set(RedisKeyType.RECEIVE_IN_TASK_CHANGE_STATION_TASK_SEND_LIMIT.key + stationId, "lock", 5);
+            redisUtil.set(RedisKeyType.SEND_LIMIT_RECEIVE_IN_TASK_CHANGE_STATION_TASK.key + stationId, "lock", 5);
         }
 
     }

--
Gitblit v1.9.1