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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesBadnessType;
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 yumingxing
 * @version 1.0
 * @date 2021/2/5 15:41
 **/
public interface IJxBadnessTypeService {

    /**
     * 分页查询不良类型
     *
     * @param sxQmsBadnessType 查询条件
     * @param pager 分页条件
     * @return 不良类型分页数据
     */
    @ApiOperation(value = "分页查询不良类型", notes = "分页查询不良类型")
    ListPager<MesBadnessType> queryBadnessTypePager(MesBadnessType sxQmsBadnessType, Pager pager);

    /**
     * 新增不良类型
     * @param sxQmsBadnessType 不良类型信息
     */
    @ApiOperation(value = "新增不良类型", notes = "新增不良类型")
    void insertBadnessType(MesBadnessType sxQmsBadnessType, String userName);

    /**
     * 编辑不良类型
     * @param sxQmsBadnessType 不良类型信息
     */
    @ApiOperation(value = "编辑不良类型", notes = "编辑不良类型")
    void updateBadnessType(MesBadnessType sxQmsBadnessType, String userName);

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

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

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

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

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