#
zzgtfwq
昨天 a38d955f816eb64f297cd587b507defd5839892e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package com.zy.asrs.utils;
 
import java.util.ArrayList;
 
public class BarcodeUtils {
 
//    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 getOutStaNo(String staNo) {
        switch (staNo){
            case "101":
            case "105":
            case "109":
            case "115":
            case "201":
            case "205":
            case "209":
            case "215":
                return Integer.parseInt(staNo)+1;
            case "119":
            case "122":
            case "125":
            case "219":
            case "222":
            case "225":
                return Integer.parseInt(staNo)-2;
            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);
    }
}