From 09095d67f2e2acf45dcd55155da491e44206db4e Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 05 四月 2024 15:38:14 +0800
Subject: [PATCH] 修改时间 将时间修改 未23:59:59秒

---
 java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java |   68 ++++++----------------------------
 1 files changed, 12 insertions(+), 56 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 b4201f6..5161aec 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
@@ -1665,7 +1665,10 @@
         Date preEndTime = preEndTimeCal.getTime();
 
         //todo 褰撳墠璐圭敤涓轰竴娆℃�ц垂鐢�
-        Date maxEndTime = feeDto.getConfigEndTime();
+        Date maxEndTime = feeDto.getDeadlineTime();
+        if (maxEndTime == null) {
+            maxEndTime = feeDto.getConfigEndTime();
+        }
         if (FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
             //鍏堝彇 deadlineTime
             if (feeDto.getDeadlineTime() != null) {
@@ -1687,11 +1690,7 @@
             if (StringUtil.isNumber(feeDto.getMonthCycle())) {
                 oweMonth = Integer.parseInt(feeDto.getMonthCycle());
             }
-
-        } else if (FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeDto.getFeeFlag())) {
-            if (feeDto.getDeadlineTime() != null) {
-                maxEndTime = feeDto.getDeadlineTime();
-            }
+        } else {
             Date billEndTime = DateUtil.getCurrentDate();
             //寤鸿处鏃堕棿
             Date startDate = feeDto.getStartTime();
@@ -1719,7 +1718,6 @@
             ) {
                 targetEndDate = getTargetEndTime((round + 1) * paymentCycle, startDate);//鐩爣缁撴潫鏃堕棿
             }
-
 
             //todo 璐圭敤椤圭殑缁撴潫鏃堕棿<缂磋垂鐨勭粨鏉熸椂闂�  璐圭敤蹇粨鏉熶簡   鍙栬垂鐢ㄩ」鐨勭粨鏉熸椂闂�
             if (maxEndTime.getTime() < targetEndDate.getTime()) {
@@ -1728,50 +1726,7 @@
             //璇存槑娆犺垂
             if (endDate.getTime() < targetEndDate.getTime()) {
                 // 鐩爣鍒版湡鏃堕棿 - 鍒版湡鏃堕棿 = 娆犺垂鏈堜唤
-                oweMonth = DateUtil.dayCompare(endDate, targetEndDate);
-            }
-
-            if (feeDto.getEndTime().getTime() > targetEndDate.getTime()) {
-                targetEndDate = feeDto.getEndTime();
-            }
-        } else { // todo 鍛ㄦ湡鎬ц垂鐢�
-            //褰撳墠鏃堕棿
-            Date billEndTime = DateUtil.getCurrentDate();
-            //寤鸿处鏃堕棿
-            Date startDate = feeDto.getStartTime();
-            //璁¤垂璧峰鏃堕棿
-            Date endDate = feeDto.getEndTime();
-            //缂磋垂鍛ㄦ湡
-            long paymentCycle = Long.parseLong(feeDto.getPaymentCycle());
-            // 褰撳墠鏃堕棿 - 寮�濮嬫椂闂�  = 鏈堜唤
-            double mulMonth = 0.0;
-            mulMonth = DateUtil.dayCompare(startDate, billEndTime);
-
-            // 鏈堜唤/ 鍛ㄦ湡 = 杞暟锛堝悜涓婂彇鏁达級
-            double round = 0.0;
-            if ("1200".equals(feeDto.getPaymentCd())) { // 1200棰勪粯璐�
-                round = Math.floor(mulMonth / paymentCycle) + 1;
-            } else { //2100鍚庝粯璐�
-                round = Math.floor(mulMonth / paymentCycle);
-            }
-            // 杞暟 * 鍛ㄦ湡 * 30 + 寮�濮嬫椂闂� = 鐩爣 鍒版湡鏃堕棿
-            targetEndDate = getTargetEndTime(round * paymentCycle, startDate);//鐩爣缁撴潫鏃堕棿
-
-            //todo 濡傛灉 鍒颁簡 棰勪粯鏈� 浜х敓涓嬩釜鍛ㄦ湡鐨勮垂鐢�
-            if (DateUtil.getFormatTimeStringB(targetEndDate).equals(DateUtil.getFormatTimeStringB(endDate))
-                    && DateUtil.getCurrentDate().getTime() > preEndTime.getTime()
-            ) {
-                targetEndDate = getTargetEndTime((round + 1) * paymentCycle, startDate);//鐩爣缁撴潫鏃堕棿
-            }
-
-            //璐圭敤椤圭殑缁撴潫鏃堕棿<缂磋垂鐨勭粨鏉熸椂闂�  璐圭敤蹇粨鏉熶簡   鍙栬垂鐢ㄩ」鐨勭粨鏉熸椂闂�
-            if (maxEndTime.getTime() < targetEndDate.getTime()) {
-                targetEndDate = maxEndTime;
-            }
-            //璇存槑娆犺垂
-            if (endDate.getTime() < targetEndDate.getTime()) {
-                // 鐩爣鍒版湡鏃堕棿 - 鍒版湡鏃堕棿 = 娆犺垂鏈堜唤
-                oweMonth = DateUtil.dayCompare(endDate, targetEndDate);
+                oweMonth = DateUtil.dayCompare(endDate, targetEndDate, true);
             }
 
             if (feeDto.getEndTime().getTime() > targetEndDate.getTime()) {
@@ -2165,7 +2120,7 @@
         }
 
         //todo 閫掑鏃堕棿 涓嶆槸 璐圭敤寤鸿处鏃堕棿鐨勫�嶆暟鏃讹紝淇涓�涓�
-        rateStartTime = correctByFeeStartTime(rateStartTime,feeDto.getStartTime());
+        rateStartTime = correctByFeeStartTime(rateStartTime, feeDto.getStartTime());
 
         BigDecimal addTotalAmount = new BigDecimal("0");
         double curOweMonth = 0;
@@ -2205,7 +2160,7 @@
                 continue;
             }
             //todo 鏈疆 娆犺垂寮�濮嬫椂闂村ぇ浜� deadlineTime 璺宠繃
-            if(curOweStartTime.getTime() >= feeDto.getDeadlineTime().getTime()){
+            if (curOweStartTime.getTime() >= feeDto.getDeadlineTime().getTime()) {
                 continue;
             }
 
@@ -2231,6 +2186,7 @@
     /**
      * 淇閫掑 寮�濮嬫椂闂�
      * 濡傛灉璁剧疆鐨� 閫掑寮�濮嬫椂闂村拰寤鸿处鏃堕棿涓嶆槸鍚屼竴澶� 寮哄埗淇涓�
+     *
      * @param rateStartTime
      * @param startTime
      * @return
@@ -2242,14 +2198,14 @@
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(startTime);
         int day = calendar.get(Calendar.DAY_OF_MONTH);
-        if(rateDay == day){
+        if (rateDay == day) {
             return rateStartTime;
         }
 
         rateCalendar = Calendar.getInstance();
         rateCalendar.setTime(rateStartTime);
-        rateCalendar.add(Calendar.MONTH,1);
-        rateCalendar.set(Calendar.DAY_OF_MONTH,day);
+        rateCalendar.add(Calendar.MONTH, 1);
+        rateCalendar.set(Calendar.DAY_OF_MONTH, day);
         return rateCalendar.getTime();
     }
 

--
Gitblit v1.8.0