import com.sd.platform.common.utils.DateHelper;
import com.sd.platform.common.utils.StringHelper;
import com.sd.platform.redisutils.enums.EnumBill;
import java.util.Date;
public class BillRedis {
private static final String key = "pf_bill_no";
private static final String idKey = "pf_bill_id";
private static Long timeOut = 60 * 60 * 24L;
/**
* 生成单据编号
* @param companyCode 公司代号
* @param bill 单据类型
* @return
*/
public static String generateNo(String companyCode, EnumBill bill){
return generateNo(companyCode, bill, null);
}
/**
* 生成单据编号
* @param companyCode 公司代号
* @param bill 单据类型
* @param date 日期
* @return
*/
public static String generateNo(String companyCode, EnumBill bill, Date date){
if(date == null){
date = DateHelper.now();
}
String redisKey = String.format("%s_%s_%s_%s", key, companyCode, bill.toString(), DateHelper.formatDate(date, "yyyyMMdd"));
Long id = RedisUtil.incr(redisKey, 1L);
RedisUtil.expire(key, timeOut);
String billNo = DateHelper.formatDate(date, "yyyyMMdd") + StringHelper.padLeft(id.toString(), "0", 6);
return billNo;
}
/**
* 获取单据ID
* @param companyCode
* @param bill
* @return
*/
public static Long generateId(String companyCode, EnumBill bill){
String redisKey = String.format("%s_%s_%s", idKey, companyCode, bill.toString());
Long id = RedisUtil.incr(redisKey, 1L);
return id;
}
}
14,redis 生成唯一的编号
猜你喜欢
转载自blog.csdn.net/weixin_34274029/article/details/90849457
今日推荐
周排行