From ba4e5ac7bd44e0d24f480b44a94cfe8d256a86e9 Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期二, 10 十月 2023 14:09:20 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/utils/Utils.java | 592 +++++++++++++++++++++++------------------------------------ 1 files changed, 230 insertions(+), 362 deletions(-) diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index 89cef79..7b5c23f 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -1,11 +1,15 @@ package com.zy.asrs.utils; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Arith; import com.core.common.Cools; import com.zy.common.properties.SlaveProperties; +import com.zy.common.service.CommonService; import java.text.DecimalFormat; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -144,391 +148,255 @@ } /** - * 褰撴绱㈠埌鍙屾繁搴撲綅鐨勬祬搴撲綅鏃讹紝濡傛灉娣卞簱浣嶆棤璐э紝鍒欐斁鍏ュ搴旂殑娣卞簱浣� + * 閫氳繃搴撲綅鍙疯幏鍙� 鍒� */ - 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 + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); + public static int getBay(String locNo) { + if (!Cools.isEmpty(locNo)) { + return Integer.parseInt(locNo.substring(2, 5)); } - String targetLoc = zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); - + throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); } - 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 int getLev(String locNo) { + if (!Cools.isEmpty(locNo)) { + return Integer.parseInt(locNo.substring(5, 7)); } + 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 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); - switch (row) { - case 1: - case 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)); - add(zerofill(String.valueOf(3), 2) + locNo.substring(2)); - }}; - case 4: - case 5: - case 6: - 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)); - add(zerofill(String.valueOf(7), 2) + locNo.substring(2)); - }}; - case 8: - case 9: - case 10: - 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)); - add(zerofill(String.valueOf(11), 2) + locNo.substring(2)); - }}; - case 12: - case 13: - case 14: - return new ArrayList<String>() {{ - add(zerofill(String.valueOf(12), 2) + locNo.substring(2)); - add(zerofill(String.valueOf(13), 2) + locNo.substring(2)); - add(zerofill(String.valueOf(14), 2) + locNo.substring(2)); - }}; - case 15: - case 16: - case 17: - 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)); - add(zerofill(String.valueOf(18), 2) + locNo.substring(2)); - }}; - case 19: - case 20: - case 21: - return new ArrayList<String>() {{ - add(zerofill(String.valueOf(19), 2) + locNo.substring(2)); - add(zerofill(String.valueOf(20), 2) + locNo.substring(2)); - add(zerofill(String.valueOf(21), 2) + locNo.substring(2)); - }}; - default: - throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); + 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) { + result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2)); + } + return result; } + if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) { + List<String> result = new ArrayList<>(); + for (Integer row0 : CommonService.SECOND_GROUP_ROW_LIST) { + result.add(zerofill(String.valueOf(row0), 2) + locNo.substring(2)); + } + 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)); + } + 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 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 void main(String[] args) { + System.out.println(JSON.toJSONString(getGroupLoc("0703409"))); } - // 娉ㄦ剰椤哄簭 + /** + * 鑾峰彇澶栦晶鏂瑰悜鐨勫簱浣嶇粍 + * @param locNo 搴撲綅鍙� + * @return + */ 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瀽寮傚父"); + 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)){ + wrapper.andNew().eq(column,"").or().isNull(column); + }else { + wrapper.eq(column,condition); } } - // 娉ㄦ剰椤哄簭 - 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 void confirmOnlyMat(Wrapper wrapper, String matnr, String csocode, String isoseq){ + wapperSetCondition(wrapper,"matnr",matnr); + wapperSetCondition(wrapper,"csocode",csocode); + wapperSetCondition(wrapper,"isoseq",isoseq); } } -- Gitblit v1.9.1