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