shiyunteng
18 小时以前 fca21683e1b5b906d2514082ddfbae8eb820c9ea
platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Contract.java
@@ -2,26 +2,31 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.by4cloud.platformx.common.data.mybatis.BaseModel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import jakarta.persistence.Transient;
import lombok.Data;
import org.hibernate.annotations.Table;
import javax.persistence.Transient;
import java.math.BigDecimal;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 * @author cd
 * @description
 * @description 合同管理
 * @date 2026/4/29 10:51
 **/
@Data
@Entity
@Table(appliesTo = "contract", comment = "合同管理")
@Table(name = "contract")
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class Contract extends BaseModel<Contract> {
@@ -34,24 +39,24 @@
    private String contractName;
    @Schema(description = "甲方id")
    @Column(columnDefinition = "bigint comment '甲方id'")
    @Column(name = "party_a_id",columnDefinition = "bigint comment '甲方id'")
    private Long partyAId;
    @Schema(description = "甲方名称")
    @Column(columnDefinition = "VARCHAR(100) comment '甲方名称'")
    @Column(name = "party_a",columnDefinition = "VARCHAR(100) comment '甲方名称'")
    private String partyA;
    @Schema(description = "乙方id")
    @Column(columnDefinition = "VARCHAR(100) comment '乙方id'")
    private String partyBId;
    @Column(name = "party_b_id",columnDefinition = "bigint comment '乙方id'")
    private Long partyBId;
    @Schema(description = "乙方名称")
    @Column(columnDefinition = "VARCHAR(100) comment '乙方名称'")
    @Column(name = "party_b",columnDefinition = "VARCHAR(100) comment '乙方名称'")
    private String partyB;
    @Schema(description = "合同金额")
    @Column(columnDefinition = "double comment '合同金额'")
    private Double amount;
    @Column(columnDefinition = "decimal(10,2) comment '合同金额'")
    private BigDecimal amount;
    @Schema(description = "币种(CNY/USD等)")
    @Column(columnDefinition = "VARCHAR(10) default 'CNY' comment '币种'")
@@ -60,6 +65,10 @@
    @Schema(description = "合同类型(0-生成式 1-备案式)")
    @Column(columnDefinition = "tinyint(2) default 0 comment '合同类型'")
    private Integer contractType;
    @Schema(description = "供应属性 0-成品 1-备件 2-大修 3-其他")
    @Column(columnDefinition = "tinyint(2) default 0 comment '供应属性 0-成品 1-备件 2-大修 3-其他'")
    private Integer supplyAttribute;
    @Schema(description = "合同状态(0-草稿 1-已生效 2-已终止 3-已过期)")
    @Column(columnDefinition = "tinyint(2) default 0 comment '合同状态'")
@@ -72,20 +81,24 @@
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Schema(description = "签署日期")
    @Column(columnDefinition = "VARCHAR(64) comment '签署日期'")
    private String signDate;
    @Column(columnDefinition = "date comment '签署日期'")
    private Date signDate;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Schema(description = "生效日期")
    @Column(columnDefinition = "VARCHAR(64) comment '生效日期'")
    private String effectiveDate;
    @Column(columnDefinition = "date comment '生效日期'")
    private Date effectiveDate;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
   @Schema(description = "交付周期")
   @Column(columnDefinition = "int default 0 comment '交付周期'")
   private Integer deliveryCycle;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "到期日期")
    @Column(columnDefinition = "VARCHAR(64) comment '到期日期'")
    private String expirationDate;
    @Column(columnDefinition = "date comment '到期日期'")
    private Date expirationDate;
    @Schema(description = "合同附件URL")
    @Column(columnDefinition = "VARCHAR(500) comment '合同附件URL'")
@@ -104,7 +117,35 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Schema(description = "审批时间")
    @Column(columnDefinition = "datetime comment '审批时间'")
    private String approveTime;
    private Date approveTime;
   @Schema(description = "到货节点ID")
   @Column(columnDefinition = "bigint comment '到货节点ID'")
   private Long arrivalScheduleId;
   @Schema(description = "验收节点ID")
   @Column(columnDefinition = "bigint comment '验收节点ID'")
   private Long acceptScheduleId;
   @Schema(description = "erp推送标识")
   @Column(columnDefinition = "char comment 'erp推送标识 0 未推 1 已推'")
   private String erpPushFlag;
   @Schema(description = "开票状态")
   @Column(columnDefinition = "char comment '开票状态 0 不能开票 1 部分可开 2 待开 3 已开'")
   private String billingStatus;
   @Schema(description = "已开票金额")
   @Column(columnDefinition = "decimal(10,2) comment '已开票金额'")
   private BigDecimal billingAmout;
   @Schema(description = "下一阶段")
   @Column(columnDefinition = "VARCHAR(128) comment '下一阶段'")
   private String nextScheduleName;
   @Schema(description = "模版ID")
   @Column(columnDefinition = "bigint comment '模版ID'")
   private Long templateId;
    /**
     * 临时字段 - 用于接收审批人名称等关联查询结果
@@ -112,12 +153,26 @@
    @Transient
    @TableField(exist = false)
    private String approverName;
    /**
     * 标的物
     */
    @Transient
    @TableField(exist = false)
    private List<ContractSubjectMatter> contractSubjectMatterList;
    /**
     * 收款阶段
     */
    @Transient
    @TableField(exist = false)
    private List<ContractPaymentSchedule> contractPaymentScheduleList;
    /**
     * 临时字段 - 合同剩余天数
     */
    @Transient
    @TableField(exist = false)
    @Schema(description = "合同剩余天数(临时字段)")
    private Long remainingDays;
}