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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
package cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.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;
import java.util.List;
 
@Schema(description = "管理后台 - MES 生产报工 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MesProFeedbackRespVO {
 
    @Schema(description = "首次提交时的关联设备编号快照,逗号分隔;旧历史记录可能为空")
    private String machineryIds;
 
    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    @ExcelProperty("编号")
    private Long id;
 
    @Schema(description = "报工单编号", example = "FB202503160001")
    @ExcelProperty("报工单编号")
    private String code;
 
    @Schema(description = "报工类型", example = "1")
    @ExcelProperty(value = "报工类型", converter = DictConvert.class)
    @DictFormat(DictTypeConstants.MES_PRO_FEEDBACK_TYPE)
    private Integer type;
 
    @Schema(description = "报工途径", example = "PC")
    @ExcelProperty("报工途径")
    private String channel;
 
    @Schema(description = "报工时间")
    @ExcelProperty("报工时间")
    private LocalDateTime feedbackTime;
 
    @Schema(description = "工作站编号", example = "1")
    private Long workstationId;
 
    @Schema(description = "工作站编码", example = "WS-001")
    @ExcelProperty("工作站编码")
    private String workstationCode;
 
    @Schema(description = "工作站名称", example = "注塑工作站")
    @ExcelProperty("工作站名称")
    private String workstationName;
 
    @Schema(description = "工艺路线编号", example = "1")
    private Long routeId;
 
    @Schema(description = "工艺路线编码", example = "RT-001")
    private String routeCode;
 
    @Schema(description = "工序编号", example = "1")
    private Long processId;
 
    @Schema(description = "工序编码", example = "PR-001")
    @ExcelProperty("工序编码")
    private String processCode;
 
    @Schema(description = "工序名称", example = "注塑")
    @ExcelProperty("工序名称")
    private String processName;
 
    @Schema(description = "是否需要检验")
    private Boolean checkFlag;
 
    @Schema(description = "生产工单编号", example = "1")
    private Long workOrderId;
 
    @Schema(description = "工单编码", example = "MO202503120008")
    @ExcelProperty("工单编码")
    private String workOrderCode;
 
    @Schema(description = "销售明细盘号")
    @ExcelProperty("盘号")
    private String reelNo;
 
    @Schema(description = "工单名称", example = "博世螺丝刀")
    @ExcelProperty("工单名称")
    private String workOrderName;
 
    @Schema(description = "生产任务编号", example = "1")
    private Long taskId;
 
    @Schema(description = "任务编码", example = "PT202503150001")
    private String taskCode;
 
    @Schema(description = "产品物料编号", example = "75")
    private Long itemId;
 
    @Schema(description = "物料编码", example = "I-075")
    @ExcelProperty("物料编码")
    private String itemCode;
 
    @Schema(description = "物料名称", example = "博世螺丝刀")
    @ExcelProperty("物料名称")
    private String itemName;
 
    @Schema(description = "规格型号", example = "一字型")
    @ExcelProperty("规格型号")
    private String itemSpecification;
 
    @Schema(description = "单位编号", example = "202")
    private Long unitMeasureId;
 
    @Schema(description = "单位名称", example = "个")
    @ExcelProperty("单位")
    private String unitMeasureName;
 
    @Schema(description = "过期日期")
    private LocalDateTime expireDate;
 
    @Schema(description = "生产批号", example = "LOT20260321")
    private String lotNumber;
 
    @Schema(description = "排产数量", example = "5000.00")
    @ExcelProperty("排产数量")
    private BigDecimal scheduledQuantity;
 
    @Schema(description = "本次报工数量", example = "500.00")
    @ExcelProperty("报工数量")
    private BigDecimal feedbackQuantity;
 
    @Schema(description = "合格品数量", example = "490.00")
    @ExcelProperty("合格品数量")
    private BigDecimal qualifiedQuantity;
 
    @Schema(description = "不良品数量", example = "10.00")
    @ExcelProperty("不良品数量")
    private BigDecimal unqualifiedQuantity;
 
    @Schema(description = "待检测数量", example = "0")
    @ExcelProperty("待检测数量")
    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 = "计费类型:1-计时 2-计件", example = "2")
    @ExcelProperty("计费类型")
    private Integer billingType;
 
    @Schema(description = "工资定额:计时为元/小时,计件为元/件", example = "12.50")
    @ExcelProperty("工资定额")
    private BigDecimal wageRate;
 
    @Schema(description = "主计价设备编号", example = "8")
    private Long machineryId;
 
    @Schema(description = "主计价设备名称", example = "挤塑机-01")
    private String machineryName;
 
    @Schema(description = "命中的工序工资单价规则编号")
    private Long wageRuleId;
 
    @Schema(description = "本次报工工时(小时)", example = "8.00")
    @ExcelProperty("报工工时")
    private BigDecimal workHours;
 
    @Schema(description = "本次报工工资(含辅助工资与质量调整)", example = "100.00")
    @ExcelProperty("报工工资")
    private BigDecimal wageAmount;
 
    @Schema(description = "辅助计薪工时(小时)", example = "0.50")
    private BigDecimal auxPaidHours;
 
    @Schema(description = "本次辅助工资", example = "15.00")
    @ExcelProperty("辅助工资")
    private BigDecimal auxWageAmount;
 
    @Schema(description = "质量合格率(%)", example = "97.50")
    private BigDecimal qualityPassRate;
 
    @Schema(description = "质量系数", example = "0.9200")
    private BigDecimal qualityCoefficient;
 
    @Schema(description = "质量扣款", example = "0.00")
    private BigDecimal qualityDeduction;
 
    @Schema(description = "工资计算明细快照(JSON)")
    private String wageBreakdown;
 
    @Schema(description = "本次生产长度(米),仅用于计算标准工时", example = "1000.00")
    @ExcelProperty("生产长度(米)")
    private BigDecimal productionLength;
 
    @Schema(description = "标准工时(小时),只用于考核对比", example = "1.25")
    @ExcelProperty("标准工时")
    private BigDecimal standardWorkHours;
 
    @Schema(description = "标准工时-主工时(小时)", example = "1.00")
    private BigDecimal standardPrimaryHours;
 
    @Schema(description = "标准工时-辅助工时(小时)", example = "0.25")
    private BigDecimal standardAuxHours;
 
    @Schema(description = "标准工时计算依据", example = "线速度 45.60 米/分;生产长度 1000.00 米,主工时 0.37h;辅助工时 0.25h")
    private String stdCalcNote;
 
    @Schema(description = "工时差异(小时)= 实际工时 - 标准工时", example = "0.35")
    @ExcelProperty("工时差异")
    private BigDecimal workHoursDiff;
 
    @Schema(description = "工时差异率(%)= (实际 - 标准) ÷ 标准 × 100", example = "28.00")
    @ExcelProperty("工时差异率(%)")
    private BigDecimal workHoursDiffRate;
 
    @Schema(description = "是否超出工时考核阈值", example = "true")
    private Boolean standardWarnFlag;
 
    @Schema(description = "工时考核提示", example = "本次报工工时 1.60h 高于标准工时 1.25h 达 28.00%,超过 20% 阈值,请核对工时或辅助项次数")
    private String standardWarnMessage;
 
    @Schema(description = "辅助工时录入明细")
    private List<AuxResp> auxList;
 
    @Schema(description = "报工用户编号", example = "1")
    private Long feedbackUserId;
 
    @Schema(description = "报工人昵称", example = "张三")
    @ExcelProperty("报工人")
    private String feedbackUserNickname;
 
    @Schema(description = "审核用户编号", example = "1")
    private Long approveUserId;
 
    @Schema(description = "审核人昵称", example = "李四")
    @ExcelProperty("审核人")
    private String approveUserNickname;
 
    @Schema(description = "状态", example = "0")
    @ExcelProperty(value = "状态", converter = DictConvert.class)
    @DictFormat(DictTypeConstants.MES_PRO_FEEDBACK_STATUS)
    private Integer status;
 
    @Schema(description = "备注", example = "备注")
    @ExcelProperty("备注")
    private String remark;
 
    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;
 
    @Schema(description = "BPM 流程实例编号")
    @ExcelProperty("BPM 流程实例编号")
    private String processInstanceId;
 
    @Schema(description = "BPM 流程定义 Key")
    @ExcelProperty("BPM 流程定义 Key")
    private String processDefinitionKey;
 
    @Schema(description = "本次报工对应的任务参数值(按任务参数记录快照展示)")
    private List<ParamValueResp> paramValues;
 
    @Data
    @Schema(description = "报工辅助工时明细")
    public static class AuxResp {
 
        @Schema(description = "辅助工时项目编号", example = "1024")
        private Long auxItemId;
 
        @Schema(description = "辅助项目名称", example = "上下放线盘")
        private String itemName;
 
        @Schema(description = "计量方式:1-按次 2-按个 3-按盘 4-按米折算", example = "2")
        private Integer measureType;
 
        @Schema(description = "次数/个数/盘数/米数", example = "2.00")
        private BigDecimal quantity;
 
        @Schema(description = "换色起始材料", example = "PVC")
        private String materialFrom;
 
        @Schema(description = "换色目标材料", example = "LSZH")
        private String materialTo;
 
        @Schema(description = "折算分钟数", example = "10.00")
        private BigDecimal minutes;
 
        @Schema(description = "备注")
        private String remark;
 
    }
 
    @Data
    @Schema(description = "报工参数值")
    public static class ParamValueResp {
 
        @Schema(description = "任务参数记录明细编号", example = "1")
        private Long detailId;
 
        @Schema(description = "参数编码", example = "PP2024001")
        private String paramCode;
 
        @Schema(description = "参数名称", example = "温度")
        private String paramName;
 
        @Schema(description = "参数类型", example = "2")
        private Integer paramType;
 
        @Schema(description = "计量单位名称", example = "℃")
        private String unitMeasureName;
 
        @Schema(description = "参数值", example = "200")
        private String paramValue;
 
        @Schema(description = "是否必填", example = "true")
        private Boolean required;
 
    }
 
}