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
package cn.iocoder.yudao.module.mes.controller.admin.pro.mps.vo;
 
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import cn.iocoder.yudao.module.mes.enums.DictTypeConstants;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
 
import java.math.BigDecimal;
import java.time.LocalDateTime;
 
@Schema(description = "管理后台 - MES 生产主计划 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MesProMpsRespVO {
 
    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("编号")
    private Long id;
 
    @Schema(description = "MPS 编码", example = "MPS-001")
    @ExcelProperty("MPS 编码")
    private String code;
 
    @Schema(description = "状态", example = "0")
    @ExcelProperty(value = "状态", converter = DictConvert.class)
    @DictFormat(DictTypeConstants.MES_PRO_MPS_STATUS)
    private Integer status;
 
    // ========== 来源信息 ==========
 
    @Schema(description = "销售订单ID", example = "100")
    private Long saleOrderId;
 
    @Schema(description = "销售订单号", example = "SO-001")
    @ExcelProperty("销售订单号")
    private String saleOrderNo;
 
    @Schema(description = "销售订单明细ID", example = "200")
    private Long saleOrderItemId;
 
    // ========== 产品信息 ==========
 
    @Schema(description = "产品编号", example = "100")
    private Long productId;
 
    @Schema(description = "产品编码", example = "P-001")
    @ExcelProperty("产品编码")
    private String productCode;
 
    @Schema(description = "产品名称", example = "电路板 A")
    @ExcelProperty("产品名称")
    private String productName;
 
    @Schema(description = "规格型号", example = "100x200mm")
    @ExcelProperty("规格型号")
    private String productSpecification;
 
    @Schema(description = "单位名称", example = "个")
    @ExcelProperty("单位")
    private String unitMeasureName;
 
    @Schema(description = "计划生产数量", example = "100.00")
    @ExcelProperty("计划生产数量")
    private BigDecimal quantity;
 
    @Schema(description = "已生产数量", example = "50.00")
    @ExcelProperty("已生产数量")
    private BigDecimal quantityProduced;
 
    // ========== 物料成本(按 MPS 数量占工单数量比例分摊) ==========
 
    @Schema(description = "标准物料成本", example = "1000.00")
    @ExcelProperty("标准物料成本")
    private BigDecimal standardMaterialCost;
 
    @Schema(description = "实际物料成本", example = "1050.00")
    @ExcelProperty("实际物料成本")
    private BigDecimal actualMaterialCost;
 
    @Schema(description = "超耗物料成本", example = "50.00")
    @ExcelProperty("超耗物料成本")
    private BigDecimal overConsumeCost;
 
    @Schema(description = "物料单位成本(实际物料成本/已报工数量)", example = "10.50")
    @ExcelProperty("物料单位成本")
    private BigDecimal materialUnitCost;
 
    // ========== 客户信息 ==========
 
    @Schema(description = "客户编号", example = "300")
    private Long clientId;
 
 
    @Schema(description = "客户名称", example = "客户 A")
    @ExcelProperty("客户名称")
    private String clientName;
 
    // ========== 时间信息 ==========
 
    @Schema(description = "需求日期")
    @ExcelProperty("需求日期")
    private LocalDateTime requestDate;
 
    @Schema(description = "下发日期")
    @ExcelProperty("下发日期")
    private LocalDateTime issueDate;
 
    @Schema(description = "完成日期")
    @ExcelProperty("完成日期")
    private LocalDateTime finishDate;
 
    // ========== 生产工单关联 ==========
 
    @Schema(description = "生产工单ID", example = "500")
    private Long workOrderId;
 
    @Schema(description = "生产工单编码", example = "WO-001")
    @ExcelProperty("生产工单编码")
    private String workOrderCode;
 
    // ========== 合并下发标识 ==========
 
    @Schema(description = "是否合并下发", example = "0")
    private Integer mergeFlag;
 
    @Schema(description = "合并批次号", example = "MERGE-001")
    private String mergeBatchNo;
 
    @Schema(description = "备注", example = "备注")
    @ExcelProperty("备注")
    private String remark;
 
    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;
 
}