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;
|
}
|
}
|