tuqin
6 天以前 6e43a9e4daa56a07fe605d6bec1370f36bd5fbfc
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
package cn.iocoder.yudao.module.mes.controller.admin.safety.vo.statistics;
 
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
 
import java.math.BigDecimal;
import java.util.List;
 
/**
 * 安全生产 - 统计分析 Response VO
 *
 * 按时间段统计隐患、作业票、培训、证书四个维度
 *
 * @author 超级管理员
 */
@Schema(description = "管理后台 - 安全生产统计分析 Response VO")
@Data
public class MesSafetyStatisticsRespVO {
 
    @Schema(description = "汇总指标")
    private Summary summary;
 
    @Schema(description = "隐患按车间统计")
    private List<GroupStat> hazardByWorkshop;
 
    @Schema(description = "隐患按等级统计")
    private List<GroupStat> hazardByLevel;
 
    @Schema(description = "隐患按来源统计")
    private List<GroupStat> hazardBySource;
 
    @Schema(description = "作业票按类型统计")
    private List<GroupStat> ticketByType;
 
    @Schema(description = "作业票按状态统计")
    private List<GroupStat> ticketByStatus;
 
    @Schema(description = "培训按类型统计")
    private List<GroupStat> trainingByType;
 
    @Schema(description = "证书按类型统计")
    private List<GroupStat> certificateByType;
 
    // ==================== 内部类 ====================
 
    @Schema(description = "汇总指标")
    @Data
    public static class Summary {
        @Schema(description = "隐患总数")
        private Long hazardTotal;
        @Schema(description = "隐患已闭环数")
        private Long hazardClosed;
        @Schema(description = "隐患闭环率(%)")
        private BigDecimal hazardClosedRate;
        @Schema(description = "隐患超期数")
        private Long hazardOverdue;
 
        @Schema(description = "作业票总数")
        private Long ticketTotal;
        @Schema(description = "作业票已归档数")
        private Long ticketArchived;
        @Schema(description = "作业票已驳回数")
        private Long ticketRejected;
 
        @Schema(description = "培训场次")
        private Long trainingTotal;
        @Schema(description = "累计参训人次")
        private Long trainingAttendee;
        @Schema(description = "培训平均分")
        private BigDecimal trainingAvgScore;
 
        @Schema(description = "证书总数")
        private Long certificateTotal;
        @Schema(description = "证书已过期数")
        private Long certificateExpired;
    }
 
    @Schema(description = "分组统计项")
    @Data
    public static class GroupStat {
        @Schema(description = "分组名称", example = "造纸车间")
        private String name;
 
        @Schema(description = "分组编码(车间/类型/等级等原始值)", example = "7")
        private Integer code;
 
        @Schema(description = "总数量")
        private Long total;
 
        @Schema(description = "已完成数量(隐患=已闭环;作业票=已归档;其他可为空)")
        private Long finished;
 
        @Schema(description = "完成率(%)")
        private BigDecimal finishRate;
 
        @Schema(description = "累计参训人次(仅培训维度)")
        private Long attendeeTotal;
 
        @Schema(description = "平均分(仅培训维度)")
        private BigDecimal avgScore;
    }
 
}