From 1024666b99a24bd7d5e4dc442d6b0c0319fa2f29 Mon Sep 17 00:00:00 2001
From: xiaogang <905166056@qq.com>
Date: 星期六, 17 七月 2021 22:56:48 +0800
Subject: [PATCH] 1、优化细节性问题2、优化采购细节问题

---
 service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairFinishListener.java |   58 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 44 insertions(+), 14 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairFinishListener.java b/service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairFinishListener.java
index a6cfd42..d56b8f7 100755
--- a/service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairFinishListener.java
+++ b/service-api/src/main/java/com/java110/api/listener/ownerRepair/RepairFinishListener.java
@@ -49,6 +49,7 @@
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 
+import java.math.BigDecimal;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.List;
@@ -126,7 +127,7 @@
         String repairMaterial = "";
         //璐圭敤鏄庣粏(鍗曚环 * 鏁伴噺 = 鎬讳环)
         String repairFee = "";
-        if (json != null && json.size() > 0 && (maintenanceType.equals("1001") || maintenanceType.equals("1003") )) {
+        if (json != null && json.size() > 0 && (maintenanceType.equals("1001") || maintenanceType.equals("1003"))) {
             Object[] objects = json.toArray();
             //鏁版嵁鍓嶆湡鏍¢獙
             for (int i = 0; i < objects.length; i++) {
@@ -145,6 +146,7 @@
                     ResourceStorePo resourceStorePo = new ResourceStorePo();
                     resourceStorePo.setResId(resId);
                     resourceStorePoList = resourceStoreServiceSMO.getResourceStores(resourceStorePo);//鏌ヨ鐗╁搧璧勬簮淇℃伅
+                    Assert.listOnlyOne(resourceStorePoList, "鏌ヨ涓嶅埌鐗╁搧淇℃伅鎴栨煡璇㈠埌澶氫釜鐗╁搧淇℃伅锛�");
                     outLowPrice = resourceStorePoList.get(0).getOutLowPrice(); //鏈�浣庝环
                     outHighPrice = resourceStorePoList.get(0).getOutHighPrice();//鏈�楂樹环
                 }
@@ -158,19 +160,19 @@
                     //鏌ヨ涓汉鐗╁搧淇℃伅
                     userStorehouseDtoList = userStorehouseInnerServiceSMO.queryUserStorehouses(userStorehouseDto);
                     if (userStorehouseDtoList == null || userStorehouseDtoList.size() < 1) {
-                        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "缁翠慨鐗╂枡"+ userStorehouseDtoList.get(0).getResName()+"搴撳瓨涓嶈冻锛岃鎮ㄥ厛鐢抽鐗╁搧锛�");
+                        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "缁翠慨鐗╂枡" + userStorehouseDtoList.get(0).getResName() + "搴撳瓨涓嶈冻锛岃鎮ㄥ厛鐢抽鐗╁搧锛�");
                         context.setResponseEntity(responseEntity);
                         return;
                     }
                     if (userStorehouseDtoList.size() == 1) {
-                        nowStock = userStorehouseDtoList.get(0).getStock();
+                        //鑾峰彇鏈�灏忚閲忔�绘暟
+                        nowStock = userStorehouseDtoList.get(0).getMiniStock();
                     }
-                    if (Integer.parseInt(nowStock) < Integer.parseInt(useNumber)) {
-                        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "缁翠慨鐗╂枡"+ userStorehouseDtoList.get(0).getResName()+"搴撳瓨涓嶈冻锛岃鎮ㄥ厛鐢抽鐗╁搧锛�");
+                    if (Double.parseDouble(nowStock) < Double.parseDouble(useNumber)) {
+                        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "缁翠慨鐗╂枡" + userStorehouseDtoList.get(0).getResName() + "搴撳瓨涓嶈冻锛岃鎮ㄥ厛鐢抽鐗╁搧锛�");
                         context.setResponseEntity(responseEntity);
                         return;
                     }
-
                 }
                 if (maintenanceType.equals("1001") && (!StringUtil.isEmpty(isCustom) && isCustom.equals("false"))) {
                     Double price = Double.parseDouble(paramIn.getString("price")); //鑾峰彇浠锋牸
@@ -178,7 +180,7 @@
                     Double outHighPrices = Double.parseDouble(outHighPrice);//鏈�楂樹环
                     //鐗╁搧浠锋牸搴旇鍦ㄦ渶浣庝环鍜屾渶楂樹环涔嬮棿
                     if (price < outLowPrices || price > outHighPrices) {
-                        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "杈撳叆鐨勭淮淇墿鏂�"+userStorehouseDtoList.get(0).getResName()+"鍗曚环涓嶆纭紝璇烽噸鏂拌緭鍏ワ紒");
+                        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "杈撳叆鐨勭淮淇墿鏂�" + userStorehouseDtoList.get(0).getResName() + "鍗曚环涓嶆纭紝璇烽噸鏂拌緭鍏ワ紒");
                         context.setResponseEntity(responseEntity);
                         return;
                     }
@@ -203,7 +205,7 @@
                 Double useNumber_s = 0.0;
                 //璐圭敤鏄庣粏
                 String repair = "";
