package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.SysCodeRule;

/**
 * 编码规则Service接口
 * 
 * @author Yangk
 * @date 2026-06-08
 */
public interface ISysCodeRuleService 
{
    /**
     * 查询编码规则
     * 
     * @param ruleId 编码规则主键
     * @return 编码规则
     */
    public SysCodeRule selectSysCodeRuleByRuleId(Long ruleId);

    /**
     * 查询编码规则列表
     * 
     * @param sysCodeRule 编码规则
     * @return 编码规则集合
     */
    public List<SysCodeRule> selectSysCodeRuleList(SysCodeRule sysCodeRule);

    /**
     * 校验规则编码是否唯一
     *
     * @param sysCodeRule 编码规则
     * @return 结果
     */
    public boolean checkRuleCodeUnique(SysCodeRule sysCodeRule);

    /**
     * 生成下一个业务编号
     *
     * @param ruleCode 规则编码
     * @return 业务编号
     */
    public String nextCode(String ruleCode);

    /**
     * 新增编码规则
     * 
     * @param sysCodeRule 编码规则
     * @return 结果
     */
    public int insertSysCodeRule(SysCodeRule sysCodeRule);

    /**
     * 修改编码规则
     * 
     * @param sysCodeRule 编码规则
     * @return 结果
     */
    public int updateSysCodeRule(SysCodeRule sysCodeRule);

    /**
     * 批量删除编码规则
     * 
     * @param ruleIds 需要删除的编码规则主键集合
     * @return 结果
     */
    public int deleteSysCodeRuleByRuleIds(String ruleIds);

    /**
     * 删除编码规则信息
     * 
     * @param ruleId 编码规则主键
     * @return 结果
     */
    public int deleteSysCodeRuleByRuleId(Long ruleId);
}
