package com.by4cloud.platformx.business.entity; 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.Transient; import lombok.Data; import org.hibernate.annotations.Comment; import org.springframework.format.annotation.DateTimeFormat; import jakarta.persistence.Table; import java.util.List; /** * @author wjli * @description * @date 2026/4/29 10:51 **/ @Data @Entity @Table(name = "production_plan") @Comment("排产计划") public class ProductionPlan extends BaseModel { @Schema(description = "所属合同编号") @Column(columnDefinition = "VARCHAR(64) comment '合同编号'") private String contractNo; @Schema(description = "所属合同名称") @Column(columnDefinition = "VARCHAR(200) comment '合同名称'") private String contractName; @Schema(description = "排产计划编号") @Column(columnDefinition = "VARCHAR(64) comment '排产计划编号'") private String productionPlanNo; @Schema(description = "排产计划名称") @Column(columnDefinition = "VARCHAR(200) comment '排产计划名称'") private String productionPlanName; @Schema(description = "甲方id") @Column(columnDefinition = "bigint comment '甲方id'") private Long partyAId; @Schema(description = "甲方名称") @Column(columnDefinition = "VARCHAR(100) comment '甲方名称'") private String partyA; @Schema(description = "乙方id") @Column(columnDefinition = "bigint comment '乙方id'") private Long partyBId; @Schema(description = "乙方名称") @Column(columnDefinition = "VARCHAR(100) comment '乙方名称'") private String partyB; @Schema(description = "金额") @Column(columnDefinition = "double comment '金额'") private Double amount; @Schema(description = "币种(CNY/USD等)") @Column(columnDefinition = "VARCHAR(10) default 'CNY' comment '币种'") private String currency; @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 '计划状态'") private Integer status; @Schema(description = "服务属性(0-产品销售 1-无形服务)") @Column(columnDefinition = "tinyint(2) default 0 comment '服务属性'") private Integer attribute; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @JsonFormat(pattern = "yyyy-MM-dd HH:mm") @Schema(description = "签署日期") @Column(columnDefinition = "VARCHAR(64) comment '签署日期'") private String 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; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @JsonFormat(pattern = "yyyy-MM-dd HH:mm") @Schema(description = "到期日期") @Column(columnDefinition = "VARCHAR(64) comment '到期日期'") private String expirationDate; @Schema(description = "备注") @Column(columnDefinition = "TEXT comment '备注'") private String remark; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @JsonFormat(pattern = "yyyy-MM-dd HH:mm") @Schema(description = "审批时间") @Column(columnDefinition = "datetime comment '审批时间'") private String approveTime; /** * 标的物 */ @Transient @TableField(exist = false) private List contractSubjectMatterList; }