package com.zy.asrs.utils;
|
|
import java.util.ArrayList;
|
|
public class BarcodeUtils {
|
|
public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
|
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<Integer> staNos2 = new ArrayList<Integer>() {{
|
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);
|
}
|
}
|