2026-06-26 20b96473f2520590a0dca6b775b81e3ea06a77a0
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.kdniao;
 
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import tools.jackson.databind.annotation.JsonDeserialize;
import tools.jackson.databind.ext.javatime.deser.LocalDateTimeDeserializer;
 
import java.time.LocalDateTime;
import java.util.List;
 
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;
 
/**
 * 快递鸟快递查询 Resp DTO
 *
 * 参见 <a href="https://www.yuque.com/kdnjishuzhichi/dfcrg1/wugo6k">快递鸟接口文档</a>
 *
 * @author jason
 */
@Data
public class KdNiaoExpressQueryRespDTO {
 
    /**
     * 快递公司编码
     */
    @JsonProperty("ShipperCode")
    private String shipperCode;
 
    /**
     * 快递单号
     */
    @JsonProperty("LogisticCode")
    private String logisticsNo;
 
    /**
     * 订单编号
     */
    @JsonProperty("OrderCode")
    private String orderNo;
 
    /**
     * 用户 ID
     */
    @JsonProperty("EBusinessID")
    private String businessId;
 
    /**
     * 普通物流状态
     *
     * 0 - 暂无轨迹信息
     * 1 - 已揽收
     * 2 - 在途中
     * 3 - 签收
     * 4 - 问题件
     * 5 - 转寄
     * 6 - 清关
     */
    @JsonProperty("State")
    private String state;
 
    /**
     * 成功与否
     */
    @JsonProperty("Success")
    private Boolean success;
    /**
     * 失败原因
     */
    @JsonProperty("Reason")
    private String reason;
 
    /**
     * 轨迹数组
     */
    @JsonProperty("Traces")
    private List<ExpressTrack> tracks;
 
    @Data
    public static class ExpressTrack {
 
        /**
         * 发生时间
         */
        @JsonProperty("AcceptTime")
        @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
        @JsonDeserialize(using = LocalDateTimeDeserializer.class)
        private LocalDateTime acceptTime;
 
        /**
         * 轨迹描述
         */
        @JsonProperty("AcceptStation")
        private String acceptStation;
 
    }
 
}