From bcb19e8c93c3cabf0d8eb3ee34ed819b3c5a10ef Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期一, 25 十一月 2024 13:14:11 +0800
Subject: [PATCH] #优化地图

---
 src/main/java/com/zy/asrs/utils/Utils.java |  717 ++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 387 insertions(+), 330 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 0d5ef85..5dc6c20 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -1,12 +1,23 @@
 package com.zy.asrs.utils;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Arith;
 import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.AdjDetl;
+import com.zy.asrs.service.AdjDetlService;
 import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
 
 import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -145,344 +156,46 @@
     }
 
     /**
-     * 褰撴绱㈠埌鍙屾繁搴撲綅鐨勬祬搴撲綅鏃讹紝濡傛灉娣卞簱浣嶆棤璐э紝鍒欐斁鍏ュ搴旂殑娣卞簱浣�
+     * 閫氳繃搴撲綅鍙疯幏鍙� 鍒�
      */
-    public static void toDeepIfEmptyByShallow(String shallowLoc) {
-        int row = getRow(shallowLoc);
-        int remainder = (int) Arith.remainder(row, 4);
-        int targetRow = 0;
-        if (remainder == 2) {
-            targetRow = row - 1;
-        } else if (remainder == 3) {
-            targetRow = row + 1;
-        } else {
-            throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖");
-        }
-        String targetLoc = zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2);
-
-    }
-
-    public static Integer getOutermostRow(String locNo, Boolean pakin){
-        int row = getRow(locNo);
-        switch (row) {
-            case 1:
-            case 2:
-            case 3:
-                return 3;
-            case 4:
-            case 5:
-            case 6:
-            case 7:
-                return 4;
-            case 8:
-            case 9:
-            case 10:
-            case 11:
-                return 11;
-            case 12:
-            case 13:
-            case 14:
-                return 12;
-            case 15:
-            case 16:
-            case 17:
-            case 18:
-                return 18;
-            case 19:
-            case 20:
-            case 21:
-                return 19;
-            default:
-                throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
-        }
-    }
-
-    public static Integer getInnermostRow(String locNo){
-        int row = getRow(locNo);
-        switch (row) {
-            case 1:
-            case 2:
-            case 3:
-                return 1;
-            case 4:
-            case 5:
-            case 6:
-            case 7:
-                return 7;
-            case 8:
-            case 9:
-            case 10:
-            case 11:
-                return 8;
-            case 12:
-            case 13:
-            case 14:
-                return 14;
-            case 15:
-            case 16:
-            case 17:
-            case 18:
-                return 15;
-            case 19:
-            case 20:
-            case 21:
-                return 21;
-            default:
-                throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
-        }
-    }
-
-    public static List<Integer> getGroupLoc(Integer row){
-        switch (row) {
-            case 1:
-            case 2:
-            case 3:
-                return new ArrayList<Integer>() {{
-                    add(1);
-                    add(2);
-                    add(3);
-                }};
-            case 4:
-            case 5:
-            case 6:
-            case 7:
-                return new ArrayList<Integer>() {{
-                    add(4);
-                    add(5);
-                    add(6);
-                    add(7);
-                }};
-            case 8:
-            case 9:
-            case 10:
-            case 11:
-                return new ArrayList<Integer>() {{
-                    add(8);
-                    add(9);
-                    add(10);
-                    add(11);
-                }};
-            case 12:
-            case 13:
-            case 14:
-                return new ArrayList<Integer>() {{
-                    add(12);
-                    add(13);
-                    add(14);
-                }};
-            case 15:
-            case 16:
-            case 17:
-            case 18:
-                return new ArrayList<Integer>() {{
-                    add(15);
-                    add(16);
-                    add(17);
-                    add(18);
-            }};
-            case 19:
-            case 20:
-            case 21:
-                return new ArrayList<Integer>() {{
-                    add(19);
-                    add(20);
-                    add(21);
-                }};
-            default:
-                throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
-        }
-    }
-
-    // 娉ㄦ剰椤哄簭
-    public static List<String> getGroupOuterLoc(String locNo){
-        int row = getRow(locNo);
-        switch (row) {
-            case 1:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(3), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(2), 2) + locNo.substring(2));
-                }};
-            case 2:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(3), 2) + locNo.substring(2));
-                }};
-            case 3:
-            case 4:
-            case 11:
-            case 12:
-            case 18:
-            case 19:
-                return new ArrayList<>();
-            case 5:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(4), 2) + locNo.substring(2));
-                }};
-            case 6:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(4), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(5), 2) + locNo.substring(2));
-                }};
-            case 7:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(4), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(5), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(6), 2) + locNo.substring(2));
-                }};
-            case 8:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(11), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(10), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(9), 2) + locNo.substring(2));
-                }};
-            case 9:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(11), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(10), 2) + locNo.substring(2));
-                }};
-            case 10:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(11), 2) + locNo.substring(2));
-                }};
-            case 13:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(12), 2) + locNo.substring(2));
-                }};
-            case 14:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(12), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(13), 2) + locNo.substring(2));
-                }};
-            case 15:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(18), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(17), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(16), 2) + locNo.substring(2));
-                }};
-            case 16:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(18), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(17), 2) + locNo.substring(2));
-                }};
-            case 17:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(18), 2) + locNo.substring(2));
-                }};
-            case 20:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(19), 2) + locNo.substring(2));
-                }};
-            case 21:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(19), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(20), 2) + locNo.substring(2));
-                }};
-            default:
-                throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
-        }
-    }
-
-    // 娉ㄦ剰椤哄簭
-    public static List<String> getGroupInsideLoc(String locNo){
-        int row = getRow(locNo);
-        switch (row) {
-            case 1:
-            case 21:
-            case 14:
-            case 15:
-            case 7:
-            case 8:
-                return new ArrayList<>();
-            case 2:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(1), 2) + locNo.substring(2));
-                }};
-            case 3:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(1), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(2), 2) + locNo.substring(2));
-                }};
-            case 4:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(7), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(6), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(5), 2) + locNo.substring(2));
-                }};
-            case 5:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(7), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(6), 2) + locNo.substring(2));
-                }};
-            case 6:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(7), 2) + locNo.substring(2));
-                }};
-            case 9:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(8), 2) + locNo.substring(2));
-                }};
-            case 10:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(8), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(9), 2) + locNo.substring(2));
-                }};
-            case 11:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(8), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(9), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(10), 2) + locNo.substring(2));
-                }};
-            case 12:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(14), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(13), 2) + locNo.substring(2));
-                }};
-            case 13:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(14), 2) + locNo.substring(2));
-                }};
-            case 16:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(15), 2) + locNo.substring(2));
-                }};
-            case 17:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(15), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(16), 2) + locNo.substring(2));
-                }};
-            case 18:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(15), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(16), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(17), 2) + locNo.substring(2));
-                }};
-            case 19:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(21), 2) + locNo.substring(2));
-                    add(zerofill(String.valueOf(20), 2) + locNo.substring(2));
-                }};
-            case 20:
-                return new ArrayList<String>() {{
-                    add(zerofill(String.valueOf(21), 2) + locNo.substring(2));
-                }};
-            default:
-                throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
-        }
-    }
-
-    public static Integer getGroupRow(String locNo, Boolean pakin){
-        int row = getRow(locNo);
-        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
-            return pakin?17:2;
-        }
-        if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
-            return pakin?30:18;
+    public static int getBay(String locNo) {
+        if (!Cools.isEmpty(locNo)) {
+            return Integer.parseInt(locNo.substring(2, 5));
         }
         throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
     }
 
