纪新园 3 лет назад
Родитель
Сommit
46e91d2240

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

@@ -2100,6 +2100,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				BigDecimal surplusRouteQuantity = new BigDecimal("0.00");
 				BigDecimal balanceQuantity = new BigDecimal("0.00");
 				BigDecimal balanceAmount = new BigDecimal("0.00");
+				orderItems.setPurchaseCost(orderItems.getPurchasePrice());
 				//获取本商品库存
 				R<StockGoodsVO> r = stockGoodsClient.selectStock(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
 				if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
@@ -2108,14 +2109,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						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()));
 						}
 						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()));
 
-						costAmount = costAmount.add(stockPrice.multiply(orderItems.getStorageInQuantity()));
+
 						BigDecimal grossProfits =  orderItems.getPrice().subtract(orderItems.getPurchasePrice());
 						grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(grossProfits));
 
@@ -2449,6 +2452,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				BigDecimal surplusRouteQuantity = new BigDecimal("0.00");
 				BigDecimal balanceQuantity = new BigDecimal("0.00");
 				BigDecimal balanceAmount = new BigDecimal("0.00");
+				orderItems.setPurchaseCost(orderItems.getPurchasePrice());
 				//获取本商品库存
 				R<StockGoodsVO> r = stockGoodsClient.selectStockParts(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
 				if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
@@ -2457,14 +2461,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						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()));
 						}
 						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()));
 
-						costAmount = costAmount.add(stockPrice.multiply(orderItems.getStorageInQuantity()));
 						BigDecimal grossProfits =  orderItems.getPrice().subtract(orderItems.getPurchasePrice());
 						grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(grossProfits));
 
@@ -2480,7 +2485,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 						r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
 						r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
 
-						costAmount = costAmount.add(stockPrice.multiply(orderItems.getStorageInQuantity()));
+						costAmount = costAmount.add(orderItems.getPurchasePrice().multiply(orderItems.getStorageInQuantity()));
 						grossProfit = grossProfit.add(new BigDecimal("0.00"));
 
 					}