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

import cn.estsh.i3plus.ext.mes.pojo.bean.MesNumberRuleExt;
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 INumberRuleExtService {

    /**
     * 按条件分页查询条码生成规则信息
     *
     * @param numberRuleExt 查询条件
     * @param pager 分页条件
     * @return 条码生成规则分页数据
     */
    @ApiOperation(value = "按条件分页查询条码生成规则信息", notes = "按条件分页查询条码生成规则信息")
    ListPager<MesNumberRuleExt> queryNumberRuleByPager(MesNumberRuleExt numberRuleExt, Pager pager);

    /**
     * 新增条码生成规则信息
     * @param numberRuleExt 条码生成规则信息
     * @return 条码生成规则数据
     */
    @ApiOperation(value = "新增条码生成规则信息", notes = "新增条码生成规则信息")
    MesNumberRuleExt insertNumberRule(MesNumberRuleExt numberRuleExt);

    /**
     * 更新条码生成规则信息
     * @param numberRuleExt 条码生成规则信息
     * @return 条码生成规则数据
     */
    @ApiOperation(value = "更新条码生成规则信息", notes = "更新条码生成规则信息")
    MesNumberRuleExt updateNumberRule(MesNumberRuleExt numberRuleExt);

    /**
     * 根据id启用或禁用条码生成规则信息
     * @param id 条码生成规则信息ID
     * @param status 状态
     * @param userName 操作人
     * @return 结果
     */
    @ApiOperation(value = "根据id启用或禁用条码生成规则信息", notes = "根据id启用或禁用条码生成规则信息")
    int updateNumberRuleValidById(Long id, Integer status, String userName);

    /**
     * 按条件查询条码生产规则所有有效数据
     *
     * @param numberRuleExt 生产规则
     * @return 生产规则集合
     */
    @ApiOperation(value = "按条件查询条码生产规则所有有效数据", notes = "按条件查询条码生产规则所有有效数据")
    List<MesNumberRuleExt> queryNumberRuleAll(MesNumberRuleExt numberRuleExt);

    /**
     * 按条件查询条码生产规则数据
     *
     * @param numberRuleExt 生产规则
     * @return 生产规则
     */
    @ApiOperation(value = "按条件查询条码生产规则数据", notes = "按条件查询条码生产规则数据")
    MesNumberRuleExt getNumberRule(MesNumberRuleExt numberRuleExt);
}
