package cn.estsh.i3plus.ext.mes.pcn.api.busi.ep;

import cn.estsh.i3plus.ext.mes.pcn.pojo.model.SxHappenStationModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.SxWorkCellModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ep.EpQmsBadCellDetailModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ep.EpQmsOutPutStatisticsModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ep.EpQmsRepirTaskModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.ep.SxEpOqcManageModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.mes.bean.MesShift;
import cn.estsh.i3plus.pojo.mes.model.DefectModel;
import io.swagger.annotations.ApiOperation;

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

/**
 * @author wangjie
 * @version 1.0
 * @date 2021/1/13 9:27
 **/
public interface IEpQmsHttpRequestService {

    /**
     * EP-QMS获取出货检验数据
     * @param params 查询条件
     * @return 出货检验主数据
     */
    @ApiOperation(value = "EP-QMS获取出货检验数据", notes = "EP-QMS获取出货检验数据")
    SxEpOqcManageModel queryEpQmsOqcManageData(Map<String, Object> params);

    /**
     * EP-QMS获取生产工单分页数据
     * @param params 查询条件
     * @return 生产工单分页数据
     */
    @ApiOperation(value = "EP-QMS获取生产工单分页数据", notes = "EP-QMS获取生产工单分页数据")
    ListPager queryEpQmsWindowWorkOrderExtListPage(Map<String, Object> params);

    /**
     * EP-QMS获取班次信息数据
     * @param params 查询条件
     * @return 班次信息数据
     */
    @ApiOperation(value = "EP-QMS获取班次信息数据", notes = "EP-QMS获取班次信息数据")
    List<MesShift> queryEpQmsSelectShiftList(Map<String, Object> params);

    /**
     * EP-QMS获取班次信息数据
     * @param params 查询条件
     * @return 班次信息数据
     */
    @ApiOperation(value = "EP-QMS获取班次信息数据", notes = "EP-QMS获取班次信息数据")
    List<MesShift> queryEpQmsShiftList(Map<String, Object> params);

    /**
     * EP-QMS获取缺陷信息数据
     * @param params 查询条件
     * @return 缺陷信息数据
     */
    @ApiOperation(value = "EP-QMS获取缺陷信息数据", notes = "EP-QMS获取缺陷信息数据")
    List<DefectModel> queryEpQmsDefectList(Map<String, Object> params);

    /**
     * EP-QMS获取发生岗位分页数据
     * @param params 查询条件
     * @return 发生岗位分页数据
     */
    @ApiOperation(value = "EP-QMS获取发生岗位分页数据", notes = "EP-QMS获取发生岗位分页数据")
    ListPager<SxHappenStationModel> queryEpQmsWindowHappenStationListPage(Map<String, Object> params);

    /**
     * EP-QMS获取工位分页数据
     * @param params 查询条件
     * @return 工位分页数据
     */
    @ApiOperation(value = "EP-QMS获取工位分页数据", notes = "EP-QMS获取工位分页数据")
    ListPager<SxWorkCellModel> queryEpQmsWindowWorkCellListPage(Map<String, Object> params);

    /**
     * EP-QMS获取工位不良明细信息数据
     * @param params 查询条件
     * @return 工位不良明细信息数据
     */
    @ApiOperation(value = "EP-QMS获取工位不良明细信息数据", notes = "EP-QMS获取工位不良明细信息数据")
    List<EpQmsBadCellDetailModel> queryEpQmsBadCellDetailList(Map<String, Object> params);

    /**
     * EP-QMS获取维修作业单信息数据
     * @param params 查询条件
     * @return 维修作业单信息数据
     */
    @ApiOperation(value = "EP-QMS获取维修作业单信息数据", notes = "EP-QMS获取维修作业单信息数据")
    List<EpQmsRepirTaskModel> queryEpQmsRepairTaskList(Map<String, Object> params);

    /**
     * EP-QMS获取产量信息数据
     * @param params 查询条件
     * @return 产量信息数据
     */
    @ApiOperation(value = "EP-QMS获取产量信息数据", notes = "EP-QMS获取产量信息数据")
    List<EpQmsOutPutStatisticsModel> queryEpQmsOutPutStatisticsList(Map<String, Object> params);
}
