package com.xisc.pm.app.service;

import java.util.List;

/**
 * 规则编码
 * @author jun.zeng
 *
 */
public interface PmRuleCodeService {
    
    /**
     * 编码规则 = ruleCode + resetKey + 流水号
     * 生成编码（直接通过数据库生产，不适合高并发）
     * @param tenantId 租户
     * @param ruleCode 规则编码
     * @param resetKey 重置KEY
     * @param digit 流水号位数
     * @return
     */
    String generateCode(Long tenantId , String ruleCode , String resetKey , int digit);
    
    /**
     * 生成编码（直接通过数据库生产，不适合高并发）
     * @param tenantId 租户
     * @param ruleCode 规则编码
     * @param resetKey 重置KEY
     * @param digit 流水号位数
     * @param initValue 初始值
     * @return
     */
    String generateCode(Long tenantId , String ruleCode , String resetKey ,int digit , Long initValue);
    
    /**
     * 
     * @param qty
     * @param tenantId
     * @param ruleCode
     * @param resetKey
     * @param digit
     * @param initValue
     * @return
     */
    List<String> generateCode(int qty ,Long tenantId , String ruleCode , String resetKey ,int digit , Long initValue);
    
    /**
     * 
     * @param qty
     * @param tenantId
     * @param ruleCode
     * @param resetKey
     * @param digit
     * @param initValue
     * @return
     */
    List<String> generateCode(int qty ,Long tenantId , String ruleCode , String resetKey ,int digit);

}
