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 | 552 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 328 insertions(+), 224 deletions(-) diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index 250745d..5dc6c20 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -1,15 +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.Arrays; import java.util.Collections; +import java.util.Date; import java.util.List; /** @@ -168,29 +176,26 @@ } /** - * 褰撴绱㈠埌鍙屾繁搴撲綅鐨勬祬搴撲綅鏃讹紝濡傛灉娣卞簱浣嶆棤璐э紝鍒欐斁鍏ュ搴旂殑娣卞簱浣� + * 閫氳繃搴撲綅鍙疯幏鍙� 灞� */ - 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 getAgvLev(String locNo) { + if (!Cools.isEmpty(locNo)) { + return Integer.parseInt(locNo.substring(11, 13)); } - String targetLoc = zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); - + 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) { @@ -205,16 +210,46 @@ } return result; } - if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) { + if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) { List<String> result = new ArrayList<>(); - for (Integer row0 : CommonService.FIRST_GROUP_ROW_LIST_SHORT) { + 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.THIRD_GROUP_ROW_LIST.contains(row)) { + if (CommonService.FIFTH_GROUP_ROW_LIST.contains(row)) { List<String> result = new ArrayList<>(); - for (Integer row0 : CommonService.THIRD_GROUP_ROW_LIST) { + 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; @@ -222,235 +257,304 @@ throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); } + public static void main(String[] args) { + System.out.println(JSON.toJSONString(getGroupInnerLoc("1505908"))); + } - public static Integer getOutLayerRow(String locNo, Boolean pakin){ + /** + * 鑾峰彇娣辨祬搴撲綅缁� + * @param locNo 搴撲綅鍙� + * @return + */ + public static List<String> getGroupDeepLoc(String locNo){ int row = getRow(locNo); - if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) { - return 4; - } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) { - return 5; - } else { - return -1; + 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瀽寮傚父"); } - - public static List<Integer> getGroupLoc(Integer row){ - if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) { - return CommonService.FIRST_GROUP_ROW_LIST; - } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) { - return CommonService.FIRST_GROUP_ROW_LIST_SHORT; - } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) { - return CommonService.SECOND_GROUP_ROW_LIST; - } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) { - return CommonService.THIRD_GROUP_ROW_LIST; - } else { - throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); - } - } - - // 澶栦晶鏂瑰悜鐨勮揣浣� 浼樺厛鍏ュ簱鏂瑰悜/浼樺厛鍑哄簱鏂瑰悜 + /** + * 鑾峰彇澶栦晶鏂瑰悜鐨勫簱浣嶇粍 + * @param locNo 搴撲綅鍙� + * @return + */ public static List<String> getGroupOuterLoc(String locNo){ int row = getRow(locNo); - List<String> result = new ArrayList<>(); - if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) { - List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST.size()]); - Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST); - Collections.reverse(clone); - for (Integer integer : clone) { - if (integer > row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)){ - List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST_SHORT.size()]); - Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST_SHORT); - Collections.reverse(clone); - for (Integer integer : clone) { - if (integer > row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)){ - List<Integer> clone = Arrays.asList(new Integer[CommonService.SECOND_GROUP_ROW_LIST.size()]); - Collections.copy(clone, CommonService.SECOND_GROUP_ROW_LIST); - Collections.reverse(clone); - for (Integer integer : clone) { - if (integer > row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)){ - for (Integer integer : CommonService.THIRD_GROUP_ROW_LIST) { - if (integer < row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } + 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<>(); } - return result; + 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 List<String> getGroupOuterLocIoPri(String locNo){ + /** + * 鑾峰彇鍐呬晶鏂瑰悜鐨勫簱浣嶇粍 + * @param locNo 搴撲綅鍙� + * @return + */ + public static List<String> getGroupInnerLoc(String locNo){ int row = getRow(locNo); - List<String> result = new ArrayList<>(); - if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) { - for (Integer integer : CommonService.FIRST_GROUP_ROW_LIST) { - if (integer < row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)){ - for (Integer integer : CommonService.FIRST_GROUP_ROW_LIST_SHORT) { - if (integer < row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)){ - for (Integer integer : CommonService.SECOND_GROUP_ROW_LIST) { - if (integer < row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)){ - List<Integer> clone = Arrays.asList(new Integer[CommonService.THIRD_GROUP_ROW_LIST.size()]); - Collections.copy(clone, CommonService.THIRD_GROUP_ROW_LIST); - Collections.reverse(clone); - for (Integer integer : clone) { - if (integer > row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } + 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<>(); } - return result; + 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 void main(String[] args) { - System.out.println(JSON.toJSONString(getGroupOuterLoc("0200101"))); + //閫氳繃杈撻�佺珯鐐瑰彿鑾峰彇鎻愬崌鏈哄彿 + 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 List<String> getGroupInsideLoc(String locNo){ - int row = getRow(locNo); - List<String> result = new ArrayList<>(); - if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) { - List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST.size()]); - Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST); - Collections.reverse(clone); - for (Integer integer : clone) { - if (integer > row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) { - List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST_SHORT.size()]); - Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST_SHORT); - Collections.reverse(clone); - for (Integer integer : clone) { - if (integer > row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) { - List<Integer> clone = Arrays.asList(new Integer[CommonService.SECOND_GROUP_ROW_LIST.size()]); - Collections.copy(clone, CommonService.SECOND_GROUP_ROW_LIST); - Collections.reverse(clone); - for (Integer integer : clone) { - if (integer > row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) { - for (Integer integer : CommonService.THIRD_GROUP_ROW_LIST) { - if (integer < row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else { -// throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); + 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); } - if (!Cools.isEmpty(result)) { - Collections.reverse(result); - } - return result; } - // 澶栦晶鏂瑰悜鐨勮揣浣� 浼樺厛鍏ュ簱鏂瑰悜/浼樺厛鍑哄簱鏂瑰悜 ===>> 鍙嶄箣 - public static List<String> getGroupOutsideLoc(String locNo){ - int row = getRow(locNo); - List<String> result = new ArrayList<>(); - if (CommonService.THIRD_GROUP_ROW_LIST.contains(row)) { - for (Integer integer : CommonService.THIRD_GROUP_ROW_LIST) { - if (integer < row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; + 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"; } - } else if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) { - List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST.size()]); - Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST); - Collections.reverse(clone); - for (Integer integer : clone) { - if (integer > row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else if (CommonService.FIRST_GROUP_ROW_LIST_SHORT.contains(row)) { - List<Integer> clone = Arrays.asList(new Integer[CommonService.FIRST_GROUP_ROW_LIST_SHORT.size()]); - Collections.copy(clone, CommonService.FIRST_GROUP_ROW_LIST_SHORT); - Collections.reverse(clone); - for (Integer integer : clone) { - if (integer > row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) { - List<Integer> clone = Arrays.asList(new Integer[CommonService.SECOND_GROUP_ROW_LIST.size()]); - Collections.copy(clone, CommonService.SECOND_GROUP_ROW_LIST); - Collections.reverse(clone); - for (Integer integer : clone) { - if (integer > row) { - result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); - } else { - break; - } - } - } else { -// throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); + }catch (Exception e){ + return dateStr + "0000"; } - if (!Cools.isEmpty(result)) { - Collections.reverse(result); + } + + 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; } - return result; + + } + + 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