From 5509bb7a46ae4bf26a7b00e9d9f17ab7a0ab94dd Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 20 七月 2025 22:14:38 +0800
Subject: [PATCH] 成品库出入库优化堆垛机分配

---
 src/main/java/com/zy/common/service/CommonService.java |   19 +++++++++++++++++--
 1 files changed, 17 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..4a39889 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -329,7 +329,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 +342,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 +419,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