sen
6 天以前 fd765fb823fb60fc942b09e17a5d13ad4aef2f96
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
package com.ruoyi.cwgl.domain.dto;
 
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
 
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
 
/**
 * 应付账单API接口数据传输对象
 */
@Data
public class PayableBillApiDto {
 
    /**
     * 应付账单管理信息
     */
    @NotNull(message = "应付账单信息不能为空")
    private PayableBillDto bill;
 
    /**
     * 应付费用管理信息
     */
    @NotNull(message = "应付费用信息不能为空")
    private List<PayableFeeDto> fees;
 
    /**
     * 应付账单数据传输对象
     */
    @Data
    public static class PayableBillDto {
 
        /** 账单名称 */
        @NotBlank(message = "账单名称不能为空")
        private String billName;
 
        /** 供应商名称 */
        @NotBlank(message = "供应商名称不能为空")
        private String supplierName;
 
        /** 是否内部结算 */
        private String isInternalSettlement;
 
        /** 内部结算单位 */
        private String internalSettlementUnit;
 
        /** 单据数量 */
        private Integer documentCount;
 
        /** 应结算金额 */
        @NotNull(message = "应结算金额不能为空")
        private BigDecimal totalAmount;
 
        /** 币制 */
        @NotBlank(message = "币制不能为空")
        private String currency;
 
        /** 减免金额 */
        private BigDecimal discountAmount;
 
        /** 已付金额 */
        private BigDecimal paidAmount;
 
        /** 待付金额 */
        private BigDecimal pendingAmount;
 
        /** 汇率(港币兑人民币) */
        private BigDecimal exchangeRate;
 
        /** 人民币金额 */
        private BigDecimal cnyAmount;
 
        /** 周期类型 */
        private String periodType;
 
        /** 业务期间开始日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date businessStartDate;
 
        /** 业务期间结束日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date businessEndDate;
 
        /** 账期开始日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date billingStartDate;
 
        /** 账期结束日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date billingEndDate;
 
        /** 账单生成日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date billGenerateDate;
 
        /** 账单发送日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date billSendDate;
 
        /** 账单到期日期 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date billDueDate;
 
        /** 状态(draft:草稿;generated:已生成;sent:已发送;pending_review:待审核;partial_paid:部分付款;paid:已付款;cancelled:已取消) */
        private String status;
 
        /** 审核状态(0:未审核;1:审核通过;2:审核不通过) */
        private Integer auditStatus;
 
        /** 备注 */
        private String remark;
 
        /** 来源系统ID(用于审核推送时识别目标TMS系统) */
        private Integer sourceSystemId;
    }
 
    /**
     * 应付费用数据传输对象
     */
    @Data
    public static class PayableFeeDto {
 
        /** 序号(用于与明细表关联) */
        private String serialNumber;
 
        /** 关联账单编号 */
        private String relatedBillNo;
 
        /** 来源系统 */
        @NotBlank(message = "来源系统不能为空")
        private String sourceSystem;
 
        /** 业务板块 */
        private String businessSector;
 
        /** 单据类型 */
        private String documentType;
 
        /** 单据编号 */
        @NotBlank(message = "单据编号不能为空")
        private String documentNo;
 
        /** 是否内部结算 */
        private String isInternalSettlement;
 
        /** 内部结算单位 */
        private String internalSettlementUnit;
 
        /** 供应商名称 */
        @NotBlank(message = "供应商名称不能为空")
        private String supplierName;
 
        /** 项目名称 */
        private String projectName;
 
        /** 业务发生时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date businessTime;
 
        /** 应付确认时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date payableConfirmTime;
 
        /** 应付金额 */
        @NotNull(message = "应付金额不能为空")
        private BigDecimal payableAmount;
        private String payableAmountStr;
 
        /** 状态 */
        private String status;
 
        /** 备注 */
        private String remark;
 
        /** 应付费用明细列表 */
        private List<PayableFeeDetailDto> feeDetails;
    }
 
    /**
     * 应付费用明细数据传输对象
     */
    @Data
    public static class PayableFeeDetailDto {
 
        /** 序号(用于与主表关联) */
        private String serialNumber;
 
        /** 费用类型 */
        @NotBlank(message = "费用类型不能为空")
        private String feeType;
 
        /** 费用名称 */
        @NotBlank(message = "费用名称不能为空")
        private String feeName;
 
        /** 计费单位 */
        private String billingUnit;
 
        /** 计费单价 */
        @NotNull(message = "计费单价不能为空")
        private BigDecimal unitPrice;
 
        /** 计费数量 */
        @NotNull(message = "计费数量不能为空")
        private BigDecimal billingQuantity;
 
        /** 计费金额 */
        @NotNull(message = "计费金额不能为空")
        private BigDecimal billingAmount;
 
        /** 实付金额 */
        private BigDecimal actualAmount;
 
        /** 币制 */
        private String currency;
 
        /** 费用登记时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date feeRegTime;
 
        /** 备注 */
        private String remark;
    }
}