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