-                DecimalFormat df = new DecimalFormat("#.00");
+                DecimalFormat df = new DecimalFormat("0.00");
                 List<ResourceStorePo> resourceStorePoList = new ArrayList<>();
                 List<UserStorehouseDto> userStorehouseDtoList = new ArrayList<>();
                 if (!StringUtil.isEmpty(paramIn.getString("price")) && !StringUtil.isEmpty(useNumber)) {
@@ -221,9 +223,10 @@
                     resourceStorePo.setResId(resId);
                     //鏌ヨ鐗╁搧璧勬簮淇℃伅
                     resourceStorePoList = resourceStoreServiceSMO.getResourceStores(resourceStorePo);
+                    Assert.listOnlyOne(resourceStorePoList, "鏌ヨ涓嶅埌鐗╁搧淇℃伅鎴栨煡璇㈠埌澶氫釜鐗╁搧淇℃伅锛�");
                     //鐢ㄦ枡
                     repairMaterials = resourceStorePoList.get(0).getResName() + "*" + useNumber;
-                }else{
+                } else {
                     //鐢ㄦ枡
                     repairMaterials = paramIn.getString("customGoodsName") + "*" + useNumber;
                 }
@@ -236,13 +239,40 @@
                     userStorehouseDto.setUserId(userId);
                     //鏌ヨ涓汉鐗╁搧淇℃伅
                     userStorehouseDtoList = userStorehouseInnerServiceSMO.queryUserStorehouses(userStorehouseDto);
+                    Assert.listOnlyOne(userStorehouseDtoList, "鏌ヨ涓嶅埌涓汉鐗╁搧淇℃伅鎴栨煡璇㈠埌澶氭潯淇℃伅锛�");
                     if (userStorehouseDtoList.size() == 1) {
-                        nowStock = userStorehouseDtoList.get(0).getStock();
+                        //鏈�灏忚閲忔�绘暟
+                        nowStock = userStorehouseDtoList.get(0).getMiniStock();
                     }
                     //搴撳瓨鍑忓皯
                     UserStorehousePo userStorehousePo = new UserStorehousePo();
-                    Integer surplusStock = Integer.parseInt(nowStock) - Integer.parseInt(useNumber);
-                    userStorehousePo.setStock(String.valueOf(surplusStock));
+                    //璁$畻涓汉鐗╁搧鍓╀綑鏈�灏忚閲忔�绘暟
+                    BigDecimal num1 = new BigDecimal(Double.parseDouble(nowStock));
+                    BigDecimal num2 = new BigDecimal(Double.parseDouble(useNumber));
+                    BigDecimal surplusStock = num1.subtract(num2);
+                    //鏈�灏忚閲忓崟浣嶆暟閲�
+                    double miniUnitStock = Double.parseDouble(userStorehouseDtoList.get(0).getMiniUnitStock());
+                    //鑾峰彇鐗╁搧鍗曚綅
+                    if (StringUtil.isEmpty(userStorehouseDtoList.get(0).getUnitCode())) {
+                        throw new IllegalArgumentException("鐗╁搧鍗曚綅涓嶈兘涓虹┖锛�");
+                    }
+                    String unitCode = userStorehouseDtoList.get(0).getUnitCode();
+                    //鑾峰彇鐗╁搧鏈�灏忚閲忓崟浣�
+                    if (StringUtil.isEmpty(userStorehouseDtoList.get(0).getMiniUnitCode())) {
+                        throw new IllegalArgumentException("鐗╁搧鏈�灏忚閲忓崟浣嶄笉鑳戒负绌猴紒");
+                    }
+                    String miniUnitCode = userStorehouseDtoList.get(0).getMiniUnitCode();
+                    if (unitCode.equals(miniUnitCode)) { //濡傛灉鏈�灏忚閲忓崟浣嶄笌鐗╁搧鍗曚綅鐩稿悓锛屽氨涓嶅悜涓婂彇鏁�
+                        BigDecimal num3 = new BigDecimal(miniUnitStock);
+                        double newStock = surplusStock.divide(num3, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                        userStorehousePo.setStock(String.valueOf(newStock));
+                    } else { //濡傛灉涓嶇浉鍚屽氨鍚戜笂鍙栨暣
+                        BigDecimal num3 = new BigDecimal(miniUnitStock);
+                        double newStock = surplusStock.divide(num3, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                        double ceil = Math.ceil(newStock);
+                        userStorehousePo.setStock(String.valueOf(ceil));
+                    }
+                    userStorehousePo.setMiniStock(String.valueOf(surplusStock.doubleValue()));
                     userStorehousePo.setUsId(userStorehouseDtoList.get(0).getUsId());
                     userStorehousePo.setResId(resId);
                     userStorehousePo.setUserId(userId);
@@ -254,8 +284,8 @@
                 resourceStoreUseRecordPo.setRsurId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_rsurId));
                 resourceStoreUseRecordPo.setRepairId(reqJson.getString("repairId"));
                 resourceStoreUseRecordPo.setResourceStoreName(paramIn.getString("resName"));
-                if(!StringUtil.isEmpty(isCustom) && isCustom.equals("true")){
-                    resId="666666";
+                if (!StringUtil.isEmpty(isCustom) && isCustom.equals("true")) {
+                    resId = "666666";
                     resourceStoreUseRecordPo.setResourceStoreName(paramIn.getString("customGoodsName"));
                 }
                 resourceStoreUseRecordPo.setResId(resId);

--
Gitblit v1.8.0