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