Jelajahi Sumber

2022年11月7日19:26:04

纪新园 3 tahun lalu
induk
melakukan
09f26709b5

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

@@ -2459,16 +2459,20 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					if ("XS".equals(order.getBillType())) {
 						surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
 						balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
+
+
 						if(new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())){
-							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32));
 							costAmount = costAmount.add(orderItems.getPurchasePrice().multiply(orderItems.getStorageInQuantity()));
 						}else{
-							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
 							costAmount = costAmount.add(r.getData().getStockPrice().multiply(orderItems.getStorageInQuantity()));
 						}
+
+
+						balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32));
 						stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
+
 						r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
-						r.getData().setOutAmount(r.getData().getOutAmount().add(orderItems.getAmount()));
+						r.getData().setOutAmount(r.getData().getOutAmount().add(costAmount));
 
 						BigDecimal grossProfits =  orderItems.getPrice().subtract(orderItems.getPurchasePrice());
 						grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(grossProfits));
@@ -2476,12 +2480,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					} else {
 						surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
 						balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
-						if(new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())){
-							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32));
-						}else{
-							balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
-						}
+						balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
 						stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
+
 						r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
 						r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));