李白
1 天以前 e7e6d39b095b6a763e54ab34631171c3de32ec9e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
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.Table;
import jakarta.persistence.Transient;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
 
import java.math.BigDecimal;
 
/**
 * 合同标的物明细实体类
 * @author xfei
 * @date 2024-01-15
 */
@Data
@Entity
@Table(name = "contract_subject_matter")
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class ContractSubjectMatter extends BaseModel<ContractSubjectMatter> {
 
    @Schema(description = "排产计划ID")
    @Column(columnDefinition = "bigint comment '排产计划ID'")
    private Long productionPlanId;
 
    @Schema(description = "排产计划名称")
    @Column(columnDefinition = "VARCHAR(200) comment '排产计划名称'")
    private String productionPlanName;
 
    @Schema(description = "关联合同ID")
    @Column(columnDefinition = "bigint comment '关联合同ID'")
    private Long contractId;
 
    @Schema(description = "合同名称")
    @Column(columnDefinition = "VARCHAR(200) comment '合同名称'")
    private String contractName;
 
    @Schema(description = "标的物名称")
    @Column(columnDefinition = "VARCHAR(200) comment '标的物名称'")
    private String materialName;
 
    @Schema(description = "标的物编码(内部唯一编码)")
    @Column(columnDefinition = "VARCHAR(64) comment '标的物编码'")
    private String materialCode;
 
    @Schema(description = "标的物编码(内部唯一名称)")
    @Column(columnDefinition = "VARCHAR(64) comment '标的物名称(内部)'")
    private String materialInternalName;
 
    @Schema(description = "标的物规格/型号")
    @Column(columnDefinition = "VARCHAR(200) comment '标的物规格/型号'")
    private String specification;
 
    @Schema(description = "标的物品牌")
    @Column(columnDefinition = "VARCHAR(100) comment '标的物品牌'")
    private String brand;
 
    @Schema(description = "标的物分类(0-产品 1-服务)")
    @Column(columnDefinition = "tinyint(2) default 0 comment '标的物分类'")
    private Integer category;
 
    @Schema(description = "数量")
    @Column(columnDefinition = "decimal(10,2) comment '数量'")
    private BigDecimal quantity;
 
    @Schema(description = "计量单位(个/台/吨/项/套等)")
    @Column(columnDefinition = "VARCHAR(20) comment '计量单位'")
    private String unit;
 
    @Schema(description = "单价")
    @Column(columnDefinition = "decimal(10,2) comment '单价'")
    private BigDecimal unitPrice;
 
    @Schema(description = "税率(百分比,如13表示13%)")
    @Column(columnDefinition = "decimal(10,2) comment '税率'")
    private BigDecimal taxRate;
 
    @Schema(description = "税额")
    @Column(columnDefinition = "decimal(10,2) comment '税额'")
    private BigDecimal taxAmount;
 
    @Schema(description = "含税总价")
    @Column(columnDefinition = "decimal(10,2) comment '含税总价'")
    private BigDecimal totalAmount;
 
    @Schema(description = "不含税总价")
    @Column(columnDefinition = "decimal(10,2) comment '不含税总价'")
    private BigDecimal totalAmountExcludingTax;
 
    @Schema(description = "交货/交付地点")
    @Column(columnDefinition = "VARCHAR(500) comment '交货/交付地点'")
    private String deliveryPlace;
 
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Schema(description = "计划交付日期")
    @Column(columnDefinition = "VARCHAR(64) comment '计划交付日期'")
    private String plannedDeliveryDate;
 
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Schema(description = "实际交付日期")
    @Column(columnDefinition = "VARCHAR(64) comment '实际交付日期'")
    private String actualDeliveryDate;
 
    @Schema(description = "交付状态(0-未交付 1-部分交付 2-已交付)")
    @Column(columnDefinition = "tinyint(2) default 0 comment '交付状态'")
    private Integer deliveryStatus;
 
    @Schema(description = "质保期(月)")
    @Column(columnDefinition = "int default 12 comment '质保期(月)'")
    private Integer warrantyPeriod;
 
    @Schema(description = "标的物描述/备注")
    @Column(columnDefinition = "TEXT comment '标的物描述/备注'")
    private String description;
 
    @Schema(description = "附件URL(产品说明书、技术文档等)")
    @Column(columnDefinition = "VARCHAR(500) comment '附件URL'")
    private String attachmentUrl;
 
    @Schema(description = "排序号")
    @Column(columnDefinition = "int default 0 comment '排序号'")
    private Integer sortOrder;
 
    @Schema(description = "是否验收通过(0-未验收 1-已验收)")
    @Column(columnDefinition = "tinyint(1) default 0 comment '是否验收通过'")
    private Integer isAccepted;
 
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Schema(description = "验收时间")
    @Column(columnDefinition = "VARCHAR(64) comment '验收时间'")
    private String acceptTime;
 
    @Schema(description = "已交付数量")
    @Column(columnDefinition = "decimal(10,2) comment '已交付数量'")
    private BigDecimal deliveredQuantity;
 
    @Schema(description = "未交付数量")
    @Column(columnDefinition = "decimal(10,2) comment '未交付数量'")
    private BigDecimal remainingQuantity;
 
    @Schema(description = "折扣率")
    @Column(columnDefinition = "decimal(10,2) comment '折扣率'")
    private BigDecimal discountRate;
 
    @Schema(description = "最近一次交付数量")
    @Column(columnDefinition = "decimal(10,2) comment '最近一次交付数量'")
    private BigDecimal lastDeliveredQuantity;
}