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