From 2ff2d4d4d13c6f774a8ab682f66ef2770e7311eb Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 28 九月 2021 15:46:51 +0800
Subject: [PATCH] 优化代码

---
 service-api/src/main/java/com/java110/api/bmo/allocationUserStorehouse/impl/AllocationUserStorehouseBMOImpl.java |   46 ++++++++++++++++++++++------------------------
 1 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/bmo/allocationUserStorehouse/impl/AllocationUserStorehouseBMOImpl.java b/service-api/src/main/java/com/java110/api/bmo/allocationUserStorehouse/impl/AllocationUserStorehouseBMOImpl.java
index 744f26e..75bfa5c 100644
--- a/service-api/src/main/java/com/java110/api/bmo/allocationUserStorehouse/impl/AllocationUserStorehouseBMOImpl.java
+++ b/service-api/src/main/java/com/java110/api/bmo/allocationUserStorehouse/impl/AllocationUserStorehouseBMOImpl.java
@@ -95,25 +95,22 @@
                 UserStorehousePo userStorehousePo = new UserStorehousePo();
                 userStorehousePo.setUsId(usId);
                 //杞禒鍚庝釜浜虹墿鍝佹渶灏忚閲忔�绘暟
-                BigDecimal num1 = new BigDecimal(Double.parseDouble(miniStock));
-                BigDecimal num2 = new BigDecimal(Double.parseDouble(giveQuantity));
-                double quantity = num1.subtract(num2).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
-                if (quantity == 0.0) {
-                    userStorehousePo.setMiniStock(String.valueOf(quantity));
+                BigDecimal num1 = new BigDecimal(miniStock);
+                BigDecimal num2 = new BigDecimal(giveQuantity);
+                BigDecimal quantity = num1.subtract(num2);
+                if (quantity.doubleValue() == 0.0) {
+                    userStorehousePo.setMiniStock("0");
                     userStorehousePo.setStock("0");
                 } else {
                     userStorehousePo.setMiniStock(String.valueOf(quantity));
                     BigDecimal reduceNum = num1.subtract(num2);
                     if (unitCode.equals(miniUnitCode)) { //濡傛灉鐗╁搧鍗曚綅涓庢渶灏忚閲忓崟浣嶇浉鍚岋紝灏变笉鍚戜笂鍙栨暣
-                        //鐢ㄨ浆璧犲悗鏈�灏忚閲忔�绘暟闄や互鏈�灏忚閲忓崟浣嶆暟閲忥紝鑾峰彇杞禒鍚庣殑搴撳瓨鏁�
-                        BigDecimal num3 = new BigDecimal(Double.parseDouble(miniUnitStock));
-                        double unitStock = reduceNum.divide(num3, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                        userStorehousePo.setStock(String.valueOf(unitStock));
+                        userStorehousePo.setStock(String.valueOf(reduceNum));
                     } else { //濡傛灉鐗╁搧鏈�灏忚閲忓崟浣嶄笌鐗╁搧鍗曚綅涓嶅悓锛屽氨鍚戜笂鍙栨暣
                         //鐢ㄨ浆璧犲悗鏈�灏忚閲忔�绘暟闄や互鏈�灏忚閲忓崟浣嶆暟閲忥紝骞跺悜涓婂彇鏁达紝鑾峰彇杞禒鍚庣殑搴撳瓨鏁�
-                        BigDecimal num3 = new BigDecimal(Double.parseDouble(miniUnitStock));
-                        double unitStock = reduceNum.divide(num3, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                        double stockNumber = Math.ceil(unitStock);
+                        BigDecimal num3 = new BigDecimal(miniUnitStock);
+                        BigDecimal unitStock = reduceNum.divide(num3, 2, BigDecimal.ROUND_HALF_UP);
+                        Integer stockNumber = (int) Math.ceil(unitStock.doubleValue());
                         userStorehousePo.setStock(String.valueOf(stockNumber));
                     }
                 }
@@ -127,10 +124,10 @@
                 if (userStorehouses != null && userStorehouses.size() == 1) {
                     UserStorehousePo userStorePo = new UserStorehousePo();
                     //璁$畻鎺ュ彈鐢ㄦ埛鐨勬渶灏忚閲忔�绘暟
-                    BigDecimal num4 = new BigDecimal(Double.parseDouble(userStorehouses.get(0).getMiniStock()));
-                    BigDecimal num5 = new BigDecimal(Double.parseDouble(giveQuantity));
+                    BigDecimal num4 = new BigDecimal(userStorehouses.get(0).getMiniStock());
+                    BigDecimal num5 = new BigDecimal(giveQuantity);
                     BigDecimal addNum = num4.add(num5);
-                    double acceptMiniStock = num4.add(num5).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();;
+                    BigDecimal acceptMiniStock = num4.add(num5);
                     userStorePo.setMiniStock(String.valueOf(acceptMiniStock));
                     //鑾峰彇鐗╁搧鍗曚綅
                     if (StringUtil.isEmpty(userStorehouses.get(0).getUnitCode())) {
@@ -143,12 +140,13 @@
                     }
                     String miniUnitCode1 = userStorehouses.get(0).getMiniUnitCode();
                     //璁$畻鎺ュ彈鐢ㄦ埛鐨勫簱瀛樻暟閲�
-                    BigDecimal num6 = new BigDecimal(Double.parseDouble(miniUnitStock));
-                    double unitStock = addNum.divide(num6, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                    BigDecimal num6 = new BigDecimal(miniUnitStock);
+                    BigDecimal unitStock = addNum.divide(num6, 2, BigDecimal.ROUND_HALF_UP);
                     if (unitCode1.equals(miniUnitCode1)) { //濡傛灉鐗╁搧鍗曚綅涓庣墿鍝佹渶灏忚閲忓崟浣嶇浉鍚岋紝灏变笉鍚戜笂鍙栨暣
-                        userStorePo.setStock(String.valueOf(unitStock));
+                        //濡傛灉鐗╁搧鍗曚綅涓庢渶灏忚閲忓崟浣嶇浉鍚岋紝鐗╁搧搴撳瓨灏辩瓑浜庢渶灏忚閲忔�绘暟
+                        userStorePo.setStock(String.valueOf(acceptMiniStock));
                     } else { //濡傛灉鐗╁搧鍗曚綅涓庣墿鍝佹渶灏忚閲忓崟浣嶄笉鍚岋紝灏卞悜涓婂彇鏁�
-                        double stockNumber = Math.ceil(unitStock);
+                        Integer stockNumber = (int) Math.ceil(unitStock.doubleValue());
                         userStorePo.setStock(String.valueOf(stockNumber));
                     }
                     userStorePo.setUsId(userStorehouses.get(0).getUsId());
@@ -158,18 +156,18 @@
                     throw new IllegalArgumentException("鏌ヨ涓汉鐗╁搧淇℃伅閿欒锛�");
                 } else {
                     //璁$畻杞禒鍚庡簱瀛樻暟閲�
-                    BigDecimal num7 = new BigDecimal(Double.parseDouble(giveQuantity));
-                    BigDecimal num8 = new BigDecimal(Double.parseDouble(miniUnitStock));
-                    double unitStock = num7.divide(num8, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                    BigDecimal num7 = new BigDecimal(giveQuantity);
+                    BigDecimal num8 = new BigDecimal(miniUnitStock);
+                    BigDecimal unitStock = num7.divide(num8, 2, BigDecimal.ROUND_HALF_UP);
                     UserStorehousePo userStorePo = new UserStorehousePo();
                     userStorePo.setUsId("-1");
                     userStorePo.setResId(resId);
                     userStorePo.setResName(resName);
                     userStorePo.setStoreId(storeId);
                     if (unitCode.equals(miniUnitCode)) { //濡傛灉鐗╁搧鍗曚綅涓庣墿鍝佹渶灏忚閲忓崟浣嶇浉鍚岋紝灏变笉鍚戜笂鍙栨暣
-                        userStorePo.setStock(String.valueOf(unitStock));
+                        userStorePo.setStock(String.valueOf(num7));
                     } else { //濡傛灉鐗╁搧鍗曚綅涓庣墿鍝佹渶灏忚閲忓崟浣嶄笉鍚岋紝灏卞悜涓婂彇鏁�
-                        double stockNumber = Math.ceil(unitStock);
+                        Integer stockNumber = (int) Math.ceil(unitStock.doubleValue());
                         userStorePo.setStock(String.valueOf(stockNumber));
                     }
                     userStorePo.setMiniStock(giveQuantity);

--
Gitblit v1.8.0