From 84b7d5223a5f5229866a7d5686d198cca4251453 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 26 九月 2025 15:23:25 +0800
Subject: [PATCH] 代码提交,查询部门下级递归

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java |   57 ++++++++++++++++++++++++++-------------------------------
 1 files changed, 26 insertions(+), 31 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
index c973ef5..cd68061 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
@@ -84,6 +84,8 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -108,7 +110,8 @@
  */
 @RestController
 @RequestMapping("/oa-approval-flow-audit")
-@Api(tags = "我审批的/我发起的/通用审批接口")
+@Api(tags = "我审批的-我发起的-通用审批接口")
+@Slf4j
 public class OaApprovalFlowAuditController {
     @Resource
     private OaApprovalTodoService approvalTodoService;
@@ -243,7 +246,7 @@
             }
             SysUser sysUser = userMap.get(approvalApplication.getApplicantUserId().longValue());
             if (sysUser!=null){
-                approvalTodoVO.setApplyUserName(sysUser.getUserName());
+                approvalTodoVO.setApplyUserName(sysUser.getNickName());
                 TDept tDept = deptMap.get(Integer.parseInt(sysUser.getDeptId()));
                 if (tDept!=null){
                     approvalTodoVO.setApplyDeptName(tDept.getDeptName());
@@ -421,7 +424,7 @@
             }
             SysUser sysUser = userMap.get(approvalApplication.getApplicantUserId().longValue());
             if (sysUser!=null){
-                approvalTodoVO.setApplyUserName(sysUser.getUserName());
+                approvalTodoVO.setApplyUserName(sysUser.getNickName());
                 TDept tDept = deptMap.get(Integer.parseInt(sysUser.getDeptId()));
                 if (tDept!=null){
                     approvalTodoVO.setApplyDeptName(tDept.getDeptName());
@@ -526,25 +529,13 @@
         res.setRecords(resList);
         return R.ok(res);
     }
-            OaApprovalFlowAudit approvalFlowAudit = approvalFlowAuditMap.get(approvalFlowNode.getId());
-            if (approvalFlowAudit!=null){
-                approvalFlowNodeVO.setFlowName(approvalFlowAudit.getFlowName());
-                approvalFlowNodeVO.setUserName(approvalFlowAudit.getUserName());
-                approvalFlowNodeVO.setSignPicUrl(approvalFlowAudit.getSignPicUrl());
-                approvalFlowNodeVO.setApprovalStatus(approvalFlowAudit.getApprovalStatus());
-            }else{
-                approvalFlowNodeVO.setFlowName(approvalFlowNode.getFlowName());
-            }
-            approvalFlowNodeListVOS.add(approvalFlowNodeVO);
-        }
-        return approvalFlowNodeListVOS;
-    }
 
 
 
     @Log(title = "审批-通用审批接口", businessType = BusinessType.INSERT)
     @ApiOperation(value = "通用审批接口")
     @PostMapping(value = "/audit")
+    @Transactional
     public R addLeave(@RequestBody AuditDTO dto) {
 
         OaApprovalApplications approvalApplications = approvalApplicationsService.getById(dto.getApprovalApplicationId());
@@ -561,14 +552,14 @@
         approvalTodoService.updateById(approvalTodo);
 
         OaApproval approval = approvalService.getById(approvalApplications.getApprovalId());
-        if (dto.getApprovalStatus()==0){
+        if (dto.getApprovalStatus() == 0) {
             // 中断审批流程
             approvalApplications.setApprovalStatus(3);
             approvalApplicationsService.updateById(approvalApplications);
             // 删除除当前审批人该申请单的未处理的所有待办
             approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>()
                     .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId())
-                    .eq(OaApprovalTodo::getStatus,0));
+                    .eq(OaApprovalTodo::getStatus, 0));
         }
         OaApprovalFlowNode oaApprovalFlowNode = approvalFlowNodeService.getById(currentFlowNodeId);
         OaApprovalFlowAudit approvalFlowAudit = new OaApprovalFlowAudit();
@@ -583,20 +574,21 @@
         approvalFlowAudit.setReason(dto.getReason());
         approvalFlowAuditService.save(approvalFlowAudit);
         List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery().eq(OaApprovalFlowNode::getApprovalId, approval.getId())
+                .eq(OaApprovalFlowNode::getStatus,1)
                 .orderByAsc(OaApprovalFlowNode::getSortOrder).list();
-        if (dto.getApprovalStatus()==1){
+        if (dto.getApprovalStatus() == 1) {
             // 判断当前是否处于最后一个节点
-            if(approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(approvalFlowNodes.size()-1).getId())){
+            if (approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(approvalFlowNodes.size() - 1).getId())) {
                 // 审批通过 审批流程结束
                 approvalApplications.setApprovalStatus(2);
                 approvalApplicationsService.updateById(approvalApplications);
-                if (approval.getApprovalCategory()==10||approval.getApprovalCategory()==7
-                        ||approval.getApprovalCategory()==8||approval.getApprovalCategory()==9){
+                if (approval.getApprovalCategory() == 10 || approval.getApprovalCategory() == 7
+                        || approval.getApprovalCategory() == 8 || approval.getApprovalCategory() == 9) {
                     List<OaApprovalApplicationAssetItem> approvalApplicationAssetItems = approvalApplicationAssetItemService.lambdaQuery()
                             .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()).list();
                     List<Integer> AssetMainIds = approvalApplicationAssetItems.stream().map(OaApprovalApplicationAssetItem::getAssetMainId).collect(Collectors.toList());
                     List<AssetMain> assetMains = assetMainService.lambdaQuery().in(AssetMain::getId, AssetMainIds).list();
-                    switch (approval.getApprovalCategory()){
+                    switch (approval.getApprovalCategory()) {
                         case 10:
                             assetMains.forEach(assetMain -> {
                                 assetMain.setDisposed(1);
@@ -619,21 +611,24 @@
                 if (approval.getApprovalCategory().equals(ApprovalTypeEnum.IN_STOCK.getCode())) {
                     assetMainService.saveAssetByApprovalApplicationId(approvalApplications.getId());
                 }
-            }else{
+            } else {
+                log.info("不为最后一个审批节点");
                 // 生成下一个节点的待办事项
                 for (int i = 0; i < approvalFlowNodes.size(); i++) {
-                    if(approvalApplications.getCurrentFlowNodeId()
-                            .equals(approvalFlowNodes.get(i).getId())){
-                        approvalApplications.setCurrentFlowNodeId(approvalFlowNodes.get(i+1).getId());
-                        OaApprovalFlowNode oaApprovalFlowNode1 = approvalFlowNodeService.getById(approvalFlowNodes.get(i + 1).getId());
+                    if (approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(i).getId())) {
+                        log.info("匹配到审批流程,进入下一节点,当前节点id:{}", approvalFlowNodes.get(i));
+                        // 申请单审批流程修改为下一节点
+                        approvalApplications.setCurrentFlowNodeId(approvalFlowNodes.get(i + 1).getId());
+                        approvalApplicationsService.updateById(approvalApplications);
+                        OaApprovalFlowNode oaApprovalFlowNode1 = approvalFlowNodes.get(i + 1);
                         approvalTodoService.createApprovalTodos(approvalApplications.getId(),
                                 approvalApplications.getApplicationCode(), oaApprovalFlowNode1, approvalApplications.getDeptId());
+                        break;
                     }
                 }
             }
-
-
+        }
         return R.ok();
+
     }
 }
-

--
Gitblit v1.7.1