# 接收物品

# 概念

人工节点的接收物品页设置该人工节点的办理是否代表对某个物品的接收。

物品接收是线上流程对线下场景的支持,对于接收物品的步骤,服务大厅提供了基于收件码的快捷办理通道。
通过扫描收件码,可以快速定位待办任务并办理。

# 配置注意事项

后端赋值类型为 String ,前端控件类型为 Thing

如需在页面上显示条码需设置为 Image 类型控件

设置物品接收的节点,将不出现在 待办事项 列表中,会归类至 待收物品 区域


物品在服务大厅接收时需输入13位数字,建议使用 条码扫描枪 录入。
通过扫描收件码,可以快速定位待办任务并办理。

# 物品码生成规则

    private static String getCheckCode(String code) {
        int odd = 0;
        int even = 0;
        for (int i = 0; i < code.length(); i++) {
            int value = Integer.parseInt(String.valueOf(code.charAt(i)));
            if (i % 2 == 0) {
                odd += value;
            } else {
                even += value;
            }
        }
        return String.valueOf(((10 - (odd + even * 3) % 10) % 10));
    }

    private static final int RANDOM_CODE_LENGTH = 9;

    /**
     * 生成物品码
     *
     * @return string
     */
    public static String getNewBarcode() {
        //我国起始三位是690-695
        StringBuilder codeStringBuilder = new StringBuilder();
        codeStringBuilder.append(690 + Math.round(Math.random() * (695 - 690)));
        Random r = new Random();
        //9位随机
        for (int i = 0; i < RANDOM_CODE_LENGTH; i++) {
            codeStringBuilder.append(r.nextInt(9));
        }
        //最后一位加上校验码
        codeStringBuilder.append(getCheckCode(codeStringBuilder.toString()));
        return codeStringBuilder.toString();
    }

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