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

import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesEsopExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesEsopReadRecord;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.EsopExtModel;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.WorkOrderEsopReadModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesWorkCell;
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 id 工单SOP信息ID
     * @param modifyUser 操作人
     */
    @ApiOperation(value = "根据id删除工单SOP信息", notes = "根据id删除工单SOP信息")
    void deleteEsopById(Long id, String modifyUser);

    /**
     * SOP信息播放
     * @param workCell 查询条件
     * @return  SOP信息播放数据
     */
    @ApiOperation(value = "SOP信息播放", notes = "SOP信息播放")
    WorkOrderEsopReadModel queryBcEsop(MesWorkCell workCell);

    /**
     * SOP信息播放检查是否被确认
     * @param esopExt 查询条件
     * @return 结果
     */
    @ApiOperation(value = "SOP信息播放检查是否被确认", notes = "SOP信息播放检查是否被确认")
    Boolean checkIsExistEsopReadRecord(MesEsopExt esopExt);

    /**
     * SOP信息确认
     * @param esopReadRecord SOP确认信息
     */
    @ApiOperation(value = "SOP信息确认", notes = "SOP信息确认")
    void insertEsopReadRecord(MesEsopReadRecord esopReadRecord);
}
