Kaynağa Gözat

2023年9月22日17:32:35

纪新园 2 yıl önce
ebeveyn
işleme
a7a8f4573c

+ 33 - 33
blade-ops/blade-log/src/main/resources/log/logback-dev.xml

@@ -68,46 +68,46 @@
 
 
     <!-- MyBatis log configure -->
-    <logger name="com.apache.ibatis" level="ERROR"/>
-    <logger name="org.mybatis.spring" level="ERROR"/>
-    <logger name="java.sql.Connection" level="ERROR"/>
-    <logger name="java.sql.Statement" level="ERROR"/>
-    <logger name="java.sql.PreparedStatement" level="ERROR"/>
+    <logger name="com.apache.ibatis" level="INFO"/>
+    <logger name="org.mybatis.spring" level="INFO"/>
+    <logger name="java.sql.Connection" level="INFO"/>
+    <logger name="java.sql.Statement" level="INFO"/>
+    <logger name="java.sql.PreparedStatement" level="INFO"/>
 
     <!-- 减少部分debug日志 -->
-    <logger name="druid.sql" level="ERROR"/>
-    <logger name="org.apache.shiro" level="ERROR"/>
-    <logger name="org.mybatis.spring" level="ERROR"/>
-    <logger name="org.springframework" level="ERROR"/>
-    <logger name="org.springframework.context" level="ERROR"/>
-    <logger name="org.springframework.beans" level="ERROR"/>
-    <logger name="com.baomidou.mybatisplus" level="ERROR"/>
-    <logger name="org.apache.ibatis.io" level="ERROR"/>
-    <logger name="org.apache.velocity" level="ERROR"/>
-    <logger name="org.eclipse.jetty" level="ERROR"/>
-    <logger name="io.undertow" level="ERROR"/>
-    <logger name="org.xnio.nio" level="ERROR"/>
-    <logger name="org.thymeleaf" level="ERROR"/>
-    <logger name="springfox.documentation" level="ERROR"/>
-    <logger name="org.hibernate.validator" level="ERROR"/>
-    <logger name="com.netflix.loadbalancer" level="ERROR"/>
-    <logger name="com.netflix.hystrix" level="ERROR"/>
-    <logger name="com.netflix.zuul" level="ERROR"/>
-    <logger name="de.codecentric" level="ERROR"/>
+    <logger name="druid.sql" level="INFO"/>
+    <logger name="org.apache.shiro" level="INFO"/>
+    <logger name="org.mybatis.spring" level="INFO"/>
+    <logger name="org.springframework" level="INFO"/>
+    <logger name="org.springframework.context" level="INFO"/>
+    <logger name="org.springframework.beans" level="INFO"/>
+    <logger name="com.baomidou.mybatisplus" level="INFO"/>
+    <logger name="org.apache.ibatis.io" level="INFO"/>
+    <logger name="org.apache.velocity" level="INFO"/>
+    <logger name="org.eclipse.jetty" level="INFO"/>
+    <logger name="io.undertow" level="INFO"/>
+    <logger name="org.xnio.nio" level="INFO"/>
+    <logger name="org.thymeleaf" level="INFO"/>
+    <logger name="springfox.documentation" level="INFO"/>
+    <logger name="org.hibernate.validator" level="INFO"/>
+    <logger name="com.netflix.loadbalancer" level="INFO"/>
+    <logger name="com.netflix.hystrix" level="INFO"/>
+    <logger name="com.netflix.zuul" level="INFO"/>
+    <logger name="de.codecentric" level="INFO"/>
     <!-- cache INFO -->
-    <logger name="net.sf.ehcache" level="ERROR"/>
-    <logger name="org.springframework.cache" level="ERROR"/>
+    <logger name="net.sf.ehcache" level="INFO"/>
+    <logger name="org.springframework.cache" level="INFO"/>
     <!-- cloud -->
