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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesExteriorScratchProofCell;
import cn.estsh.i3plus.ext.mes.pojo.model.MesExteriorScratchProofCellModel;
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: xiangming.liao
 * @CreateDate: 2021/03/12
 * @Description:
 **/
public interface IExteriorScratchProofCellService {

    /**
     * 按条件分页查询外观防划伤工位
     *
     * @param exteriorScratchProofCell  外观防划伤工位
     * @param pager 分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "按条件分页查询外观防划伤工位")
    ListPager<MesExteriorScratchProofCellModel> queryMesExteriorScratchProofCellByPager(MesExteriorScratchProofCell exteriorScratchProofCell, Pager pager);
    
    /**
     * 新增mes外观防划伤工位
     *
     * @param exteriorScratchProofCell 外观防划伤工位
     * @param file 图片信息
     * @return 新增后的外观防划伤工位
     */
    @ApiOperation(value = "新增外观防划伤工位", notes = "新增外观防划伤工位")
    MesExteriorScratchProofCell insertMesExteriorScratchProofCell(MultipartFile file, MesExteriorScratchProofCell exteriorScratchProofCell);

    /**
     * 更新外观防划伤工位
     *
     * @param exteriorScratchProofCell 外观防划伤工位
     * @return 更新后的外观防划伤工位
     */
    @ApiOperation(value = "更新外观防划伤工位", notes = "更新外观防划伤工位")
    MesExteriorScratchProofCell updateMesExteriorScratchProofCell(MultipartFile file,MesExteriorScratchProofCell exteriorScratchProofCell);

    /**
     * 更新外观防划伤工位状态(启用、禁用)
     *
     * @param id       外观防划伤工位id
     * @param status   更新状态
     * @param userName 操作人
     * @return 操作行数
     */
    @ApiOperation(value = "更新外观防划伤工位状态(启用、禁用)")
    int updateMesExteriorScratchProofCellStatusById(Long id, int status, String userName);

    /**
     * 根据id批量启用或禁用外观防划伤工位状态
     * @param ids
     * @param status
     * @return
     */
    @ApiOperation(value = "根据id批量启用或禁用外观防划伤工位状态", notes = "根据id批量启用或禁用外观防划伤工位状态")
    int updateMesExteriorScratchProofCellValidByIds(String[] ids, Integer status);

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