xiaoyi
22 小时以前 8782476e9cb4480be5da588888d08022b7942d0c
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
package cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo;
 
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
 
/**
 * 管理后台 - 生产任务执行反馈分析 Response VO
 *
 * <p>把计划、实际报工、设备采集、物料消耗、交期偏差汇总到一处,
 * 供车间与计划员定位延期原因。所有数据均来自现有表,不做推断性补数。
 */
@Schema(description = "管理后台 - 生产任务执行反馈分析 Response VO")
@Data
public class MesProTaskExecutionRespVO {
 
    @Schema(description = "任务编号")
    private Long taskId;
    @Schema(description = "任务编码")
    private String taskCode;
    @Schema(description = "任务名称")
    private String taskName;
    @Schema(description = "生产工单编号")
    private Long workOrderId;
    @Schema(description = "任务状态")
    private Integer status;
 
    @Schema(description = "计划数量")
    private BigDecimal plannedQuantity;
    @Schema(description = "实际报工数量")
    private BigDecimal producedQuantity;
    @Schema(description = "合格数量")
    private BigDecimal qualifyQuantity;
    @Schema(description = "报废数量")
    private BigDecimal unqualifyQuantity;
    @Schema(description = "完成率(%)")
    private BigDecimal completionRate;
 
    @Schema(description = "计划开始时间")
    private LocalDateTime startTime;
    @Schema(description = "实际首次报工时间")
    private LocalDateTime firstFeedbackTime;
    @Schema(description = "实际最后报工时间")
    private LocalDateTime lastFeedbackTime;
    @Schema(description = "计划完成时间")
    private LocalDateTime finishDate;
    @Schema(description = "计划工时(分钟)")
    private Integer plannedDuration;
    @Schema(description = "实际耗时(分钟,首次到末次报工)")
    private Long actualDuration;
 
    @Schema(description = "是否延期")
    private Boolean delayed;
    @Schema(description = "延期天数(正数表示超期)")
    private Long delayDays;
    @Schema(description = "延期原因(按可观测信号给出的候选,需人工确认)")
    private List<String> delayCauses;
 
    @Schema(description = "设备运行数据(按设备汇总)")
    private List<DeviceRun> deviceRuns;
    @Schema(description = "物料消耗(按物料汇总)")
    private List<MaterialConsumption> materialConsumptions;
 
    @Schema(description = "设备运行汇总项")
    @Data
    public static class DeviceRun {
        @Schema(description = "设备台账编号")
        private Long machineryId;
        @Schema(description = "设备编码")
        private String deviceCode;
        @Schema(description = "采集次数")
        private Long sampleCount;
        @Schema(description = "累计运行时长")
        private BigDecimal totalRunTime;
        @Schema(description = "最近采集时间")
        private LocalDateTime lastCollectTime;
        @Schema(description = "最近运行状态")
        private Integer lastRunStatus;
        @Schema(description = "告警数")
        private Long alarmCount;
    }
 
    @Schema(description = "物料消耗项")
    @Data
    public static class MaterialConsumption {
        @Schema(description = "物料编号")
        private Long itemId;
        @Schema(description = "物料编码")
        private String itemCode;
        @Schema(description = "物料名称")
        private String itemName;
        @Schema(description = "消耗数量")
        private BigDecimal quantity;
        @Schema(description = "单位")
        private String unit;
    }
}