From f25bd904560faada2a00e93fbd8abab6be238f9c Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期二, 15 四月 2025 15:44:31 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/utils/Utils.java | 67 ++++++++++++++++++++++++++++----- 1 files changed, 56 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index 0b98d6b..816a012 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -123,9 +123,17 @@ */ 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); + boolean deepLocLeft = isDeepLocLeft(slaveProperties, row); + boolean deepLocRight = isDeepLocRight(slaveProperties, row); + int targetRow; + if (deepLocLeft) { + targetRow = row + 1; + } else if (deepLocRight) { + targetRow = row - 1; + } else { + throw new RuntimeException(deepLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); + } + return zerofill(String.valueOf(targetRow), 2) + deepLoc.substring(2); } /** @@ -141,30 +149,45 @@ */ public static String getDeepLoc(SlaveProperties slaveProperties, String shallowLoc) { int row = getRow(shallowLoc); - int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); + boolean deepLocLeft = isDeepLocLeft(slaveProperties, row-1); + boolean deepLocRight = isDeepLocRight(slaveProperties, row+1); int targetRow; - if (remainder == 2) { + if (deepLocLeft) { targetRow = row - 1; - } else if (remainder == 3) { + } else if (deepLocRight) { targetRow = row + 1; } else { throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); } return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); } +// 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); +// } /** * 鑾峰彇 娴呭簱浣嶆帓瀵瑰簲鐨勬繁搴撲綅鎺� */ public static Integer getDeepRow(SlaveProperties slaveProperties, Integer shallowRow) { - int remainder = (int) Arith.remainder(shallowRow, slaveProperties.getGroupCount()); + boolean deepLocLeft = isDeepLocLeft(slaveProperties, shallowRow-1); + boolean deepLocRight = isDeepLocRight(slaveProperties, shallowRow+1); int targetRow; - if (remainder == 2) { + if (deepLocLeft) { targetRow = shallowRow - 1; - } else if (remainder == 3) { + } else if (deepLocRight) { targetRow = shallowRow + 1; } else { - throw new RuntimeException(shallowRow + "涓嶆槸娴呭簱浣嶆帓锛岀郴缁熺箒蹇�"); + throw new RuntimeException(shallowRow + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); } return targetRow; } @@ -287,6 +310,8 @@ return LocNecessaryParametersDoubleExtension5(rowLastno, curRow, crnNumber); //宸插畬鍠� case 6://鍥涘悜搴�(鐗涚溂杞�)eg:鍏夋嘲鍥涘悜 return LocNecessaryParametersDoubleExtension6(rowLastno, curRow, crnNumber); //宸插畬鍠� + case 7://骞冲簱 CTU搴� + return LocNecessaryParametersDoubleExtension7(rowLastno, curRow, crnNumber); //宸插畬鍠� default: return LocNecessaryParametersMove(rowLastno, curRow, crnNumber);//moveCrnNo } @@ -474,7 +499,7 @@ } if ((curRow - sRow) % 4 == 0) { necessaryParameters[1] = curRow; //curRow 鏈�娣卞簱浣嶆帓 - necessaryParameters[2] = (curRow - sRow + 2) / 4 + sCrnNo - 1; //crnNo 鍫嗗灈鏈哄彿 + necessaryParameters[2] = (curRow - sRow + 2) / 4 + sCrnNo; //crnNo 鍫嗗灈鏈哄彿 necessaryParameters[3] = curRow + 1; //nearRow 鏈�娴呭簱浣嶆帓 } else if ((curRow - sRow + 1) % 4 == 0) { necessaryParameters[1] = curRow; //curRow 鏈�娣卞簱浣嶆帓 @@ -535,6 +560,26 @@ return necessaryParameters; } + //骞冲簱锛堝厜娉癨CTU锛� + public static int[] LocNecessaryParametersDoubleExtension7(RowLastno rowLastno, Integer curRow, Integer crnNumber) { + int[] necessaryParameters = new int[]{0, 0, 0, 0}; + Integer sRow = rowLastno.getsRow();//璧峰鎺掑彿 + Integer sCrnNo = rowLastno.getsCrnNo();//璧峰鍫嗗灈鏈哄彿 + necessaryParameters[0] = crnNumber; // 杞娆℃暟 + //婊℃澘姝e父鍏ュ簱 + if (curRow.equals(rowLastno.geteRow())){ + necessaryParameters[1] = sRow; //curRow 鏈�娣卞簱浣嶆帓 + necessaryParameters[2] = sCrnNo; //crnNo 鍫嗗灈鏈哄彿 + necessaryParameters[3] = sRow; //nearRow 鏈�娴呭簱浣嶆帓 + } else { + necessaryParameters[1] = curRow + 1; //curRow 鏈�娣卞簱浣嶆帓 + necessaryParameters[2] = sCrnNo; //crnNo 鍫嗗灈鏈哄彿 + necessaryParameters[3] = curRow + 1; //nearRow 鏈�娴呭簱浣嶆帓 + } + + return necessaryParameters; + } + public static void main(String[] args) { List<LocMast> locS = new ArrayList<LocMast>(); -- Gitblit v1.9.1