package com.usky.fire.service;

import com.usky.common.mybatis.core.CrudService;
import com.usky.fire.domain.BscLawTrend;
import com.usky.fire.domain.DemEnforceReportComplaint;
import com.usky.fire.service.vo.*;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 消防执法动态大屏统计 服务类
 * </p>
 *
 * @author JCB
 * @since 2022-10-13
 */
public interface BscLawTrendService extends CrudService<BscLawTrend> {

    /**
     * 消防执法动态-数据查询
     *
     * @param moduleType 模块类型
     * @param startDate  开始时间 格式：yyyy-MM-dd HH:mm:ss
     * @param endDate    结束时间 格式：yyyy-MM-dd HH:mm:ss
     * @return
     */
    Object lawTrendList(String moduleType, String startDate, String endDate);

    /**
     * 消防执法动态-单位撒点详情数据
     *
     * @param companyId 单位ID
     * @return
     */
    List<Map<String, Object>> companyData(String companyId ,String companyName);

    /**
     * 消防执法动态-定时任务逻辑
     */
    void lawEnforcement();

    /**
     * 消防执法动态-当月执法情况(定时)
     *
     * @return
     */
    List<SiAeAllVO> monthLaw();

    /**
     * 消防执法动态-行政许可情况(定时)
     *
     * @return
     */
    AlFsdAllVO adstraLicense();

    /**
     * 消防执法动态-消防隐患举报投诉/投诉处理情况(定时)
     *
     * @return
     */
    List<StreetTownComplaintVO> reportComplaint();

    /**
     * 根据火患场所名称查询总数
     *
     * @param hazardSiteName 火患场所名称
     * @return
     */
    int enforceReportCount(String hazardSiteName);

    /**
     * 火患场所名称查询
     *
     * @return
     */
    List<String> enforceReportList();

    /**
     * 监督检查举报投诉信息查询
     *
     * @return
     */
    List<DemEnforceReportComplaint> enforceReportComplaint();


    /**
     * 消防执法动态-监督检查举报投诉信息(定时)
     *
     * @return
     */
    ReportStatisticsVO enforceReportComplaintOne();
}
