From 70311fa2ef209f1bafe89a332388c418be1587c4 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期二, 09 九月 2025 11:39:22 +0800 Subject: [PATCH] yys 新增接口财务报表-财务分析 --- src/main/java/com/ruoyi/account/service/AccountExpenseService.java | 3 +++ src/main/resources/application-demo.yml | 2 +- src/main/java/com/ruoyi/account/controller/AccountExpenseController.java | 13 +++++++++++++ src/main/java/com/ruoyi/account/service/impl/AccountExpenseServiceImpl.java | 37 +++++++++++++++++++++++++++++++++++++ src/main/resources/application.yml | 2 +- 5 files changed, 55 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/ruoyi/account/controller/AccountExpenseController.java b/src/main/java/com/ruoyi/account/controller/AccountExpenseController.java index 44d1dbd..02796b4 100644 --- a/src/main/java/com/ruoyi/account/controller/AccountExpenseController.java +++ b/src/main/java/com/ruoyi/account/controller/AccountExpenseController.java @@ -11,6 +11,8 @@ import com.ruoyi.dto.DateQueryDto; import com.ruoyi.framework.security.LoginUser; import com.ruoyi.framework.web.domain.AjaxResult; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; @@ -24,6 +26,7 @@ */ @RestController @RequestMapping("/account/accountExpense") +@Api(tags = "璐㈠姟绠$悊--鏀嚭绠$悊") public class AccountExpenseController { @Resource @@ -112,6 +115,16 @@ } /** + * 璐㈠姟鎶ヨ〃-璐㈠姟鍒嗘瀽 + * @return + */ + @GetMapping("/report/analysis") + @ApiOperation("璐㈠姟鎶ヨ〃-璐㈠姟鍒嗘瀽") + public AjaxResult analysis() { + return AjaxResult.success(accountExpenseService.analysis()); + } + + /** * 璐㈠姟鎶ヨ〃鍥捐〃鏀跺叆骞村害鏌ヨ * @param * @return diff --git a/src/main/java/com/ruoyi/account/service/AccountExpenseService.java b/src/main/java/com/ruoyi/account/service/AccountExpenseService.java index 71fd214..dcff4d9 100644 --- a/src/main/java/com/ruoyi/account/service/AccountExpenseService.java +++ b/src/main/java/com/ruoyi/account/service/AccountExpenseService.java @@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; public interface AccountExpenseService extends IService<AccountExpense> { @@ -21,4 +22,6 @@ AccountDto report(DateQueryDto dateQueryDto); List<AccountDto3> reportExpense(); + + Map<String,List<String>> analysis(); } 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; + } + } diff --git a/src/main/resources/application-demo.yml b/src/main/resources/application-demo.yml index 68a50d7..7459313 100644 --- a/src/main/resources/application-demo.yml +++ b/src/main/resources/application-demo.yml @@ -135,7 +135,7 @@ redis: # 鍦板潃 # host: 127.0.0.1 - host: 172.17.0.1 + host: 192.168.1.185 # 绔彛锛岄粯璁や负6379 port: 6379 # 鏁版嵁搴撶储寮� diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index c79d967..33d6165 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,4 +1,4 @@ # Spring閰嶇疆 spring: profiles: - active: dev + active: demo -- Gitblit v1.9.3