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 { private String dataId; @Schema(description = "合同编号") private String contractNo; @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; @Schema(description = "经济事项 bip推送应收用") private String economicMatters; @Schema(description = "客户erp编码") private String partyACode; @Column(columnDefinition = "VARCHAR(50) comment '行业'") private String industryCode; @Column(columnDefinition = "VARCHAR(50) comment '区域'") private String areaCode; @Schema(description = "需方在接到通知后 日内进行检验") private BigDecimal inspectDay; @Schema(description = "收到供方通知后 日内派人验收") private BigDecimal acceptDay; @Schema(description = "延验收超过 日") private BigDecimal delayAcceptDay; @Schema(description = "验收合格后 个工作日") private BigDecimal acceptPassDay; @Schema(description = "验收合格向供方足额支付合同总价的") private BigDecimal acceptPassAmount; @Schema(description = "日内开始发货") private BigDecimal deliverDay; @Schema(description = "日内发完") private BigDecimal deliverCompleteDay; @Schema(description = "供方代理") private String supplierAgent; @Schema(description = "供方代理身份证") private String supplierAgentIdCard; @Schema(description = "需方代理") private String buyerAgent; @Schema(description = "需方代理身份证") private String buyerAgentIdCard; private String agentAuthority; @Schema(description = "延期支付预付款") private BigDecimal delayPayAdvancePayment; @Schema(description = "延期支付进度款") private BigDecimal delayPayProcessPayment; @Schema(description = "收到预付款之日起 个月内未生产完成") private BigDecimal receiveAdvancePaymentMonth; @Schema(description = "并提前 各工作日通知需方验收") private BigDecimal noticeSupplierAcceptDay; @Schema(description = "每逾期 日") private BigDecimal overdueDay; @Schema(description = "按合同总价的 偿付需方损失") private BigDecimal lossAmount; @Schema(description = "违约金最高不超过合同总价的") private BigDecimal liquidatedDamagesHighSupplier; @Schema(description = "需方如逾期付款每逾期 日") private BigDecimal overdueDayXf; @Schema(description = "需方如逾期付款按合同总价的 偿付需方损失") private BigDecimal lossAmountXf; @Schema(description = "违约金最高不超过合同总价的") private BigDecimal liquidatedDamagesHighBuyer; @Schema(description = "本合同一式 份") private BigDecimal totalParts; @Schema(description = "供方执 份") private BigDecimal supplierPart; @Schema(description = "需方执 份") private BigDecimal buyerPart; private BigDecimal advancePayment; @Schema(description = "付款方式") private String paymentMethod; private List contractPaymentSchedule; private List contractSubjectMatter; }