package com.zy.asrs.utils; import java.util.ArrayList; public class BarcodeUtils { public static final ArrayList staNos1 = new ArrayList() {{ add(1001);add(1002);add(1003);add(1004);add(1005);add(1006);add(1007); add(1008);add(1009);add(1010);add(1011);add(1012);add(1013);add(1014);add(1015); add(1016);add(1017);add(1018);add(1019);add(1020);add(1021);add(1022);add(1023); }}; public static final ArrayList staNos2 = new ArrayList() {{ add(1001);add(1002);add(1003);add(1004);add(1005);add(1006);add(1007); add(1008);add(1009);add(1010);add(1011);add(1012);add(1013);add(1014);add(1015); add(1016);add(1017);add(1018);add(1019);add(1020);add(1021);add(1022);add(1023); }}; public static Integer getStaNo(Integer staNo) { switch (staNo){ case 1021: return 1020; case 1012: return 1014; case 1005: return 1004; default: return staNo; } } public static Integer getStartStaNo(String staNo) { switch (staNo){ case "1021": return 1020; case "1012": return 1014; case "1005": return 1004; default: return Integer.getInteger(staNo); } } public static Integer getOutStaNo(String staNo) { switch (staNo){ case "1021": return 1020; case "1012": return 1009; case "1005": return 1004; default: return Integer.parseInt(staNo); } } public static String formatCode(String input) { if (input == null || input.length() != 7 || !input.matches("\\d+")) { throw new IllegalArgumentException("输入必须是7位数字"); } // 根据示例分析拆分规则: // "0500708" -> "05", "07", "08" (跳过第3位) // "0201001" -> "02", "10", "01" // "1001010" -> "10", "10", "10" // "0500210" -> "05", "02", "10" // 拆分规则:第1-2位,第4-5位,第6-7位(跳过第3位) String part1 = input.substring(0, 2); // 前两位 String part2 = input.substring(3, 5); // 第4-5位(跳过第3位) String part3 = input.substring(5, 7); // 第6-7位 // 去除前导零并格式化为两位数 String formattedPart1 = String.format("%02d", Integer.parseInt(part1)); String formattedPart2 = String.format("%02d", Integer.parseInt(part2)); String formattedPart3 = String.format("%02d", Integer.parseInt(part3)); return "F-F01-" + formattedPart1 + "-" + formattedPart2 + "-" + formattedPart3; } public static void main(String[] args) { // 测试所有示例 System.out.println("0500708 -> " + formatCode("0500708")); // F-F01-05-07-08 System.out.println("0201001 -> " + formatCode("0201001")); // F-F01-02-10-01 System.out.println("1001010 -> " + formatCode("1001010")); // F-F01-10-10-10 System.out.println("0500210 -> " + formatCode("0500210")); // F-F01-05-02-10 // 验证长度是否为14个字符 String result = formatCode("1000110"); System.out.println("结果长度: " + result.length() + " 字符: " + result); } }