package com.ruoyi.inspection.service;

import com.ruoyi.inspection.domain.InspectionRecordTable;
import com.ruoyi.inspection.domain.VoAttendanceReport;

import java.util.List;
import java.util.Map;
import com.ruoyi.inspection.domain.InspectionManageTable;

public interface IAttendanceReportService {
    // 可视化柱形图
    public List<VoAttendanceReport> ColumnVisualization(VoAttendanceReport VoAttendanceReport );

    List<VoAttendanceReport> RoundListVisualization(VoAttendanceReport voAttendanceReport);

    Map<String, Object> getEchartsData(VoAttendanceReport voAttendanceReport);
    Map<String, Object> getEchartsPieChartData(VoAttendanceReport voAttendanceReport);

    int tatol();

    int monthTota(VoAttendanceReport voAttendanceReport);

    // 新增统计：按天趋势
    Map<String, Object> trendDaily(VoAttendanceReport voAttendanceReport);
    Map<String, Object> trendDailyDual(VoAttendanceReport voAttendanceReport);

    // 新增统计：类型占比
    Map<String, Object> typeProportion(VoAttendanceReport voAttendanceReport);

    // 新增统计：覆盖率（返回 inspectedCount/totalCount 和覆盖率）
    Map<String, Object> coverage(VoAttendanceReport voAttendanceReport);

    // 未巡检点位清单
    List<InspectionManageTable> listUninspectedPoints(VoAttendanceReport voAttendanceReport);

    // 点位类型对应的已巡检点数量（distinct）
    Map<String, Object> pointTypeCounts(VoAttendanceReport voAttendanceReport);

    // 管理表点位状态分布
    Map<String, Object> statusDistribution();

    Map<String, Object> trendMonthlyDual(VoAttendanceReport voAttendanceReport);

    // 巡检人统计（三合一：总/月/日）
    Map<String, Object> inspectorStats3(VoAttendanceReport voAttendanceReport);

    // 巡检点统计（三合一：总/月/日）
    Map<String, Object> pointStats3(VoAttendanceReport voAttendanceReport);
}