+    /**
+     * 閫氳繃搴撲綅鍙疯幏鍙� 灞�
+     */
+    public static int getLev(String locNo) {
+        if (!Cools.isEmpty(locNo)) {
+            return Integer.parseInt(locNo.substring(5, 7));
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
 
+    /**
+     * 閫氳繃搴撲綅鍙疯幏鍙� 灞�
+     */
+    public static int getAgvLev(String locNo) {
+        if (!Cools.isEmpty(locNo)) {
+            return Integer.parseInt(locNo.substring(11, 13));
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+    public static String getLocNo(Number row, Number bay, Number lev) {
+        return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 3) + zerofill(String.valueOf(lev), 2);
+    }
+
+    /**
+     * 鑾峰彇搴撲綅缁�
+     * @param locNo 搴撲綅鍙�
+     */
     public static List<String> getGroupLoc(String locNo){
         int row = getRow(locNo);
+        int bay = getBay(locNo);
         if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
             List<String> result = new ArrayList<>();
             for (Integer row0 : CommonService.FIRST_GROUP_ROW_LIST) {
@@ -497,7 +210,351 @@
             }
             return result;
         }
+        if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) {
+                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+            }
+            Collections.reverse(result);
+            return result;
+        }
+        if (CommonService.FOURTH_GROUP_ROW_LIST.contains(row)) {
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.FOURTH_GROUP_ROW_LIST) {
+                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+            }
+            return result;
+        }
+        if (CommonService.FIFTH_GROUP_ROW_LIST.contains(row)) {
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.FIFTH_GROUP_ROW_LIST) {
+                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+            }
+            return result;
+        }
+        if (CommonService.SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.SIXTH_GROUP_ROW_LIST) {
+                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+            }
+            Collections.reverse(result);
+            return result;
+        }
+        if (CommonService.SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.SEVENTH_GROUP_ROW_LIST) {
+                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+            }
+            return result;
+        }
+        if (CommonService.EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.EIGHTH_GROUP_ROW_LIST) {
+                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+            }
+            return result;
+        }
         throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
     }
 
