From 35fac40cfc0d636479bde094391e6f237b3116d4 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期三, 29 十一月 2023 15:29:58 +0800 Subject: [PATCH] #指令更新 --- src/main/java/com/zy/asrs/utils/Utils.java | 292 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 291 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index cc7426b..cc56ed7 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -1,9 +1,15 @@ package com.zy.asrs.utils; import com.core.common.Arith; +import com.core.common.Cools; +import com.core.common.SpringUtils; +import com.zy.core.model.CrnSlave; +import com.zy.core.properties.SlaveProperties; -import java.math.BigDecimal; import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * Created by vincent on 2020/8/27 @@ -12,6 +18,67 @@ private static final DecimalFormat fmt = new DecimalFormat("##0.00"); + + //杞崲wms浼犺緭鐨勫簱浣嶅彿 + public static String getWcsLocNo(String locNo){ + String[] split = locNo.split("-"); + int[] wcsRow = getWcsRow(split[0]); + int[] ints = null; + if (split[3].equals("01")){ + ints = Arrays.copyOfRange(wcsRow, 0, (wcsRow.length+2-1) / 2); + if (split[4].equals("01")){ + ints = Arrays.copyOfRange(ints, wcsRow.length / 2,wcsRow.length-1); + }else { + ints = Arrays.copyOfRange(ints, 0, wcsRow.length / 2); + } + }else { + ints = Arrays.copyOfRange(wcsRow, (wcsRow.length+2-1) / 2,wcsRow.length-1 ); + if (split[4].equals("01")){ + + ints = Arrays.copyOfRange(ints, 0, wcsRow.length / 2); + }else { + ints = Arrays.copyOfRange(ints, wcsRow.length / 2,wcsRow.length-1); + } + } + int i = ints[0]; + String wcsLocNo = ""; + if (i>9){ + wcsLocNo = i+"0"+split[1]+split[2]; + }else { + wcsLocNo = "0"+i+"0"+split[1]+split[2]; + } + + + + return wcsLocNo; + } + public static int[] getWcsRow(String row){ + int[] array = null; + switch (row){ + case "01": + array= new int[]{1, 2, 3, 4}; + break; + case "02": + array= new int[]{5,6}; + break; + case "03": + array= new int[]{7,8,9,10}; + break; + case "04": + array= new int[]{11,12,13,14}; + break; + case "05": + array= new int[]{15,16,17,18}; + break; + case "06": + array= new int[]{19,20,21}; + break; + default: + + } + return array; + } + public static float scale(Float f){ if (f == null || f == 0f || Float.isNaN(f)) { return 0f; @@ -19,4 +86,227 @@ return (float) Arith.multiplys(2, f, 1); } + //绔欑偣鍙疯浆鎹� + public static String getEquipmentCode(String targetPoint){ + return "J-1"+targetPoint; + } + + public static String zerofill(String msg, Integer count){ + if (msg.length() == count){ + return msg; + } else if (msg.length() > count){ + return msg.substring(0, 16); + } else { + StringBuilder msgBuilder = new StringBuilder(msg); + for (int i = 0; i<count-msg.length(); i++){ + msgBuilder.insert(0,"0"); + } + return msgBuilder.toString(); + } + } + + /** + * 鍒ゆ柇鏄惁涓烘繁搴撲綅 + */ + public static boolean isDeepLoc(SlaveProperties slaveProperties, String locNo){ + if (slaveProperties.isDoubleDeep()) { + int row = getRow(locNo); + return slaveProperties.getDoubleLocs().contains(row); + } else { + return false; + } + } + + /** + * 鍒ゆ柇鏄惁涓烘繁搴撲綅 + */ + public static boolean isDeepLoc(SlaveProperties slaveProperties, Integer row){ + if (slaveProperties.isDoubleDeep()) { + return slaveProperties.getDoubleLocs().contains(row); + } else { + return false; + } + } + + /** + * 鍒ゆ柇鏄惁涓烘祬搴撲綅 + */ + public static boolean isShallowLoc(SlaveProperties slaveProperties, String locNo){ + if (slaveProperties.isDoubleDeep()) { + int row = getRow(locNo); + return !slaveProperties.getDoubleLocs().contains(row); + } else { + return false; + } + } + + /** + * 鍒ゆ柇鏄惁涓烘祬搴撲綅 + */ + public static boolean isShallowLoc(SlaveProperties slaveProperties, Integer row){ + if (slaveProperties.isDoubleDeep()) { + return !slaveProperties.getDoubleLocs().contains(row); + } else { + 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); + } + + /** + * 鑾峰彇 娣卞簱浣嶆帓瀵瑰簲鐨勬祬搴撲綅鎺� + */ + public static Integer getShallowRow(SlaveProperties slaveProperties, Integer deepRow) { + int remainder = (int) Arith.remainder(deepRow, slaveProperties.getGroupCount()); + return remainder == 1 ? (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); + } + + /** + * 鑾峰彇 娴呭簱浣嶆帓瀵瑰簲鐨勬繁搴撲綅鎺� + */ + 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; + } + + /** + * 閫氳繃搴撲綅鍙疯幏鍙� 鎺� + */ + public static int getRow(String locNo) { + if (!Cools.isEmpty(locNo)) { + return Integer.parseInt(locNo.substring(0, 2)); + } + throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); + } + + public static Short getRowShort(String locNo) { + if (!Cools.isEmpty(locNo)) { + return Short.valueOf(locNo.substring(0, 2)); + } + throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); + } + + /** + * 閫氳繃搴撲綅鍙疯幏鍙� 鍒� + */ + 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 short getBayShort(String locNo) { + if (!Cools.isEmpty(locNo)) { + return Short.parseShort(locNo.substring(2, 5)); + } + throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); + } + + /** + * 閫氳繃搴撲綅鍙疯幏鍙� 灞� + */ + public static short getLevShort(String locNo) { + if (!Cools.isEmpty(locNo)) { + return Short.parseShort(locNo.substring(5, 7)); + } + throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); + } + + /** + * 褰撴绱㈠埌鍙屾繁搴撲綅鐨勬祬搴撲綅鏃讹紝濡傛灉娣卞簱浣嶆棤璐э紝鍒欐斁鍏ュ搴旂殑娣卞簱浣� + */ + 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 CrnSlave.CrnStn getCrnStnByStaNo(Integer staNo, Boolean pakIn) { + SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class); + for (CrnSlave crn : slaveProperties.getCrn()) { + List<CrnSlave.CrnStn> crnInStn = null; + if (pakIn) { + crnInStn = crn.getCrnInStn(); + }else { + crnInStn = crn.getCrnOutStn(); + } + + for (CrnSlave.CrnStn crnStn : crnInStn) { + if (crnStn.getStaNo().equals(staNo)) { + return crnStn; + } + } + } + + return null; + } + + public static void main(String[] args) { +// SlaveProperties slaveProperties = new SlaveProperties(); +// slaveProperties.setDoubleDeep(true); +// List<Integer> list = new ArrayList<>(); +// list.add(1);list.add(4);list.add(5);list.add(8);list.add(9);list.add(12); +// slaveProperties.setDoubleLocs(list); +// slaveProperties.setGroupCount(4); +// Integer deepRow = getDeepRow(slaveProperties, 6); +// System.out.println(deepRow); + String wcsLocNo = getWcsLocNo("06-52-01-01-01"); + System.out.println(wcsLocNo); + } } -- Gitblit v1.9.1