From ec92a309b68b1e7029196d9d0ea0ac7e2badb5a7 Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期日, 03 八月 2025 09:32:12 +0800
Subject: [PATCH] 设置入空桶库输送线缓存任务数

---
 src/main/java/com/zy/common/service/CommonService.java |   35 +++++++++++++++++++++++++++++++++--
 1 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 8c149c2..3be61f8 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -16,6 +16,8 @@
 import com.zy.common.model.StartupDto;
 import com.zy.common.properties.SlaveProperties;
 import com.zy.common.web.param.SearchLocParam;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -62,6 +64,9 @@
 
     @Resource
     private LocMastMapper locMastMapper;
+
+    @Resource
+    private ConfigService configService;
 
     /**
      * 鐢熸垚宸ヤ綔鍙�
@@ -169,6 +174,17 @@
 
         // 鍏ョ┖妗跺簱
         if (staDescId == 1 && locArea == 2) {
+            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "emptyBucketInCacheCount").eq("status", 1));
+            if (config != null && !Cools.isEmpty(config.getValue())) { // 闄愬埗鍏ョ┖妗跺簱杈撻�佺嚎缂撳瓨浠诲姟鏁帮紝閬垮厤鍫靛
+                int value = Integer.parseInt(config.getValue());
+                List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<BasDevp>().in("dev_no", 1044, 1045, 1046, 1047, 1048, 1049, 1050).ne("wrk_no", 0));
+                long count = basDevps.stream().map(BasDevp::getWrkNo).distinct().count();
+                log.info("鍏ョ┖妗跺簱杈撻�佺嚎缂撳瓨浠诲姟鏁�:{}",count);
+                if(count >= value) {
+                    log.error("-----鍏ョ┖妗跺簱杈撻�佺嚎缂撳瓨浠诲姟鏁帮細{}锛岃秴閰嶇疆缂撳瓨鏁帮細{}----",count,value);
+                    throw new CoolException("鍏ョ┖妗跺簱杈撻�佺嚎缂撳瓨浠诲姟鏁帮細"+count+"锛岃秴閰嶇疆缂撳瓨鏁帮細" + value);
+                }
+            }
             List<WrkMast> wrkMastList = wrkMastMapper.selectLastInEmptyLoc(); // 鍓嶉潰鍏ョ┖妗跺簱鐨勪换鍔�(鏈墽琛屽爢鍨涙満鍏ュ簱)
 
             if (wrkMastList.size() == 0) {
@@ -329,7 +345,7 @@
             // 鍏ユ垚鍝佸簱鎽嗘斁瑙勫垯 鍒ゆ柇鍙敤鍫嗗灈鏈鸿嚜鍔�-鏃犳姤璀� 鎸夊眰鍒楁帓椤哄簭浠庝笅寰�涓婏紝浠庡墠寰�鍚庢帓 鍏堟繁搴撲綅鍦ㄦ祬搴撲綅 鏈�涓婇潰涓�灞傚彧鑳芥斁208L妗�(鍓╀綑搴撲綅杈惧埌涓�涓槇鍊�208L灏卞厛浠庢渶涓婇潰寮�濮嬫斁锛屼笅闈㈢暀缁欏叾浠栬揣鐗�-鍚庣画浼樺寲)
 
             List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3).eq("crn_err", 0).in("crn_no",1,2,3)
-                    .eq("in_enable","Y").orderBy("crn_no",false));
+                    .eq("in_enable","Y"));
             if (basCrnps.size() == 0) {
                 log.error("鍏ュ簱璇锋眰搴撲綅澶辫触锛屾病鏈夎仈鏈哄爢鍨涙満鎴栧爢鍨涙満寮傚父");
                 throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛屾病鏈夎仈鏈哄爢鍨涙満鎴栧爢鍨涙満寮傚父");
@@ -342,7 +358,12 @@
                 basCrnpList.add(basCrnp);
             }
 
-            basCrnpList = basCrnpList.stream().sorted(Comparator.comparing(BasCrnp::getWrkNo)).collect(Collectors.toList());
+            basCrnpList = basCrnpList.stream().sorted(Comparator.comparing(BasCrnp::getWrkNo).thenComparing(BasCrnp::getCrnNo,((o1, o2) -> {
+                // 瀹氫箟 2 鈫� 3 鈫� 1 鐨勪紭鍏堢骇
+                int order1 = getCustomOrder(o1);
+                int order2 = getCustomOrder(o2);
+                return Integer.compare(order1, order2);
+            }))).collect(Collectors.toList());
 
             // 鍏ュ簱妗跺瀷
             String model = findLocNoAttributeVo.getModel();
@@ -414,6 +435,16 @@
         return startupDto;
     }
 
+    // 杈呭姪鏂规硶锛氬畾涔� crn_no 鐨勬帓搴忎紭鍏堢骇
+    private static int getCustomOrder(Integer crnNo) {
+        switch (crnNo) {
+            case 2: return 1;  // 2 鎺掔涓�
+            case 3: return 2;  // 3 鎺掔浜�
+            case 1: return 3;  // 1 鎺掔涓�
+            default: return 4; // 鍏朵粬鍊兼帓鏈�鍚庯紙濡傛灉鏈夛級
+        }
+    }
+
     @Transactional(propagation = Propagation.REQUIRED)
     public StartupDto getLocNo(SearchLocParam param, Integer staNo) {
 

--
Gitblit v1.9.1