From 2253780a50fa53f1bc7d9f327a1edfed98f79fae Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 08 八月 2025 10:09:12 +0800 Subject: [PATCH] 财务管理模块--报表调整 --- src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java | 39 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 38 insertions(+), 1 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 f80804d..7871fb4 100644 --- a/src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java +++ b/src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.dto.AccountDto; import com.ruoyi.account.dto.AccountDto2; +import com.ruoyi.account.dto.AccountDto3; import com.ruoyi.account.mapper.AccountExpenseMapper; import com.ruoyi.account.mapper.AccountFileMapper; import com.ruoyi.account.mapper.AccountIncomeMapper; @@ -21,6 +22,10 @@ import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -53,12 +58,16 @@ AccountDto accountDto = new AccountDto(); //鑾峰彇璇ユ鏃堕棿鍐呯殑鎵�鏈夋敹鍏� List<AccountDto2> accountIncomes =accountIncomeMapper.report(dateQueryDto); - accountDto.setIncomeType(accountIncomes); + Long incomeNumber = accountIncomeMapper.selectCount(Wrappers.<AccountIncome>lambdaQuery() .between(AccountIncome::getIncomeDate, dateQueryDto.getEntryDateStart(), dateQueryDto.getEntryDateEnd())); accountDto.setIncomeNumber(incomeNumber); BigDecimal totalIncome = accountIncomes.stream().map(AccountDto2::getAccount).reduce(BigDecimal.ZERO, BigDecimal::add); accountDto.setTotalIncome(totalIncome); + accountIncomes.stream().forEach(accountDto2 -> { + accountDto2.setProportion(accountDto2.getAccount().divide(totalIncome,2,BigDecimal.ROUND_HALF_UP)); + }); + accountDto.setIncomeType(accountIncomes); //鑾峰彇璇ユ鏃堕棿鍐呯殑鎵�鏈夋敮鍑� List<AccountDto2> accountExpenses =accountExpenseMapper.report(dateQueryDto); accountDto.setExpenseType(accountExpenses); @@ -67,11 +76,39 @@ accountDto.setExpenseNumber(expenseNumber); BigDecimal totalExpense = accountExpenses.stream().map(AccountDto2::getAccount).reduce(BigDecimal.ZERO, BigDecimal::add); accountDto.setTotalExpense(totalExpense); + accountExpenses.stream().forEach(accountDto2 -> { + accountDto2.setProportion(accountDto2.getAccount().divide(totalExpense,2,BigDecimal.ROUND_HALF_UP)); + }); + accountDto.setExpenseType(accountExpenses); //鍑�鏀跺叆 BigDecimal netRevenue = totalIncome.subtract(totalExpense); accountDto.setNetRevenue(netRevenue); return accountDto; } + //璐㈠姟鎶ヨ〃骞存煡璇� + @Override + public AccountDto3 reportExpense() { + AccountDto3 accountDto3 = new AccountDto3(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + int currentYear = LocalDate.now().getYear(); // 鑾峰彇褰撳墠骞翠唤锛堝2025锛� + List<String> months = new ArrayList<>(); + Map<String, List<AccountDto2>> map = new HashMap<>(); + for (int i = 1; i <= 12; i++) { + months.add(i + "鏈�"); + // 褰撴湀绗竴澶╋細骞翠唤涓哄綋鍓嶅勾锛屾湀浠戒负i锛屾棩鏈熶负1 + LocalDate firstDay = LocalDate.of(currentYear, i, 1); + DateQueryDto dateQueryDto = new DateQueryDto(); + dateQueryDto.setEntryDateStart(firstDay.format(formatter)); + // 褰撴湀鏈�鍚庝竴澶╋細绗竴澶╃殑鏈堜唤鐨勬渶鍚庝竴澶� + dateQueryDto.setEntryDateEnd(firstDay.plusMonths(1).minusDays(1).format(formatter)); + List<AccountDto2> report = accountExpenseMapper.report(dateQueryDto); + map.put(i + "鏈�",report); + } + accountDto3.setMonth(months); + accountDto3.setAccountType(map); + return accountDto3; + } + } -- Gitblit v1.9.3