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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesEsopExt;
import cn.estsh.i3plus.ext.mes.pojo.bean.MesEsopReadRecord;
import cn.estsh.i3plus.ext.mes.pojo.model.EsopExtModel;
import cn.estsh.i3plus.ext.mes.pojo.model.SxBatchUploadFileModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.multipart.MultipartFile;

/**
 * @Author: wangjie
 * @CreateDate: 2021/01/19 15:06 下午
 * @Description:
 **/
public interface IEsopExtService {

    /**
     * 按条件分页查询SOP信息
     *
     * @param esopExt 查询条件
     * @param pager 分页条件
     * @return SOP分页数据
     */
    @ApiOperation(value = "按条件分页查询SOP信息", notes = "按条件分页查询SOP信息")
    ListPager<EsopExtModel> queryEsopByPager(MesEsopExt esopExt, Pager pager);

    /**
     * 新增SOP信息
     * @param file 文件
     * @param esopExt SOP信息
     */
    @ApiOperation(value = "新增SOP信息", notes = "新增SOP信息")
    void insertEsop(MultipartFile file, MesEsopExt esopExt);

    /**
     * 更新SOP信息
     * @param file 文件
     * @param esopExt SOP信息
     */
    @ApiOperation(value = "更新SOP信息", notes = "更新SOP信息")
    void updateEsop(MultipartFile file, MesEsopExt esopExt);

    /**
     * 根据id批量启用或禁用SOP信息
     * @param ids SOP信息ID数组
     * @param status 状态
     * @param userName 操作人
     */
    @ApiOperation(value = "根据id批量启用或禁用SOP信息", notes = "根据id批量启用或禁用SOP信息")
    void updateBatchEsopValidById(String[] ids, Integer status, String userName);

    /**
     * 按条件分页查询SOP阅读记录
     * @param esopReadRecord 查询条件
     * @param pager 分页条件
     * @return 分页信息
     */
    @ApiOperation(value = "按条件分页查询SOP阅读记录", notes = "按条件分页查询SOP阅读记录")
    ListPager<MesEsopReadRecord> queryEsopReadRecordByPager(MesEsopReadRecord esopReadRecord, Pager pager);

    /**
     * 批量上传SOP文件
     * @param files 批量文件
     * @param lotNo 导入批次号
     * @param organizeCode 组织代码
     * @param userName 用户信息
     * @return 结果
     */
    @ApiOperation(value = "批量上传SOP文件", notes = "批量上传SOP文件")
    SxBatchUploadFileModel doBatchUploadEsopFile(MultipartFile[] files, String lotNo, String organizeCode, String userName);
}
