From 4356029f74f35f4df426f223e1c774f4912984a6 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期一, 26 二月 2024 22:44:24 +0800
Subject: [PATCH] 优化结束时间

---
 java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java |   41 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 40 insertions(+), 1 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 37fd766..b4ed3cf 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
@@ -117,6 +117,46 @@
         computeFeePrice(tmpFeeDto, roomDto);
     }
 
+    /**
+     * 璁惧畾缁撴潫鏃堕棿
+     *
+     * @param feeDto
+     * @param targetEndTime
+     */
+    @Override
+    public void computeEveryOweFeeByTargetEndTime(FeeDto feeDto, String targetEndTime) {
+
+        Date targetEndDate = DateUtil.getDateFromStringB(targetEndTime);
+        double oweMonth = 1.0;
+        if (feeDto.getEndTime().getTime() > targetEndDate.getTime()) {
+            targetEndDate = feeDto.getEndTime();
+        }
+        if (feeDto.getEndTime().getTime() < targetEndDate.getTime()) {
+            // 鐩爣鍒版湡鏃堕棿 - 鍒版湡鏃堕棿 = 娆犺垂鏈堜唤
+            oweMonth = DateUtil.dayCompare(feeDto.getEndTime(), targetEndDate);
+        }
+
+        String computingFormula = feeDto.getComputingFormula();
+        Map feePriceAll = getFeePrice(feeDto, null);
+        feeDto.setFeePrice(Double.parseDouble(feePriceAll.get("feePrice").toString()));
+
+        BigDecimal price = new BigDecimal(feeDto.getFeePrice());
+        price = price.multiply(new BigDecimal(oweMonth));
+        feeDto.setFeeTotalPrice(price.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
+        feeDto.setDeadlineTime(targetEndDate);
+
+        //鍔ㄦ�佽垂鐢�
+        if ("4004".equals(computingFormula)
+                && FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())
+                && !FeeDto.STATE_FINISH.equals(feeDto.getState())) {
+            feeDto.setAmountOwed(feeDto.getFeeTotalPrice() + "");
+            //feeDto.setDeadlineTime(DateUtil.getCurrentDate()); 娆犺垂鏃ユ湡涓嶅鍏堟敞閲�
+        }
+
+        //todo 鑰冭檻绉熼噾閫掑
+        dealRentRate(feeDto);
+    }
+
 
     /**
      * 璁$畻娆犺垂閲戦
@@ -2144,7 +2184,6 @@
 
         // todo 鏈�澶у懆鏈�
         double maxCycle = Math.ceil(rateMonth / rateCycle);
-
 
 
         // todo 澧為暱鍓嶇殑娆犺垂

--
Gitblit v1.8.0