+    public static void main(String[] args) {
+        System.out.println(JSON.toJSONString(getGroupInnerLoc("1505908")));
+    }
+
+    /**
+     * 鑾峰彇娣辨祬搴撲綅缁�
+     * @param locNo 搴撲綅鍙�
+     * @return
+     */
+    public static List<String> getGroupDeepLoc(String locNo){
+        int row = getRow(locNo);
+        int bay = getBay(locNo);
+
+        //(1,3,4,10,11)娌℃湁澶栦晶鏂瑰悜搴撲綅缁�,(13,14,16)59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {//1鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {//3-4鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {//6-7鎺�
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) {
+                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+            }
+            return result;
+        }
+        if (CommonService.FOURTH_GROUP_ROW_LIST.contains(row)) {//8鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.FIFTH_GROUP_ROW_LIST.contains(row)) {//10-11鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {//13-16鎺�59-61鍒楀渚ф柟鍚戝簱浣嶇粍
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.SIXTH_GROUP_ROW_LIST) {
+                result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+            }
+            return result;
+        }
+        if (CommonService.SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//13-14鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+            return new ArrayList<>();
+        }
+        if (CommonService.EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//16鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+            return new ArrayList<>();
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+    /**
+     * 鑾峰彇澶栦晶鏂瑰悜鐨勫簱浣嶇粍
+     * @param locNo 搴撲綅鍙�
+     * @return
+     */
+    public static List<String> getGroupOuterLoc(String locNo){
+        int row = getRow(locNo);
+        int bay = getBay(locNo);
+
+        //(1,3,4,10,11)娌℃湁澶栦晶鏂瑰悜搴撲綅缁�,(13,14,16)59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {//1鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {//3-4鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {//6-7鎺�
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) {
+                if (row0 < row) {
+                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+                }
+            }
+            return result;
+        }
+        if (CommonService.FOURTH_GROUP_ROW_LIST.contains(row)) {//8鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.FIFTH_GROUP_ROW_LIST.contains(row)) {//10-11鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {//13-16鎺�59-61鍒楀渚ф柟鍚戝簱浣嶇粍
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.SIXTH_GROUP_ROW_LIST) {
+                if (row0 < row) {
+                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+                }
+            }
+            return result;
+        }
+        if (CommonService.SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//13-14鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+            return new ArrayList<>();
+        }
+        if (CommonService.EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//16鎺�59鍒椾箣鍐呮病鏈夊渚ф柟鍚戝簱浣嶇粍
+            return new ArrayList<>();
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+    /**
+     * 鑾峰彇鍐呬晶鏂瑰悜鐨勫簱浣嶇粍
+     * @param locNo 搴撲綅鍙�
+     * @return
+     */
+    public static List<String> getGroupInnerLoc(String locNo){
+        int row = getRow(locNo);
+        int bay = getBay(locNo);
+
+        //(1,3,4,10,11)娌℃湁鍐呬晶鏂瑰悜搴撲綅缁�,(13,14,16)59鍒椾箣鍐呮病鏈夊唴渚ф柟鍚戝簱浣嶇粍
+        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {//1鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {//3-4鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) {//6-7鎺�
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) {
+                if (row0 > row) {
+                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+                }
+            }
+            return result;
+        }
+        if (CommonService.FOURTH_GROUP_ROW_LIST.contains(row)) {//8鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.FIFTH_GROUP_ROW_LIST.contains(row)) {//10-11鎺�
+            return new ArrayList<>();
+        }
+        if (CommonService.SIXTH_GROUP_ROW_LIST.contains(row) && (bay >= 59 && bay <= 61)) {//13-16鎺�59-61鍒楀唴渚ф柟鍚戝簱浣嶇粍
+            List<String> result = new ArrayList<>();
+            for (Integer row0 : CommonService.SIXTH_GROUP_ROW_LIST) {
+                if (row0 > row) {
+                    result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2));
+                }
+            }
+            return result;
+        }
+        if (CommonService.SEVENTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//13-14鎺�59鍒椾箣鍐呮病鏈夊唴渚ф柟鍚戝簱浣嶇粍
+            return new ArrayList<>();
+        }
+        if (CommonService.EIGHTH_GROUP_ROW_LIST.contains(row) && bay < 59) {//16鎺�59鍒椾箣鍐呮病鏈夊唴渚ф柟鍚戝簱浣嶇粍
+            return new ArrayList<>();
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+    //閫氳繃杈撻�佺珯鐐瑰彿鑾峰彇鎻愬崌鏈哄彿
+    public static Integer stnNoToLiftNo(Integer stnNo) {
+        //涓�鍙锋彁鍗囨満
+        ArrayList<Integer> one = new ArrayList<Integer>(){{
+            add(100);add(101);
+            add(200);add(201);
+            add(300);add(301);
+        }};
+
+        //浜屽彿鎻愬崌鏈�
+        ArrayList<Integer> two = new ArrayList<Integer>(){{
+            add(102);add(103);
+            add(202);add(203);
+            add(340);add(341);
+        }};
+
+        //涓夊彿鎻愬崌鏈�
+        ArrayList<Integer> three = new ArrayList<Integer>(){{
+            add(104);add(105);
+            add(204);add(205);
+            add(345);add(346);
+        }};
+
+        if (one.contains(stnNo)) {
+            return 1;
+        } else if (two.contains(stnNo)) {
+            return 2;
+        } else if (three.contains(stnNo)) {
+            return 3;
+        }
+
+
+        return null;
+    }
+
+    public static void wapperSetCondition(Wrapper wrapper, String column, String condition){
+        if(Cools.isEmpty(condition) || "null".equals(condition)){
+            wrapper.andNew().eq(column,"").or().isNull(column);
+        }else {
+            wrapper.andNew().eq(column,condition);
+        }
+    }
+
+    public static void confirmOnlyMat(Wrapper wrapper, String matnr, String csocode, String isoseq){
+        wapperSetCondition(wrapper,"matnr",matnr);
+        wapperSetCondition(wrapper,"csocode",csocode);
+        wapperSetCondition(wrapper,"isoseq",isoseq);
+    }
+
+    public static void confirmOnlyMat(Wrapper wrapper, String matnr, String batch, String threeCode, String deadTime){
+        wapperSetCondition(wrapper,"matnr",matnr);
+        wapperSetCondition(wrapper,"three_code",threeCode);
+        wapperSetCondition(wrapper,"dead_time",deadTime);
+        wapperSetCondition(wrapper,"batch",batch);
+    }
+
+    public static void confirmOnlyMat2(Wrapper wrapper, String orderNo, String matnr, String batch, String threeCode, String deadTime){
+        wapperSetCondition(wrapper,"matnr",matnr);
+        wapperSetCondition(wrapper,"order_no",orderNo);
+        wapperSetCondition(wrapper,"three_code",threeCode);
+        wapperSetCondition(wrapper,"dead_time",deadTime);
+        wapperSetCondition(wrapper,"batch",batch);
+    }
+
+    //鐢熸垚搴撳瓨璋冩暣璁板綍鍗曟嵁鍙� (骞存湀鏃�+4浣嶆祦姘�)
+    public static String generateAdjustOrderNo(){
+        Date date = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        String dateStr = sdf.format(date);
+
+        try {
+            AdjDetlService adjDetlService = SpringUtils.getBean(AdjDetlService.class);
+            AdjDetl adjDetl = adjDetlService.selectOne(new EntityWrapper<AdjDetl>().orderBy("adj_id",false));
+            if(!Cools.isEmpty(adjDetl)){
+                String orderNo = adjDetl.getOrderNo();
+                String lastDateStr = orderNo.substring(0, 8);
+                if(Cools.eq(dateStr,lastDateStr)){
+                    int index = Integer.parseInt(orderNo.substring(8, 12));
+                    index++;
+                    if(index < 10){
+                        return dateStr + "000" + index;
+                    }
+                    if(index < 100){
+                        return dateStr + "00" + index;
+                    }
+                    if(index < 1000){
+                        return dateStr + "0" + index;
+                    }
+                    return dateStr + index;
+                }else {
+                    return dateStr + "0000";
+                }
+            }else {
+                return dateStr + "0000";
+            }
+        }catch (Exception e){
+            return dateStr + "0000";
+        }
+    }
+
+    public static String getOrderNo(String orderNo, double anfme){
+        JSONArray orderArray = new JSONArray();
+        //濡傛灉璁㈠崟鍙蜂负jsonString
+        if(orderNo.contains("{")){
+            JSONArray jsonArray = JSON.parseArray(orderNo);
+            //閬嶅巻鎵�鏈夎鍗曞彿鍙婅鍗曟暟閲�
+            for (Object o : jsonArray){
+                JSONObject orderJson = (JSONObject) o;
+                Double orderAnfme = orderJson.getDouble("anfme");
+                //濡傛灉璁㈠崟鏁伴噺涓�0锛屽垯璺宠繃
+                if(orderAnfme <= 0){
+                    continue;
+                }
+                if(orderAnfme > anfme){
+                    //濡傛灉璁㈠崟鏁伴噺澶т簬璇ュ簱瀛樻暟閲忥紝涓旇鍗曟暟缁勪负绌猴紝鍒欑洿鎺ヨ繑鍥炶璁㈠崟鍙凤紝鍚﹀垯灏卞皢璇ヨ鍗曟坊鍔犲埌璁㈠崟鏁扮粍
+                    if(orderArray.isEmpty()){
+                        return orderJson.getString("orderNo");
+                    }else {
+                        orderJson.put("anfme",anfme);
+                        orderArray.add(orderJson);
+                    }
+                }else {
+                    anfme -= orderAnfme;
+                    orderArray.add(orderJson);
+                }
+            }
+            return orderArray.toJSONString();
+        }else {
+            return orderNo;
+        }
+
+    }
+
+    public static String orderMergeUpdate(String orderNo, double anfme){
+        if(orderNo.contains("{")){
+            JSONArray jsonArray = JSON.parseArray(orderNo);
+            for(int i=0; i<jsonArray.size(); i++){
+                JSONObject orderJson = (JSONObject)jsonArray.get(i);
+                Double orderAnfme = orderJson.getDouble("anfme");
+                if(orderAnfme > anfme){
+                    ((JSONObject) jsonArray.get(i)).put("anfme",orderAnfme - anfme);
+                    return jsonArray.toJSONString();
+                }else {
+                    ((JSONObject) jsonArray.get(i)).put("anfme",0);
+                    anfme -= orderAnfme;
+                }
+            }
+            return jsonArray.toJSONString();
+        }else {
+            return orderNo;
+        }
+    }
+
 }

--
Gitblit v1.9.1