From d1cc113ac2ce39f6a06ab0a838ccf538766580c2 Mon Sep 17 00:00:00 2001 From: yupeng <roc__yu@163.com> Date: 星期三, 26 三月 2025 17:52:22 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into xizang-changyun --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScreenService.java | 63 ++++++++++++++++++++++--------- 1 files changed, 45 insertions(+), 18 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScreenService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScreenService.java index dd6307c..084db02 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScreenService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScreenService.java @@ -4,7 +4,6 @@ import com.ruoyi.system.model.TBill; import com.ruoyi.system.model.TContract; import com.ruoyi.system.model.THouse; -import com.ruoyi.system.service.ITStreetService; import com.ruoyi.system.service.TBillService; import com.ruoyi.system.service.TContractService; import com.ruoyi.system.service.THouseService; @@ -16,11 +15,13 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Map; -import java.util.Calendar; -import java.util.ArrayList; +import java.util.Objects; /** * @author mitao @@ -32,7 +33,6 @@ private final THouseService tHouseService; private final TContractService tContractService; private final TBillService tBillService; - private final ITStreetService tStreetService; /** * 获取顶部统计数据 * @return @@ -72,6 +72,19 @@ BigDecimal totalRentShould = currentQuarterBillList.stream().filter(item -> !item.getPayFeesStatus().equals("5")) .map(TBill::getPayableFeesMoney).reduce(BigDecimal.ZERO, BigDecimal::add); vo.setTotalRentShould(totalRentShould); + //本季度欠费 + BigDecimal totalRentOwe = currentQuarterBillList.stream() + .map(TBill::getOutstandingMoney) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.HALF_UP); + vo.setTotalRentOwe(totalRentOwe); + //总计欠费 + List<TBill> allBillList = tBillService.lambdaQuery().le(TBill::getPayableFeesTime, last).list(); + BigDecimal totalRentOweAll = allBillList.stream() + .map(TBill::getOutstandingMoney) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.HALF_UP); + vo.setTotalRentOweAll(totalRentOweAll); return vo; } @@ -92,8 +105,9 @@ // 获取当前日期 Date currentDate = new Date(); - List<String> quarterLabels = new ArrayList<>(); - List<BigDecimal> incomeData = new ArrayList<>(); + List<String> quarterLabels = new ArrayList<>(); // 季度标签列表 + List<BigDecimal> incomeData = new ArrayList<>(); //收入数据列表 + List<BigDecimal> outstandingData = new ArrayList<>(); // 欠费数据列表 // 获取最近7个季度的数据 for (int i = 6; i >= 0; i--) { @@ -102,28 +116,41 @@ Map<String, Date> quarterDate = DateUtils.getQuarterDate(targetDate); Date quarterStart = quarterDate.get("first"); Date quarterEnd = quarterDate.get("last"); - - // 获取该季度的账单数据并计算总和 - BigDecimal quarterIncome = tBillService.lambdaQuery() - .between(TBill::getPayableFeesTime, quarterStart, quarterEnd) - .list() - .stream() - .map(TBill::getPayFeesMoney) - .reduce(BigDecimal.ZERO, BigDecimal::add); - + + // 获取该季度的账单数据 + List<TBill> quarterBills = tBillService.lambdaQuery() + .between(TBill::getPayableFeesTime, quarterStart, quarterEnd) + .list(); + + // 计算季度租金收入总和 + BigDecimal quarterIncome = quarterBills.stream() + .map(TBill::getPayFeesMoney) + .filter(Objects::nonNull) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.HALF_UP); + + // 计算季度欠费总和 + BigDecimal quarterOutstanding = quarterBills.stream() + .map(TBill::getOutstandingMoney) + .filter(Objects::nonNull) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .divide(BigDecimal.valueOf(10000L), 2, RoundingMode.HALF_UP); + // 生成季度标签 (格式: YY-MM月) Calendar cal = Calendar.getInstance(); cal.setTime(quarterEnd); String label = String.format("%02d-%d月", - cal.get(Calendar.YEAR) % 100, - cal.get(Calendar.MONTH) + 1); - + cal.get(Calendar.YEAR) % 100, + cal.get(Calendar.MONTH) + 1); + quarterLabels.add(label); incomeData.add(quarterIncome); + outstandingData.add(quarterOutstanding); // 添加欠费数据 } vo.setQuarters(quarterLabels); vo.setIncomeData(incomeData); + vo.setOutstandingData(outstandingData); // 设置欠费数据到VO return vo; } -- Gitblit v1.7.1