From 4d0fb83e8779001057238f92d6d1d643b98fea8c Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期二, 24 一月 2023 03:05:00 +0800
Subject: [PATCH] 优化 访客功能
---
java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java | 442 ++++++++++++++++++++++++++++++-------------------------
1 files changed, 240 insertions(+), 202 deletions(-)
diff --git a/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java b/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
index 33101ff..a6c5e7e 100755
--- a/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
+++ b/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
@@ -1,5 +1,6 @@
package com.java110.core.smo.impl;
+import com.alibaba.fastjson.JSONObject;
import com.java110.config.properties.code.Java110Properties;
import com.java110.core.context.Environment;
import com.java110.core.log.LoggerFactory;
@@ -10,6 +11,7 @@
import com.java110.dto.contract.ContractDto;
import com.java110.dto.contractRoom.ContractRoomDto;
import com.java110.dto.fee.*;
+import com.java110.dto.integralRuleConfig.IntegralRuleConfigDto;
import com.java110.dto.machine.CarInoutDetailDto;
import com.java110.dto.machine.CarInoutDto;
import com.java110.dto.owner.OwnerCarDto;
@@ -30,6 +32,7 @@
import com.java110.intf.user.IOwnerCarInnerServiceSMO;
import com.java110.intf.user.IOwnerInnerServiceSMO;
import com.java110.po.feeReceiptDetail.FeeReceiptDetailPo;
+import com.java110.utils.constant.FeeConfigConstant;
import com.java110.utils.constant.ResponseConstant;
import com.java110.utils.exception.ListenerExecuteException;
import com.java110.utils.util.Assert;
@@ -43,12 +46,10 @@
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import java.math.BigDecimal;
-import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
import java.util.*;
/**
@@ -288,7 +289,7 @@
} else if ("1101".equals(computingFormula)) { // 绉熼噾
feeReceiptDetailPo.setArea("");
feeReceiptDetailPo.setSquarePrice(roomDto.getRoomRent());
- } else if ("1102".equals(computingFormula)) { // 绉熼噾
+ } else if ("1102".equals(computingFormula)) { // 绉熼噾
feeReceiptDetailPo.setArea("");
feeReceiptDetailPo.setSquarePrice(roomDto.getRoomRent());
} else if ("4004".equals(computingFormula)) {
@@ -329,7 +330,7 @@
} else if ("1102".equals(computingFormula)) { //绉熼噾
feeReceiptDetailPo.setArea(roomDtos.get(0).getBuiltUpArea());
feeReceiptDetailPo.setSquarePrice(roomDtos.get(0).getRoomRent());
- }else {
+ } else {
}
} else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(feeDto.getPayerObjType())) {//杞︿綅鐩稿叧
String computingFormula = feeDto.getComputingFormula();
@@ -444,7 +445,7 @@
}
feeReceiptDetailPo.setArea("");
feeReceiptDetailPo.setSquarePrice(builtUpArea.doubleValue() + "");
- }else if ("4004".equals(computingFormula)) {
+ } else if ("4004".equals(computingFormula)) {
} else if ("5005".equals(computingFormula)) {
if (StringUtil.isEmpty(feeDto.getCurDegrees())) {
} else {
@@ -764,7 +765,7 @@
endCalender.add(Calendar.HOUR, hours);
if (FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
return FeeDto.STATE_FINISH;
- } else if(FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeDto.getFeeFlag())){
+ } else if (FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeDto.getFeeFlag())) {
if ((endCalender.getTime()).after(feeDto.getDeadlineTime())) {
return FeeDto.STATE_FINISH;
}
@@ -799,8 +800,8 @@
} else {
endCalender.setTime(feeDto.getImportFeeEndTime());
}
- } else if(FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeDto.getFeeFlag())){
- if(feeDto.getDeadlineTime() == null){
+ } else if (FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeDto.getFeeFlag())) {
+ if (feeDto.getDeadlineTime() == null) {
throw new IllegalArgumentException("闂存帴鎬ц垂鐢ㄦ湭璁剧疆缁撴潫鏃堕棿");
}
if ((endCalender.getTime()).after(feeDto.getDeadlineTime())) {
@@ -832,22 +833,22 @@
BigDecimal squarePrice = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getSquarePrice()));
BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(reportRoomDto.getBuiltUpArea()));
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getAdditionalAmount()));
- feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
} else if ("2002".equals(computingFormula)) { // 鍥哄畾璐圭敤
//feePrice = Double.parseDouble(feeDto.getAdditionalAmount());
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getAdditionalAmount()));
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
} else if ("3003".equals(computingFormula)) { // 鍥哄畾璐圭敤
BigDecimal squarePrice = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getSquarePrice()));
BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getRoomArea()));
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getAdditionalAmount()));
- feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
} else if ("1101".equals(computingFormula)) { // 绉熼噾
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getRoomRent()));
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
- } else if ("1102".equals(computingFormula)) { // 绉熼噾
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
+ } else if ("1102".equals(computingFormula)) { // 绉熼噾
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getRoomRent()));
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
} else if ("4004".equals(computingFormula)) {
feePrice = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getAmount()));
} else if ("5005".equals(computingFormula)) {
@@ -861,7 +862,7 @@
BigDecimal sub = curDegree.subtract(preDegree);
feePrice = sub.multiply(squarePrice)
.add(additionalAmount)
- .setScale(4, BigDecimal.ROUND_HALF_UP);
+ .setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("6006".equals(computingFormula)) {
feePrice = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getAmount()));
@@ -878,7 +879,7 @@
BigDecimal sub = curDegree.subtract(preDegree);
feePrice = sub.multiply(squarePrice)
.add(additionalAmount)
- .setScale(4, BigDecimal.ROUND_HALF_UP);
+ .setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else {
throw new IllegalArgumentException("鏆備笉鏀寔璇ョ被鍏紡");
@@ -890,19 +891,19 @@
BigDecimal squarePrice = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getSquarePrice()));
BigDecimal builtUpArea = new BigDecimal(Double.parseDouble("0"));
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getAdditionalAmount()));
- feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
} else if ("2002".equals(computingFormula)) { // 鍥哄畾璐圭敤
//feePrice = Double.parseDouble(feeDto.getAdditionalAmount());
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getAdditionalAmount()));
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
} else if ("3003".equals(computingFormula)) { // 鍥哄畾璐圭敤
//feePrice = Double.parseDouble(feeDto.getAdditionalAmount());
feePrice = new BigDecimal(0);
} else if ("1101".equals(computingFormula)) { // 绉熼噾
feePrice = new BigDecimal(0);
- } else if ("1102".equals(computingFormula)) { // 绉熼噾
+ } else if ("1102".equals(computingFormula)) { // 绉熼噾
feePrice = new BigDecimal(0);
- }else if ("4004".equals(computingFormula)) {
+ } else if ("4004".equals(computingFormula)) {
feePrice = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getAmount()));
} else if ("5005".equals(computingFormula)) {
if (StringUtil.isEmpty(tmpReportFeeDto.getCurDegrees())) {
@@ -915,7 +916,7 @@
BigDecimal sub = curDegree.subtract(preDegree);
feePrice = sub.multiply(squarePrice)
.add(additionalAmount)
- .setScale(4, BigDecimal.ROUND_HALF_UP);
+ .setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("6006".equals(computingFormula)) {
feePrice = new BigDecimal(Double.parseDouble(tmpReportFeeDto.getAmount()));
@@ -932,13 +933,13 @@
BigDecimal sub = curDegree.subtract(preDegree);
feePrice = sub.multiply(squarePrice)
.add(additionalAmount)
- .setScale(4, BigDecimal.ROUND_HALF_UP);
+ .setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else {
throw new IllegalArgumentException("鏆備笉鏀寔璇ョ被鍏紡");
}
}
- return feePrice.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
+ return feePrice.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP).doubleValue();
}
@Override
@@ -947,43 +948,44 @@
}
/**
- * //璁$畻鍛ㄦ湡
- // Map<String, Object> cycleResults = dateDiff(feeDto.getEndTime(), feeDto.getCustEndTime());
- // //鏈堜唤澶т簬0
- // Integer months = Integer.valueOf(cycleResults.get("months").toString());
- // Integer days = Integer.valueOf(cycleResults.get("days").toString());
- // Integer startMonthDays = Integer.valueOf(cycleResults.get("startMonthDays").toString());
- // Integer endMonthDays = Integer.valueOf(cycleResults.get("endMonthDays").toString());
- // String isOneMonth = cycleResults.get("isOneMonth").toString();
- // //鏁存暟鏈�
- // if (months > 0 && days == 0) {
- // BigDecimal cycle = new BigDecimal(months);
- // feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(3, BigDecimal.ROUND_HALF_UP);
- // }
- // //鍑犱釜鏈堝嚑澶� 锛堝崟浠�*闈㈢Н+闄勫姞璐癸級*鏈堜唤+((鍗曚环*闈㈢Н+闄勫姞璐�)/鎬诲ぉ鏁�)*瀹為檯澶╂暟
- // if (months > 0 && days > 0) {
- // BigDecimal cycle = new BigDecimal(months);
- // BigDecimal endMonthDayss = new BigDecimal(endMonthDays);
- // BigDecimal dayss = new BigDecimal(days);
- // BigDecimal monthPrice = squarePrice.multiply(builtUpArea).add(additionalAmount);
- // feeTotalPrice = (monthPrice).multiply(cycle).add(monthPrice.divide(endMonthDayss).multiply(dayss)).setScale(3, BigDecimal.ROUND_HALF_UP);
- // }
- // //璺ㄦ湀浠� 涓嶈冻涓�鏈� ((鍗曚环*闈㈢Н+闄勫姞璐�)/寮�濮嬫湀浠芥�诲ぉ鏁�)*瀹為檯澶╂暟+((鍗曚环*闈㈢Н+闄勫姞璐�)/缁撴潫鏈堜唤鎬诲ぉ鏁�)*瀹為檯澶╂暟
- // if (months == 0 && days > 0 && "true".equals(isOneMonth)) {
- // BigDecimal startEndOfMonth = new BigDecimal(cycleResults.get("startEndOfMonth").toString());
- // BigDecimal endBeginningOfMonth = new BigDecimal(cycleResults.get("endBeginningOfMonth").toString());
- // BigDecimal endMonthDayss = new BigDecimal(endMonthDays);
- // BigDecimal startMonthDayss = new BigDecimal(startMonthDays);
- // BigDecimal monthPrice = squarePrice.multiply(builtUpArea).add(additionalAmount);
- // feeTotalPrice = monthPrice.divide(startMonthDayss, 4, BigDecimal.ROUND_HALF_UP).multiply(startEndOfMonth).add(monthPrice.divide(endMonthDayss, 4, BigDecimal.ROUND_HALF_UP).multiply(endBeginningOfMonth)).setScale(3, BigDecimal.ROUND_HALF_UP);
- // }
- // //涓嶈法鏈堜唤 涓嶈冻涓�鏈� (鍗曚环*闈㈢Н+闄勫姞璐�/寮�濮嬫湀浠芥�诲ぉ鏁�)*瀹為檯澶╂暟
- // if (months == 0 && days > 0 && "false".equals(isOneMonth)) {
- // BigDecimal cycle = new BigDecimal(days);
- // BigDecimal startMonthDayss = new BigDecimal(startMonthDays);
- // BigDecimal monthPrice = squarePrice.multiply(builtUpArea).add(additionalAmount);
- // feeTotalPrice = monthPrice.divide(startMonthDayss, 4, BigDecimal.ROUND_HALF_UP).multiply(cycle).setScale(3, BigDecimal.ROUND_HALF_UP);
- // }
+ * //璁$畻鍛ㄦ湡
+ * // Map<String, Object> cycleResults = dateDiff(feeDto.getEndTime(), feeDto.getCustEndTime());
+ * // //鏈堜唤澶т簬0
+ * // Integer months = Integer.valueOf(cycleResults.get("months").toString());
+ * // Integer days = Integer.valueOf(cycleResults.get("days").toString());
+ * // Integer startMonthDays = Integer.valueOf(cycleResults.get("startMonthDays").toString());
+ * // Integer endMonthDays = Integer.valueOf(cycleResults.get("endMonthDays").toString());
+ * // String isOneMonth = cycleResults.get("isOneMonth").toString();
+ * // //鏁存暟鏈�
+ * // if (months > 0 && days == 0) {
+ * // BigDecimal cycle = new BigDecimal(months);
+ * // feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(3, BigDecimal.ROUND_HALF_UP);
+ * // }
+ * // //鍑犱釜鏈堝嚑澶� 锛堝崟浠�*闈㈢Н+闄勫姞璐癸級*鏈堜唤+((鍗曚环*闈㈢Н+闄勫姞璐�)/鎬诲ぉ鏁�)*瀹為檯澶╂暟
+ * // if (months > 0 && days > 0) {
+ * // BigDecimal cycle = new BigDecimal(months);
+ * // BigDecimal endMonthDayss = new BigDecimal(endMonthDays);
+ * // BigDecimal dayss = new BigDecimal(days);
+ * // BigDecimal monthPrice = squarePrice.multiply(builtUpArea).add(additionalAmount);
+ * // feeTotalPrice = (monthPrice).multiply(cycle).add(monthPrice.divide(endMonthDayss).multiply(dayss)).setScale(3, BigDecimal.ROUND_HALF_UP);
+ * // }
+ * // //璺ㄦ湀浠� 涓嶈冻涓�鏈� ((鍗曚环*闈㈢Н+闄勫姞璐�)/寮�濮嬫湀浠芥�诲ぉ鏁�)*瀹為檯澶╂暟+((鍗曚环*闈㈢Н+闄勫姞璐�)/缁撴潫鏈堜唤鎬诲ぉ鏁�)*瀹為檯澶╂暟
+ * // if (months == 0 && days > 0 && "true".equals(isOneMonth)) {
+ * // BigDecimal startEndOfMonth = new BigDecimal(cycleResults.get("startEndOfMonth").toString());
+ * // BigDecimal endBeginningOfMonth = new BigDecimal(cycleResults.get("endBeginningOfMonth").toString());
+ * // BigDecimal endMonthDayss = new BigDecimal(endMonthDays);
+ * // BigDecimal startMonthDayss = new BigDecimal(startMonthDays);
+ * // BigDecimal monthPrice = squarePrice.multiply(builtUpArea).add(additionalAmount);
+ * // feeTotalPrice = monthPrice.divide(startMonthDayss, 4, BigDecimal.ROUND_HALF_UP).multiply(startEndOfMonth).add(monthPrice.divide(endMonthDayss, 4, BigDecimal.ROUND_HALF_UP).multiply(endBeginningOfMonth)).setScale(3, BigDecimal.ROUND_HALF_UP);
+ * // }
+ * // //涓嶈法鏈堜唤 涓嶈冻涓�鏈� (鍗曚环*闈㈢Н+闄勫姞璐�/寮�濮嬫湀浠芥�诲ぉ鏁�)*瀹為檯澶╂暟
+ * // if (months == 0 && days > 0 && "false".equals(isOneMonth)) {
+ * // BigDecimal cycle = new BigDecimal(days);
+ * // BigDecimal startMonthDayss = new BigDecimal(startMonthDays);
+ * // BigDecimal monthPrice = squarePrice.multiply(builtUpArea).add(additionalAmount);
+ * // feeTotalPrice = monthPrice.divide(startMonthDayss, 4, BigDecimal.ROUND_HALF_UP).multiply(cycle).setScale(3, BigDecimal.ROUND_HALF_UP);
+ * // }
+ *
* @param feeDto
* @param roomDto
* @return
@@ -1013,7 +1015,7 @@
BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(roomDto.getBuiltUpArea()));
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
- feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
cycle = new BigDecimal(feeDto.getCycle());
@@ -1021,15 +1023,15 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("2002".equals(computingFormula)) { // 鍥哄畾璐圭敤
//feePrice = Double.parseDouble(feeDto.getAdditionalAmount());
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
cycle = new BigDecimal(feeDto.getCycle());
@@ -1037,16 +1039,16 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = additionalAmount.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = additionalAmount.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("3003".equals(computingFormula)) { // 鍥哄畾璐圭敤
BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(roomDto.getRoomArea()));
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
- feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
cycle = new BigDecimal(feeDto.getCycle());
@@ -1054,14 +1056,14 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("1101".equals(computingFormula)) { // 绉熼噾
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(roomDto.getRoomRent()));
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
cycle = new BigDecimal(feeDto.getCycle());
@@ -1069,14 +1071,14 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = additionalAmount.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = additionalAmount.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
- }else if ("1102".equals(computingFormula)) { // 绉熼噾
+ } else if ("1102".equals(computingFormula)) { // 绉熼噾
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(roomDto.getRoomRent()));
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
cycle = new BigDecimal(feeDto.getCycle());
@@ -1084,10 +1086,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = additionalAmount.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = additionalAmount.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("4004".equals(computingFormula)) { //鍔ㄦ�佽垂鐢�
feePrice = new BigDecimal(Double.parseDouble(feeDto.getAmount()));
@@ -1098,10 +1100,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = feePrice.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = feePrice.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("5005".equals(computingFormula)) { //(鏈湡搴︽暟-涓婃湡搴︽暟)*鍗曚环+闄勫姞璐�
if (StringUtil.isEmpty(feeDto.getCurDegrees())) {
@@ -1114,7 +1116,7 @@
BigDecimal sub = curDegree.subtract(preDegree);
feePrice = sub.multiply(squarePrice)
.add(additionalAmount)
- .setScale(4, BigDecimal.ROUND_HALF_UP);
+ .setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1123,10 +1125,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = (sub.multiply(squarePrice).add(additionalAmount)).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = (sub.multiply(squarePrice).add(additionalAmount)).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
}
} else if ("6006".equals(computingFormula)) {
@@ -1139,12 +1141,22 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = feePrice.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = feePrice.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("7007".equals(computingFormula)) { //鑷畾涔夊叕寮�
+ if (roomDto == null) {
+ roomDto = new RoomDto();
+ roomDto.setRoomId(feeDto.getPayerObjId());
+ roomDto.setCommunityId(feeDto.getCommunityId());
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+ if (roomDtos == null || roomDtos.size() != 1) {
+ throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "鏈煡鍒版埧灞嬩俊鎭紝鏌ヨ澶氭潯鏁版嵁 roomId=" + feeDto.getPayerObjId());
+ }
+ roomDto = roomDtos.get(0);
+ }
feePrice = computeRoomCustomizeFormula(feeDto, roomDto);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1153,10 +1165,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = feePrice.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = feePrice.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("8008".equals(computingFormula)) { //鎵嬪姩鍔ㄦ�佽垂鐢�
feePrice = new BigDecimal(Double.parseDouble(feeDto.getAmount()));
@@ -1167,10 +1179,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = feePrice.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = feePrice.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("9009".equals(computingFormula)) { //(鏈湡搴︽暟-涓婃湡搴︽暟)*鍔ㄦ�佸崟浠�+闄勫姞璐�
if (StringUtil.isEmpty(feeDto.getCurDegrees())) {
@@ -1191,10 +1203,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = (sub.multiply(squarePrice).add(additionalAmount)).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = (sub.multiply(squarePrice).add(additionalAmount)).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
}
} else {
@@ -1220,7 +1232,7 @@
BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(parkingSpaceDtos.get(0).getArea()));
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
- feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
cycle = new BigDecimal(feeDto.getCycle());
@@ -1228,10 +1240,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("2002".equals(computingFormula)) { // 鍥哄畾璐圭敤
//feePrice = Double.parseDouble(feeDto.getAdditionalAmount());
@@ -1245,16 +1257,16 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = additionalAmount.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = additionalAmount.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("3003".equals(computingFormula)) { // 鍥哄畾璐圭敤
BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(roomDto.getRoomArea()));
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
- feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1263,14 +1275,14 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("1101".equals(computingFormula)) { // 绉熼噾
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(roomDto.getRoomRent()));
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1279,14 +1291,14 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = additionalAmount.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = additionalAmount.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
- } else if ("1102".equals(computingFormula)) { // 绉熼噾
+ } else if ("1102".equals(computingFormula)) { // 绉熼噾
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(roomDto.getRoomRent()));
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1295,12 +1307,12 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = additionalAmount.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = additionalAmount.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
- }else if ("4004".equals(computingFormula)) {
+ } else if ("4004".equals(computingFormula)) {
feePrice = new BigDecimal(Double.parseDouble(feeDto.getAmount()));
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1309,10 +1321,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = feePrice.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = feePrice.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("5005".equals(computingFormula)) {
if (StringUtil.isEmpty(feeDto.getCurDegrees())) {
@@ -1325,7 +1337,7 @@
BigDecimal sub = curDegree.subtract(preDegree);
feePrice = sub.multiply(squarePrice)
.add(additionalAmount)
- .setScale(4, BigDecimal.ROUND_HALF_UP);
+ .setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1334,10 +1346,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = (sub.multiply(squarePrice).add(additionalAmount)).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = (sub.multiply(squarePrice).add(additionalAmount)).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
}
} else if ("6006".equals(computingFormula)) {
@@ -1350,10 +1362,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = feePrice.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = feePrice.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("7007".equals(computingFormula)) { //鑷畾涔夊叕寮�
feePrice = computeCarCustomizeFormula(feeDto, ownerCarDtos.get(0));
@@ -1365,10 +1377,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = feePrice.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = feePrice.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("9009".equals(computingFormula)) { //(鏈湡搴︽暟-涓婃湡搴︽暟)*鍔ㄦ�佸崟浠�+闄勫姞璐�
if (StringUtil.isEmpty(feeDto.getCurDegrees())) {
@@ -1381,7 +1393,7 @@
BigDecimal sub = curDegree.subtract(preDegree);
feePrice = sub.multiply(squarePrice)
.add(additionalAmount)
- .setScale(4, BigDecimal.ROUND_HALF_UP);
+ .setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1390,10 +1402,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = (sub.multiply(squarePrice).add(additionalAmount)).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = (sub.multiply(squarePrice).add(additionalAmount)).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
}
} else {
@@ -1417,7 +1429,7 @@
}
feeDto.setBuiltUpArea(builtUpArea.doubleValue() + "");
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
- feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
cycle = new BigDecimal(feeDto.getCycle());
@@ -1425,17 +1437,17 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("2002".equals(computingFormula)) { // 鍥哄畾璐圭敤
//feePrice = Double.parseDouble(feeDto.getAdditionalAmount());
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
// BigDecimal roomDount = new BigDecimal(contractRoomDtos.size());
// additionalAmount = additionalAmount.multiply(roomDount);
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1444,16 +1456,16 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = additionalAmount.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = additionalAmount.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("3003".equals(computingFormula)) { // 鍥哄畾璐圭敤
BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(roomDto.getRoomArea()));
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
- feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1462,14 +1474,14 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = (squarePrice.multiply(builtUpArea).add(additionalAmount)).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("1101".equals(computingFormula)) { // 绉熼噾
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(roomDto.getRoomRent()));
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1478,14 +1490,14 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = additionalAmount.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = additionalAmount.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
- }else if ("1102".equals(computingFormula)) { // 绉熼噾
+ } else if ("1102".equals(computingFormula)) { // 绉熼噾
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(roomDto.getRoomRent()));
- feePrice = additionalAmount.setScale(4, BigDecimal.ROUND_HALF_UP);
+ feePrice = additionalAmount.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1494,10 +1506,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = additionalAmount.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = additionalAmount.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("4004".equals(computingFormula)) { //鍔ㄦ�佽垂鐢�
feePrice = new BigDecimal(Double.parseDouble(feeDto.getAmount()));
@@ -1509,10 +1521,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = feePrice.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = feePrice.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("5005".equals(computingFormula)) { //(鏈湡搴︽暟-涓婃湡搴︽暟)*鍗曚环+闄勫姞璐�
if (StringUtil.isEmpty(feeDto.getCurDegrees())) {
@@ -1525,7 +1537,7 @@
BigDecimal sub = curDegree.subtract(preDegree);
feePrice = sub.multiply(squarePrice)
.add(additionalAmount)
- .setScale(4, BigDecimal.ROUND_HALF_UP);
+ .setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
@@ -1535,10 +1547,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = (sub.multiply(squarePrice).add(additionalAmount)).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = (sub.multiply(squarePrice).add(additionalAmount)).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
}
} else if ("6006".equals(computingFormula)) {
@@ -1551,10 +1563,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = feePrice.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = feePrice.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("7007".equals(computingFormula)) { //鑷畾涔夊叕寮�
feePrice = computeContractCustomizeFormula(feeDto, contractRoomDtos);
@@ -1566,10 +1578,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = feePrice.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = feePrice.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("8008".equals(computingFormula)) { //鎵嬪姩鍔ㄦ�佽垂鐢�
feePrice = new BigDecimal(Double.parseDouble(feeDto.getAmount()));
@@ -1581,10 +1593,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = feePrice.multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = feePrice.multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
} else if ("9009".equals(computingFormula)) { //(鏈湡搴︽暟-涓婃湡搴︽暟)*鍔ㄦ�佸崟浠�+闄勫姞璐�
if (StringUtil.isEmpty(feeDto.getCurDegrees())) {
@@ -1597,7 +1609,7 @@
BigDecimal sub = curDegree.subtract(preDegree);
feePrice = sub.multiply(squarePrice)
.add(additionalAmount)
- .setScale(4, BigDecimal.ROUND_HALF_UP);
+ .setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
BigDecimal cycle = null;
if (!StringUtil.isEmpty(feeDto.getCycle())) {
@@ -1606,10 +1618,10 @@
if (!StringUtil.isEmpty(feeDto.getCustEndTime())) {
cycle = new BigDecimal(dayCompare(feeDto.getEndTime(), DateUtil.getDateFromStringB(feeDto.getCustEndTime())));
}
- if(cycle == null){
+ if (cycle == null) {
feeTotalPrice = new BigDecimal(0);
- }else {
- feeTotalPrice = sub.multiply(squarePrice).add(additionalAmount).multiply(cycle).setScale(4, BigDecimal.ROUND_HALF_UP);
+ } else {
+ feeTotalPrice = sub.multiply(squarePrice).add(additionalAmount).multiply(cycle).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
}
} else {
@@ -1617,7 +1629,7 @@
}
}
- feePrice.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
+ feePrice.setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP).doubleValue();
feeAmount.put("feePrice", feePrice);
feeAmount.put("feeTotalPrice", feeTotalPrice);
return feeAmount;
@@ -1714,7 +1726,7 @@
String value = feeDto.getComputingFormulaText();
- if(StringUtil.isEmpty(value)){
+ if (StringUtil.isEmpty(value)) {
return new BigDecimal(0);
}
@@ -1735,19 +1747,19 @@
value = value.replace("F", roomDto.getFloorArea());
} else if (value.contains("U")) { //澶勭悊鍗曞厓
value = value.replace("U", roomDto.getUnitArea());
+ } else if (value.contains("RL")) {
+ List<RoomAttrDto> roomAttrDtos = roomDto.getRoomAttrDto();
+ if (roomAttrDtos != null && roomAttrDtos.size() > 0) {
+ for (RoomAttrDto roomAttrDto : roomAttrDtos) {
+ value = value.replace("RL" + roomAttrDto.getSpecCd(), roomAttrDto.getValue());
+ }
+ }
} else if (value.contains("R")) { //澶勭悊 鎴垮眿闈㈢Н
value = value.replace("R", roomDto.getBuiltUpArea());
} else if (value.contains("X")) {// 澶勭悊 鎴垮眿绯绘暟
value = value.replace("X", roomDto.getFeeCoefficient());
} else if (value.contains("L")) {//澶勭悊鎴垮眿灞傛暟
value = value.replace("L", roomDto.getLayer());
- } else if (value.contains("RL")){
- List<RoomAttrDto> roomAttrDtos = roomDto.getRoomAttrDto();
- if(roomAttrDtos != null && roomAttrDtos.size() > 0){
- for(RoomAttrDto roomAttrDto : roomAttrDtos){
- value = value.replace("RL"+roomAttrDto.getSpecCd(), roomAttrDto.getValue());
- }
- }
}
ScriptEngineManager manager = new ScriptEngineManager();
@@ -1803,8 +1815,8 @@
}
//鍒ゆ柇褰撳墠璐圭敤鏄笉鏄鍏ヨ垂鐢�
oweMonth = 1.0;
- }else if(FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeDto.getFeeFlag())){
- if(feeDto.getDeadlineTime() != null) {
+ } else if (FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeDto.getFeeFlag())) {
+ if (feeDto.getDeadlineTime() != null) {
maxEndTime = feeDto.getDeadlineTime();
}
Date billEndTime = DateUtil.getCurrentDate();
@@ -2156,29 +2168,27 @@
}
/**
- *
* @param feeDto
* @param cycle
*/
- public void dealRentRateCycle(FeeDto feeDto,double cycle){
+ public void dealRentRateCycle(FeeDto feeDto, double cycle) {
if (!FeeConfigDto.COMPUTING_FORMULA_RANT_RATE.equals(feeDto.getComputingFormula())) {
return;
}
Date endTime = feeDto.getEndTime();
- Date date = getTargetEndTime(cycle,endTime);
+ Date date = getTargetEndTime(cycle, endTime);
feeDto.setDeadlineTime(date);
dealRentRate(feeDto);
}
/**
- *
* @param feeDto
* @param custEndTime
*/
- public void dealRentRateCustEndTime(FeeDto feeDto,Date custEndTime){
+ public void dealRentRateCustEndTime(FeeDto feeDto, Date custEndTime) {
if (!FeeConfigDto.COMPUTING_FORMULA_RANT_RATE.equals(feeDto.getComputingFormula())) {
return;
@@ -2187,6 +2197,34 @@
feeDto.setDeadlineTime(custEndTime);
dealRentRate(feeDto);
+ }
+
+ @Override
+ public long computeOneIntegralQuantity(IntegralRuleConfigDto integralRuleConfigDto, JSONObject reqJson) {
+ String computingFormula = integralRuleConfigDto.getComputingFormula();
+ BigDecimal amountDec = null;
+ long amount = 0;
+ if (IntegralRuleConfigDto.COMPUTING_FORMULA_AREA.equals(computingFormula)) { //闈㈢Н涔樹互鍗曚环
+ BigDecimal areaDec = new BigDecimal(Double.parseDouble(reqJson.getString("area")));
+ BigDecimal squarePriceDec = new BigDecimal(Double.parseDouble(integralRuleConfigDto.getSquarePrice()));
+ amountDec = areaDec.multiply(squarePriceDec).setScale(2, BigDecimal.ROUND_HALF_UP);
+ } else if (IntegralRuleConfigDto.COMPUTING_FORMULA_MONEY.equals(computingFormula)) { // 閲戦涔樹互鍗曚环
+ BigDecimal aDec = new BigDecimal(Double.parseDouble(reqJson.getString("amount")));
+ BigDecimal squarePriceDec = new BigDecimal(Double.parseDouble(integralRuleConfigDto.getSquarePrice()));
+ amountDec = aDec.multiply(squarePriceDec).setScale(2, BigDecimal.ROUND_HALF_UP);
+ } else if (IntegralRuleConfigDto.COMPUTING_FORMULA_FIXED.equals(computingFormula)) { // 鍥哄畾绉垎
+ amountDec = new BigDecimal(Double.parseDouble(integralRuleConfigDto.getAdditionalAmount()));
+ } else {
+ amountDec = new BigDecimal(0);
+ }
+
+ if (IntegralRuleConfigDto.SCALE_UP.equals(integralRuleConfigDto.getScale())) {
+ amount = new Double(Math.ceil(amountDec.doubleValue())).longValue();
+ } else {
+ amount = new Double(Math.floor(amountDec.doubleValue())).longValue();
+ }
+ integralRuleConfigDto.setQuantity(amount + "");
+ return amount;
}
/**
@@ -2249,7 +2287,7 @@
BigDecimal curFeePrice = new BigDecimal(feeDto.getFeePrice());
if (feeDto.getEndTime().getTime() < rateStartTime.getTime()) {
curOweMonth = dayCompare(feeDto.getEndTime(), rateStartTime);
- oweAmountDec = curFeePrice.multiply(new BigDecimal(curOweMonth)).setScale(4, BigDecimal.ROUND_HALF_UP);
+ oweAmountDec = curFeePrice.multiply(new BigDecimal(curOweMonth)).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
}
curOweMonth = dayCompare(rateStartTime, feeDto.getDeadlineTime());
@@ -2257,7 +2295,7 @@
double maxCycle = Math.ceil(curOweMonth / rateCycle);
// 澧為暱鍓嶇殑娆犺垂
- BigDecimal addTotalAmount = oweAmountDec ;
+ BigDecimal addTotalAmount = oweAmountDec;
BigDecimal preCycleAmount = curFeePrice.multiply(new BigDecimal(rateCycle));
BigDecimal rateDec = null; //閫掑鍛ㄦ湡鎵�鏀惰垂鐢�
BigDecimal lastRateAmountDec = null;
@@ -2266,26 +2304,26 @@
Date curEndTime = null;
for (int cycleIndex = 0; cycleIndex < maxCycle; cycleIndex++) {
//褰撴湡澧為暱閮ㄥ垎
- rateDec = preCycleAmount.multiply(new BigDecimal(rate)).setScale(4, BigDecimal.ROUND_HALF_UP);
+ rateDec = preCycleAmount.multiply(new BigDecimal(rate)).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
//澧為暱鍛ㄦ湡鐨勫�嶆暟
curCycle = (cycleIndex + 1) * rateCycle;
// 璁$畻鏈疆鐨� 璁¤垂璧峰鏃堕棿
Calendar curEndTimeCalender = Calendar.getInstance();
curEndTimeCalender.setTime(rateStartTime);
- curEndTimeCalender.add(Calendar.MONTH,new Double(curCycle).intValue());
+ curEndTimeCalender.add(Calendar.MONTH, new Double(curCycle).intValue());
curEndTime = curEndTimeCalender.getTime();
if (curCycle > curOweMonth) {
//涓嶈冻澧為暱鍛ㄦ湡澧為暱鐜�
- rateDec = new BigDecimal(curOweMonth / rateCycle - Math.floor(curOweMonth / rateCycle)).multiply(rateDec).setScale(4, BigDecimal.ROUND_HALF_UP);
- lastRateAmountDec = new BigDecimal(curOweMonth / rateCycle - Math.floor(curOweMonth / rateCycle)).multiply(preCycleAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
+ rateDec = new BigDecimal(curOweMonth / rateCycle - Math.floor(curOweMonth / rateCycle)).multiply(rateDec).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
+ lastRateAmountDec = new BigDecimal(curOweMonth / rateCycle - Math.floor(curOweMonth / rateCycle)).multiply(preCycleAmount).setScale(FeeConfigConstant.FEE_SCALE, BigDecimal.ROUND_HALF_UP);
addTotalAmount = addTotalAmount.add(rateDec).add(lastRateAmountDec);
continue;
}
//鏈湡閲戦
curAmount = rateDec.add(preCycleAmount);// 澧為暱閮ㄥ垎 + 涓婃湰鏈熻垂鐢�
//濡傛灉璁¤垂璧峰鏃堕棿 澶т簬 閫掑寮�濮嬫椂闂� 閭d箞鏈疆 涓嶈鍏�
- if(feeDto.getEndTime().getTime()< curEndTime.getTime()){
+ if (feeDto.getEndTime().getTime() < curEndTime.getTime()) {
addTotalAmount = addTotalAmount.add(curAmount); // 璁″叆鎬荤殑 璐圭敤涓�
}
preCycleAmount = curAmount;
--
Gitblit v1.8.0