package com.by4cloud.platformx.business.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.Column; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.util.Date; import java.util.List; @Data public class ContractAddDTO { @Schema(description = "合同名称") private String contractName; @Schema(description = "甲方id") @JsonProperty("partyAId") private Long partyAId; @Schema(description = "甲方名称") @JsonProperty("partyA") private String partyA; @Schema(description = "乙方id") private Long partyBId; @Schema(description = "乙方名称") private String partyB; @Schema(description = "合同金额") private BigDecimal amount; @Schema(description = "币种(CNY/USD等)") private String currency; @Schema(description = "合同类型(0-生成式 1-备案式)") private Integer contractType; @Schema(description = "供应属性 0-成品 1-备件 2-大修 3-其他") private Integer supplyAttribute; @Schema(description = "合同状态(0-草稿 1-已生效 2-已终止 3-已过期)") private Integer contractStatus; @Schema(description = "合同服务属性(0-产品销售 1-无形服务)") private Integer contractAttribute; @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @Schema(description = "签署日期") private Date signDate; @Schema(description = "备注") private String signPlace; @Schema(description = "交付周期") private Integer deliveryCycle; @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @Schema(description = "生效日期") private String effectiveDate; @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @Schema(description = "到期日期") private String expirationDate; @Schema(description = "合同附件URL") private String attachmentUrl; @Schema(description = "备注") private String remark; @Schema(description = "模版ID") private Long templateId; @Schema(description = "合同分类") private String contractCategory; @Schema(description = "执行周期 1/周 2/月 3/季度 4/半年 5/年") private String execFrequency; // @Schema(description = "执行次数") // private Integer execTimes; @Schema(description = "执行日期后多少天生成应收") private Integer execDay; @Schema(description = "环境") private String environment; @Schema(description = "标准") private String standard; @Schema(description = "质保期 使用月数") private BigDecimal useMonth; @Schema(description = "质保期 发货后月数") private BigDecimal afterShipMonth; @Schema(description = "货运方式") private String shipMethod; @Schema(description = "货运地址") private String shipAddress; @Schema(description = "包装") private String packaging; @Schema(description = "维修或换货期限") private BigDecimal repairPeriod; @Schema(description = "维修或换货 违约金") private BigDecimal repairBreachAmount; @Schema(description = "货物数量不足 补货天数") private BigDecimal goodsShort; @Schema(description = "货物数量不足 违约金") private BigDecimal goodsShortBreachAmount; @Schema(description = "每逾期一日,承担本合同总额 违约金") private BigDecimal overdueBreachAmount; @Schema(description = "逾期 日以上的,甲方有权解除合同") private BigDecimal terminateContract; @Schema(description = "双方均可向 人民法院") private String court; @Schema(description = "本合同附件包括:") private String contractAttchment; @Schema(description = "合同签订市") private String city; @Schema(description = "合同签订区") private String region; @Schema(description = "开票通知在 个工作日内") private BigDecimal invoiceNotice; @Schema(description = "合同总价税率") private BigDecimal contractTax; private List contractPaymentSchedule; private List contractSubjectMatter; }