From 3a76f9efb61f7bdbf96dfa429214ee0c8322a539 Mon Sep 17 00:00:00 2001 From: yaowanxin <3588231647@qq.com> Date: 星期四, 11 九月 2025 16:15:55 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java | 37 +++++++++++++++++++++++++++++++++++++ 1 files changed, 37 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java b/src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java index 37c2f7c..d17b424 100644 --- a/src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java +++ b/src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java @@ -22,6 +22,7 @@ import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; +import java.time.DayOfWeek; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -115,5 +116,41 @@ return accountDto3s; } + @Override + public Map<String, List<String>> analysis() { + // 鑾峰彇鏈懆鐨勬椂闂磋寖鍥� + LocalDate startOfWeek = LocalDate.now().with(DayOfWeek.MONDAY); + LocalDate endOfWeek = LocalDate.now().with(DayOfWeek.SUNDAY); + Map<String, List<String>> result = new HashMap<>(); + List<String> days = new ArrayList<>(); + List<String> totalIncomeList = new ArrayList<>(); + List<String> totalExpenseList = new ArrayList<>(); + List<String> netIncomeList = new ArrayList<>(); + // 鏍规嵁鏃堕棿鑼冨洿寰幆鏌ヨ姣忎竴澶╃殑鎬绘敹鍏ワ紝鎬绘敮鍑�,鍑�鏀跺叆锛堟�绘敹鍏�-鎬绘敮鍑猴級 + for (LocalDate date = startOfWeek; date.isBefore(endOfWeek) || date.isEqual(endOfWeek); date = date.plusDays(1)) { + BigDecimal totalIncome = accountIncomeMapper.selectList(Wrappers.<AccountIncome>lambdaQuery() + .eq(AccountIncome::getInputTime, date.toString())) + .stream() + .map(AccountIncome::getIncomeMoney) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal totalExpense = accountExpenseMapper.selectList(Wrappers.<AccountExpense>lambdaQuery() + .eq(AccountExpense::getInputTime, date.toString())) + .stream() + .map(AccountExpense::getExpenseMoney) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal netIncome = totalIncome.subtract(totalExpense); + days.add(date.toString()); + totalIncomeList.add(totalIncome.toString()); + totalExpenseList.add(totalExpense.toString()); + netIncomeList.add(netIncome.toString()); + } + result.put("days", days); // 澶� + result.put("totalIncome", totalIncomeList); // 鏀跺叆 + result.put("totalExpense", totalExpenseList); // 鏀嚭 + result.put("netIncome", netIncomeList); // 鍑�鏀跺叆 + + return result; + } + } -- Gitblit v1.9.3