Browse Source

author:Wcq
update:处理部分税额计算的价格值报空指针的问题

wcq 3 years ago
parent
commit
0273562dcb

+ 15 - 5
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java

@@ -1595,7 +1595,9 @@ public class GoodsServiceImpl implements GoodsService {
         // 计算税费
         GoodsEntity goodsEntity = goodsDao.queryByBarcodeAndSku(prodBarcode, goods.getGoodsSn());
         // 计算算税金额 实际支付价 + 积分抵扣金额
-        BigDecimal price = goodsEntity.getDeductionPrice().add(goodsEntity.getActualPaymentAmount());
+        BigDecimal deductionPrice = Objects.isNull(goodsEntity.getDeductionPrice()) ? new BigDecimal("0") : goodsEntity.getDeductionPrice();
+        BigDecimal actualPaymentAmount = Objects.isNull(goodsEntity.getActualPaymentAmount()) ? new BigDecimal("0") : goodsEntity.getActualPaymentAmount();
+        BigDecimal price = deductionPrice.add(actualPaymentAmount);
         BigDecimal tax = CalculateTax.calculateFinalTax(goodsEntity, price,this).setScale(3,RoundingMode.HALF_UP);
         goods.setGoodstaxes(tax.toString());
         goods.setSellVolume(1);
@@ -1715,7 +1717,9 @@ public class GoodsServiceImpl implements GoodsService {
         // 计算税费
         GoodsEntity goodsEntity = goodsDao.queryByBarcodeAndSku(prodBarcode, goods.getGoodsSn());
         // 计算算税金额 实际支付价 + 积分抵扣金额
-        BigDecimal price = goodsEntity.getDeductionPrice().add(goodsEntity.getActualPaymentAmount());
+        BigDecimal deductionPrice = Objects.isNull(goodsEntity.getDeductionPrice()) ? new BigDecimal("0") : goodsEntity.getDeductionPrice();
+        BigDecimal actualPaymentAmount = Objects.isNull(goodsEntity.getActualPaymentAmount()) ? new BigDecimal("0") : goodsEntity.getActualPaymentAmount();
+        BigDecimal price = deductionPrice.add(actualPaymentAmount);
         BigDecimal tax = CalculateTax.calculateFinalTax(goodsEntity,price,this).setScale(3,RoundingMode.HALF_UP);
         goods.setGoodstaxes(tax.toString());
 
@@ -2024,7 +2028,9 @@ public class GoodsServiceImpl implements GoodsService {
         goods.setActivity("临时促销");
         try {
             // 计算算税金额 实际支付价 + 积分抵扣金额
-            BigDecimal price = goods.getDeductionPrice().add(goods.getActualPaymentAmount());
+            BigDecimal deductionPrice = Objects.isNull(goods.getDeductionPrice()) ? new BigDecimal("0") : goods.getDeductionPrice();
+            BigDecimal actualPaymentAmount = Objects.isNull(goods.getActualPaymentAmount()) ? new BigDecimal("0") : goods.getActualPaymentAmount();
+            BigDecimal price = deductionPrice.add(actualPaymentAmount);
             CalculateTax.calculateFinalTax(goods,price,this).setScale(3,RoundingMode.HALF_UP);
         } catch (Exception e) {
             ShopErrorPriceRecordEntity shopErrorPriceRecordEntity = new ShopErrorPriceRecordEntity();
@@ -2075,7 +2081,9 @@ public class GoodsServiceImpl implements GoodsService {
         // 计算税费
         try {
             // 计算算税金额 实际支付价 + 积分抵扣金额
-            BigDecimal price = goods.getDeductionPrice().add(goods.getActualPaymentAmount());
+            BigDecimal deductionPrice = Objects.isNull(goods.getDeductionPrice()) ? new BigDecimal("0") : goods.getDeductionPrice();
+            BigDecimal actualPaymentAmount = Objects.isNull(goods.getActualPaymentAmount()) ? new BigDecimal("0") : goods.getActualPaymentAmount();
+            BigDecimal price = deductionPrice.add(actualPaymentAmount);
             CalculateTax.calculateFinalTax(goods,price,this).setScale(3,RoundingMode.HALF_UP);
         } catch (Exception e) {
             // 记录有异常的sku
@@ -2115,7 +2123,9 @@ public class GoodsServiceImpl implements GoodsService {
         // 计算税费
         try {
             // 计算算税金额 实际支付价 + 积分抵扣金额
-            BigDecimal price = goods.getDeductionPrice().add(goods.getActualPaymentAmount());
+            BigDecimal deductionPrice = Objects.isNull(goods.getDeductionPrice()) ? new BigDecimal("0") : goods.getDeductionPrice();
+            BigDecimal actualPaymentAmount = Objects.isNull(goods.getActualPaymentAmount()) ? new BigDecimal("0") : goods.getActualPaymentAmount();
+            BigDecimal price = deductionPrice.add(actualPaymentAmount);
             CalculateTax.calculateFinalTax(goods,price,this).setScale(3,RoundingMode.HALF_UP);
         } catch (Exception e) {
             // 记录有异常的sku