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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesWorkLicense;
import cn.estsh.i3plus.ext.mes.pojo.bean.MesWorkLicenseTravel;
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;

/**
 * @Author: xinwang.yi
 * @CreateDate: 2023/04/13 15:06 下午
 * @Description:
 **/
public interface ISxWorkLicenseService {

    /**
     * 按条件分页查询上岗证配置信息
     *
     * @param workLicense 查询条件
     * @param pager 分页条件
     * @return 上岗证配置分页数据
     */
    @ApiOperation(value = "按条件分页查询上岗证配置信息", notes = "按条件分页查询上岗证配置信息")
    ListPager<MesWorkLicense> queryWorkLicenseByPager(MesWorkLicense workLicense, Pager pager);

    /**
     * 新增上岗证配置信息
     * @param workLicense 上岗证配置信息
     * @return 上岗证配置数据
     */
    @ApiOperation(value = "新增上岗证配置信息", notes = "新增上岗证配置信息")
    MesWorkLicense insertWorkLicense(MesWorkLicense workLicense);

    /**
     * 更新上岗证配置信息
     * @param workLicense 上岗证配置信息
     * @return 上岗证配置数据
     */
    @ApiOperation(value = "更新上岗证配置信息", notes = "更新上岗证配置信息")
    MesWorkLicense updateWorkLicense(MesWorkLicense workLicense);

    /**
     * 根据id启用或禁用上岗证配置信息
     * @param idStr 上岗证配置信息ID
     * @param status 状态
     * @param userName 操作人
     */
    @ApiOperation(value = "根据id启用或禁用上岗证配置信息", notes = "根据id启用或禁用上岗证配置信息")
    void updateWorkLicenseValidById(String idStr, Integer status, String userName);

    /**
     * 根据id删除上岗证配置信息
     * @param idStr 上岗证配置信息ID
     * @param userName 操作人
     */
    @ApiOperation(value = "根据id删除上岗证配置信息", notes = "根据id删除上岗证配置信息")
    void deleteWorkLicenseById(String idStr, String userName);

    /**
     * 获取上岗证配置信息
     * @param organizeCode 组织代码
     * @return 上岗证配置信息
     */
    @ApiOperation(value = "获取上岗证配置信息", notes = "获取上岗证配置信息")
    List<MesWorkLicense> getWorkLicenseAllList(String organizeCode);

    /**
     * 新增上岗证配置信息履历
     * @param workLicense 上岗证配置信息履历
     * @return 上岗证配置数据履历
     */
    @ApiOperation(value = "新增上岗证配置信息", notes = "新增上岗证配置信息")
    MesWorkLicenseTravel insertWorkLicenseTravel(MesWorkLicense workLicense);

    /**
     * 按条件分页查询上岗证配置履历信息
     *
     * @param workLicenseTravel 查询条件
     * @param pager 分页条件
     * @return 上岗证配置履历分页数据
     */
    @ApiOperation(value = "按条件分页查询上岗证配置履历信息", notes = "按条件分页查询上岗证配置履历信息")
    ListPager<MesWorkLicenseTravel> queryWorkLicenseTravelByPager(MesWorkLicenseTravel workLicenseTravel, Pager pager);

}
