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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesFirstOrderDetail;
import cn.estsh.i3plus.ext.mes.pojo.bean.MesProcessFirstItem;
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_工序首检项目接口
 * @Reference:
 * @Author: jessica.chen
 * @CreateDate: 2019\11\13 13:56
 * @Modify:
 **/
public interface IBuFirstManageService {

    /**
     * 添加MES_工序首检项目
     *
     * @param mesProcessFirstItem 工序首检项目
     * @return 插入后的mesProcessFirstItem对象
     */
    @ApiOperation(value = "添加MES_工序首检项目信息", notes = "传入MES_工序首检项目对象")
    MesProcessFirstItem insertMesProcessFirstItem(MesProcessFirstItem mesProcessFirstItem);

    /**
     * 更新MES_工序首检项目
     *
     * @param mesProcessFirstItem  工序首检项目
     * @param userName 操作人
     */
    @ApiOperation(value = "更新MES_工序首检项目", notes = "更新MES_工序首检项目")
    void updateMesProcessFirstItem(MesProcessFirstItem mesProcessFirstItem, String userName);

    /**
     * 按条件分页查询MES_工序首检项目信息
     *
     * @param mesProcessFirstItem 工序首检项目
     * @param pager   分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "按条件分页查询MES_工序首检项目信息", notes = "按条件分页查询MES_工序首检项目信息")
    ListPager<MesProcessFirstItem> queryMesProcessFirstItemByPager(MesProcessFirstItem mesProcessFirstItem, Pager pager);
    

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

    /**
     * 首检单明细数据查询报表
     *
     * @param mesFirstOrderDetail 首检单明细数据
     * @param pager   分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "首检单明细数据查询报表", notes = "首检单明细数据查询报表")
    ListPager<MesFirstOrderDetail> queryFirstOrderDetailReportByPager(MesFirstOrderDetail mesFirstOrderDetail, Pager pager);

    /**
     * 更新MES_首检单明细
     *
     * @param mesFirstOrderDetailList  首检单明细
     * @param userName 操作人
     */
    @ApiOperation(value = "更新MES_首检单明细", notes = "更新MES_首检单明细")
    void updateMesFirstOrderDetailById(List<MesFirstOrderDetail> mesFirstOrderDetailList, String userName);
    
}
