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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesModuleExcelManage;
import cn.estsh.i3plus.ext.mes.pojo.model.ModuleExcelManageModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesFile;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

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

    /**
     * 按条件分页查询模块EXCEL模板信息
     *
     * @param moduleExcelManage 查询条件
     * @param pager 分页条件
     * @return SOP分页数据
     */
    @ApiOperation(value = "按条件分页查询模块EXCEL模板信息", notes = "按条件分页查询模块EXCEL模板信息")
    ListPager<ModuleExcelManageModel> queryModuleExcelManageByPager(MesModuleExcelManage moduleExcelManage, Pager pager);

    /**
     * 新增模块EXCEL模板信息
     * @param file 文件
     * @param moduleExcelManage 模块EXCEL模板信息
     */
    @ApiOperation(value = "新增模块EXCEL模板信息", notes = "新增模块EXCEL模板信息")
    void insertModuleExcelManage(MultipartFile file, MesModuleExcelManage moduleExcelManage);

    /**
     * 更新模块EXCEL模板信息
     * @param file 文件
     * @param moduleExcelManage 模块EXCEL模板信息
     */
    @ApiOperation(value = "更新模块EXCEL模板信息", notes = "更新模块EXCEL模板信息")
    void updateModuleExcelManage(MultipartFile file, MesModuleExcelManage moduleExcelManage);

    /**
     * 根据id启用或禁用模块EXCEL模板信息
     * @param id 模块EXCEL模板信息ID
     * @param status 状态
     * @param userName 操作人
     * @return 结果
     */
    @ApiOperation(value = "根据id启用或禁用模块EXCEL模板信息", notes = "根据id启用或禁用模块EXCEL模板信息")
    int updateModuleExcelManageValidById(Long id, Integer status, String userName);

    /**
     * 下载模块EXCEL模板
     * @param resp
     * @param fileUrl 文件URL
     */
    @ApiOperation(value = "下载模块EXCEL模板", notes = "下载模块EXCEL模板")
    void doDownLoadModuleExcelManage(HttpServletResponse resp, String fileUrl);

    /**
     * 获取文件
     * @param organizeCode 组织代码
     * @param templateCode 模版代码
     * @return
     */
    @ApiOperation(value = "获取文件", notes = "获取文件")
    MesFile getTemplateFile(String organizeCode, String templateCode);
}
