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

import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkCenterContainerLocation;
import cn.estsh.i3plus.pojo.mes.bean.MesContainer;
import cn.estsh.i3plus.pojo.mes.bean.MesPartContainerCapacity;
import io.swagger.annotations.ApiOperation;

import java.util.List;

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

    /**
     * 根据生产线代码获取产线托盘位置信息集合
     * @param organizeCode 组织代码
     * @param workCenterCode 生产线代码
     * @return 产线托盘位置信息集合
     */
    @ApiOperation(value = "根据生产线代码获取产线托盘位置信息集合", notes = "根据生产线代码获取产线托盘位置信息集合")
    List<MesWorkCenterContainerLocation> getWcclListByCenter(String organizeCode, String workCenterCode);

    /**
     * 根据生产线代码获取产线托盘位置信息
     * @param organizeCode 组织代码
     * @param workCenterCode 生产线代码
     * @return 产线托盘位置信息
     */
    @ApiOperation(value = "根据生产线代码获取产线托盘位置信息", notes = "根据生产线代码获取产线托盘位置信息")
    MesWorkCenterContainerLocation getWcclByCenter(String organizeCode, String workCenterCode);

    /**
     * 根据生产线代码,容器位置编号获取产线托盘位置信息
     * @param organizeCode 组织代码
     * @param workCenterCode 生产线代码
     * @param ctLocationNo 容器位置编号
     * @return 产线托盘位置信息
     */
    @ApiOperation(value = "根据生产线代码,容器位置编号获取产线托盘位置信息", notes = "根据生产线代码,容器位置编号获取产线托盘位置信息")
    MesWorkCenterContainerLocation getWorkCenterContainerLocationByCenterAndLocation(String organizeCode, String workCenterCode, String ctLocationNo);

    /**
     * 根据容器代码获取容器信息
     * @param organizeCode 组织代码
     * @param ctNo 容器代码
     * @return 容器信息
     */
    @ApiOperation(value = "根据容器代码获取容器信息", notes = "根据容器代码获取容器信息")
    MesContainer getContainerByCtNo(String organizeCode, String ctNo);

    /**
     * 根据容器类型,物料编码获取产品容器容量配置信息
     * @param organizeCode 组织代码
     * @param ctCode 容器类型
     * @param partNo 物料编码
     * @return 产品容器容量配置信息
     */
    @ApiOperation(value = "根据容器类型,物料编码获取产品容器容量配置信息", notes = "根据容器类型,物料编码获取产品容器容量配置信息")
    MesPartContainerCapacity getPartContainerCapacity(String organizeCode, String ctCode, String partNo);
}
