Browse Source

销售订单订单号重复限制,订单号生成规则修改

lazhaoqian 4 years ago
parent
commit
5a00546ed8

+ 8 - 0
blade-ops/blade-report/src/main/java/org/springblade/report/config/BladeReportConfiguration.java

@@ -17,6 +17,7 @@
 package org.springblade.report.config;
 
 import org.springblade.core.report.datasource.ReportDataSource;
+import org.springblade.report.datesource.TestDataSource;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -39,5 +40,12 @@ public class BladeReportConfiguration {
 	public ReportDataSource reportDataSource(DataSource dataSource) {
 		return new ReportDataSource(dataSource);
 	}
+	/**
+	 * 测试数据源
+	 */
+	@Bean
+	public TestDataSource testDataSource(DataSource dataSource){
+		return new TestDataSource(dataSource);
+	}
 
 }

+ 34 - 0
blade-ops/blade-report/src/main/java/org/springblade/report/datesource/TestDataSource.java

@@ -0,0 +1,34 @@
+package org.springblade.report.datesource;
+
+import com.bstek.ureport.definition.datasource.BuildinDatasource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springblade.core.report.datasource.ReportDataSource;
+
+import javax.sql.DataSource;
+import java.sql.Connection;
+import java.sql.SQLException;
+
+public class TestDataSource implements BuildinDatasource {
+	private static final Logger log = LoggerFactory.getLogger(ReportDataSource.class);
+	private static final String NAME = "TestDataSource";
+	private final DataSource dataSource;
+	@Override
+	public String name() {
+		return "TestDataSource";
+	}
+
+	@Override
+	public Connection getConnection() {
+		try {
+			return this.dataSource.getConnection();
+		} catch (SQLException var2) {
+			log.error("report数据源链接失败");
+			var2.printStackTrace();
+			return null;
+		}
+	}
+	public TestDataSource(final DataSource dataSource) {
+		this.dataSource = dataSource;
+	}
+}

+ 41 - 16
blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/SerialServiceImpl.java

@@ -52,7 +52,12 @@ public class SerialServiceImpl extends ServiceImpl<SerialMapper, Serial> impleme
 	public synchronized String getBillNo(String type,String tradeType) {
 		Date date = new Date();
 		String billNo = null;
-		String yyyyMM = DateFormatUtils.format(date, "yyyyMM");
+		String yyyyMM = null;
+		if (tradeType.equals("CK")){
+			yyyyMM = DateFormatUtils.format(date, "yyMMdd");
+		}else {
+			yyyyMM = DateFormatUtils.format(date, "yyyyMM");
+		}
 		Serial billNoSerial = new Serial();
 		billNoSerial.setBillType(type);
 		billNoSerial.setTradeType(tradeType);
@@ -60,22 +65,42 @@ public class SerialServiceImpl extends ServiceImpl<SerialMapper, Serial> impleme
 		billNoSerial.setTenantId(SecureUtil.getTenantId());
 		billNoSerial.setIsDeleted(0);
 		Serial serial = baseMapper.selectOne(new QueryWrapper<Serial>().setEntity(billNoSerial));
-		if (serial != null) {
-			serial.setSerial(serial.getSerial() + 1);
-			baseMapper.updateById(serial);
-			if (serial.getSerial() <= 9) {
-				billNo = yyyyMM + "000" + serial.getSerial();
-			} else if (serial.getSerial() <= 99) {
-				billNo = yyyyMM + "00" + serial.getSerial();
-			} else if (serial.getSerial() <= 999) {
-				billNo = yyyyMM + "0" + serial.getSerial();
-			}else if (serial.getSerial() <= 1000) {
-				billNo = yyyyMM + "" + serial.getSerial();
+		if (tradeType.equals("CK")){
+			if (serial != null) {
+				serial.setSerial(serial.getSerial() + 1);
+				baseMapper.updateById(serial);
+				if (serial.getSerial() <= 9) {
+					billNo = "000" + serial.getSerial()+ "-" + yyyyMM ;
+				} else if (serial.getSerial() <= 99) {
+					billNo = "00" + serial.getSerial()+ "-" + yyyyMM ;
+				} else if (serial.getSerial() <= 999) {
+					billNo =  "0" + serial.getSerial()+ "-" + yyyyMM;
+				}else if (serial.getSerial() <= 1000) {
+					billNo = serial.getSerial() + "-" + yyyyMM;
+				}
+			} else {
+				billNo =  "0001-" + yyyyMM ;
+				billNoSerial.setSerial(1);
+				baseMapper.insert(billNoSerial);
+			}
+		}else {
+			if (serial != null) {
+				serial.setSerial(serial.getSerial() + 1);
+				baseMapper.updateById(serial);
+				if (serial.getSerial() <= 9) {
+					billNo = yyyyMM + "000" + serial.getSerial();
+				} else if (serial.getSerial() <= 99) {
+					billNo = yyyyMM + "00" + serial.getSerial();
+				} else if (serial.getSerial() <= 999) {
+					billNo = yyyyMM + "0" + serial.getSerial();
+				}else if (serial.getSerial() <= 1000) {
+					billNo = yyyyMM + "" + serial.getSerial();
+				}
+			} else {
+				billNo = yyyyMM + "0001";
+				billNoSerial.setSerial(1);
+				baseMapper.insert(billNoSerial);
 			}
-		} else {
-			billNo = yyyyMM + "0001";
-			billNoSerial.setSerial(1);
-			baseMapper.insert(billNoSerial);
 		}
 		return type+billNo;
 	}

+ 2 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -100,7 +100,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	@Transactional
 	public R saveOrderMessage(Order order) {
 		//校验单号重复-新增
-		if(order.getId()==null)
+		if(order.getId()==null && StringUtils.isNotBlank(order.getOrderNo()))
 		{
 			LambdaQueryWrapper<Order> orderLambdaQueryWrapper=new LambdaQueryWrapper<>();
 			orderLambdaQueryWrapper
@@ -137,7 +137,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				return R.fail(500,"生成系统编号失败");
 			}
 			order.setSysNo((String) billNo.getData());
-			if (!order.getTradeType().equals(OrderTypeEnum.IMPORT.getType()) && StringUtils.isNotBlank(order.getOrderNo())){
+			if (!order.getTradeType().equals(OrderTypeEnum.IMPORT.getType()) && StringUtils.isBlank(order.getOrderNo())){
 				R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getCorpId());
 				if (corpMessage.isSuccess()){
 					R clientBillNo = serialClient.getBillNo(corpMessage.getData().getCode(),order.getTradeType());