From e99623e2173143c6ae508f11046a581f7bd225dc Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 22 九月 2020 11:09:52 +0800
Subject: [PATCH] 优化代码
---
service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 48 insertions(+), 4 deletions(-)
diff --git a/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java b/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
index 50773ec..f48ac32 100644
--- a/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
@@ -442,7 +442,9 @@
}
private void computeFeePriceByParkingSpace(FeeDto feeDto) {
-
+ Map<String, Object> targetEndDateAndOweMonth = getTargetEndDateAndOweMonth(feeDto);
+ Date targetEndDate = (Date) targetEndDateAndOweMonth.get("targetEndDate");
+ double oweMonth = (double) targetEndDateAndOweMonth.get("oweMonth");
ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
parkingSpaceDto.setCommunityId(feeDto.getCommunityId());
parkingSpaceDto.setPsId(feeDto.getPayerObjId());
@@ -465,15 +467,34 @@
feePrice = additionalAmount.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
} else if ("4004".equals(computingFormula)) {
feePrice = Double.parseDouble(feeDto.getAmount());
+ } else if ("5005".equals(computingFormula)) {
+ if (StringUtil.isEmpty(feeDto.getCurDegrees())) {
+ feePrice = -1.00;
+ } else {
+ BigDecimal curDegree = new BigDecimal(Double.parseDouble(feeDto.getCurDegrees()));
+ BigDecimal preDegree = new BigDecimal(Double.parseDouble(feeDto.getPreDegrees()));
+ BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
+ BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
+ BigDecimal sub = curDegree.subtract(preDegree);
+ feePrice = sub.multiply(squarePrice)
+ .add(additionalAmount)
+ .setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+ }
} else {
feePrice = 0.00;
}
feeDto.setFeePrice(feePrice);
double month = dayCompare(feeDto.getEndTime(), DateUtil.getCurrentDate());
BigDecimal price = new BigDecimal(feeDto.getFeePrice());
- price = price.multiply(new BigDecimal(month));
+ price = price.multiply(new BigDecimal(oweMonth));
feeDto.setFeePrice(price.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+ feeDto.setDeadlineTime(targetEndDate);
+ //鍔ㄦ�佽垂鐢�
+ if ("4004".equals(computingFormula)) {
+ feeDto.setAmountOwed(feeDto.getFeePrice() + "");
+ feeDto.setDeadlineTime(DateUtil.getCurrentDate());
+ }
}
@@ -483,6 +504,9 @@
* @param feeDto
*/
private void computeFeePriceByRoom(FeeDto feeDto) {
+ Map<String, Object> targetEndDateAndOweMonth = getTargetEndDateAndOweMonth(feeDto);
+ Date targetEndDate = (Date) targetEndDateAndOweMonth.get("targetEndDate");
+ double oweMonth = (double) targetEndDateAndOweMonth.get("oweMonth");
RoomDto roomDto = new RoomDto();
roomDto.setCommunityId(feeDto.getCommunityId());
roomDto.setRoomId(feeDto.getPayerObjId());
@@ -504,15 +528,35 @@
feePrice = additionalAmount.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
} else if ("4004".equals(computingFormula)) {
feePrice = Double.parseDouble(feeDto.getAmount());
+ } else if ("5005".equals(computingFormula)) {
+ if (StringUtil.isEmpty(feeDto.getCurDegrees())) {
+ feePrice = -1.00;
+ } else {
+ BigDecimal curDegree = new BigDecimal(Double.parseDouble(feeDto.getCurDegrees()));
+ BigDecimal preDegree = new BigDecimal(Double.parseDouble(feeDto.getPreDegrees()));
+ BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
+ BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
+ BigDecimal sub = curDegree.subtract(preDegree);
+ feePrice = sub.multiply(squarePrice)
+ .add(additionalAmount)
+ .setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+ }
} else {
feePrice = 0.00;
}
feeDto.setFeePrice(feePrice);
- double month = dayCompare(feeDto.getEndTime(), DateUtil.getCurrentDate());
+ //double month = dayCompare(feeDto.getEndTime(), DateUtil.getCurrentDate());
BigDecimal price = new BigDecimal(feeDto.getFeePrice());
- price = price.multiply(new BigDecimal(month));
+ price = price.multiply(new BigDecimal(oweMonth));
feeDto.setFeePrice(price.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+ feeDto.setDeadlineTime(targetEndDate);
+
+ //鍔ㄦ�佽垂鐢�
+ if ("4004".equals(computingFormula)) {
+ feeDto.setAmountOwed(feeDto.getFeePrice() + "");
+ feeDto.setDeadlineTime(DateUtil.getCurrentDate());
+ }
}
--
Gitblit v1.8.0