-    <logger name="org.apache.http" level="ERROR"/>
-    <logger name="com.netflix.discovery" level="ERROR"/>
-    <logger name="com.netflix.eureka" level="ERROR"/>
+    <logger name="org.apache.http" level="INFO"/>
+    <logger name="com.netflix.discovery" level="INFO"/>
+    <logger name="com.netflix.eureka" level="INFO"/>
     <!-- 业务日志 -->
-    <Logger name="org.springblade" level="ERROR"/>
-    <Logger name="org.springblade.core.tenant" level="ERROR"/>
-    <Logger name="org.springblade.core.version" level="ERROR"/>
+    <Logger name="org.springblade" level="INFO"/>
+    <Logger name="org.springblade.core.tenant" level="INFO"/>
+    <Logger name="org.springblade.core.version" level="INFO"/>
 
     <!-- 减少nacos日志 -->
-    <logger name="com.alibaba.nacos" level="ERROR"/>
+    <logger name="com.alibaba.nacos" level="INFO"/>
 
 
 </configuration>

+ 4 - 4
blade-ops/blade-log/src/main/resources/log/logback-prod.xml

@@ -136,16 +136,16 @@
     </if>
 
     <!-- 日志输出级别 -->
-    <root level="ERROR">
+    <root level="INFO">
         <appender-ref ref="STDOUT"/>
         <appender-ref ref="${INFO_APPENDER}"/>
         <appender-ref ref="${ERROR_APPENDER}"/>
     </root>
 
-    <logger name="net.sf.ehcache" level="ERROR"/>
-    <logger name="druid.sql" level="ERROR"/>
+    <logger name="net.sf.ehcache" level="INFO"/>
+    <logger name="druid.sql" level="INFO"/>
 
     <!-- 减少nacos日志 -->
-    <logger name="com.alibaba.nacos" level="ERROR"/>
+    <logger name="com.alibaba.nacos" level="INFO"/>
 
 </configuration>

