From a035603b566cc5bd7523612fc42eed825eab4f13 Mon Sep 17 00:00:00 2001
From: xiaogang <905166056@qq.com>
Date: 星期三, 28 七月 2021 17:27:00 +0800
Subject: [PATCH] 优化细节问题

---
 service-store/src/main/java/com/java110/store/api/CollectionApi.java |   30 +++++++++++++++++-------------
 1 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/service-store/src/main/java/com/java110/store/api/CollectionApi.java b/service-store/src/main/java/com/java110/store/api/CollectionApi.java
index 195b12a..183cf71 100755
--- a/service-store/src/main/java/com/java110/store/api/CollectionApi.java
+++ b/service-store/src/main/java/com/java110/store/api/CollectionApi.java
@@ -24,6 +24,7 @@
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -186,11 +187,11 @@
             resourceStorePo.setStock("-" + purchaseApplyDetailPo.getPurchaseQuantity());
             resourceStorePo.setResOrderType(PurchaseApplyDto.RES_ORDER_TYPE_OUT);
             //璁$畻鍑哄簱鍚庣殑鏈�灏忚閲忔�绘暟
-            String oldMiniStock = resourceStore.getString("miniStock"); //鑾峰彇鍘熷厛鐨勬渶灏忚閲忔�绘暟
-            String oldMiniUnitStock = resourceStore.getString("miniUnitStock"); //鑾峰彇鏈�灏忚閲忓崟浣嶆暟閲�
-            String nowQuantity = purchaseApplyDetailPo.getPurchaseQuantity(); //鑾峰彇鍑哄簱鏁伴噺
-            double nowMiniStock = Double.parseDouble(nowQuantity) * Double.parseDouble(oldMiniUnitStock); //璁$畻褰撳墠鍑哄簱鐨勬渶灏忚閲忔�绘暟
-            double surplusMiniStock = Double.parseDouble(oldMiniStock) - nowMiniStock;
+            BigDecimal oldMiniStock = new BigDecimal(resourceStore.getString("miniStock")); //鑾峰彇鍘熷厛鐨勬渶灏忚閲忔�绘暟
+            BigDecimal oldMiniUnitStock = new BigDecimal(resourceStore.getString("miniUnitStock")); //鑾峰彇鏈�灏忚閲忓崟浣嶆暟閲�
+            BigDecimal nowQuantity = new BigDecimal(purchaseApplyDetailPo.getPurchaseQuantity()); //鑾峰彇鍑哄簱鏁伴噺
+            BigDecimal nowMiniStock = nowQuantity.multiply(oldMiniUnitStock); //璁$畻褰撳墠鍑哄簱鐨勬渶灏忚閲忔�绘暟
+            BigDecimal surplusMiniStock = oldMiniStock.subtract(nowMiniStock);
             resourceStorePo.setMiniStock(String.valueOf(surplusMiniStock));
             resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo);
             //鏌ヨ璧勬簮
@@ -223,9 +224,10 @@
                 userStorehousePo.setStock(purchaseApplyDetailPo.getPurchaseQuantity());
                 if (!StringUtil.isEmpty(unitCode) && !StringUtil.isEmpty(miniUnitCode) && !StringUtil.isEmpty(miniUnitStock) && !unitCode.equals(miniUnitCode)) {
                     //鑾峰彇棰嗗彇鏁伴噺
-                    double purchaseQuantity = Double.parseDouble(purchaseApplyDetailPo.getPurchaseQuantity());
+                    BigDecimal purchaseQuantity = new BigDecimal(purchaseApplyDetailPo.getPurchaseQuantity());
                     //璁$畻涓汉鐗╁搧鏈�灏忚閲忔�绘暟
-                    double quantity = purchaseQuantity * Double.parseDouble(miniUnitStock);
+                    BigDecimal miniUnitStock1 = new BigDecimal(miniUnitStock);
+                    BigDecimal quantity = purchaseQuantity.multiply(miniUnitStock1);
                     userStorehousePo.setMiniStock(String.valueOf(quantity));
                 } else {
                     userStorehousePo.setMiniStock(purchaseApplyDetailPo.getPurchaseQuantity());
@@ -233,23 +235,25 @@
                 userStorehouseInnerServiceSMOImpl.saveUserStorehouses(userStorehousePo);
             } else {
                 //鑾峰彇涓汉鐗╁搧棰嗙敤鍚庣殑搴撳瓨
-                double total = Double.parseDouble(purchaseApplyDetailPo.getPurchaseQuantity()) + Double.parseDouble(userStorehouseDtos.get(0).getStock());
+                BigDecimal purchaseQuantity = new BigDecimal(purchaseApplyDetailPo.getPurchaseQuantity());
+                BigDecimal stock1 = new BigDecimal(userStorehouseDtos.get(0).getStock());
+                BigDecimal total = purchaseQuantity.add(stock1);
                 userStorehousePo.setStock(total + "");
                 userStorehousePo.setUsId(userStorehouseDtos.get(0).getUsId());
                 if (!StringUtil.isEmpty(unitCode) && !StringUtil.isEmpty(miniUnitCode) && !StringUtil.isEmpty(miniUnitStock) && !unitCode.equals(miniUnitCode)) {
                     //鑾峰彇鏈棰嗗彇鏁伴噺
-                    double purchaseQuantity = Double.parseDouble(purchaseApplyDetailPo.getPurchaseQuantity());
+                    BigDecimal miniUnitStock1 = new BigDecimal(miniUnitStock);
                     //璁$畻鏈棰嗗彇鐨勪釜浜虹墿鍝佹渶灏忚閲忔�绘暟
-                    double quantity = purchaseQuantity * Double.parseDouble(miniUnitStock);
-                    double miniStock = 0.0;
+                    BigDecimal quantity = purchaseQuantity.multiply(miniUnitStock1);
+                    BigDecimal miniStock = new BigDecimal(0);
                     //鑾峰彇涓汉鐗╁搧鍘熷厛鐨勬渶灏忚閲忔�绘暟
                     if (StringUtil.isEmpty(userStorehouseDtos.get(0).getMiniStock())) {
                         throw new IllegalArgumentException("淇℃伅閿欒锛屼釜浜虹墿鍝佹渶灏忚閲忔�绘暟涓嶈兘涓虹┖锛�");
                     } else {
-                        miniStock = Double.parseDouble(userStorehouseDtos.get(0).getMiniStock());
+                        miniStock = new BigDecimal(userStorehouseDtos.get(0).getMiniStock());
                     }
                     //璁$畻棰嗙敤鍚庝釜浜虹墿鍝佹�荤殑鏈�灏忚閲忔�绘暟
-                    double miniQuantity = quantity + miniStock;
+                    BigDecimal miniQuantity = quantity.add(miniStock);
                     userStorehousePo.setMiniStock(String.valueOf(miniQuantity));
                 } else {
                     userStorehousePo.setMiniStock(String.valueOf(total));

--
Gitblit v1.8.0