package cn.estsh.i3plus.ext.mes.apiservice.dao;

import cn.estsh.i3plus.ext.mes.pojo.model.ProjectContainersComputeChartParamModel;
import cn.estsh.i3plus.ext.mes.pojo.model.ProjectContainersComputeChartResultModel;
import cn.estsh.i3plus.pojo.base.common.Pager;
import io.swagger.annotations.ApiOperation;

import java.util.List;

public interface IProjectContainersComputeChartDao {

    /**
     *  查询生产台数
     * @param paramModel
     * @return
     */
    List<ProjectContainersComputeChartResultModel> queryProduceQty(ProjectContainersComputeChartParamModel paramModel);

    /**
     * 查询不良数
     * @param paramModel
     * @return
     */
    List<ProjectContainersComputeChartResultModel> queryBadQty(ProjectContainersComputeChartParamModel paramModel);

    /**
     * @return int
     * @Description: 根据不良项目维度查询工程集计数量
     * @Param [paramModel]
     * @Date 2021/9/7 10:38
     **/
    @ApiOperation(value = "根据不良项目维度查询工程集计数量", notes = "根据不良项目维度查询工程集计数量")
    int queryPartCheckDetailByDefectCodeCount(ProjectContainersComputeChartParamModel paramModel);

    /**
     * @return java.util.List<cn.estsh.i3plus.ext.mes.pojo.model.ProjectContainersComputeChartResultModel>
     * @Description: 根据不良项目维度查询工程集计集合
     * @Param [paramModel, pager]
     * @Date 2021/9/7 10:38
     **/
    @ApiOperation(value = "根据不良项目维度查询工程集计集合", notes = "根据不良项目维度查询工程集计集合")
    List<ProjectContainersComputeChartResultModel> queryPartCheckDetailByDefectCodePager(ProjectContainersComputeChartParamModel paramModel, Pager pager);

    /**
     * @return int
     * @Description: 根据不良部品维度查询工程集计数量
     * @Param [paramModel]
     * @Date 2021/9/7 10:38
     **/
    @ApiOperation(value = "根据不良部品维度查询工程集计数量", notes = "根据不良部品维度查询工程集计数量")
    int queryPartCheckDetailByBadPartNoCount(ProjectContainersComputeChartParamModel paramModel);

    /**
     * @return java.util.List<cn.estsh.i3plus.ext.mes.pojo.model.ProjectContainersComputeChartResultModel>
     * @Description: 根据不良部品维度查询工程集计集合
     * @Param [paramModel, pager]
     * @Date 2021/9/7 10:38
     **/
    @ApiOperation(value = "根据不良部品维度查询工程集计集合", notes = "根据不良部品维度查询工程集计集合")
    List<ProjectContainersComputeChartResultModel> queryPartCheckDetailByBadPartNoPager(ProjectContainersComputeChartParamModel paramModel, Pager pager);

    /**
     * @return int
     * @Description: 根据不良部品厂家维度查询工程集计数量
     * @Param [paramModel]
     * @Date 2021/9/7 10:38
     **/
    @ApiOperation(value = "根据不良部品厂家维度查询工程集计数量", notes = "根据不良部品厂家维度查询工程集计数量")
    int queryPartCheckDetailByBadPartVenderCount(ProjectContainersComputeChartParamModel paramModel);

    /**
     * @return java.util.List<cn.estsh.i3plus.ext.mes.pojo.model.ProjectContainersComputeChartResultModel>
     * @Description: 根据不良部品厂家维度查询工程集计集合
     * @Param [paramModel, pager]
     * @Date 2021/9/7 10:38
     **/
    @ApiOperation(value = "根据不良部品厂家维度查询工程集计集合", notes = "根据不良部品厂家维度查询工程集计集合")
    List<ProjectContainersComputeChartResultModel> queryPartCheckDetailByBadPartVenderPager(ProjectContainersComputeChartParamModel paramModel, Pager pager);

    /**
     * @return int
     * @Description: 根据不良类型维度查询工程集计数量
     * @Param [paramModel]
     * @Date 2021/9/7 10:38
     **/
    @ApiOperation(value = "根据不良类型维度查询工程集计数量", notes = "根据不良类型维度查询工程集计数量")
    int queryPartCheckDetailByBadRepairJudgeCount(ProjectContainersComputeChartParamModel paramModel);

    /**
     * @return java.util.List<cn.estsh.i3plus.ext.mes.pojo.model.ProjectContainersComputeChartResultModel>
     * @Description: 根据不良类型维度查询工程集计集合
     * @Param [paramModel, pager]
     * @Date 2021/9/7 10:38
     **/
    @ApiOperation(value = "根据不良部品类型查询工程集计集合", notes = "根据不良类型查询工程集计集合")
    List<ProjectContainersComputeChartResultModel> queryPartCheckDetailByRepairJudgePager(ProjectContainersComputeChartParamModel paramModel, Pager pager);

    @ApiOperation(value = "查询工程不良率数量", notes = "查询工程不良率数量")
    int queryProjectBadRateCount(ProjectContainersComputeChartParamModel paramModel);

    @ApiOperation(value = "查询工程不良率", notes = "查询工程不良率")
    List<ProjectContainersComputeChartResultModel> queryProjectBadRatePager(ProjectContainersComputeChartParamModel paramModel, Pager pager);
}
