Browse Source

2022年10月20 18:11

wangzhuo 3 years ago
parent
commit
c4708c048e

+ 6 - 0
blade-ops/blade-report/pom.xml

@@ -62,6 +62,12 @@
             <version>2.8.2.RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-purchase-sales-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
     <build>

+ 10 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -790,14 +790,22 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			Order temp = new Order();
 			temp.setId(select.getOrgId());
 			temp.setOrderStatus("待收货");
-			temp.setDeliverQuantity(select.getTotalQuantity());
+			if (select.getTotalQuantity().compareTo(BigDecimal.ZERO) == 0){
+				temp.setDeliverQuantity(select.getTotalQuantity());
+			}else {
+				temp.setDeliverQuantity(BigDecimal.ZERO);
+			}
 			temp.setDeliverTime(date);
 			orderDescClient.updateOrder(temp);
 
 			Order orderTemp = new Order();
 			orderTemp.setId(select.getSrcId());
 			orderTemp.setOrderStatus("待收货");
-			orderTemp.setDeliverQuantity(select.getTotalQuantity());
+			if (select.getTotalQuantity().compareTo(BigDecimal.ZERO) == 0){
+				temp.setDeliverQuantity(select.getTotalQuantity());
+			}else {
+				temp.setDeliverQuantity(BigDecimal.ZERO);
+			}
 			orderTemp.setDeliverTime(date);
 			orderDescClient.updateOrder(orderTemp);
 

+ 7 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/PriceItemServiceImpl.java

@@ -28,6 +28,7 @@ import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.mocha.entity.PriceItem;
 import org.springblade.mocha.excel.PriceItemExcel;
 import org.springblade.mocha.vo.PriceItemVO;
@@ -72,6 +73,12 @@ public class PriceItemServiceImpl extends ServiceImpl<PriceItemMapper, PriceItem
 	@Transactional
 	public void importUser(List<PriceItemExcel> data, Boolean isCovered) {
 		data.forEach(priceItemExcel -> {
+			if (ObjectUtil.isEmpty(priceItemExcel.getSalesPrice())){
+				throw new SecurityException("销售价格不能为空");
+			}
+			if (ObjectUtil.isEmpty(priceItemExcel.getPurchasePrice())){
+				throw new SecurityException("采购价格不能为空");
+			}
 			PriceItem priceItem = new PriceItem();
 			priceItem.setPurchasePrice(priceItemExcel.getPurchasePrice());
 			priceItem.setSalesPrice(priceItemExcel.getSalesPrice());

+ 7 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/service/impl/SalesPolicyServiceImpl.java

@@ -52,6 +52,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.rmi.server.ServerCloneException;
 import java.util.*;
 
 /**
@@ -246,6 +247,12 @@ public class SalesPolicyServiceImpl extends ServiceImpl<SalesPolicyMapper, Sales
 			if (!goodsDescR.isSuccess() || goodsDescR.getData() == null) {
 				throw new SecurityException("第" + (i + 1) + "行,请填写真实正确的商品编码");
 			}
+			if (ObjectUtil.isEmpty(goodsExcel.getSalesPrice())){
+				throw new SecurityException("第" + (i + 1) + "行销售价格为空");
+			}
+			if (ObjectUtil.isEmpty(goodsExcel.getPurchasePrice())){
+				throw new SecurityException("第" + (i + 1) + "行采购价格为空");
+			}
 			//查询itemId
 			GoodsDesc goodsDesc = goodsDescR.getData();
 			salesPolicyItem.setPurchasePrice(new BigDecimal(goodsExcel.getPurchasePrice()));

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

@@ -253,6 +253,62 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			}
 			baseMapper.insert(order);
 		} else {
+			LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			orderLambdaQueryWrapper
+				.eq(Order::getId, order.getId())
+				.eq(Order::getCorpId, order.getCorpId())
+				.eq(Order::getTradeType, order.getTradeType())
+				.eq(Order::getBillType, order.getBillType())
+				.eq(Order::getTenantId, AuthUtil.getTenantId())
+				.eq(Order::getIsDeleted, 0);
+			Integer count = baseMapper.selectCount(orderLambdaQueryWrapper);
+			if (count <= 0) {
+				if (!order.getTradeType().equals(OrderTypeEnum.IMPORT.getType())) {
+					// 出口贸易的报价单号和销售单号的生成规则是 Q + 客户编码后三位
+					if (order.getTradeType().equals(OrderTypeEnum.EXPORT.getType())) {
+						R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getCorpId());
+						if (corpMessage.isSuccess() && StringUtils.isNotBlank(corpMessage.getData().getCode())) {
+							String substring = "";
+							if (order.getBillType().equals(OrderTypeEnum.ENQUIRY.getType())) {
+								substring = substring + "Q";
+							}
+							if (corpMessage.getData().getCode().length() > 3) {
+								substring = substring + corpMessage.getData().getCode().substring(corpMessage.getData().getCode().length() - 3, corpMessage.getData().getCode().length());
+							} else {
+								substring = substring + corpMessage.getData().getCode();
+							}
+							R clientBillNo = serialClient.getBillNo(substring, order.getTradeType(), order.getBillType());
+							if (!clientBillNo.isSuccess()) {
+								TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+								return R.fail(500, "生成订单编号失败");
+							}
+							order.setOrderNo((String) clientBillNo.getData());
+							// 进口的orgOrderNo 存的是采购订单号  出口国内存的是本身的订单号码
+							if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())) {
+								order.setOrgOrderNo((String) clientBillNo.getData());
+							}
+						}
+					} else {
+						R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getCorpId());
+						if (corpMessage.isSuccess()) {
+							R clientBillNo = serialClient.getBillNo(corpMessage.getData().getCode(), order.getTradeType(), order.getBillType());
+							if (!clientBillNo.isSuccess()) {
+								TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+								return R.fail(500, "生成订单编号失败");
+							}
+							order.setOrderNo((String) clientBillNo.getData());
+							// 进口的orgOrderNo 存的是采购订单号  出口国内存的是本身的订单号码
+							if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())) {
+								order.setOrgOrderNo((String) clientBillNo.getData());
+							}
+						}
+					}
+				}
+				// 主订单号为空已订单号一致国内贸易
+				if (order.getTradeType().equals(OrderTypeEnum.DOMESTIC.getType())) {
+					order.setMorderNo(order.getOrderNo());
+				}
+			}
 			order.setTenantId(SecureUtil.getTenantId());
 			order.setUpdateTime(date);
 			order.setUpdateUser(SecureUtil.getUserId());