業務流水號-64位(唯一標識)
阿新 • • 發佈:2018-12-12
package com.ldygo.intf.common.utils;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <p>
* Title: BussinessNoUtil
* </p>
* <p>
* Description:
* </p>
* <p>
* Copyright: openlo.cn Copyright (C) 2017
* </p>
*
* @author wwl
* @version
* @since 2017年1月4日
*/
public class BusinessNoUtil {
private static Logger logger = LoggerFactory.getLogger(BusinessNoUtil.class);
/**
* 獲取現在時間
* @return 返回字串格式yyyyMMddHHmmssSSS(17位)
*/
public static String getStringDate() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String dateString = formatter.format(currentTime);
logger.info("dateString", dateString);
return dateString;
}
/**
* 獲取32位UUID字串
*/
public static String get32UUIDString(){
String uuidStr = UUID.randomUUID().toString().replaceAll("-", "");
logger.info("uuidStr", uuidStr);
return uuidStr;
}
/**
* 返回64位業務流水號
* @return
*/
public static String generateBusNo() {
// 15位數字陣列
int[] number = new int[15];
// 迴圈變數
int i = 0;
StringBuffer bussinessNo = new StringBuffer(64);
bussinessNo.append(getStringDate());
bussinessNo.append(get32UUIDString());
// 生成15位隨機數演算法
for (i = 0; i < number.length; i++) {
if (number[i] == 0) {
// 產生0-10之間的隨機小數,強制轉換成正數
number[i] = (int) (Math.random() * 10);
}
bussinessNo.append(number[i]);
}
logger.info("bussinessNo", bussinessNo.toString());
System.out.println(bussinessNo.toString());
return bussinessNo.toString();
}
// 主方法測試
public static void main(String[] args) {
generateBusNo();
}
}
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <p>
* Title: BussinessNoUtil
* </p>
* <p>
* Description:
* </p>
* <p>
* Copyright: openlo.cn Copyright (C) 2017
* </p>
*
* @author wwl
* @version
* @since 2017年1月4日
*/
public class BusinessNoUtil {
private static Logger logger = LoggerFactory.getLogger(BusinessNoUtil.class);
/**
* 獲取現在時間
* @return 返回字串格式yyyyMMddHHmmssSSS(17位)
*/
public static String getStringDate() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String dateString = formatter.format(currentTime);
logger.info("dateString", dateString);
return dateString;
}
/**
* 獲取32位UUID字串
*/
public static String get32UUIDString(){
String uuidStr = UUID.randomUUID().toString().replaceAll("-", "");
logger.info("uuidStr", uuidStr);
return uuidStr;
}
/**
* 返回64位業務流水號
* @return
*/
public static String generateBusNo() {
// 15位數字陣列
int[] number = new int[15];
// 迴圈變數
int i = 0;
StringBuffer bussinessNo = new StringBuffer(64);
bussinessNo.append(getStringDate());
bussinessNo.append(get32UUIDString());
// 生成15位隨機數演算法
for (i = 0; i < number.length; i++) {
if (number[i] == 0) {
// 產生0-10之間的隨機小數,強制轉換成正數
number[i] = (int) (Math.random() * 10);
}
bussinessNo.append(number[i]);
}
logger.info("bussinessNo", bussinessNo.toString());
System.out.println(bussinessNo.toString());
return bussinessNo.toString();
}
// 主方法測試
public static void main(String[] args) {
generateBusNo();
}
}