From f4d855f8d2d5cd52c0831e690dcb12e700b91eb1 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期五, 22 八月 2025 20:00:14 +0800
Subject: [PATCH] 费用初始化添加折扣金额以及折扣记录0822

---
 service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java |   51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 50 insertions(+), 1 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 777191f..b46b989 100755
--- 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
@@ -33,6 +33,9 @@
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.*;
 
 @Service
@@ -224,7 +227,6 @@
                         Integer.parseInt(feeDto.getDecimalPlace())
                 )
         );
-
         if (!StringUtil.isEmpty(custEndTime)) {
             Date date = DateUtil.getDateFromStringB(custEndTime);
             computeFeeSMOImpl.dealRentRateCustEndTime(feeDto, date);
@@ -265,6 +267,53 @@
         apiFeeDataVo.setEndTime(apiFeeDataVo.getEndTime() == null ? null : apiFeeDataVo.getEndTime().split(" ")[0]);
         apiFeeDataVo.setMaxEndTime(apiFeeDataVo.getMaxEndTime() == null ? null : apiFeeDataVo.getMaxEndTime().split(" ")[0]);
         apiFeeDataVo.setDeadlineTime(apiFeeDataVo.getDeadlineTime() == null ? null : apiFeeDataVo.getDeadlineTime().split(" ")[0]);
+        if (cycel != null && !"105".equals(cycel)) { // 淇瀛楃涓叉瘮杈冩柟寮�
+            Date date = feeDto.getEndTime();
+            if (date != null) { // 澧炲姞绌哄�兼鏌�
+                LocalDateTime localDateTime;
+
+                // 澶勭悊 java.sql.Date 涓嶆敮鎸� toInstant() 鐨勯棶棰�
+                if (date instanceof java.sql.Date) {
+                    // 瀵逛簬 sql.Date锛屽厛杞崲涓� LocalDate 鍐嶈浆涓� LocalDateTime
+                    LocalDate localDate = ((java.sql.Date) date).toLocalDate();
+                    localDateTime = localDate.atStartOfDay();
+                } else {
+                    // 瀵逛簬 util.Date锛屾甯歌浆鎹�
+                    localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
+                }
+
+                try {
+                    // 澧炲姞x涓湀
+                    int monthsToAdd = Integer.parseInt(cycel);
+                    LocalDateTime newLocalDateTime = localDateTime.plusMonths(monthsToAdd).minusDays(1);
+
+                    // 杞崲鍥濪ate
+                    Date newDate = Date.from(newLocalDateTime.atZone(ZoneId.systemDefault()).toInstant());
+                    apiFeeDataVo.setPayStartDate(feeDto.getEndTime());
+                    apiFeeDataVo.setPayEndDate(newDate);
+                } catch (NumberFormatException e) {
+                    // 澶勭悊cycel鏃犳硶杞崲涓烘暣鏁扮殑寮傚父
+                    // 鍙互鏍规嵁瀹為檯闇�姹傝褰曟棩蹇楁垨鎶涘嚭鑷畾涔夊紓甯�
+                    e.printStackTrace();
+                }
+            }
+        }else{
+            apiFeeDataVo.setPayStartDate(DateUtil.getDateFromStringB(feeDto.getCustomStartTime()));
+            // 鑾峰彇鍘熷鏃ユ湡
+            Date originalDate = DateUtil.getDateFromStringB(feeDto.getCustomEndTime());
+            if (originalDate != null) {
+                // 鍒涘缓Calendar瀹炰緥骞惰缃棩鏈�
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(originalDate);
+
+                // 鍑忎竴澶�
+                calendar.add(Calendar.DAY_OF_MONTH, -1);
+
+                // 鑾峰彇澶勭悊鍚庣殑鏃ユ湡
+                Date dateMinusOneDay = calendar.getTime();
+                apiFeeDataVo.setPayEndDate(dateMinusOneDay);
+            }
+        }
         return ResultVo.createResponseEntity(apiFeeDataVo);
     }
 

--
Gitblit v1.8.0