package cn.com.ty.lift.system.homepage.dao.mapper;

import cn.com.ty.lift.system.homepage.dao.dto.request.DataStatisticsRequest;
import cn.com.ty.lift.system.homepage.dao.dto.request.LiftDataRequest;
import cn.com.ty.lift.system.homepage.dao.dto.request.PlatformCalendarRequest;
import cn.com.ty.lift.system.homepage.dao.model.*;
import cn.com.ty.lift.system.settings.dao.entity.model.MaintenanceCompanyRequest;
import cn.com.xwy.boot.mybatis.MyBatisMapper;

import java.util.List;

/**
 * @author huangyuan
 * @date 2020/2/18
 * @description 公共数据查询
 */
@MyBatisMapper
public interface CommonDataMapper {
    /**
     * @param
     * @return
     * @description 获取维保计划数据
     * @date 2020/2/18 12:01 下午
     */
    List<MtPlanDataModel> getMtPlanData(LiftDataRequest liftDataRequest);

    /**
     * @param
     * @return
     * @description 获取急修记录数据
     * @date 2020/2/18 12:02 下午
     */
    List<EmergencyRecordDataModel> getEmergencyRecordData(LiftDataRequest liftDataRequest);

    /**
     * @param
     * @return
     * @description 获取维保记录数据
     * @date 2020/2/18 2:02 下午
     */
    List<MtRecordDataModel> getMtRecordData(LiftDataRequest liftDataRequest);

    /**
     * @param
     * @return
     * @description 获取公司项目数
     * @date 2020/2/19 12:22 下午
     */
    List<CountDataModel> getMtCompanyIdToProjectNum(MaintenanceCompanyRequest maintenanceCompanyRequest);

    /**
     * @param
     * @return
     * @description 获取公司id -> 维保记录
     * @date 2020/2/19 2:28 下午
     */
    List<CountDataModel> getMtCompanyIdToMtRecord(MaintenanceCompanyRequest maintenanceCompanyRequest);

    /**
     * @param
     * @return
     * @description 获取公司id -> 急修记录
     * @date 2020/2/19 3:07 下午
     */
    List<CountDataModel> getMtCompanyIdToEmergencyRecord(MaintenanceCompanyRequest maintenanceCompanyRequest);

    /**
     * @param
     * @return
     * @description 获取当前时间到月末时间段内的公司维保计划
     * @date 2020/2/20 5:52 下午
     */
    List<MtPlanDataModel> getMonthNowToEndMtPlan(PlatformCalendarRequest platformCalendarRequest);

    /**
     * @param
     * @return
     * @description 获取月初到当前时间段内公司的维保记录信息
     * @date 2020/2/20 5:53 下午
     */
    List<MtRecordDataModel> getMonthBeginToNowMtRecord(PlatformCalendarRequest platformCalendarRequest);

    /**
     * @param
     * @return
     * @description 获取月初到当前时间段内公司的急修记录信息
     * @date 2020/2/20 5:54 下午
     */
    List<EmergencyRecordDataModel> getMonthBeginToNowEmergencyRecord(PlatformCalendarRequest platformCalendarRequest);

    /**
     * @param
     * @return
     * @description 获取本月时间段内的年检记录信息
     * @date 2020/2/20 5:57 下午
     */
    List<AnnualInspectionDataModel> getMonthBeginToEndAnnualInspectionRecord(PlatformCalendarRequest platformCalendarRequest);

    /**
     * @param dataStatisticsRequest 请求数据
     * @return 年份-数量
     * @description 获取 年份-项目数量
     * @date 2020/4/24 3:52 下午
     */
    List<CountDataModel> getEveryYearProjectCount(DataStatisticsRequest dataStatisticsRequest);

    /**
     * @param dataStatisticsRequest 请求数据
     * @return 年份-数量
     * @description 获取 年份-维保次数
     * @date 2020/4/24 3:52 下午
     */
    List<CountDataModel> getEveryYearMaintenanceCount(DataStatisticsRequest dataStatisticsRequest);

    /**
     * @param dataStatisticsRequest 请求数据
     * @return 年份-数量
     * @description 获取 年份-急修次数
     * @date 2020/4/24 3:52 下午
     */
    List<CountDataModel> getEveryYearEmergencyCount(DataStatisticsRequest dataStatisticsRequest);

    /**
     * @param dataStatisticsRequest 请求数据
     * @return 年份-数量
     * @description 获取 年份-年检次数
     * @date 2020/4/24 3:52 下午
     */
    List<CountDataModel> getEveryYearAnnualCount(DataStatisticsRequest dataStatisticsRequest);

    /**
     * @param dataStatisticsRequest 请求数据
     * @return 年份-数量
     * @description 获取 年份-大修次数
     * @date 2020/4/24 3:52 下午
     */
    List<CountDataModel> getEveryYearCapitalCount(DataStatisticsRequest dataStatisticsRequest);
}
