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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesEquipmentCheckDetail;
import cn.estsh.i3plus.ext.mes.pojo.bean.MesFirstOrderDetail;
import cn.estsh.i3plus.ext.mes.pojo.bean.MesQManageTaskDetail;
import cn.estsh.i3plus.ext.mes.pojo.model.bu3.SxEquipModel;
import cn.estsh.i3plus.ext.mes.pojo.model.bu3.SxTrendAnalysisModel;
import cn.estsh.i3plus.pojo.base.common.Pager;
import io.swagger.annotations.ApiOperation;

import java.math.BigInteger;
import java.util.List;

/**
 * @PROJECT_NAME: i3plus-mes-panasonic-dev
 * @DESCRIPTION:
 * @USER: xinwang.yi
 * @DATE: 2023-07-06 15:27
 */
public interface ISxTrendAnalysisDao {
    /**
     * 查询Q管理任务明细
     * @param model 查询条件
     * @return Q管理任务明细
     */
    @ApiOperation(value = "查询Q管理任务明细", notes = "查询Q管理任务明细")
    List<MesQManageTaskDetail> queryQManageTaskDetailList(SxTrendAnalysisModel model);

    /**
     * 获取MES_首检单明细数据
     * @param model
     * @return
     */
    List<MesFirstOrderDetail> queryFirstOrderDetailList(SxTrendAnalysisModel model);

    /**
     * 设备点检查询
     * @param model
     * @return
     */
    @ApiOperation(value = "设备点检查询", notes = "设备点检查询")
    List<MesEquipmentCheckDetail> queryEquipmentCheckDetailList(SxTrendAnalysisModel model);

    /**
     * 统计Q管理项目数量
     * @param manageProjects 管理项目
     * @return 统计Q管理项目数量
     */
    @ApiOperation(value = "查询Q管理项目数量", notes = "查询Q管理项目数量")
    int queryQManageProjectsListPagerCount(String manageProjects, String processCode, String partNo, String organizeCode);

    /**
     * 按分页查询Q管理项目
     * @param manageProjects 管理项目
     * @return Q管理项目
     */
    @ApiOperation(value = "按分页查询Q管理项目", notes = "按分页查询Q管理项目")
    List<String> queryQManageProjectsListPager(String manageProjects, String processCode, String partNo, String organizeCode, Pager pager);

    /**
     * 统计Q管理项目数量
     * @param manageProjects 管理项目
     * @return 统计Q管理项目数量
     */
    @ApiOperation(value = "查询工序首检项目数量", notes = "查询Q管理项目数量")
    int queryFirstOrderCheckMessageListPagerCount(String manageProjects, String processCode, String partNo, String organizeCode);

    /**
     * 查询Q管理项目
     * @param manageProjects 管理项目
     * @return Q管理项目
     */
    @ApiOperation(value = "查询工序首检项目", notes = "查询Q管理任务明细")
    List<String> queryFirstOrderCheckMessageListPager(String manageProjects, String processCode, String partNo, String organizeCode, Pager pager);

    /**
     * 统计Q管理项目数量
     * @param manageProjects 管理项目
     * @return 统计Q管理项目数量
     */
    @ApiOperation(value = "查询设备点检项目内容数量", notes = "查询设备点检项目内容数量")
    int queryEquipCheckProjectContentPagerCount(String manageProjects, String workCenterCode, String workCellCode, String equNo, String organizeCode);

    /**
     * 查询Q管理项目
     * @param manageProjects 管理项目
     * @return Q管理项目
     */
    @ApiOperation(value = "查询设备点检项目内容", notes = "查询设备点检项目内容")
    List<String> queryEquipCheckProjectContentListPager(String manageProjects, String workCenterCode, String processCode, String equNo, String organizeCode, Pager pager);


    /**
     * 统计Q管理项目数量
     * @param equNo 设备编码
     * @param equName 设备名称
     * @return 统计Q管理项目数量
     */
    @ApiOperation(value = "查询设备信息数量", notes = "查询设备信息数量")
    BigInteger queryEquipListPagerCount(String equNo, String equName, String organizeCode);

    /**
     * 查询设备信息
     * @param equNo 设备编码
     * @param equName 设备名称
     * @return 设备信息
     */
    @ApiOperation(value = "查询设备信息", notes = "查询设备信息")
    List<SxEquipModel> queryEquipListPager(String equNo, String equName, String organizeCode, Pager pager);
}
