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
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
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 ReceivableBillApiDto {
 
    /**
     * 应收账单管理信息
     */
    @NotNull(message = "应收账单信息不能为空")
    private ReceivableBillDto bill;
 
    /**
     * 应收费用管理信息
     */
    @NotNull(message = "应收费用信息不能为空")
    private List<ReceivableFeeDto> fees;
 
    /**
     * 应收账单数据传输对象
     */
    @Data
    public static class ReceivableBillDto {
 
        /** 账单名称 */
        @NotBlank(message = "账单名称不能为空")
        private String billName;
 
        /** 客户名称 */
        @NotBlank(message = "客户名称不能为空")
        private String customerName;
 
        /** 收款人 */
        private String payee;
 
        /** 责任人 */
        private String responsiblePerson;
 
        /** 责任领导 */
        private String responsibleLeader;
 
        /** 结算方式 */
        private String settlementMethod;
 
        /** 业务类型 */
        private String businessType;
 
        /** 推进要求 */
        private String promotionRequirement;
 
        /** 是否内部结算 */
        private String isInternalSettlement;
 
        /** 内部结算单位 */
        private String internalSettlementUnit;
 
        /** 单据数量 */
        private Integer documentCount;
 
        /** 应结算金额 */
        @NotNull(message = "应结算金额不能为空")
        private BigDecimal totalAmount;
 
        /** 币制 */
        @NotBlank(message = "币制不能为空")
        private String currency;
 
        /** 减免金额 */
        private BigDecimal discountAmount;
 
        /** 已收金额 */
        private BigDecimal receivedAmount;
 
        /** 待收金额 */
        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;
 
        /** 结算种类 */
        private String settlementCategory;
 
        /** 结算期 */
        private String settlementPeriod;
 
        /** 状态(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 ReceivableFeeDto {
 
        /** 序号(用于与明细表关联) */
        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 customerName;
 
        /** 项目名称 */
        private String projectName;
 
        /** 业务发生时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date businessTime;
 
        /** 应收确认时间 */
        @JsonFormat(pattern = "yyyy-MM-dd")
        private Date receivableConfirmTime;
 
        /** 应收金额 */
        @NotNull(message = "应收金额不能为空")
        private BigDecimal receivableAmount;
        private String receivableAmountStr;
 
        /** 状态 */
        private String status;
 
        /** 备注 */
        private String remark;
 
        /** 应收费用明细列表 */
        private List<ReceivableFeeDetailDto> feeDetails;
    }
 
    /**
     * 应收费用明细数据传输对象
     */
    @Data
    public static class ReceivableFeeDetailDto {
 
        /** 序号(用于与主表关联) */
        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;
    }
}