|
@@ -2092,27 +2092,40 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if ("XS".equals(order.getBillType())) {
|
|
if ("XS".equals(order.getBillType())) {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
|
|
|
|
+ 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));
|
|
|
|
|
+ }
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
|
r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
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(orderItems.getAmount()));
|
|
|
|
|
+
|
|
|
|
|
+ costAmount = costAmount.add(stockPrice.multiply(orderItems.getStorageInQuantity()));
|
|
|
|
|
+ BigDecimal grossProfits = orderItems.getPrice().subtract(orderItems.getPurchasePrice());
|
|
|
|
|
+ grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(grossProfits));
|
|
|
|
|
+
|
|
|
} else {
|
|
} else {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
|
|
|
|
+ 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));
|
|
|
|
|
+ }
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
|
r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
|
|
r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
|
|
|
|
|
+
|
|
|
|
|
+ costAmount = costAmount.add(orderItems.getPrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
|
|
+ grossProfit = grossProfit.add(new BigDecimal("0.00"));
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
|
r.getData().setStockPrice(stockPrice);
|
|
r.getData().setStockPrice(stockPrice);
|
|
|
stockGoodsClient.updateStock(r.getData());
|
|
stockGoodsClient.updateStock(r.getData());
|
|
|
-
|
|
|
|
|
- costAmount = costAmount.add(r.getData().getStockPrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
|
|
- grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice()));
|
|
|
|
|
-
|
|
|
|
|
}else{
|
|
}else{
|
|
|
StockGoods stockGoods = new StockGoods();
|
|
StockGoods stockGoods = new StockGoods();
|
|
|
if ("CG".equals(order.getBillType())){
|
|
if ("CG".equals(order.getBillType())){
|
|
@@ -2423,22 +2436,39 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
BigDecimal balanceQuantity = new BigDecimal("0.00");
|
|
BigDecimal balanceQuantity = new BigDecimal("0.00");
|
|
|
BigDecimal balanceAmount = new BigDecimal("0.00");
|
|
BigDecimal balanceAmount = new BigDecimal("0.00");
|
|
|
//获取本商品库存
|
|
//获取本商品库存
|
|
|
- R<StockGoodsVO> r = stockGoodsClient.selectStock(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
|
|
|
|
|
|
|
+ R<StockGoodsVO> r = stockGoodsClient.selectStockParts(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
|
|
|
if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
if ("XS".equals(order.getBillType())) {
|
|
if ("XS".equals(order.getBillType())) {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
|
|
|
|
+ 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));
|
|
|
|
|
+ }
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
|
r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
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(orderItems.getAmount()));
|
|
|
|
|
+
|
|
|
|
|
+ costAmount = costAmount.add(stockPrice.multiply(orderItems.getStorageInQuantity()));
|
|
|
|
|
+ BigDecimal grossProfits = orderItems.getPrice().subtract(orderItems.getPurchasePrice());
|
|
|
|
|
+ grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(grossProfits));
|
|
|
|
|
+
|
|
|
} else {
|
|
} else {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
|
|
|
|
+ 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));
|
|
|
|
|
+ }
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
|
r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
|
|
r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
|
|
|
|
|
+
|
|
|
|
|
+ costAmount = costAmount.add(stockPrice.multiply(orderItems.getStorageInQuantity()));
|
|
|
|
|
+ grossProfit = grossProfit.add(new BigDecimal("0.00"));
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
@@ -2446,9 +2476,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
r.getData().setStockPrice(stockPrice);
|
|
r.getData().setStockPrice(stockPrice);
|
|
|
stockGoodsClient.updateStock(r.getData());
|
|
stockGoodsClient.updateStock(r.getData());
|
|
|
|
|
|
|
|
- costAmount = costAmount.add(r.getData().getStockPrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
|
|
- grossProfit = grossProfit.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice()));
|
|
|
|
|
-
|
|
|
|
|
}else{
|
|
}else{
|
|
|
StockGoods stockGoods = new StockGoods();
|
|
StockGoods stockGoods = new StockGoods();
|
|
|
if ("CG".equals(order.getBillType())){
|
|
if ("CG".equals(order.getBillType())){
|