|
|
@@ -687,6 +687,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ // todo 新
|
|
|
+ if (ObjectUtils.isNotNull(order.getPaymentGoods())) {
|
|
|
+ order.setOrderAmount(order.getPaymentGoods().subtract(order.getThisUsedProfit()));
|
|
|
+ }
|
|
|
// 保存订单明细
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
@@ -1873,7 +1877,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
&& s.getTenantId().equals(SecureUtil.getTenantId())
|
|
|
).findFirst().orElse(null);
|
|
|
if (oneStock == null) {
|
|
|
- throw new SecurityException("编号:"+oneStock.getCode()+"撤销失败:未查询到库存信息");
|
|
|
+ throw new SecurityException("编号:" + oneStock.getCode() + "撤销失败:未查询到库存信息");
|
|
|
}
|
|
|
// 原单据的订货数量
|
|
|
BigDecimal orderQuantity = e.getOrderQuantity();
|
|
|
@@ -1884,7 +1888,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
// 判断比较大小
|
|
|
if (orderQuantity.compareTo(lockingQuantity) > 0) {
|
|
|
- throw new SecurityException("撤销失败:原单据的" + oneStock.getCode() + "订货数量:"+orderQuantity+"大于锁定库存:"+lockingQuantity+",无法释放 库存");
|
|
|
+ throw new SecurityException("撤销失败:原单据的" + oneStock.getCode() + "订货数量:" + orderQuantity + "大于锁定库存:" + lockingQuantity + ",无法释放 库存");
|
|
|
}
|
|
|
// 增加可用库存
|
|
|
oneStock.setSurplusRouteQuantity(surplusRouteQuantity.add(orderQuantity));
|
|
|
@@ -2677,7 +2681,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
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);
|
|
|
+// 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()));
|
|
|
|
|
|
@@ -2687,23 +2691,19 @@ 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));
|
|
|
- }
|
|
|
- stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
|
|
|
+ balanceAmount = balanceAmount.add(r.getData().getBalanceAmount().add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32))).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP), MathContext.DECIMAL32);
|
|
|
r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
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().setStockPrice(stockPrice);
|
|
|
|
|
|
}
|
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
|
- r.getData().setStockPrice(stockPrice);
|
|
|
stockGoodsClient.updateStock(r.getData());
|
|
|
} else {
|
|
|
StockGoods stockGoods = new StockGoods();
|
|
|
@@ -2788,7 +2788,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
//根据角色设置权限
|
|
|
String role = AuthUtil.getUserRole();
|
|
|
- if (!role.contains("撤销权限")){//只有包含撤销权限的用户再能撤销
|
|
|
+ if (!role.contains("撤销权限")) {//只有包含撤销权限的用户再能撤销
|
|
|
throw new RuntimeException("当前用户无撤销权限");
|
|
|
}
|
|
|
LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
@@ -2814,28 +2814,28 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if ("XS".equals(order.getBillType())) {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- if (balanceQuantity.compareTo(BigDecimal.ZERO) != 0){
|
|
|
+ if (balanceQuantity.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
balanceAmount = balanceAmount.add(r.getData().getBalanceAmount().add(orderItems.getStorageInQuantity().multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32)));
|
|
|
- stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+// stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
r.getData().setOutQuantity(r.getData().getOutQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setOutAmount(r.getData().getOutAmount().subtract(orderItems.getAmount()));
|
|
|
} else {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- if (balanceQuantity.compareTo(BigDecimal.ZERO) < 0){
|
|
|
+ if (balanceQuantity.compareTo(BigDecimal.ZERO) < 0) {
|
|
|
throw new SecurityException("明细数量大于库存数量,禁止撤销");
|
|
|
- }else if(balanceQuantity.compareTo(BigDecimal.ZERO) > 0){
|
|
|
- balanceAmount = balanceAmount.add(r.getData().getBalanceAmount().subtract(orderItems.getStorageInQuantity().multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32)));
|
|
|
+ } else if (balanceQuantity.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ balanceAmount = balanceAmount.add(r.getData().getBalanceAmount().subtract(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32))).setScale(2, RoundingMode.HALF_UP);
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
r.getData().setInQuantity(r.getData().getInQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setInAmount(r.getData().getInAmount().subtract(orderItems.getAmount()));
|
|
|
+ r.getData().setStockPrice(stockPrice);
|
|
|
}
|
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
|
- r.getData().setStockPrice(stockPrice);
|
|
|
stockGoodsClient.updateStock(r.getData());
|
|
|
}
|
|
|
}
|
|
|
@@ -3078,6 +3078,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
BigDecimal costAmount = new BigDecimal("0.00");
|
|
|
BigDecimal grossProfit = new BigDecimal("0.00");
|
|
|
+ // todo 新
|
|
|
+ if (ObjectUtils.isNotNull(order.getPaymentGoods())) {
|
|
|
+ order.setOrderAmount(order.getPaymentGoods().subtract(order.getThisUsedProfit()));
|
|
|
+ }
|
|
|
// 保存订单明细
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
@@ -3256,16 +3260,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
|
|
|
-
|
|
|
if (new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())) {
|
|
|
costAmount = costAmount.add(orderItems.getPurchasePrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
} else {
|
|
|
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).setScale(2, RoundingMode.HALF_UP));
|
|
|
+// stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setOutAmount(r.getData().getOutAmount().add(costAmount));
|
|
|
@@ -3276,7 +3278,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
} else {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
+ balanceAmount = balanceAmount.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32)).add(r.getData().getBalanceAmount());
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
@@ -3284,12 +3286,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
costAmount = costAmount.add(orderItems.getPurchasePrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
grossProfit = grossProfit.add(new BigDecimal("0.00"));
|
|
|
-
|
|
|
+ r.getData().setStockPrice(stockPrice);
|
|
|
}
|
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
|
- r.getData().setStockPrice(stockPrice);
|
|
|
stockGoodsClient.updateStock(r.getData());
|
|
|
|
|
|
} else {
|
|
|
@@ -3445,6 +3446,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
BigDecimal costAmount = new BigDecimal("0.00");
|
|
|
BigDecimal grossProfit = new BigDecimal("0.00");
|
|
|
+ // todo 新
|
|
|
+ if (ObjectUtils.isNotNull(order.getPaymentGoods())) {
|
|
|
+ order.setOrderAmount(order.getPaymentGoods().subtract(order.getThisUsedProfit()));
|
|
|
+ }
|
|
|
// 保存订单明细
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
@@ -3464,17 +3469,13 @@ 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())) {
|
|
|
costAmount = costAmount.add(orderItems.getPurchasePrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
} else {
|
|
|
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).setScale(2, RoundingMode.HALF_UP));
|
|
|
+// stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setOutAmount(r.getData().getOutAmount().add(costAmount));
|
|
|
@@ -3485,7 +3486,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
} else {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
+ balanceAmount = balanceAmount.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32)).add(r.getData().getBalanceAmount());
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
@@ -3493,12 +3494,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
costAmount = costAmount.add(orderItems.getPurchasePrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
grossProfit = grossProfit.add(new BigDecimal("0.00"));
|
|
|
+ r.getData().setStockPrice(stockPrice);
|
|
|
|
|
|
}
|
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
|
- r.getData().setStockPrice(stockPrice);
|
|
|
stockGoodsClient.updateStock(r.getData());
|
|
|
|
|
|
} else {
|
|
|
@@ -3729,6 +3730,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
BigDecimal costAmount = new BigDecimal("0.00");
|
|
|
BigDecimal grossProfit = new BigDecimal("0.00");
|
|
|
+ // todo 新
|
|
|
+ if (ObjectUtils.isNotNull(order.getPaymentGoods())) {
|
|
|
+ order.setOrderAmount(order.getPaymentGoods().subtract(order.getThisUsedProfit()));
|
|
|
+ }
|
|
|
// 保存订单明细
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
@@ -3892,6 +3897,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
BigDecimal costAmount = new BigDecimal("0.00");
|
|
|
BigDecimal grossProfit = new BigDecimal("0.00");
|
|
|
+ // todo 新
|
|
|
+ if (ObjectUtils.isNotNull(order.getPaymentGoods())) {
|
|
|
+ order.setOrderAmount(order.getPaymentGoods().subtract(order.getThisUsedProfit()));
|
|
|
+ }
|
|
|
// 保存订单明细
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
@@ -3918,11 +3927,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
} else {
|
|
|
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).setScale(2, RoundingMode.HALF_UP));
|
|
|
-
|
|
|
+// stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setOutAmount(r.getData().getOutAmount().add(costAmount));
|
|
|
|
|
|
@@ -3932,7 +3938,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
} else {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
+ balanceAmount = balanceAmount.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32)).add(r.getData().getBalanceAmount());
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
@@ -3940,12 +3946,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
costAmount = costAmount.add(orderItems.getPurchasePrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
grossProfit = grossProfit.add(new BigDecimal("0.00"));
|
|
|
-
|
|
|
+ r.getData().setStockPrice(stockPrice);
|
|
|
}
|
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
|
- r.getData().setStockPrice(stockPrice);
|
|
|
stockGoodsClient.updateStock(r.getData());
|
|
|
|
|
|
} else {
|
|
|
@@ -4090,6 +4095,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
baseMapper.insert(order);
|
|
|
BigDecimal costAmount = new BigDecimal("0.00");
|
|
|
BigDecimal grossProfit = new BigDecimal("0.00");
|
|
|
+ // todo 新
|
|
|
+ if (ObjectUtils.isNotNull(order.getPaymentGoods())) {
|
|
|
+ order.setOrderAmount(order.getPaymentGoods().subtract(order.getThisUsedProfit()));
|
|
|
+ }
|
|
|
// 保存订单明细
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
@@ -4308,6 +4317,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
baseMapper.insert(order);
|
|
|
BigDecimal costAmount = new BigDecimal("0.00");
|
|
|
BigDecimal grossProfit = new BigDecimal("0.00");
|
|
|
+ // todo 新
|
|
|
+ if (ObjectUtils.isNotNull(order.getPaymentGoods())) {
|
|
|
+ order.setOrderAmount(order.getPaymentGoods().subtract(order.getThisUsedProfit()));
|
|
|
+ }
|
|
|
// 保存订单明细
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
@@ -4866,23 +4879,23 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchaseCost(), MathContext.DECIMAL32));
|
|
|
- stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+// stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setOutAmount(r.getData().getOutAmount());
|
|
|
} else {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
+ balanceAmount = balanceAmount.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32)).add(r.getData().getBalanceAmount());
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
|
|
|
+ r.getData().setStockPrice(stockPrice);
|
|
|
}
|
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
|
- r.getData().setStockPrice(stockPrice);
|
|
|
stockGoodsClient.updateStock(r.getData());
|
|
|
}
|
|
|
orderItems.setId(null);
|
|
|
@@ -4959,7 +4972,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
|
|
|
balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchaseCost(), MathContext.DECIMAL32));
|
|
|
- stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+// stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setOutAmount(r.getData().getOutAmount().add(costAmount));
|
|
|
@@ -4970,7 +4983,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
} else {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
+ balanceAmount = balanceAmount.add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32)).add(r.getData().getBalanceAmount());
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
@@ -4978,12 +4991,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
costAmount = costAmount.add(orderItems.getPurchaseCost().multiply(orderItems.getStorageInQuantity()));
|
|
|
grossProfit = grossProfit.add(new BigDecimal("0.00"));
|
|
|
-
|
|
|
+ r.getData().setStockPrice(stockPrice);
|
|
|
}
|
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
|
- r.getData().setStockPrice(stockPrice);
|
|
|
stockGoodsClient.updateStock(r.getData());
|
|
|
|
|
|
} else {
|
|
|
@@ -5180,9 +5192,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
paymentDTO.setFqnum("");
|
|
|
paymentDTO.setCusId(parameters.getCusId());
|
|
|
paymentDTO.setAppId(parameters.getAppId());
|
|
|
- if (ObjectUtils.isEmpty(parameters.getOrgid())){
|
|
|
+ if (ObjectUtils.isEmpty(parameters.getOrgid())) {
|
|
|
paymentDTO.setOrgid("");
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
paymentDTO.setOrgid(parameters.getOrgid());
|
|
|
}
|
|
|
paymentDTO.setTransactionType(parameters.getTransactionType());//交易类型
|
|
|
@@ -5403,7 +5415,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
orderListAll.add(order);
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
if (ObjectUtils.isNotNull(order)) {
|
|
|
OrderItems orderItems_ = new OrderItems();
|
|
|
BeanUtil.copyProperties(items, orderItems_);
|
|
|
@@ -5526,21 +5538,21 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
for (OrderItems orderItems : orderItemsList) {
|
|
|
orderItemsMapper.updateById(orderItems);
|
|
|
if (1 == order.getPurchaseStatusType()) {//排产中
|
|
|
- if (ObjectUtils.isNotEmpty(orderItems.getDetailType())){
|
|
|
- if (OrderTypeEnum.PARTSTYPE.getType().equals(orderItems.getDetailType())){
|
|
|
+ if (ObjectUtils.isNotEmpty(orderItems.getDetailType())) {
|
|
|
+ if (OrderTypeEnum.PARTSTYPE.getType().equals(orderItems.getDetailType())) {
|
|
|
//更新对应配件明细采购数量
|
|
|
OrderParts srcItems = new OrderParts();
|
|
|
srcItems.setId(orderItems.getSrcItemId());
|
|
|
srcItems.setPurchasesNumber(orderItems.getActualQuantity());
|
|
|
orderPartsMapper.updateById(srcItems);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//更新对应销售单明细采购数量
|
|
|
OrderItems srcItems = new OrderItems();
|
|
|
srcItems.setId(orderItems.getSrcItemId());
|
|
|
srcItems.setPurchaseQuantity(orderItems.getActualQuantity());
|
|
|
orderItemsMapper.updateById(srcItems);
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//更新对应销售单明细采购数量
|
|
|
OrderItems srcItems = new OrderItems();
|
|
|
srcItems.setId(orderItems.getSrcItemId());
|
|
|
@@ -5654,7 +5666,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (ObjectUtils.isNull(detail)) {
|
|
|
throw new RuntimeException("未找到单据信息");
|
|
|
}
|
|
|
- if ("预计货好".equals(detail.getFudaPurchaseStatus()) || "货备齐".equals(detail.getFudaPurchaseStatus())){
|
|
|
+ if ("预计货好".equals(detail.getFudaPurchaseStatus()) || "货备齐".equals(detail.getFudaPurchaseStatus())) {
|
|
|
throw new RuntimeException("订单已预计货好或货备齐,无法撤销排产");
|
|
|
}
|
|
|
|
|
|
@@ -5674,25 +5686,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
List<Long> pidList = new ArrayList<>();
|
|
|
for (OrderItems orderItems : orderItemsList) {
|
|
|
orderItemsMapper.updateById(orderItems);
|
|
|
- if (ObjectUtils.isNotEmpty(orderItems.getDetailType())){
|
|
|
- if (OrderTypeEnum.PARTSTYPE.getType().equals(orderItems.getDetailType())){//更新对应配件明细采购数量
|
|
|
- OrderParts srcItems = orderPartsMapper.selectById(orderItems.getSrcItemId());
|
|
|
- srcItems.setPurchasesNumber(srcItems.getPurchasesNumber().subtract(orderItems.getActualQuantity()));
|
|
|
- orderPartsMapper.updateById(srcItems);
|
|
|
- }else {
|
|
|
- //更新对应销售单明细采购数量
|
|
|
- OrderItems srcItems = new OrderItems();
|
|
|
- srcItems.setId(orderItems.getSrcItemId());
|
|
|
- srcItems.setPurchaseQuantity(orderItems.getPurchaseQuantity().subtract(orderItems.getActualQuantity()));
|
|
|
- orderItemsMapper.updateById(srcItems);
|
|
|
- }
|
|
|
- }else {
|
|
|
+ if (ObjectUtils.isNotEmpty(orderItems.getDetailType())) {
|
|
|
+ if (OrderTypeEnum.PARTSTYPE.getType().equals(orderItems.getDetailType())) {//更新对应配件明细采购数量
|
|
|
+ OrderParts srcItems = orderPartsMapper.selectById(orderItems.getSrcItemId());
|
|
|
+ srcItems.setPurchasesNumber(srcItems.getPurchasesNumber().subtract(orderItems.getActualQuantity()));
|
|
|
+ orderPartsMapper.updateById(srcItems);
|
|
|
+ } else {
|
|
|
//更新对应销售单明细采购数量
|
|
|
OrderItems srcItems = new OrderItems();
|
|
|
srcItems.setId(orderItems.getSrcItemId());
|
|
|
srcItems.setPurchaseQuantity(orderItems.getPurchaseQuantity().subtract(orderItems.getActualQuantity()));
|
|
|
orderItemsMapper.updateById(srcItems);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ //更新对应销售单明细采购数量
|
|
|
+ OrderItems srcItems = new OrderItems();
|
|
|
+ srcItems.setId(orderItems.getSrcItemId());
|
|
|
+ srcItems.setPurchaseQuantity(orderItems.getPurchaseQuantity().subtract(orderItems.getActualQuantity()));
|
|
|
+ orderItemsMapper.updateById(srcItems);
|
|
|
+ }
|
|
|
|
|
|
pidList.add(orderItems.getSrcId());
|
|
|
}
|
|
|
@@ -5975,6 +5987,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
List<OrderItems> orderItemsList = orderItemsService.saveOrderItemsMessage(order.getOrderItemsList(), date, order.getId());
|
|
|
order.setOrderItemsList(orderItemsList);
|
|
|
+ // todo 新
|
|
|
+ order.setPaymentGoods(order.getOrderAmount());
|
|
|
//应收账款
|
|
|
order.setDebitAmount(order.getOrderAmount());
|
|
|
//入库出库金额
|
|
|
@@ -6227,23 +6241,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//计算库存金额
|
|
|
balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchaseCost(), MathContext.DECIMAL32));
|
|
|
//计算库存单价
|
|
|
- stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+// stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setOutAmount(r.getData().getOutAmount());
|
|
|
} else {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
|
|
|
+ balanceAmount = balanceAmount.add(r.getData().getBalanceAmount().add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32))).setScale(2, RoundingMode.HALF_UP);
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
|
|
|
+ r.getData().setStockPrice(stockPrice);
|
|
|
+
|
|
|
}
|
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
|
- r.getData().setStockPrice(stockPrice);
|
|
|
stockGoodsClient.updateStock(r.getData());
|
|
|
}
|
|
|
orderItems.setPid(order.getId());
|
|
|
@@ -6423,6 +6438,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
BigDecimal costAmount = new BigDecimal("0.00");
|
|
|
BigDecimal grossProfit = new BigDecimal("0.00");
|
|
|
+ // todo 新
|
|
|
+ if (ObjectUtils.isNotNull(order.getPaymentGoods())) {
|
|
|
+ order.setOrderAmount(order.getPaymentGoods().subtract(order.getThisUsedProfit()));
|
|
|
+ }
|
|
|
// 保存订单明细
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
@@ -6441,8 +6460,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
if ("XS".equals(order.getBillType())) {
|
|
|
String burden = sysClient.getParamService("burden");
|
|
|
- if ("0".equals(burden) || ObjectUtils.isNull(burden)){
|
|
|
- if(new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())){
|
|
|
+ if ("0".equals(burden) || ObjectUtils.isNull(burden)) {
|
|
|
+ if (new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())) {
|
|
|
throw new RuntimeException("该产品已售空");
|
|
|
}
|
|
|
}
|
|
|
@@ -6456,9 +6475,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
costAmount = costAmount.add(r.getData().getStockPrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
}
|
|
|
|
|
|
- if (balanceQuantity.compareTo(BigDecimal.ZERO) != 0){
|
|
|
+ if (balanceQuantity.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32));
|
|
|
- stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
+// stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
|
|
|
r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
@@ -6470,8 +6489,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
} else {
|
|
|
surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
|
|
|
balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
|
|
|
- if (balanceQuantity.compareTo(BigDecimal.ZERO) != 0){
|
|
|
- balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPurchasePrice(), MathContext.DECIMAL32));
|
|
|
+ if (balanceQuantity.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ balanceAmount = balanceAmount.add(r.getData().getBalanceAmount().add(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32))).setScale(2, RoundingMode.HALF_UP);
|
|
|
stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity, MathContext.DECIMAL32).setScale(2, RoundingMode.HALF_UP));
|
|
|
}
|
|
|
|
|
|
@@ -6480,12 +6499,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
|
|
|
costAmount = costAmount.add(orderItems.getPurchasePrice().multiply(orderItems.getStorageInQuantity()));
|
|
|
grossProfit = grossProfit.add(new BigDecimal("0.00"));
|
|
|
-
|
|
|
+ r.getData().setStockPrice(stockPrice);
|
|
|
}
|
|
|
r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
|
|
|
r.getData().setBalanceQuantity(balanceQuantity);
|
|
|
r.getData().setBalanceAmount(balanceAmount);
|
|
|
- r.getData().setStockPrice(stockPrice);
|
|
|
stockGoodsClient.updateStock(r.getData());
|
|
|
|
|
|
} else {
|
|
|
@@ -6588,10 +6606,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
public R quickBillingMall(Order order) {
|
|
|
|
|
|
Order details = vocationalWork(order);
|
|
|
- if (ObjectUtils.isNull(details) || details.getId() == null){
|
|
|
+ if (ObjectUtils.isNull(details) || details.getId() == null) {
|
|
|
throw new RuntimeException("下单失败");
|
|
|
}
|
|
|
|
|
|
@@ -6631,9 +6651,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- @GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
- public Order vocationalWork(Order order){
|
|
|
+ public Order vocationalWork(Order order) {
|
|
|
// 校验单号重复-新增
|
|
|
if (order.getId() == null && StringUtils.isNotBlank(order.getSysNo())) {
|
|
|
LambdaQueryWrapper<Order> orderLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
@@ -6705,6 +6723,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
baseMapper.insert(order);
|
|
|
BigDecimal costAmount = new BigDecimal("0.00");
|
|
|
BigDecimal grossProfit = new BigDecimal("0.00");
|
|
|
+ // todo 新
|
|
|
+ if (ObjectUtils.isNotNull(order.getPaymentGoods())) {
|
|
|
+ order.setOrderAmount(order.getPaymentGoods().subtract(order.getThisUsedProfit()));
|
|
|
+ }
|
|
|
// 保存订单明细
|
|
|
if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
|
|
|
for (OrderItems orderItems : order.getOrderItemsList()) {
|
|
|
@@ -6719,8 +6741,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
|
|
|
if ("XS".equals(order.getBillType())) {
|
|
|
String burden = sysClient.getParamService("burden");
|
|
|
- if ("0".equals(burden) || ObjectUtils.isNull(burden)){
|
|
|
- if(new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())){
|
|
|
+ if ("0".equals(burden) || ObjectUtils.isNull(burden)) {
|
|
|
+ if (new BigDecimal("0.00").equals(r.getData().getSurplusRouteQuantity())) {
|
|
|
throw new RuntimeException("该产品已售空");
|
|
|
}
|
|
|
}
|