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

import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesPartExt;
import cn.estsh.i3plus.ext.mes.pcn.pojo.model.bu.SxPartCategoryModel;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.mes.bean.MesPart;
import cn.estsh.i3plus.pojo.mes.bean.MesProcess;
import io.swagger.annotations.ApiOperation;

import java.util.List;
import java.util.Map;

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

    /**
     * 根据物料编码获取物料信息
     * @param organizeCode 组织代码
     * @param partNo 物料编码
     * @return 物料信息
     */
    @ApiOperation(value = "根据物料编码获取物料信息", notes = "根据物料编码获取物料信息")
    MesPartExt getPartExt(String organizeCode, String partNo);

    /**
     * 根据物料编码获取物料信息
     * @param organizeCode 组织代码
     * @param partNo 物料编码
     * @return 物料信息
     */
    @ApiOperation(value = "根据物料编码获取物料信息", notes = "根据物料编码获取物料信息")
    MesPart getPart(String organizeCode, String partNo);

    /**
     * 根据物料编码集合获取物料信息集合
     * @param organizeCode 组织代码
     * @param partNoList 物料编码集合
     * @return 物料信息集合
     */
    @ApiOperation(value = "根据物料编码集合获取物料信息集合", notes = "根据物料编码集合获取物料信息集合")
    List<MesPartExt> getPartExtListByPartNoList(String organizeCode, List<String> partNoList);

    /**
     * 获取物料分类
     * @param organizeCode 组织代码
     * @return 物料分类
     */
    @ApiOperation(value = "获取物料分类", notes = "获取物料分类")
    List<SxPartCategoryModel> queryPartCategoryList(String organizeCode);

    /**
     * 获取物料分类
     * @param organizeCode 组织代码
     * @return 物料分类
     */
    @ApiOperation(value = "根据类型获取物料分类", notes = "根据类型获取物料分类")
    List<SxPartCategoryModel> queryPartCategoryListByType(String organizeCode, String type);

    /**
     * 获取物料分类
     * @param organizeCode 组织代码
     * @return 物料分类
     */
    @ApiOperation(value = "根据类型获取物料分类", notes = "根据类型获取物料分类")
    Map<String, String> queryPartCategoryMapByType(String organizeCode, String type);
}
