From 2d4aac7b3e767ecd42dd02ccba30332386f46a82 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期三, 01 四月 2026 14:05:53 +0800
Subject: [PATCH] feat(approve): 支持批量添加审批部门

---
 src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java |   78 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 75 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java b/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java
index 131f61e..4cb95da 100644
--- a/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java
+++ b/src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java
@@ -1,11 +1,14 @@
 package com.ruoyi.approve.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.pojo.AccountExpense;
 import com.ruoyi.approve.pojo.ApproveProcess;
 import com.ruoyi.approve.service.IApproveProcessService;
 import com.ruoyi.approve.vo.ApproveGetAndUpdateVo;
 import com.ruoyi.approve.vo.ApproveProcessVO;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.security.LoginUser;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.project.system.domain.SysDept;
@@ -15,9 +18,10 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.text.ParseException;
-import java.util.List;
+import java.util.*;
 
 @RestController
 @RequestMapping("/approveProcess")
@@ -59,8 +63,16 @@
         if (approveProcessVO == null) {
             return AjaxResult.warn("鍙傛暟涓嶈兘涓虹┖");
         }
-
-        approveProcessService.addApprove(approveProcessVO);
+        Set<Long> approveDeptIdSet = Optional.ofNullable(approveProcessVO.getApproveDeptIdArray()).orElse(new HashSet<>());
+        approveDeptIdSet.add(approveProcessVO.getApproveDeptId());
+        approveDeptIdSet.stream().filter(Objects::nonNull).distinct().forEach(depId->{
+            try {
+                approveProcessVO.setApproveDeptId(depId);
+                approveProcessService.addApprove(approveProcessVO);
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        });
         return AjaxResult.success("娣诲姞鎴愬姛");
     }
 
@@ -118,4 +130,64 @@
         approveProcessService.delApprove(ids);
         return AjaxResult.success("鎿嶄綔鎴愬姛");
     }
+
+    @ApiOperation(value = "鍏嚭绠$悊瀵煎嚭")
+    @PostMapping("/exportOne")
+    public void exportOne(HttpServletResponse response) {
+        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
+                .eq(ApproveProcess::getApproveDelete, 0)
+                .eq(ApproveProcess::getApproveType, 1));
+        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class);
+        util.exportExcel(response, accountExpenses, "鍏嚭绠$悊瀵煎嚭");
+    }
+
+    @ApiOperation(value = "璇峰亣绠$悊瀵煎嚭")
+    @PostMapping("/exportTwo")
+    public void exportTwo(HttpServletResponse response) {
+        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
+                .eq(ApproveProcess::getApproveDelete, 0)
+                .eq(ApproveProcess::getApproveType, 2));
+        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class);
+        util.exportExcel(response, accountExpenses, "璇峰亣绠$悊瀵煎嚭");
+    }
+
+    @ApiOperation(value = "鍑哄樊绠$悊瀵煎嚭")
+    @PostMapping("/exportThree")
+    public void exportThree(HttpServletResponse response) {
+        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
+                .eq(ApproveProcess::getApproveDelete, 0)
+                .eq(ApproveProcess::getApproveType, 3));
+        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class);
+        util.exportExcel(response, accountExpenses, "鍑哄樊绠$悊瀵煎嚭");
+    }
+
+    @ApiOperation(value = "鎶ラ攢绠$悊瀵煎嚭")
+    @PostMapping("/exportFour")
+    public void exportFour(HttpServletResponse response) {
+        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
+                .eq(ApproveProcess::getApproveDelete, 0)
+                .eq(ApproveProcess::getApproveType, 4));
+        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class);
+        util.exportExcel(response, accountExpenses, "鎶ラ攢绠$悊瀵煎嚭");
+    }
+
+    @ApiOperation(value = "閲囪喘鐢宠瀵煎嚭")
+    @PostMapping("/exportFive")
+    public void exportFive(HttpServletResponse response) {
+        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
+                .eq(ApproveProcess::getApproveDelete, 0)
+                .eq(ApproveProcess::getApproveType, 5));
+        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class);
+        util.exportExcel(response, accountExpenses, "閲囪喘鐢宠瀵煎嚭");
+    }
+
+    @ApiOperation(value = "鍗忓悓瀹℃壒瀵煎嚭")
+    @PostMapping("/exportZero")
+    public void exportZero(HttpServletResponse response) {
+        List<ApproveProcess> accountExpenses = approveProcessService.list(new LambdaQueryWrapper<ApproveProcess>()
+                        .eq(ApproveProcess::getApproveDelete, 0)
+                .eq(ApproveProcess::getApproveType, 0));
+        ExcelUtil<ApproveProcess> util = new ExcelUtil<ApproveProcess>(ApproveProcess.class);
+        util.exportExcel(response, accountExpenses, "鍗忓悓瀹℃壒瀵煎嚭");
+    }
 }

--
Gitblit v1.9.3