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
160
161
162
163
164
165
package cn.iocoder.yudao.module.erp.dal.dataobject.purchase;
 
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.finance.ErpAccountDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
 
import java.math.BigDecimal;
import java.time.LocalDateTime;
 
/**
 * ERP 采购订单 DO
 *
 * @author 超级管理员
 */
@TableName(value = "erp_purchase_order")
@KeySequence("erp_purchase_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ErpPurchaseOrderDO extends BaseDO {
 
    /**
     * 编号
     */
    @TableId
    private Long id;
    /**
     * 采购订单号
     */
    private String no;
    /**
     * 采购状态
     *
     * 枚举 {@link cn.iocoder.yudao.module.erp.enums.ErpAuditStatus}
     */
    private Integer status;
    /**
     * 供应商编号
     *
     * 关联 {@link ErpSupplierDO#getId()}
     */
    private Long supplierId;
    /**
     * 结算账户编号
     *
     * 关联 {@link ErpAccountDO#getId()}
     */
    private Long accountId;
    /**
     * 下单时间
     */
    private LocalDateTime orderTime;
 
    /**
     * 合计数量
     */
    private BigDecimal totalCount;
    /**
     * 最终合计价格,单位:元
     *
     * totalPrice = totalProductPrice + totalTaxPrice - discountPrice
     */
    private BigDecimal totalPrice;
 
    /**
     * 合计产品价格,单位:元
     */
    private BigDecimal totalProductPrice;
    /**
     * 合计税额,单位:元
     */
    private BigDecimal totalTaxPrice;
    /**
     * 优惠率,百分比
     */
    private BigDecimal discountPercent;
    /**
     * 优惠金额,单位:元
     *
     * discountPrice = (totalProductPrice + totalTaxPrice) * discountPercent
     */
    private BigDecimal discountPrice;
    /**
     * 定金金额,单位:元
     */
    private BigDecimal depositPrice;
 
    /**
     * 来源类型
     *
     * 枚举 {@link cn.iocoder.yudao.module.erp.enums.ErpPurchaseOrderSourceTypeEnum}
     */
    private Integer sourceType;
    /**
     * 来源单号
     */
    private String sourceNo;
    /**
     * 来源单据编号
     *
     * 关联来源单据表的主键 ID
     */
    private Long sourceId;
 
    /**
     * 备注
     */
    private String remark;
 
    // ========== 采购入库 ==========
    /**
     * 采购入库数量
     */
    private BigDecimal inCount;
 
    // ========== 采购退货(出库)) ==========
    /**
     * 采购退货数量
     */
    private BigDecimal returnCount;
 
    /**
     * 入库状态
     *
     * 枚举 {@link cn.iocoder.yudao.module.erp.enums.ErpPurchaseOrderInStatusEnum}
     */
    private Integer inStatus;
 
    /**
     * BPM 流程实例编号
     *
     * 已废弃:采购订单改为轻量级状态机审批后不再写入,仅保留历史数据。
     */
    @Deprecated
    private String processInstanceId;
 
    /**
     * 审核人编号(系统用户)
     *
     * 为空表示尚未审核;只有该用户(或配置的审批人)才能执行审核操作。
     */
    private Long reviewerId;
 
    /**
     * 审核人昵称(冗余展示用)
     */
    private String reviewerName;
 
    /**
     * 审核时间
     */
    private LocalDateTime reviewTime;
 
    /**
     * 审核意见(审核不通过时必填,作为驳回原因)
     */
    private String reviewRemark;
 
}