package com.vetti.system.service;

import java.util.List;
import com.vetti.system.domain.SysSerialNumberInfo;

/**
 * 系统流水号Service接口
 * 
 * @author wangxiangshun
 * @date 2025-09-10
 */
public interface ISysSerialNumberInfoService 
{
    /**
     * 查询系统流水号
     * 
     * @param id 系统流水号主键
     * @return 系统流水号
     */
    public SysSerialNumberInfo selectSysSerialNumberInfoById(Long id);

    /**
     * 查询系统流水号列表
     * 
     * @param sysSerialNumberInfo 系统流水号
     * @return 系统流水号集合
     */
    public List<SysSerialNumberInfo> selectSysSerialNumberInfoList(SysSerialNumberInfo sysSerialNumberInfo);

    /**
     * 新增系统流水号
     * 
     * @param sysSerialNumberInfo 系统流水号
     * @return 结果
     */
    public int insertSysSerialNumberInfo(SysSerialNumberInfo sysSerialNumberInfo);

    /**
     * 修改系统流水号
     * 
     * @param sysSerialNumberInfo 系统流水号
     * @return 结果
     */
    public int updateSysSerialNumberInfo(SysSerialNumberInfo sysSerialNumberInfo);

    /**
     * 批量删除系统流水号
     * 
     * @param ids 需要删除的系统流水号主键集合
     * @return 结果
     */
    public int deleteSysSerialNumberInfoByIds(Long[] ids);

    /**
     * 删除系统流水号信息
     * 
     * @param id 系统流水号主键
     * @return 结果
     */
    public int deleteSysSerialNumberInfoById(Long id);

    /**
     * 批量新增系统流水号
     *
     * @param sysSerialNumberInfoList 系统流水号列表
     * @return 结果
     */
    public int batchInsertSysSerialNumberInfo(List<SysSerialNumberInfo> sysSerialNumberInfoList);


    /**
     * 生成业务编号
     *
     * @param codePrefix 业务编号前缀
     * @param businessType 业务类型
     * @param number 几位流水
     * @return
     */
    String generateSerialNumber(String codePrefix, String businessType, String number);

}
