package com.hotwj.platform.workbench.service;

import com.hotwj.platform.workbench.domain.vo.*;

import java.util.List;

/**
 * 总部端工作台Service接口
 *
 * @author shihongwei
 */
public interface IHeadquartersWorkbenchService {

    /**
     * 获取总部端培训计划统计
     *
     * @return 统计数据列表
     */
    List<HeadquartersTrainingStatsVo> getTrainingStats();

    /**
     * 获取某年月度学习折线图数据
     *
     * @param year  年份，如 2025
     * @param month 月份，1-12
     * @return 折线图数据（按日）
     */
    MonthlyStudyTrendVo getMonthlyStudyTrend(int year, int month);

    /**
     * 获取本年(或指定年)违规统计柱状图（按月）
     *
     * @param year 年份，null 则取当前年
     */
    ViolationMonthlyBarVo getViolationMonthlyStats(Integer year);

    /**
     * 获取总部端隐患统计概览
     *
     * @param regionCode 区域代码(可选)
     * @return 隐患统计概览
     */
    HeadquartersHiddenDangerSummaryVo getHeadquartersHiddenDangerSummary(String regionCode);

    /**
     * 获取区域企业统计
     *
     * @param regionCode 区域代码
     * @return 区域企业统计
     */
    RegionCompanyStatsVo getRegionCompanyStats(String regionCode);

    /**
     * 获取企业发展趋势统计
     *
     * @return 企业发展趋势统计
     */
    HeadquartersEnterpriseTrendVo getEnterpriseTrendStats();

    /**
     * 获取从业人员发展趋势统计
     *
     * @return 从业人员发展趋势统计
     */
    HeadquartersPersonnelTrendVo getPersonnelTrendStats();

    /**
     * 获取车辆发展趋势统计
     *
     * @return 车辆发展趋势统计
     */
    HeadquartersVehicleTrendVo getVehicleTrendStats();
    /**
     * 获取事故年度对比统计
     *
     * @return 年度对比数据
     */
    HeadquartersYearlyComparisonVo getAccidentYearlyComparison();

    /**
     * 获取隐患年度对比统计
     *
     * @return 年度对比数据
     */
    HeadquartersYearlyComparisonVo getHiddenDangerYearlyComparison();

    /**
     * 获取企业列表（含管理人员数）
     *
     * @return 企业列表数据
     */
    HeadquartersCompanyListVo getCompanyList();

    /**
     * 获取广场信息审核中数量（auditStatus=0）
     *
     * @return 审核中数量
     */
    Long getSquareInfoPendingAuditCount();

    /**
     * 获取投诉建议未回复数量（isReplied=0）
     *
     * @return 未回复数量
     */
    Long getComplaintAdvicePendingReplyCount();
}
