Merge remote-tracking branch 'origin/dev' into test

yun-zuoyi
汪云昊 4 years ago
commit 5310150de6

@ -45,7 +45,7 @@ public class SynchronizedService implements ISynchronizedService {
private RabbitTemplate rabbitTemplate; private RabbitTemplate rabbitTemplate;
@Override @Override
public synchronized SysOrderNoRule nextOrderNo(String code) { public SysOrderNoRule nextOrderNo(String code) {
List<SysOrderNoRule> list = nextOrderNo(code, NumberUtils.INTEGER_ONE); List<SysOrderNoRule> list = nextOrderNo(code, NumberUtils.INTEGER_ONE);
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
throw ImppExceptionBuilder.newInstance() throw ImppExceptionBuilder.newInstance()

@ -7,6 +7,7 @@ import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -24,6 +25,8 @@ public class OrderNoMakeUtil {
private OrderNoMakeUtil() { private OrderNoMakeUtil() {
} }
public static final BigDecimal TEN = new BigDecimal(10);
public static String getOrderNoTemplate(SysOrderNoRule orderNoRule) { public static String getOrderNoTemplate(SysOrderNoRule orderNoRule) {
// 数据校验 // 数据校验
if (orderNoRule == null || StringUtils.isBlank(orderNoRule.getOrderNoRule())) { if (orderNoRule == null || StringUtils.isBlank(orderNoRule.getOrderNoRule())) {
@ -50,7 +53,6 @@ public class OrderNoMakeUtil {
} }
/** /**
*
* @param orderNoRule * @param orderNoRule
* @param orderNoTemplate * @param orderNoTemplate
* @return * @return
@ -75,15 +77,17 @@ public class OrderNoMakeUtil {
orderNoRule.setSerialNo(serialNo); orderNoRule.setSerialNo(serialNo);
} }
BigDecimal maxSerialNo = TEN.pow(orderNoRule.getSerialNoLength()).subtract(BigDecimal.ONE);
if (CommonEnumUtil.TRUE_OR_FALSE.valueOfBoolean(orderNoRule.getIsFixedLength()) if (CommonEnumUtil.TRUE_OR_FALSE.valueOfBoolean(orderNoRule.getIsFixedLength())
&& String.valueOf(serialNo).length() > orderNoRule.getSerialNoLength()) { && serialNo > maxSerialNo.longValue()) {
orderNoRule.setSerialNo(orderNoRule.getSerialNoSeed()); serialNo = new BigDecimal(serialNo).remainder(maxSerialNo).longValue();
orderNoRule.setSerialNo(serialNo == 0 ? maxSerialNo.longValue() : serialNo);
} }
} else { } else {
orderNoRule.setSerialNo(orderNoRule.getSerialNoSeed() * orderNoRule.getSerialNoIncrement()); orderNoRule.setSerialNo(orderNoRule.getSerialNoSeed() * orderNoRule.getSerialNoIncrement());
} }
orderNoRule.setOrderNo(orderNoTemplate.replace(SERIAL_NO,String.format(serialNoFormatStr, orderNoRule.getSerialNo()))); orderNoRule.setOrderNo(orderNoTemplate.replace(SERIAL_NO, String.format(serialNoFormatStr, orderNoRule.getSerialNo())));
return orderNoRule; return orderNoRule;
} }

@ -1,34 +1,34 @@
package cn.estsh.i3plus.core.apiservice.util; //package cn.estsh.i3plus.core.apiservice.util;
//
import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.TestBase; //import cn.estsh.i3plus.core.apiservice.serviceimpl.busi.TestBase;
import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule; //import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule;
import org.junit.Test; //import org.junit.Test;
//
/** ///**
* @Description : // * @Description :
* @Reference : // * @Reference :
* @Author : yunhao // * @Author : yunhao
* @CreateDate : 2018-11-21 19:45 // * @CreateDate : 2018-11-21 19:45
* @Modify: // * @Modify:
**/ // **/
public class TestOrderNoMakeUtil extends TestBase { //public class TestOrderNoMakeUtil extends TestBase {
//
@Test // @Test
public void TestMakeOrderNo() { // public void TestMakeOrderNo() {
SysOrderNoRule sysOrderNoRule = new SysOrderNoRule(); // SysOrderNoRule sysOrderNoRule = new SysOrderNoRule();
sysOrderNoRule.setName("一号单据"); // sysOrderNoRule.setName("一号单据");
sysOrderNoRule.setOrderNoRule("GG-{yyyy}{MM}{dd}{serialNo}"); // sysOrderNoRule.setOrderNoRule("GG-{yyyy}{MM}{dd}{serialNo}");
sysOrderNoRule.setSerialNoSeed(1L); // sysOrderNoRule.setSerialNoSeed(1L);
sysOrderNoRule.setSerialNoIncrement(1L); // sysOrderNoRule.setSerialNoIncrement(1L);
sysOrderNoRule.setSerialNoLength(4L); // sysOrderNoRule.setSerialNoLength(4L);
sysOrderNoRule.setSerialNo(9999L); // sysOrderNoRule.setSerialNo(9999L);
sysOrderNoRule.setIsCycle(1); // sysOrderNoRule.setIsCycle(1);
//
String orderNoTemplate = OrderNoMakeUtil.getOrderNoTemplate(sysOrderNoRule); // String orderNoTemplate = OrderNoMakeUtil.getOrderNoTemplate(sysOrderNoRule);
System.out.println(OrderNoMakeUtil.next(sysOrderNoRule,orderNoTemplate)); // System.out.println(OrderNoMakeUtil.next(sysOrderNoRule,orderNoTemplate));
//
// String d= MessageFormat.format("%0{0}d", 3); //// String d= MessageFormat.format("%0{0}d", 3);
// System.out.println(d); //// System.out.println(d);
} // }
//
} //}

Loading…
Cancel
Save