gaoluyang
昨天 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd
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
package cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo;
 
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
 
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
 
@Schema(description = "管理后台 - MES 生产报工新增/修改 Request VO")
@Data
public class MesProFeedbackSaveReqVO {
 
    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long id;
 
    @Schema(description = "报工单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "FB202503001")
    @NotNull(message = "报工单编号不能为空")
    private String code;
 
    @Schema(description = "报工类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "报工类型不能为空")
    private Integer type;
 
    @Schema(description = "工作站编号", example = "1")
    private Long workstationId;
 
    @Schema(description = "主计价设备编号,本次报工实际使用的设备;工资单价按工序+工艺路线+设备匹配", example = "8")
    private Long machineryId;
 
    @Schema(description = "工艺路线编号", example = "1")
    private Long routeId;
 
    @Schema(description = "工序编号", example = "1")
    private Long processId;
 
    @Schema(description = "生产工单编号", example = "1")
    private Long workOrderId;
 
    @Schema(description = "生产任务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "生产任务不能为空")
    private Long taskId;
 
    @Schema(description = "产品物料编号", example = "100")
    private Long itemId;
 
    @Schema(description = "过期日期")
    private LocalDateTime expireDate;
 
    @Schema(description = "生产批号", example = "LOT20260321")
    private String lotNumber;
 
    @Schema(description = "排产数量", example = "5000.00")
    private BigDecimal scheduledQuantity;
 
    @Schema(description = "本次报工数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "500.00")
    @NotNull(message = "报工数量不能为空")
    private BigDecimal feedbackQuantity;
 
    @Schema(description = "合格品数量", example = "490.00")
    private BigDecimal qualifiedQuantity;
 
    @Schema(description = "不良品数量", example = "10.00")
    private BigDecimal unqualifiedQuantity;
 
    @Schema(description = "待检测数量", example = "0")
    private BigDecimal uncheckQuantity;
 
    @Schema(description = "工废数量", example = "6.00")
    private BigDecimal laborScrapQuantity;
 
    @Schema(description = "料废数量", example = "4.00")
    private BigDecimal materialScrapQuantity;
 
    @Schema(description = "其他废品数量", example = "0")
    private BigDecimal otherScrapQuantity;
 
    @Schema(description = "报工人编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "报工人不能为空")
    private Long feedbackUserId;
 
    @Schema(description = "计费类型:1-计时 2-计件(由工序自动带出,前端无需提交)", example = "2")
    private Integer billingType;
 
    @Schema(description = "工资定额(由工序自动带出,前端无需提交)", example = "12.50")
    private BigDecimal wageRate;
 
    @Schema(description = "本次报工工时(小时),计时计薪的工序必填", example = "8.00")
    private BigDecimal workHours;
 
    @Schema(description = "本次报工工资(后端按工序计费类型自动计算,前端无需提交)", example = "100.00")
    private BigDecimal wageAmount;
 
    @Schema(description = "本次生产长度(米),仅用于计算标准工时;报工单位为米时默认等于报工数量", example = "1000.00")
    private BigDecimal productionLength;
 
    @Schema(description = "辅助工时录入项")
    private List<AuxValue> auxList;
 
    @Schema(description = "报工时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "报工时间不能为空")
    private LocalDateTime feedbackTime;
 
    @Schema(description = "审核人编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "审核人不能为空")
    private Long approveUserId;
 
    @Schema(description = "工艺参数值")
    private List<ParamValue> paramValues;
 
    @Data
    public static class AuxValue {
 
        @Schema(description = "辅助工时项目编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
        @NotNull(message = "辅助工时项目不能为空")
        private Long auxItemId;
 
        @Schema(description = "次数/个数/盘数/米数", example = "2.00")
        private BigDecimal quantity;
 
        @Schema(description = "换色/换料起始材料(按材料对配置时填写)", example = "PVC")
        private String materialFrom;
 
        @Schema(description = "换色/换料目标材料(按材料对配置时填写)", example = "LSZH")
        private String materialTo;
 
        @Schema(description = "备注")
        private String remark;
 
    }
 
    @Data
    public static class ParamValue {
        @Schema(description = "任务参数记录明细编号", requiredMode = Schema.RequiredMode.REQUIRED)
        @NotNull(message = "参数明细不能为空")
        private Long detailId;
 
        @Schema(description = "参数值")
        private String value;
    }
 
    @Schema(description = "备注", example = "备注")
    private String remark;
 
    @Schema(description = "BPM 流程实例编号")
    private String processInstanceId;
 
    @Schema(description = "BPM 流程定义 Key")
    private String processDefinitionKey;
 
    }