|
|
@ -3,6 +3,7 @@ package cn.estsh.i3plus.core.apiservice.util;
|
|
|
|
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
|
|
|
|
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule;
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
|
|
|
|
|
|
|
import java.text.MessageFormat;
|
|
|
|
import java.text.MessageFormat;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
@ -20,7 +21,7 @@ public class OrderNoMakeUtil {
|
|
|
|
StringBuilder orderNo = new StringBuilder(orderNoRule.getOrderNoRule());
|
|
|
|
StringBuilder orderNo = new StringBuilder(orderNoRule.getOrderNoRule());
|
|
|
|
|
|
|
|
|
|
|
|
String[] dateTime = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(System.currentTimeMillis()).split("-");
|
|
|
|
String[] dateTime = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(System.currentTimeMillis()).split("-");
|
|
|
|
// 单号表达式的
|
|
|
|
// 单号表达式
|
|
|
|
replace(orderNo, PlatformConstWords.YEAR, dateTime[0]);
|
|
|
|
replace(orderNo, PlatformConstWords.YEAR, dateTime[0]);
|
|
|
|
replace(orderNo, PlatformConstWords.MONTH, dateTime[1]);
|
|
|
|
replace(orderNo, PlatformConstWords.MONTH, dateTime[1]);
|
|
|
|
replace(orderNo, PlatformConstWords.DAY, dateTime[2]);
|
|
|
|
replace(orderNo, PlatformConstWords.DAY, dateTime[2]);
|
|
|
@ -28,14 +29,15 @@ public class OrderNoMakeUtil {
|
|
|
|
replace(orderNo, PlatformConstWords.MINUTE, dateTime[4]);
|
|
|
|
replace(orderNo, PlatformConstWords.MINUTE, dateTime[4]);
|
|
|
|
replace(orderNo, PlatformConstWords.SECOND, dateTime[5]);
|
|
|
|
replace(orderNo, PlatformConstWords.SECOND, dateTime[5]);
|
|
|
|
|
|
|
|
|
|
|
|
// 流水号长度补全
|
|
|
|
// 流水号长度补全表达式
|
|
|
|
String serialNumberFormatStr = MessageFormat.format(PlatformConstWords.SERIAL_NO_FORMAT, orderNoRule.getSerialNoLength());
|
|
|
|
String serialNoFormatStr = MessageFormat.format(PlatformConstWords.SERIAL_NO_FORMAT, orderNoRule.getSerialNoLength());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 判断是否首次生成(SerialNo初始值-1)
|
|
|
|
if (orderNoRule.getSerialNo() > 0) {
|
|
|
|
if (orderNoRule.getSerialNo() > 0) {
|
|
|
|
Long serialNo = orderNoRule.getSerialNo() + orderNoRule.getSerialNoIncrement();
|
|
|
|
String newNo = orderNo.substring(0,orderNo.indexOf(PlatformConstWords.SERIAL_NO));
|
|
|
|
// 达到最大值后循环或继续
|
|
|
|
String oldNo = orderNoRule.getOrderNo().substring(0,orderNo.indexOf(PlatformConstWords.SERIAL_NO));
|
|
|
|
if(orderNoRule.getSerialNoLength().intValue() < String.valueOf(serialNo).length()
|
|
|
|
// 前缀(日期)不同后是否重置流水号
|
|
|
|
&& orderNoRule.getIsCycle() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){
|
|
|
|
if(!newNo.equals(oldNo) && orderNoRule.getIsCycle() == CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()){
|
|
|
|
orderNoRule.setSerialNo(orderNoRule.getSerialNoSeed());
|
|
|
|
orderNoRule.setSerialNo(orderNoRule.getSerialNoSeed());
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
orderNoRule.setSerialNo(orderNoRule.getSerialNo() + orderNoRule.getSerialNoIncrement());
|
|
|
|
orderNoRule.setSerialNo(orderNoRule.getSerialNo() + orderNoRule.getSerialNoIncrement());
|
|
|
@ -43,7 +45,7 @@ public class OrderNoMakeUtil {
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
orderNoRule.setSerialNo(orderNoRule.getSerialNoSeed());
|
|
|
|
orderNoRule.setSerialNo(orderNoRule.getSerialNoSeed());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
replace(orderNo, PlatformConstWords.SERIAL_NO, String.format(serialNumberFormatStr, orderNoRule.getSerialNo()));
|
|
|
|
replace(orderNo, PlatformConstWords.SERIAL_NO, String.format(serialNoFormatStr, orderNoRule.getSerialNo()));
|
|
|
|
|
|
|
|
|
|
|
|
orderNoRule.setOrderNo(orderNo.toString());
|
|
|
|
orderNoRule.setOrderNo(orderNo.toString());
|
|
|
|
return orderNoRule;
|
|
|
|
return orderNoRule;
|
|
|
|