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