From 343c122adb54e01d4cd05ea382819bf071330589 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 06 四月 2026 18:30:18 +0800
Subject: [PATCH] #入库请求优化,先检查异常

---
 src/main/java/com/zy/core/plugin/store/StoreInTaskGenerationService.java |   65 ++++++++++++++------------------
 1 files changed, 28 insertions(+), 37 deletions(-)

diff --git a/src/main/java/com/zy/core/plugin/store/StoreInTaskGenerationService.java b/src/main/java/com/zy/core/plugin/store/StoreInTaskGenerationService.java
index 9ca0352..fc921fa 100644
--- a/src/main/java/com/zy/core/plugin/store/StoreInTaskGenerationService.java
+++ b/src/main/java/com/zy/core/plugin/store/StoreInTaskGenerationService.java
@@ -7,7 +7,6 @@
 import com.zy.asrs.domain.param.CreateInTaskParam;
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.common.model.StartupDto;
 import com.zy.common.service.CommonService;
@@ -18,6 +17,8 @@
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.StationObjModel;
 import com.zy.core.model.protocol.StationProtocol;
+import com.zy.core.task.MainProcessLane;
+import com.zy.core.task.MainProcessTaskSubmitter;
 import com.zy.core.thread.StationThread;
 import com.zy.core.utils.StationOperateProcessUtils;
 import com.zy.core.utils.WmsOperateUtils;
@@ -25,16 +26,12 @@
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 @Service
 public class StoreInTaskGenerationService {
     private static final int APPLY_IN_TASK_TIMEOUT_SECONDS = 5;
 
-    @Autowired
-    private BasDevpService basDevpService;
-    @Autowired
     private WrkMastService wrkMastService;
     @Autowired
     private StationOperateProcessUtils stationOperateProcessUtils;
@@ -44,37 +41,13 @@
     private WmsOperateUtils wmsOperateUtils;
     @Autowired
     private CommonService commonService;
+    @Autowired
+    private MainProcessTaskSubmitter mainProcessTaskSubmitter;
 
     /**
      * 淇濈暀褰撳墠鎸夌珯鐐� lane 骞跺彂鐨勮兘鍔涳紝鍚屾椂鐢ㄤ竴涓畝鍗曡鏁伴伩鍏嶅苟鍙戠敓鎴愭妸绔欑偣浠诲姟鏁伴《绌夸笂闄愩��
      */
     private int inFlightGenerateCount = 0;
-
-    public void generate(StoreInTaskPolicy policy) {
-        try {
-            if (!policy.isEnabled()) {
-                return;
-            }
-
-            HashMap<String, String> systemConfigMap = getSystemConfigMap();
-            if (systemConfigMap == null) {
-                return;
-            }
-            if (!hasAvailableStationTaskCapacity(systemConfigMap)) {
-                return;
-            }
-
-            List<BasDevp> basDevps = basDevpService.list(new QueryWrapper<>());
-            for (BasDevp basDevp : basDevps) {
-                List<StationObjModel> barcodeStations = policy.getBarcodeStations(basDevp);
-                for (StationObjModel stationObjModel : barcodeStations) {
-                    generateByStation(policy, basDevp, stationObjModel, systemConfigMap);
-                }
-            }
-        } catch (Exception e) {
-            News.error("鐢熸垚鍏ュ簱浠诲姟寮傚父锛宲olicy={}", policy.getPolicyName(), e);
-        }
-    }
 
     public void generate(StoreInTaskPolicy policy, BasDevp basDevp, StationObjModel stationObjModel) {
         try {
@@ -97,16 +70,34 @@
         }
     }
 
+    public void submitGenerateStoreTask(StoreInTaskPolicy policy,
+                                        BasDevp basDevp,
+                                        StationObjModel stationObjModel,
+                                        long minIntervalMs,
+                                        Runnable task) {
+        submitGenerateStoreTask(policy, basDevp, stationObjModel, MainProcessLane.GENERATE_STORE, minIntervalMs, task);
+    }
+
+    public void submitGenerateStoreTask(StoreInTaskPolicy policy,
+                                        BasDevp basDevp,
+                                        StationObjModel stationObjModel,
+                                        MainProcessLane lane,
+                                        long minIntervalMs,
+                                        Runnable task) {
+        Integer stationId = stationObjModel == null ? null : stationObjModel.getStationId();
+        mainProcessTaskSubmitter.submitKeyedSerialTask(
+                lane,
+                stationId,
+                "generateStoreWrkFile",
+                minIntervalMs,
+                task
+        );
+    }
+
     private void generateByStation(StoreInTaskPolicy policy, BasDevp basDevp, StationObjModel stationObjModel,
                                    HashMap<String, String> systemConfigMap) {
         StoreInTaskContext context = buildContext(basDevp, stationObjModel);
         if (context == null) {
-            return;
-        }
-        if (!policy.matchCandidate(context)) {
-            return;
-        }
-        if (!policy.beforeApply(context)) {
             return;
         }
 

--
Gitblit v1.9.1