package com.shkj.wms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shkj.common.core.domain.Result;
import com.shkj.common.core.page.TableDataInfo;
import com.shkj.wms.bo.BasRuleBo;
import com.shkj.wms.domain.BasRule;
import com.shkj.wms.vo.BasRuleVo;

import java.util.Collection;
import java.util.List;


/**
 * 编码规则Service接口
 *
 * @author j.liang
 * @date 2022-12-08
 */
public interface IBasRuleService  extends IService<BasRule> {

    /**
     * 查询编码规则
     */
    BasRule queryById(Long ruleId);

    /**
     * 查询编码规则列表
     */
    List<BasRuleVo> queryPageList(BasRuleBo bo);

    /**
     * 查询编码规则列表
     */
    List<BasRuleVo> queryList(BasRuleBo bo);

    /**
     * 新增编码规则
     */
    Result<Boolean> insertBasRuleByBo(BasRuleBo bo);

    /**
     * 修改编码规则
     */
    Boolean updateByBo(BasRuleBo bo);

    /**
     * 校验并批量删除编码规则信息
     */
    Boolean deleteWithValidById(Long id);

    /**
     * 保存前的数据校验
     */
    Boolean checkNameUnique(BasRuleBo basRuleBo);

    /**
     * 校验删除编码规则信息
     */
    String checkNameStatus(Collection<Long> ids);

    /**
     * 修改编码规则状态
     */
    Boolean updateStatus(BasRule basRule);

    /**
     * 自动生成业务编号
     */
    String genSerialCode(String ruleCode, String inputCharacter);
}
