顺丰枚举分类

public enum StatusEnum {

    CANCELED(0, "已取消"),
    PENDING_PICKUP(1, "待取件"),
    PICKED_UP(2, "已取件"),
    IN_TRANSIT(3, "运输中"),
    OUT_FOR_DELIVERY(4, "派件中"),
    SIGNED(5, "已签收");

    private final int code;
    private final String description;

    StatusEnum(int code, String description) {
        this.code = code;
        this.description = description;
    }

    static List<String> list0Canceled = new ArrayList<>();
    static List<String> list1PendingPickup = new ArrayList<>();
    static List<String> list2PickedUp = new ArrayList<>();
    static List<String> list3InTransit = new ArrayList<>();
    static List<String> list4OutForDelivery = new ArrayList<>();
    static List<String> list5Signed = new ArrayList<>();

    static {
        // 已取消状态,部分二级状态示例(已取消、退回、作废等)
        list0Canceled.add("33"); // 取消,二级可能有46(取消)、55(退回)、79(作废)
        list0Canceled.add("70"); // 顺丰小哥取消,二级46
        list0Canceled.add("77"); // 中转退回或作废,二级55、79
        list0Canceled.add("131"); // 快递员从丰巢收件失败,二级无
        list0Canceled.add("207"); // 仓库取消订单
        list0Canceled.add("660"); // 合作点退件给客户
        list0Canceled.add("8000"); // 作废件,二级2

        // 待取件状态,二级状态包括待派送、待取件等
        list1PendingPickup.add("33"); // 滞留件入仓、网点清关(133)、网点自取(83/85)
        list1PendingPickup.add("70"); // 问题件,网点自取83
        list1PendingPickup.add("632"); // 储物柜交接
        list1PendingPickup.add("642"); // 门市/顺丰站快件上架
        list1PendingPickup.add("125"); // 快递员派件至丰巢/无人车
        list1PendingPickup.add("126"); // 快递员取消派件从丰巢取出
        list1PendingPickup.add("121"); // 用户丰巢柜拒收
        list1PendingPickup.add("138"); // 用户自助寄件
        list1PendingPickup.add("127"); // 寄件客户放快件至丰巢
        list1PendingPickup.add("651"); // SLC已揽件
        list1PendingPickup.add("655"); // 合作点收件
        list1PendingPickup.add("202"); // 出库(待揽收)
        list1PendingPickup.add("657"); // 合作点从顺丰交接
        list1PendingPickup.add("681"); // 到达待取
        list1PendingPickup.add("934"); // 外配异常
        // 注意同33、70在已取消列表中有部分code+reasonCode匹配取消,判断时需结合二级code

        // 已取件状态,快件已揽收
        list2PickedUp.add("43"); // 收件入仓
        list2PickedUp.add("46"); // 二程接驳收件
        list2PickedUp.add("50"); // 一票一件
        list2PickedUp.add("51"); // 一票多件子件
        list2PickedUp.add("54"); // 上门收件
        list2PickedUp.add("129"); // 快递员从丰巢收件成功
        list2PickedUp.add("135"); // 信息记录
        list2PickedUp.add("141"); // 预售件准备发运
        list2PickedUp.add("188"); // 港到港揽收
        list2PickedUp.add("607"); // 代理交接-收件
        list2PickedUp.add("950"); // 快速收件

        // 运输中状态(没有明确归类为其他状态时默认归为此)
        // 这里可不额外列出,默认匹配即可

        // 派件中,快件处于派送环节
        list4OutForDelivery.add("34"); // 滞留件出仓
        list4OutForDelivery.add("44"); // 派件出仓
        list4OutForDelivery.add("122"); // 加时区域派件出仓
        list4OutForDelivery.add("123"); // 便利店出仓
        list4OutForDelivery.add("151"); // 分配师傅
        list4OutForDelivery.add("152"); // 师傅预约
        list4OutForDelivery.add("153"); // 师傅提货
        list4OutForDelivery.add("154"); // 师傅上门
        list4OutForDelivery.add("204"); // 快件交接
        list4OutForDelivery.add("211"); // 星管家派件交接
        list4OutForDelivery.add("229"); // 投单签到
        list4OutForDelivery.add("630"); // 落地配派件出仓
        list4OutForDelivery.add("634"); // 港澳台二程接驳派件
        list4OutForDelivery.add("933"); // 外配出仓

        // 已签收状态
        list5Signed.add("80");   // 签收
        list5Signed.add("128");  // 客户从丰巢取件成功
        list5Signed.add("658");  // 合作点已派件
        list5Signed.add("701");  // 一票多件拍照收件
        list5Signed.add("8000"); // 黄单录入
        list5Signed.add("935");  // 外配签收
        list5Signed.add("980");  // 第三方签收
        list5Signed.add("8000"); // 8000原因码包含多个已签收情况,如6(遗失)、5(扣件)、11(到港)等。二级具体判断需业务补充。
    }

    public StatusEnum getEnum(String code) {
        if (list0Canceled.contains(code)) {
            return CANCELED;
        }
        if (list1PendingPickup.contains(code)) {
            return PENDING_PICKUP;
        }
        if (list2PickedUp.contains(code)) {
            return PICKED_UP;
        }
        if (list3InTransit.contains(code)) {
            return IN_TRANSIT;
        }
        if (list4OutForDelivery.contains(code)) {
            return OUT_FOR_DELIVERY;
        }
        if (list5Signed.contains(code)) {
            return SIGNED;
        }
        // 默认归为运输中
        return IN_TRANSIT;
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值