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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesProdPackExt;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import io.swagger.annotations.ApiOperation;

/**
 * @Description:
 * @Reference:
 * @Author: wangjie
 * @CreateDate: 2019\11\4 10:38
 * @Modify:
 **/
public interface IProdPackExtService {

    /**
     * 按条件分页查询产品包装关系扩展信息
     *
     * @param prodPackExt 产品包装关系扩展信息
     * @param pager       分页条件
     * @return 分页数据
     */
    @ApiOperation(value = "按条件分页查询产品包装关系扩展信息", notes = "按条件分页查询产品包装关系扩展信息")
    ListPager<MesProdPackExt> queryProdPackByPager(MesProdPackExt prodPackExt, Pager pager);

    /**
     * 新增MesProdPackExt表信息
     *
     * @param prodPackExt 产品包装关系扩展信息
     * @return 新增后的产品包装关系扩展信息
     */
    @ApiOperation(value = "新增产品包装关系扩展信息", notes = "新增产品包装关系扩展信息")
    MesProdPackExt insertProdPack(MesProdPackExt prodPackExt);

    /**
     * 更新产品包装关系扩展表信息
     *
     * @param prodPackExt 产品包装关系扩展信息
     * @return 更新后的产品包装关系扩展信息
     */
    @ApiOperation(value = "更新产品包装关系扩展信息", notes = "更新产品包装关系扩展信息")
    MesProdPackExt updateProdPack(MesProdPackExt prodPackExt);

    /**
     * 更新产品包装关系扩展状态(启用、禁用)
     *
     * @param id       产品包装关系扩展信息id
     * @param status   更新状态
     * @param userName 操作人
     */
    @ApiOperation(value = "更新产品包装关系扩展状态(启用、禁用)", notes = "更新产品包装关系扩展状态(启用、禁用)")
    void updateProdPackValidById(Long id, int status, String userName);

    /**
     * 根据物料号或生产类型获取产品包装关系
     * @param organizeCode
     * @param partNo
     * @param pptCode
     * @return
     */
    @ApiOperation(value = "根据物料号或生产类型获取产品包装关系", notes = "根据物料号或生产类型获取产品包装关系")
    MesProdPackExt getProdPackExt(String organizeCode, String partNo, String pptCode);

}
