From df48bc58500ad67116b3fcf80c01283839ee0479 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Mon, 9 Feb 2026 14:48:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=B2=E6=91=8A=E9=94=80=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E5=A4=A7=E4=BA=8E=E6=80=BB=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/service/impl/OrdersServiceImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zmzm/finance/common/service/impl/OrdersServiceImpl.java b/src/main/java/com/zmzm/finance/common/service/impl/OrdersServiceImpl.java index 6c35374..592c82a 100644 --- a/src/main/java/com/zmzm/finance/common/service/impl/OrdersServiceImpl.java +++ b/src/main/java/com/zmzm/finance/common/service/impl/OrdersServiceImpl.java @@ -454,11 +454,14 @@ public class OrdersServiceImpl extends ServiceImpl impleme BigDecimal dayAmount = fee.divide(new BigDecimal(totalDays),3, BigDecimal.ROUND_HALF_UP); //已摊销天数 int alreadyDays = Math.toIntExact((sdfmonth.parse(month).getTime() - sdfday.parse(startTime).getTime()) / 1000 / 60 / 60 / 24); - if (alreadyDays>0){ - map.put("already",dayAmount.multiply(new BigDecimal(alreadyDays))); - }else { + if (alreadyDays<=0){ alreadyDays = 0; } + BigDecimal alreadyFee = dayAmount.multiply(new BigDecimal(alreadyDays)); + if (alreadyFee.compareTo(fee)>0){ + alreadyFee = fee; + } + map.put("already",alreadyFee); //当前月天数 int nowDays = Integer.parseInt(day.substring(8, 10)); BigDecimal now = BigDecimal.ZERO; @@ -469,13 +472,16 @@ public class OrdersServiceImpl extends ServiceImpl impleme nowDays = Integer.parseInt(day.substring(8, 10))-Integer.parseInt(startTime.substring(8, 10))+1; now = dayAmount.multiply(new BigDecimal(nowDays)); } else if (endTime.contains(month)) { - now = fee.subtract(dayAmount.multiply(new BigDecimal(alreadyDays))); + now = fee.subtract(alreadyFee); }else { now = dayAmount.multiply(new BigDecimal(nowDays)); } map.put("now",now); + if (alreadyFee.add(now).compareTo(fee)>0){ + map.put("now",fee.subtract(alreadyFee)); + } //剩余未摊销 - map.put("notyet",fee.subtract(now).subtract(dayAmount.multiply(new BigDecimal(alreadyDays)))); + map.put("notyet",fee.subtract(now).subtract(alreadyFee)); } } List> exportList = new ArrayList<>();