package cn.iocoder.yudao.module.mes.controller.admin.safety.vo.ledger; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.List; /** * 安全生产 - 总览统计 Response VO * * @author 超级管理员 */ @Schema(description = "管理后台 - 安全生产总览统计 Response VO") @Data public class SafetyOverviewRespVO { @Schema(description = "特种作业证总数") private Long certTotal; @Schema(description = "即将到期证件数") private Long certExpiring; @Schema(description = "已过期证件数") private Long certExpired; @Schema(description = "隐患总数") private Long hazardTotal; @Schema(description = "未闭环隐患数") private Long hazardOpen; @Schema(description = "已超期未闭环隐患数") private Long hazardOverdue; @Schema(description = "隐患闭环率(0-100)") private Integer hazardCloseRate; @Schema(description = "待审批作业票数") private Long permitPending; @Schema(description = "进行中作业票数") private Long permitInProgress; @Schema(description = "物资低于安全库存数") private Long materialBelowSafeStock; @Schema(description = "物资临近有效期数") private Long materialExpiring; @Schema(description = "本月培训场次") private Long trainingThisMonth; @Schema(description = "本月演练场次") private Long drillThisMonth; @Schema(description = "本月事故数") private Long accidentThisMonth; @Schema(description = "隐患趋势(近 6 个月,按月)") private List hazardTrend; @Schema(description = "事故趋势(近 6 个月,按月)") private List accidentTrend; /** * 按月计数 */ @Data public static class MonthlyCount { @Schema(description = "月份,格式 yyyy-MM", example = "2026-10") private String month; @Schema(description = "数量") private Long count; } }