From fbb120dee0d2501210c4395715a6c030f340004e Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 22 十月 2025 09:11:52 +0800
Subject: [PATCH] bug修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 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 6f23f78..bd7634d 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
@@ -169,11 +169,20 @@
         Map<Long, SysUser> userMap = sysUserService.selectAllList().stream().collect(Collectors.toMap(SysUser::getUserId, e -> e));
         Map<Integer, TDept> deptMap = deptService.list().stream().collect(Collectors.toMap(TDept::getId, e -> e));
         Map<Integer, OaApproval> approvalMap = approvalService.list().stream().collect(Collectors.toMap(OaApproval::getId, e -> e));
-        List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list();
+        List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds)
+                .orderByDesc(OaApprovalApplications::getCreateTime).list();
+        Map<Integer, OaApprovalFlowAudit> auditMap = approvalFlowAuditService.lambdaQuery().in(OaApprovalFlowAudit::getApprovalApplicationId, applicationIds)
+                .eq(OaApprovalFlowAudit::getUserId, userId)
+                .list().stream().collect(Collectors.toMap(OaApprovalFlowAudit::getApprovalApplicationId, e -> e));
         for (OaApprovalApplications approvalApplication : approvalApplications) {
             ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO();
             approvalTodoVO.setReason(approvalApplication.getReason());
-            approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus());
+            OaApprovalFlowAudit approvalFlowAudit = auditMap.get(approvalApplication.getId());
+            if(approvalFlowAudit.getApprovalStatus()!=null){
+                approvalTodoVO.setApprovalStatus(approvalFlowAudit.getApprovalStatus()?2:3);
+            }else{
+                approvalTodoVO.setApprovalStatus(1);
+            }
             approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason());
             approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory());
             switch (approvalTodoVO.getApprovalCategory()){
@@ -371,7 +380,8 @@
         Map<Long, SysUser> userMap = sysUserService.selectAllList().stream().collect(Collectors.toMap(SysUser::getUserId, e -> e));
         Map<Integer, TDept> deptMap = deptService.list().stream().collect(Collectors.toMap(TDept::getId, e -> e));
         Map<Integer, OaApproval> approvalMap = approvalService.list().stream().collect(Collectors.toMap(OaApproval::getId, e -> e));
-        List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list();
+        List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery()
+                .orderByDesc(OaApprovalApplications::getCreateTime).in(OaApprovalApplications::getId, applicationIds).list();
         for (OaApprovalApplications approvalApplication : approvalApplications) {
             ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO();
             approvalTodoVO.setReason(approvalApplication.getReason());
@@ -569,6 +579,11 @@
                 .eq(OaApprovalFlowNode::getStatus,1)
                 .orderByAsc(OaApprovalFlowNode::getSortOrder).list();
         if (dto.getApprovalStatus() == 1) {
+            // 删除同节点待办事项
+            approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>()
+                    .ne(OaApprovalTodo::getUserId,userId)
+                    .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId())
+                    .eq(OaApprovalTodo::getFlowNodeId, currentFlowNodeId));
             // 判断当前是否处于最后一个节点
             if (approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(approvalFlowNodes.size() - 1).getId())) {
                 // 审批通过 审批流程结束

--
Gitblit v1.7.1