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

import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesProcessBom;
import cn.estsh.i3plus.ext.mes.pcn.pojo.bean.MesWorkOrderProcessBom;
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;

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

    /**
     * 按条件分页查询工单工序BOM信息
     * @param workOrderProcessBom 查询条件
     * @param pager 分页条件
     * @return 工单工序BOM信息
     */
    @ApiOperation(value = "按条件分页查询工单工序BOM信息", notes = "按条件分页查询工单工序BOM信息")
    ListPager queryWorkOrderProcessBomByPager(MesWorkOrderProcessBom workOrderProcessBom, Pager pager);

    /**
     * 新增工单工序BOM信息
     * @param workOrderProcessBom 工单工序BOM信息
     * @return 工单工序BOM信息
     */
    @ApiOperation(value = "新增工单工序BOM信息", notes = "新增工单工序BOM信息")
    MesWorkOrderProcessBom insertWorkOrderProcessBom(MesWorkOrderProcessBom workOrderProcessBom);

    /**
     * 更新工单工序BOM信息
     * @param workOrderProcessBom 工单工序BOM信息
     * @return 工单工序BOM信息
     */
    @ApiOperation(value = "更新工单工序BOM信息", notes = "更新工单工序BOM信息")
    MesWorkOrderProcessBom updateWorkOrderProcessBom(MesWorkOrderProcessBom workOrderProcessBom);

    /**
     * 根据id启用或禁用工单工序BOM信息
     * @param id  工单工序BOM信息ID
     * @param status 状态
     * @param modifyUser 操作人
     * @return 结果
     */
    @ApiOperation(value = "根据id启用或禁用工单工序BOM信息", notes = "根据id启用或禁用工单工序BOM信息")
    int updateWorkOrderProcessBomValidById(Long id, Integer status, String modifyUser);

    /**
     * 根据工单工序物料获取工单工序BOM信息集合
     * @param organizeCode
     * @param workOrderNo
     * @param processCode
     * @param partNo
     * @return
     */
    @ApiOperation(value = "根据工单工序物料获取工单工序BOM信息集合", notes = "根据工单工序物料获取工单工序BOM信息集合")
    List<MesWorkOrderProcessBom> getWorkOrderProcessBomList(String organizeCode, String workOrderNo, String processCode, String partNo);

    /**
     * 按条件分页查询查询工序BOM信息集合
     * @param processBom 查询条件
     * @param pager 分页条件
     * @return 工序BOM信息集合
     */
    @ApiOperation(value = "按条件分页查询查询工序BOM信息集合", notes = "按条件分页查询查询工序BOM信息集合")
    ListPager queryProcessBomByPager(MesProcessBom processBom, Pager pager);
}
