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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesBadnessClassify;
import cn.estsh.i3plus.ext.mes.pojo.model.jx.JxBadnessClassifyModel;
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 xinwang.yi
 * @version 1.0
 * @date 2022/6/7 09:20
 **/
public interface IJxBadnessClassifyService {

    /**
     * 分页查询不良分类
     *
     * @param sxQmsBadnessClassify 查询条件
     * @param pager 分页条件
     * @return 不良分类分页数据
     */
    @ApiOperation(value = "分页查询不良分类", notes = "分页查询不良分类")
    ListPager<JxBadnessClassifyModel> queryBadnessClassifyPager(MesBadnessClassify sxQmsBadnessClassify, Pager pager);

    /**
     * 新增不良分类
     * @param sxQmsBadnessClassify 不良分类信息
     */
    @ApiOperation(value = "新增不良分类", notes = "新增不良分类")
    void insertBadnessClassify(MesBadnessClassify sxQmsBadnessClassify, String userName);

    /**
     * 编辑不良分类
     * @param sxQmsBadnessClassify 不良分类信息
     */
    @ApiOperation(value = "编辑不良分类", notes = "编辑不良分类")
    void updateBadnessClassify(MesBadnessClassify sxQmsBadnessClassify, String userName);

    /**
     * 删除不良分类
     * @param ids
     * @param userName
     */
    @ApiOperation(value = "根据ID启用或禁用不良分类", notes = "根据ID启用或禁用不良分类")
    void deleteBadnessClassify(Long ids[], String userName);

    /**
     * 获取不良分类
     * @param organizeCode 组织代码
     * @param badnessTypeCode 不良类型代码
     * @param badnessClassifyCode 不良分类代码
     * @return 不良分类
     */
    @ApiOperation(value = "获取不良类型", notes = "获取不良类型")
    MesBadnessClassify getBadnessClassify(String organizeCode, String badnessTypeCode, String badnessClassifyCode);

    /**
     * 获取不良分类名称
     * @param organizeCode 组织代码
     * @param badnessTypeCode 不良类型代码
     * @param badnessClassifyCode 不良分类代码
     * @return 不良分类名称
     */
    @ApiOperation(value = "获取不良类型名称", notes = "获取不良类型名称")
    String getBadnessClassifyName(String organizeCode, String badnessTypeCode, String badnessClassifyCode);

    /**
     * 获取不良分类集合
     * @param organizeCode 组织代码
     * @return 不良分类集合
     */
    @ApiOperation(value = "获取不良分类集合", notes = "获取不良分类集合")
    List<MesBadnessClassify> getBadnessClassifyList(String organizeCode);

    /**
     * 获取不良分类MAP
     * @param organizeCode 组织代码
     * @return 不良分类MAP
     */
    @ApiOperation(value = "获取不良分类MAP", notes = "获取不良分类MAP")
    Map<String, List<MesBadnessClassify>> getBadnessClassifyMap(String organizeCode);
}
