package cn.estsh.i3plus.ext.mes.api.base;

import cn.estsh.i3plus.ext.mes.pojo.bean.MesProcessQManage;
import cn.estsh.i3plus.ext.mes.pojo.bean.MesQManageTaskDetail;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * @Description:MES_工序Q管理项目接口
 * @Reference:
 * @Author: jessica.chen
 * @CreateDate: 2019\11\13 13:56
 * @Modify:
 **/
public interface IQManageService {

    /**
     * 添加MES_工序Q管理项目
     *
     * @param mesProcessQManage 工序Q管理项目
     * @return 插入后的mesProcessQManage对象
     */
    @ApiOperation(value = "添加MES_工序Q管理项目信息", notes = "传入MES_工序Q管理项目对象")
    MesProcessQManage insertMesProcessQManage(MesProcessQManage mesProcessQManage);

    /**
     * 更新MES_工序Q管理项目
     *
     * @param mesProcessQManage  工序Q管理项目
     * @param userName 操作人
     */
    @ApiOperation(value = "更新MES_工序Q管理项目", notes = "更新MES_工序Q管理项目")
    void updateMesProcessQManage(MesProcessQManage mesProcessQManage, String userName);

    /**
     * 按条件分页查询MES_工序Q管理项目信息
     *
     * @param mesProcessQManage 工序Q管理项目
     * @param pager   分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "按条件分页查询MES_工序Q管理项目信息", notes = "按条件分页查询MES_工序Q管理项目信息")
    ListPager<MesProcessQManage> queryMesProcessQManageByPager(MesProcessQManage mesProcessQManage, Pager pager);

    /**
     * 软删enum信息
     *
     * @param ids      id数组
     * @param userName 操作人
     */
    @ApiOperation("软删enum信息")
    void deleteWeaklyMesProcessQManageByIds(Long[] ids, String userName);

    /**
     * 批量禁用/启用详情
     *
     * @param ids      id数组
     * @param status   更新状态
     * @param userName 操作人
     * @return 操作行数
     */
    @ApiOperation(value = "批量禁用/启用详情")
    int updateMesProcessQManageStatus(String[] ids, int status, String userName);

    /**
     * Q管理查询报表
     *
     * @param mesQmanageTaskDetail 工序Q管理项目
     * @param pager   分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "按条件分页查询MES_工序Q管理项目信息", notes = "按条件分页查询MES_工序Q管理项目信息")
    ListPager<MesQManageTaskDetail> queryQmanageTaskDetailReportByPager(MesQManageTaskDetail mesQmanageTaskDetail, Pager pager);

    /**
     * Q管理查询报表
     *
     * @param mesQmanageTaskDetail 工序Q管理项目
     * @param pager   分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "EP按条件分页查询MES_工序Q管理项目信息", notes = "EP按条件分页查询MES_工序Q管理项目信息")
    ListPager<MesQManageTaskDetail> queryEpQManageTaskDetailReportByPager(MesQManageTaskDetail mesQmanageTaskDetail, Pager pager);

    /**
     * 更新MES_Q管理作业明细
     *
     * @param mesQmanageTaskDetailList  Q管理作业明细
     * @param userName 操作人
     */
    @ApiOperation(value = "更新MES_Q管理作业明细", notes = "更新MES_Q管理作业明细")
    void updateMesQManageTaskDetailById(List<MesQManageTaskDetail> mesQmanageTaskDetailList, String userName);
}
