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
package cn.iocoder.yudao.module.mdm.controller.admin.item.vo;
 
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
 
import java.math.BigDecimal;
 
@Schema(description = "管理后台 - MDM 物料新增/修改 Request VO")
@Data
public class MdmItemSaveReqVO {
 
    @Schema(description = "物料编号", example = "1")
    private Long id;
 
    @Schema(description = "物料编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "ITEM001")
    private String code;
 
    @Schema(description = "物料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "螺丝")
    private String name;
 
    @Schema(description = "物料条码", example = "12345678")
    private String barCode;
 
    @Schema(description = "规格型号", example = "M8*20")
    private String specification;
 
    @Schema(description = "物料分类编号(关联 MES 物料分类 mes_md_item_type)", example = "1")
    private Long categoryId;
 
    @Schema(description = "计量单位编号", example = "1")
    private Long unitMeasureId;
 
    @Schema(description = "辅单位1编号", example = "2")
    private Long unitMeasureId2;
 
    @Schema(description = "辅单位1换算比率", example = "12")
    private BigDecimal unitMeasureRate1;
 
    @Schema(description = "辅单位2编号", example = "3")
    private Long unitMeasureId3;
 
    @Schema(description = "辅单位2换算比率", example = "100")
    private BigDecimal unitMeasureRate2;
 
    @Schema(description = "默认仓库编号", example = "1")
    private Long warehouseId;
 
    @Schema(description = "默认仓库编码", example = "WH001")
    private String warehouseCode;
 
    @Schema(description = "物料类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer itemType;
 
    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
    private Integer status;
 
    @Schema(description = "采购价格", example = "10.00")
    private BigDecimal purchasePrice;
 
    @Schema(description = "销售价格", example = "15.00")
    private BigDecimal salesPrice;
 
    @Schema(description = "成本价格", example = "8.00")
    private BigDecimal costPrice;
 
    @Schema(description = "安全库存", example = "100")
    private BigDecimal safetyStock;
 
    @Schema(description = "最低库存", example = "50")
    private BigDecimal minStock;
 
    @Schema(description = "最高库存", example = "500")
    private BigDecimal maxStock;
 
    @Schema(description = "保质期天数", example = "365")
    private Integer expiryDay;
 
    @Schema(description = "是否批次管理", example = "false")
    private Boolean isBatchManaged;
 
    @Schema(description = "是否高值物料", example = "false")
    private Boolean isHighValue;
 
    @Schema(description = "重量", example = "0.5")
    private BigDecimal weight;
 
    @Schema(description = "备注", example = "备注信息")
    private String remark;
 
    @Schema(description = "是否同步到 MES", example = "false")
    private Boolean syncMes;
 
    // ========== 批次属性配置(同步时一起保存) ==========
 
    @Schema(description = "生产日期必填", example = "true")
    private Boolean produceDateFlag;
 
    @Schema(description = "有效期必填", example = "true")
    private Boolean expireDateFlag;
 
    @Schema(description = "入库日期必填", example = "false")
    private Boolean receiptDateFlag;
 
    @Schema(description = "供应商必填", example = "true")
    private Boolean vendorFlag;
 
    @Schema(description = "采购订单号必填", example = "false")
    private Boolean purchaseOrderCodeFlag;
 
    @Schema(description = "生产批号必填", example = "true")
    private Boolean lotNumberFlag;
 
    @Schema(description = "质量状态必填", example = "false")
    private Boolean qualityStatusFlag;
 
}