| | |
| | | |
| | | 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> { |
| | | |
| | | |
| | |
| | | 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 '币种'") |
| | |
| | | @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 '合同状态'") |
| | |
| | | @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; |
| | | |
| | | @Schema(description = "交付周期") |
| | | @Column(columnDefinition = "int default 0 comment '交付周期'") |
| | | private Integer deliveryCycle; |
| | | |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm") |
| | | @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'") |
| | |
| | | @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; |
| | | |
| | | /** |
| | | * 临时字段 - 用于接收审批人名称等关联查询结果 |
| | |
| | | @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; |
| | | |
| | | } |