+ 26 - 19
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -84,7 +84,10 @@ import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
+import java.util.function.Function;
+import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 /**
@@ -773,7 +776,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		List<DeliveryItems> deliveryItems = deliveryItemsMapper.selectList(deliveryItemsLambdaQueryWrapper);
 
 		select.setDeliveryItemsList(deliveryItems);
-
+		delivery.setDeliveryItemsList(deliveryItems);
 		String corpName = null;
 		String corpNumber = null;
 		String orderNo = select.getOrderNo();
@@ -830,10 +833,9 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 				if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
 					List<StockGoods> finalStockGoodsList1 = stockGoodsList;
 					List<StockGoods> stockGoodsList2 = new ArrayList<>();
-					//去重
-					List<Long> list = r.getData().stream().map(OrderItems::getItemId).distinct().collect(Collectors.toList());
+
 					//获取去重之后数据
-					List<OrderItems> reducelList = r.getData().stream().filter(e -> list.contains(e.getItemId())).collect(Collectors.toList());
+					List<OrderItems> reducelList = r.getData().stream().filter(distinctByKey(OrderItems::getItemId)).collect(Collectors.toList());
 					reducelList.forEach(e -> {
 						// 原单据的订货数量
 						BigDecimal orderQuantity = r.getData().stream().filter(i -> i.getItemId().equals(e.getItemId()))
@@ -884,10 +886,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			List<StockGoods> finalStockGoodsList = stockGoodsClient.selectStockGoodsAll();
 			List<StockGoods> stockGoodsList1 = new ArrayList<>();
 			List<StockGoodsLog> stockGoodsLogList = new ArrayList<>();
-			//去重
-			List<Long> listDelivery = deliveryItemsList.stream().map(DeliveryItems::getItemId).distinct().collect(Collectors.toList());
 			//获取去重之后数据
-			List<DeliveryItems> reducelList = deliveryItemsList.stream().filter(e -> listDelivery.contains(e.getItemId())).collect(Collectors.toList());
+			List<DeliveryItems> reducelList = deliveryItemsList.stream().filter(distinctByKey(DeliveryItems::getItemId)).collect(Collectors.toList());
 			Date date = new Date();
 			reducelList.forEach(e -> {
 				// 原单据的订货数量
@@ -1011,11 +1011,11 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 					}
 					//修改库存单
 					else {
+						stock.setVersion(stock.getVersion());
 						StockGoods receiving = iDeliveryItemsService.receiving(select.getTradeType(), stock, e);
 						//更新收货单明细库存
 						e.setInventoryNumber(receiving.getSurplusRouteQuantity());
 						e.setInWeight(receiving.getInWeight());
-						receiving.setVersion(stock.getVersion());
 						stockGoodsList1.add(receiving);
 						stockGoodsLog.setBalanceQuantity(receiving.getBalanceQuantity());
 						stockGoodsLog.setSurplusRouteQuantity(receiving.getSurplusRouteQuantity());
@@ -1038,11 +1038,11 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 						}
 						//修改库存单
 						else {
+							stock.setVersion(stock.getVersion());
 							StockGoods receiving = iDeliveryItemsService.receiving(select.getTradeType(), stock, e);
 							//更新收货单明细库存
 							e.setInventoryNumber(receiving.getSurplusRouteQuantity());
 							e.setInWeight(receiving.getInWeight());
-							receiving.setVersion(stock.getVersion());
 							stockGoodsList1.add(receiving);
 							stockGoodsLog.setBalanceQuantity(receiving.getBalanceQuantity());
 							stockGoodsLog.setSurplusRouteQuantity(receiving.getSurplusRouteQuantity());
@@ -1053,8 +1053,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 						if (stock == null) {
 							throw new SecurityException("更新库存失败,未找到库存");
 						} else {
+							stock.setVersion(stock.getVersion());
 							StockGoods receiving = iDeliveryItemsService.receiving(select.getTradeType(), stock, e);
-							receiving.setVersion(stock.getVersion());
 							stockGoodsList1.add(receiving);
 							stockGoodsLog.setBalanceQuantity(receiving.getBalanceQuantity());
 							stockGoodsLog.setSurplusRouteQuantity(receiving.getSurplusRouteQuantity());
@@ -1063,26 +1063,27 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 						}
 					}
 				}
-
+			});
+			R res = stockGoodsClient.saveOrUpdateBatchList(stockGoodsList1);
+			if (!res.isSuccess()) {
+				throw new RuntimeException(res.getMsg());
+			}
+			stockGoodsClient.saveOrUpdateBatchListLog(stockGoodsLogList);
+			delivery.getDeliveryItemsList().forEach(e -> {
 				//更新item已发数量
-				R r = iOrderItemsClient.updateActualQuantity(e.getSrcId(), inventoryNumber, 1);
+				R r = iOrderItemsClient.updateActualQuantity(e.getSrcId(), e.getActualQuantity(), 1);
 				if (!r.isSuccess()) {
 					throw new SecurityException("操作已发数量失败:" + r.getMsg());
 				}
 				if ("JK".equals(select.getTradeType())) {
 					//更新item已收发票重量
-					R weightR = iOrderItemsClient.updateActualWeight(e.getSrcId(), invoiceWeight, 1);
+					R weightR = iOrderItemsClient.updateActualWeight(e.getSrcId(), e.getInvoiceWeight(), 1);
 					if (!weightR.isSuccess()) {
 						throw new SecurityException("操作发票重量失败:" + weightR.getMsg());
 					}
 				}
 
 			});
-			R res = stockGoodsClient.saveOrUpdateBatchList(stockGoodsList1);
-			if (!res.isSuccess()) {
-				throw new RuntimeException(res.getMsg());
-			}
-			stockGoodsClient.saveOrUpdateBatchListLog(stockGoodsLogList);
 			//更新库存内容
 			iDeliveryItemsService.updateBatchById(deliveryItemsList);
 			if ("681169".equals(AuthUtil.getTenantId())) {
@@ -1308,7 +1309,13 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		return select;
 	}
 
-	public void voucher(String brand, Delivery select, String accountName, String copsName, String corpNumber, String warehouse, String acoount, String orderNo) {
+	private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
+		Set<Object> seen = ConcurrentHashMap.newKeySet();
+		return t -> seen.add(keyExtractor.apply(t));
+	}
+
+
+		public void voucher(String brand, Delivery select, String accountName, String copsName, String corpNumber, String warehouse, String acoount, String orderNo) {
 		try {
 			//测试账套-工厂发货生成凭证
 			Delivery delivery = this.testTakeGoodsSaveVoucher(brand, select, accountName, copsName, corpNumber, warehouse, acoount, orderNo);

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

@@ -47,6 +47,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.deliver.goods.entity.Delivery;
+import org.springblade.deliver.goods.entity.DeliveryItems;
 import org.springblade.deliver.goods.feign.IDeliveryClient;
 import org.springblade.finance.dto.ApplyDTO;
 import org.springblade.finance.feign.IFinanceClient;
@@ -98,6 +99,9 @@ import java.math.RoundingMode;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 import static org.springblade.common.constant.TenantConstant.OFFSET_RATIO;
@@ -1234,10 +1238,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					.eq(OrderItems::getPid, salesOrder.getId())
 					.eq(OrderItems::getIsDeleted, 0);
 				List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
-				//去重
-				List<Long> list = orderItems.stream().map(OrderItems::getItemId).distinct().collect(Collectors.toList());
 				//获取去重之后数据
-				List<OrderItems> reducelList = orderItems.stream().filter(e -> list.contains(e.getItemId())).collect(Collectors.toList());
+				List<OrderItems> reducelList = orderItems.stream().filter(distinctByKey(OrderItems::getItemId)).collect(Collectors.toList());
 				//获得库存
 				List<StockGoods> stockGoodsList = stockGoodsClient.selectStockGoodsAll();
 				List<StockGoods> stockGoods = new ArrayList<>();
@@ -1757,9 +1759,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				.eq(OrderItems::getIsDeleted, 0);
 			List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
 			//去重
-			List<Long> list = orderItems.stream().map(OrderItems::getItemId).distinct().collect(Collectors.toList());
-			//获取去重之后数据
-			List<OrderItems> reducelList = orderItems.stream().filter(e -> list.contains(e.getItemId())).collect(Collectors.toList());
+			List<OrderItems> reducelList = orderItems.stream().filter(distinctByKey(OrderItems::getItemId)).collect(Collectors.toList());
 
 			//从缓存中获得库存
 			redisClient.basicData("all");
@@ -2002,11 +2002,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					.eq(OrderItems::getPid, order.getId())
 					.eq(OrderItems::getIsDeleted, 0);
 				List<OrderItems> orderItems = orderItemsMapper.selectList(orderItemsLambdaQueryWrapper);
-
-				//去重
-				List<Long> list = orderItems.stream().map(OrderItems::getItemId).distinct().collect(Collectors.toList());
 				//获取去重之后数据
-				List<OrderItems> reducelList = orderItems.stream().filter(e -> list.contains(e.getItemId())).collect(Collectors.toList());
+				List<OrderItems> reducelList = orderItems.stream().filter(distinctByKey(OrderItems::getItemId)).collect(Collectors.toList());
 
 				//从缓存中获得库存
 //				redisClient.basicData("all");
@@ -2129,6 +2126,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return baseMapper.orderInventoryList(AuthUtil.getTenantId(), "GN", billType, itemId, corpId, storageId);
 	}
 
+	private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
+		Set<Object> seen = ConcurrentHashMap.newKeySet();
+		return t -> seen.add(keyExtractor.apply(t));
+	}
+
 	/**
 	 * @param order
 	 * @return