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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesOfficialLossDetailRecord;
import cn.estsh.i3plus.ext.mes.pojo.model.bu3.SxOfficialLossDetailRecordModel;
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;
import java.util.Map;

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

    /**
     * 按条件分页查询仕损明细记录信息
     *
     * @param officialLossDetailRecord 查询条件
     * @param pager 分页条件
     * @return 仕损明细记录分页数据
     */
    @ApiOperation(value = "按条件分页查询仕损明细记录信息", notes = "按条件分页查询仕损明细记录信息")
    ListPager<SxOfficialLossDetailRecordModel> queryOfficialLossDetailRecordByPager(SxOfficialLossDetailRecordModel officialLossDetailRecord, Pager pager);

    /**
     * 新增仕损明细记录信息
     * @param officialLossDetailRecord 仕损明细记录信息
     * @return 仕损明细记录数据
     */
    @ApiOperation(value = "新增仕损明细记录信息", notes = "新增仕损明细记录信息")
    MesOfficialLossDetailRecord insertOfficialLossDetailRecord(SxOfficialLossDetailRecordModel officialLossDetailRecord);

    /**
     * 更新仕损明细记录信息
     * @param officialLossDetailRecord 仕损明细记录信息
     * @return 仕损明细记录数据
     */
    @ApiOperation(value = "更新仕损明细记录信息", notes = "更新仕损明细记录信息")
    MesOfficialLossDetailRecord updateOfficialLossDetailRecord(SxOfficialLossDetailRecordModel officialLossDetailRecord);

    /**
     * 根据id启用或禁用仕损明细记录信息
     * @param idStrArr 仕损明细记录信息ID
     * @param status 状态
     * @param userName 操作人
     */
    @ApiOperation(value = "根据id启用或禁用仕损明细记录信息", notes = "根据id启用或禁用仕损明细记录信息")
    void updateOfficialLossDetailRecordValidById(String[] idStrArr, Integer status, String userName);

    /**
     * 根据id删除仕损明细记录信息
     * @param idStrArr 仕损明细记录信息ID
     * @param userName 操作人
     */
    @ApiOperation(value = "根据id删除仕损明细记录信息", notes = "根据id删除仕损明细记录信息")
    void deleteOfficialLossDetailRecordById(String[] idStrArr, String userName);

    /**
     * 获取仕损明细记录类型明细配置MAP
     * @param organizeCode 组织代码
     * @return 仕损明细记录类型明细配置MAP
     */
    @ApiOperation(value = "获取仕损明细记录类型明细配置MAP", notes = "获取仕损明细记录类型明细配置MAP")
    Map<String, Map<String, String>> getOfficialLossItemCfgMap(String organizeCode);

    /**
     * 按条件查询仕损明细记录信息
     * @param officialLossDetailRecord 查询条件
     * @return
     */
    @ApiOperation(value = "按条件查询仕损明细记录信息", notes = "按条件查询仕损明细记录信息")
    List<SxOfficialLossDetailRecordModel> getOfficialLossDetailRecordList(SxOfficialLossDetailRecordModel officialLossDetailRecord);

}
