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;
|
}
|
|
}
|