From 0a05bcf1064431e7f2ba84856d5d0dad0cf48ecc Mon Sep 17 00:00:00 2001 From: lsh <lsh> Date: 星期二, 21 五月 2024 15:59:00 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java | 90 +++++++++----- src/main/java/com/zy/asrs/task/BareBoardScheduler.java | 8 src/main/java/com/zy/asrs/utils/Utils.java | 203 ++++++++++++++++++--------------- src/main/java/com/zy/common/service/CommonService.java | 8 src/main/resources/application.yml | 6 5 files changed, 182 insertions(+), 133 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java b/src/main/java/com/zy/asrs/task/BareBoardScheduler.java index 19d4ac1..5c2cb5c 100644 --- a/src/main/java/com/zy/asrs/task/BareBoardScheduler.java +++ b/src/main/java/com/zy/asrs/task/BareBoardScheduler.java @@ -102,12 +102,12 @@ @Scheduled(cron = "0/3 * * * * ? ") private void execute2(){//鑷姩璋冪┖鏉垮嚭搴� 鐓滄槦涓�妤� if (slaveWmsParameterProperties.isAutomaticFillingBoardStaNosBoolean()){ - Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard445")); + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","bareBoard448")); if (!Cools.isEmpty(config) && !Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")){ - int loadIngCount = basDevpService.selectCount(new EntityWrapper<BasDevp>().ge("dev_no", 421).le("dev_no", 465).eq("loading", "Y")); - int count = 10; + int loadIngCount = basDevpService.selectCount(new EntityWrapper<BasDevp>().ge("dev_no", 421).le("dev_no", 448).eq("loading", "Y")); + int count = 25; if (loadIngCount<=count){ - bareBoardHandler.start(445,count); + bareBoardHandler.startYx(448,count); } } } diff --git a/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java b/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java index f2d4d60..e10298d 100644 --- a/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/BareBoardHandler.java @@ -177,38 +177,56 @@ } sign = true; // 鑾峰彇搴撲綅 - LocMast locMastS = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","D").eq("crn_no",crnNo)); + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").eq("crn_no", crnNo)); + for (LocMast locMastS : locMasts){ - if (Cools.isEmpty(locMastS)) { + if (Cools.isEmpty(locMastS)) { // throw new CoolException("搴撲腑鏃犵┖鏉匡紒锛侊紒"); - log.error(crnNo+"鍙峰爢鍨涙満鏃犵┖鏉匡紒"); - sign=false; - } - if (sign && !locMastS.getLocSts().equals("D")){ + log.error(crnNo+"鍙峰爢鍨涙満鏃犵┖鏉匡紒"); + sign=false; + break; + } + if (sign && !locMastS.getLocSts().equals("D")){ // throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$()); - log.error(crnNo+"鍙峰爢鍨涙満"+"鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMastS.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMastS.getLocSts()+"-"+locMastS.getLocSts$()); - sign=false; - } - locNoList.add(locMastS.getLocNo()); + log.error(crnNo+"鍙峰爢鍨涙満"+"鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMastS.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMastS.getLocSts()+"-"+locMastS.getLocSts$()); + sign=false; + } + locNoList.add(locMastS.getLocNo()); - //灏忔枡绠变即鐢熷嚭搴� - if (Utils.getRow(locMastS.getLocNo())<=8){ - String locNoOther = staNoOther(locMastS.getLocNo()); - LocMast locMastOther = locMastService.selectById(locNoOther); - if (locMastOther.getLocSts().equals("D")){ - locNoList.add(locNoOther); + //灏忔枡绠变即鐢熷嚭搴� + if (Utils.getRow(locMastS.getLocNo())<=8){ + String locNoOther = staNoOther(locMastS.getLocNo()); + LocMast locMastOther = locMastService.selectById(locNoOther); + + if (locMastOther.getLocSts().equals("D") || locMastOther.getLocSts().equals("F") || locMastOther.getLocSts().equals("R")){ + if (locMastOther.getLocSts().equals("D")){ + locNoList.add(locNoOther); + } + }else { + sign=false; + } + }else if (Utils.getRow(locMastS.getLocNo())>=21 && Utils.getRow(locMastS.getLocNo())<=27){ + String locNoOther = staNoOther(locMastS.getLocNo()); + LocMast locMastOther = locMastService.selectById(locNoOther); + if (locMastOther.getLocSts().equals("D") || locMastOther.getLocSts().equals("F") || locMastOther.getLocSts().equals("R")){ + if (locMastOther.getLocSts().equals("D")){ + locNoList.add(locNoOther); + } + }else { + sign=false; + } } - } - if (sign) { - EmptyPlateOutParam param = new EmptyPlateOutParam(); - param.setOutSite(staNo); - param.setLocNos(locNoList); - try{ - workService.emptyPlateOut(param, 9999L); - }catch (Exception e){ - log.error("浜屾ゼ灏忔枡绠辫嚜鍔ㄨˉ绌烘澘澶辫触锛侊紒寮傚父鍘熷洜锛�"+e); + if (sign) { + EmptyPlateOutParam param = new EmptyPlateOutParam(); + param.setOutSite(staNo); + param.setLocNos(locNoList); + try{ + workService.emptyPlateOut(param, 9999L); + }catch (Exception e){ + log.error("浜屾ゼ灏忔枡绠辫嚜鍔ㄨˉ绌烘澘澶辫触锛侊紒寮傚父鍘熷洜锛�"+e); + } + return SUCCESS; } - return SUCCESS; } } if (!sign){ @@ -224,10 +242,20 @@ public String staNoOther(String locNo){ int row = Utils.getRow(locNo); - if (row%4==0 || row%4==1){ - return getDeepLoc2(locNo,row); + if (row<=8){ + if (row%4==0 || row%4==1){ + return getDeepLoc2(locNo,row); + }else { + return getDeepLoc(locNo,row); + } + }else if (row>=21 && row<=27){ + if (row==21 || row==24 || row==27){ + return getDeepLoc2(locNo,row); + }else { + return locNo; + } }else { - return getDeepLoc(locNo,row); + return locNo; } } @@ -235,9 +263,9 @@ * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿 */ public static String getDeepLoc2(String shallowLoc,int row) { - if (row == 1 || row == 5) { + if (row == 1 || row == 5 || row==21) { return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2); - } else if (row == 4 || row == 8) { + } else if (row == 4 || row == 8 || row == 24 || row == 27) { return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2); }else { return null; diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index 1e4be2e..7da282b 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -94,137 +94,158 @@ } /** - * 鍒ゆ柇鏄惁涓烘祬搴撲綅 + * 鍒ゆ柇鏄惁涓烘祬搴撲綅 骞跺瓨鍦ㄦ繁搴撲綅 */ public static boolean isShallowLoc(SlaveProperties slaveProperties, String locNo) { if (slaveProperties.isDoubleDeep()) { int row = getRow(locNo); - return !slaveProperties.getDoubleLocs().contains(row); - } else { - return false; + if (!slaveProperties.getDoubleLocs().contains(row)){ + boolean deepLocLeft = isDeepLocLeft(slaveProperties, row-1);//鍒ゆ柇鏄惁涓哄乏娴呭簱浣� + if (deepLocLeft){ + return true; + } + return isDeepLocRight(slaveProperties, row+1);//鍒ゆ柇鏄惁涓哄彸娴呭簱浣� + } } + return false; } /** - * 鍒ゆ柇鏄惁涓烘祬搴撲綅 + * 鍒ゆ柇鏄惁涓烘祬搴撲綅 骞跺瓨鍦ㄦ繁搴撲綅 */ public static boolean isShallowLoc(SlaveProperties slaveProperties, Integer row) { if (slaveProperties.isDoubleDeep()) { - return !slaveProperties.getDoubleLocs().contains(row); - } else { - return false; + if (!slaveProperties.getDoubleLocs().contains(row)){ + boolean deepLocLeft = isDeepLocLeft(slaveProperties, row-1);//鍒ゆ柇鏄惁涓哄乏娴呭簱浣� + if (deepLocLeft){ + return true; + } + return isDeepLocRight(slaveProperties, row+1);//鍒ゆ柇鏄惁涓哄彸娴呭簱浣� + } } + return false; } /** * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿 */ public static String getShallowLoc(SlaveProperties slaveProperties, String deepLoc) { +// int row = getRow(deepLoc); +// int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); +// int shallowRow = remainder == 1 ? (row + 1) : (row - 1); +// return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2); int row = getRow(deepLoc); - int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); - int shallowRow = remainder == 1 ? (row + 1) : (row - 1); + boolean deepLocLeft = isDeepLocLeft(slaveProperties, row);//鍒ゆ柇鏄惁涓哄乏娣卞簱浣� + int shallowRow = deepLocLeft? (row + 1) : (row - 1); return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2); } - /** - * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿 鍙屼几+鍗曞弻浼� 鐓滄槦瀹氬埗 - */ - public static String getShallowLoc5(SlaveProperties slaveProperties, String deepLoc,Integer whsType) { - if (whsType==9){ - int row = getRow(deepLoc); - int shallowRow; - if (row == 21) { - shallowRow = row + 1; - } else if (row == 24) { - shallowRow = row - 1; - } else if (row == 25) { - shallowRow = row; - } else if (row == 27) { - shallowRow = row - 1; - } else { - throw new RuntimeException(row + "涓嶆槸娣卞簱浣嶏紝绯荤粺绻佸繖"); - } - return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2); - }else { - int row = getRow(deepLoc); - int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); - int shallowRow = remainder == 1 ? (row + 1) : (row - 1); - return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2); - } - } +// /** +// * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿 鍙屼几+鍗曞弻浼� 鐓滄槦瀹氬埗 +// */ +// public static String getShallowLoc5(SlaveProperties slaveProperties, String deepLoc,Integer whsType) { +// if (whsType==9){ +// int row = getRow(deepLoc); +// int shallowRow; +// if (row == 21) { +// shallowRow = row + 1; +// } else if (row == 24) { +// shallowRow = row - 1; +// } else if (row == 25) { +// shallowRow = row; +// } else if (row == 27) { +// shallowRow = row - 1; +// } else { +// throw new RuntimeException(row + "涓嶆槸娣卞簱浣嶏紝绯荤粺绻佸繖"); +// } +// return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2); +// }else { +// int row = getRow(deepLoc); +// int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); +// int shallowRow = remainder == 1 ? (row + 1) : (row - 1); +// return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2); +// } +// } /** * 鑾峰彇 娣卞簱浣嶆帓瀵瑰簲鐨勬祬搴撲綅鎺� */ public static Integer getShallowRow(SlaveProperties slaveProperties, Integer deepRow) { - int remainder = (int) Arith.remainder(deepRow, slaveProperties.getGroupCount()); - return remainder == 1 ? (deepRow + 1) : (deepRow - 1); +// int remainder = (int) Arith.remainder(deepRow, slaveProperties.getGroupCount()); + boolean deepLocLeft = isDeepLocLeft(slaveProperties, deepRow);//鍒ゆ柇鏄惁涓哄乏娣卞簱浣� + return deepLocLeft ? (deepRow + 1) : (deepRow - 1); } /** * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿 */ public static String getDeepLoc(SlaveProperties slaveProperties, String shallowLoc) { +// int row = getRow(shallowLoc); +// int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); +// int targetRow; +// if (remainder == 2) { +// targetRow = row - 1; +// } else if (remainder == 3) { +// targetRow = row + 1; +// } else { +// throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); +// } +// return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); int row = getRow(shallowLoc); - int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); - int targetRow; - if (remainder == 2) { - targetRow = row - 1; - } else if (remainder == 3) { - targetRow = row + 1; - } else { - throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); - } - return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); + boolean deepLocLeft = isDeepLocLeft(slaveProperties, row-1);//鍒ゆ柇鏄惁涓哄乏娴呭簱浣� + int shallowRow = deepLocLeft? (row - 1) : (row + 1); + return zerofill(String.valueOf(shallowRow), 2) + shallowLoc.substring(2); } - /** - * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿 鍙屼几+鍗曞弻浼� 鐓滄槦瀹氬埗 - */ - public static String getDeepLoc5(SlaveProperties slaveProperties, String shallowLoc,Integer whsType) { - if (whsType==9){ - int row = getRow(shallowLoc); - int targetRow; - if (row == 22) { - targetRow = row - 1; - } else if (row == 23) { - targetRow = row + 1; - } else if (row == 25) { - targetRow = row; - } else if (row == 26) { - targetRow = row + 1; - } else { - throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); - } - return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); - } else { - int row = getRow(shallowLoc); - int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); - int targetRow; - if (remainder == 2) { - targetRow = row - 1; - } else if (remainder == 3) { - targetRow = row + 1; - } else { - throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); - } - return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); - } - } +// /** +// * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿 鍙屼几+鍗曞弻浼� 鐓滄槦瀹氬埗 +// */ +// public static String getDeepLoc5(SlaveProperties slaveProperties, String shallowLoc,Integer whsType) { +// if (whsType==9){ +// int row = getRow(shallowLoc); +// int targetRow; +// if (row == 22) { +// targetRow = row - 1; +// } else if (row == 23) { +// targetRow = row + 1; +// } else if (row == 25) { +// targetRow = row; +// } else if (row == 26) { +// targetRow = row + 1; +// } else { +// throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); +// } +// return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); +// } else { +// int row = getRow(shallowLoc); +// int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); +// int targetRow; +// if (remainder == 2) { +// targetRow = row - 1; +// } else if (remainder == 3) { +// targetRow = row + 1; +// } else { +// throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); +// } +// return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); +// } +// } /** * 鑾峰彇 娴呭簱浣嶆帓瀵瑰簲鐨勬繁搴撲綅鎺� */ public static Integer getDeepRow(SlaveProperties slaveProperties, Integer shallowRow) { - int remainder = (int) Arith.remainder(shallowRow, slaveProperties.getGroupCount()); - int targetRow; - if (remainder == 2) { - targetRow = shallowRow - 1; - } else if (remainder == 3) { - targetRow = shallowRow + 1; - } else { - throw new RuntimeException(shallowRow + "涓嶆槸娴呭簱浣嶆帓锛岀郴缁熺箒蹇�"); - } - return targetRow; +// int remainder = (int) Arith.remainder(shallowRow, slaveProperties.getGroupCount()); +// int targetRow; +// if (remainder == 2) { +// targetRow = shallowRow - 1; +// } else if (remainder == 3) { +// targetRow = shallowRow + 1; +// } else { +// throw new RuntimeException(shallowRow + "涓嶆槸娴呭簱浣嶆帓锛岀郴缁熺箒蹇�"); +// } +// return targetRow; + boolean deepLocLeft = isDeepLocLeft(slaveProperties, shallowRow-1);//鍒ゆ柇鏄惁涓哄乏娴呭簱浣� + return deepLocLeft? (shallowRow - 1) : (shallowRow + 1); } /** diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index da9f631..43865c8 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -238,7 +238,7 @@ if (Utils.isShallowLoc(slaveProperties, locNo)) { continue; } - String shallowLocNo = Utils.getShallowLoc5(slaveProperties, locNo,whsType); + String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo); // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣� LocMast shallowLoc = locMastService.selectById(shallowLocNo); if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) { @@ -277,7 +277,7 @@ if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) { continue; } - String shallowLocNo = Utils.getShallowLoc5(slaveProperties, loc.getLocNo(),whsType); + String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo()); // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣� LocMast shallowLoc = locMastService.selectById(shallowLocNo); if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) { @@ -338,7 +338,7 @@ continue; } if (Utils.BooleanWhsTypeStaIoType(whsType)){ - String shallowLoc = Utils.getDeepLoc5(slaveProperties, locMast1.getLocNo(),whsType); + String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo()); LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>() .eq("loc_no", shallowLoc).eq("loc_sts", "O")); if (!Cools.isEmpty(locMast2)) { @@ -359,7 +359,7 @@ continue; } if (Utils.BooleanWhsTypeStaIoType(whsType)){ - String shallowLoc = Utils.getDeepLoc5(slaveProperties, locMast1.getLocNo(),whsType); + String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo()); LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>() .eq("loc_no", shallowLoc).eq("loc_sts", "O")); if (!Cools.isEmpty(locMast2)) { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index b0405ec..00e6f7b 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -54,13 +54,13 @@ # 鍙屾繁 doubleDeep: false # 鍙屾繁搴撲綅鎺掑彿 - doubleLocs: 1,4,5,8,9,12,13,16,17,20,21,24 + doubleLocs: 1,4,5,8,21,24,27 # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁� groupCount: 4 # 宸︽繁搴撲綅鎺掑彿 - doubleLocsLeft : 1,5,9,13,17,21 + doubleLocsLeft : 1,5,21 # 鍙虫繁搴撲綅鎺掑彿 - doubleLocsRight : 4,8,12,16,20,24 + doubleLocsRight : 4,8,24,27 # wms鍙傛暟閰嶇疆 wms-parameter: # 鑷姩琛ョ┖鏉垮姛鑳藉紑鍏� -- Gitblit v1.9.1