From 9cbad80abaabd430de6a9739fb2c898d3b10193a Mon Sep 17 00:00:00 2001
From: 青城 <1662047068@qq.com>
Date: 星期四, 10 七月 2025 16:58:24 +0800
Subject: [PATCH] 协调审批对接修改后

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 50 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index 81af66c..5201305 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -30,13 +30,14 @@
 
 
     @Override
-    public void initApproveNodes(String id) {
+    public void initApproveNodes(String id,int deleteFlag) {
         //绉熸埛id
         Long tenantId = SecurityUtils.getLoginUser().getTenantId();
 
         ApproveProcess approve = approveProcessService.getApproveById(id);
         String[] names = approve.getApproveUserNames().split(",");
         Long approveId = approve.getId();
+
         for (int i = 0; i < names.length; i++) {
             ApproveNode approveNode = new ApproveNode();
             approveNode.setApproveProcessId(approveId);
@@ -45,7 +46,12 @@
             approveNode.setApproveNodeTime(new Date());
             approveNode.setApproveNodeStatus(0);
             approveNode.setTenantId(tenantId);
-            approveNode.setDeleteFlag(0);
+            approveNode.setDeleteFlag(deleteFlag);
+            approveNode.setApproveNodeReason(null);
+            approveNode.setApproveNodeRemark("0");
+            if(i==0){
+                approveNode.setApproveNodeRemark("1");
+            }
             approveNodeMapper.insert(approveNode);
         }
     }
@@ -57,6 +63,8 @@
 
         LambdaQueryWrapper<ApproveNode> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ApproveNode::getApproveProcessId, approveId);
+        queryWrapper.eq(ApproveNode::getDeleteFlag, 0);
+
         List<ApproveNode> list = list(queryWrapper);
         // 鎸夌収 approveNodeOrder 瀛楁鍗囧簭鎺掑簭
         list.sort(Comparator.comparingInt(ApproveNode::getApproveNodeOrder));
@@ -73,21 +81,58 @@
             ApproveProcess approveProcess = approveProcessService.getBaseMapper().selectById(approveProcessId);
             approveProcess.setApproveOverTime(new Date());
             approveProcess.setApproveStatus(3);
+            //璁剧疆褰撳墠瀹℃壒浜轰负绗竴涓�
+            approveProcess.setApproveUserCurrentId(Long.valueOf(approveProcess.getApproveUserIds().split(",")[0]));
+            approveProcess.setApproveUserCurrentName(approveProcess.getApproveUserNames().split(",")[0]);
             approveProcessService.saveOrUpdate(approveProcess);
 
             //瀹℃壒鑺傜偣鐘舵�佹敼鍙�
-            initApproveNodes(approveProcess.getApproveId());
+            updateApproveNodes(approveProcess.getApproveId(),1);
+            initApproveNodes(approveProcess.getApproveId(),0);
 
             return;
         }
-        //鏇存柊瀹℃壒娴佺▼
+        //鏇存柊瀹℃壒娴佺▼ 褰撳墠瀹℃壒浜轰慨鏀�
          approveProcessService.updateApproveProcessStatus(approveNode);
 
-        //瀹℃壒娴佺▼褰撳墠瀹℃壒浜轰慨鏀�
+        //瀹℃壒娴佺▼ 鑺傜偣鐘舵�佹敼鍙�
         ApproveNode node = getById(approveNode.getId());
+        node.setApproveNodeRemark("0");
         node.setApproveNodeTime(new Date());
+        node.setApproveNodeReason(approveNode.getApproveNodeReason());
         node.setApproveNodeStatus(approveNode.getApproveNodeStatus());
         approveNodeMapper.updateById(node);
+
+        //涓嬩竴涓妭鐐圭姸鎬佹敼鍙�
+        ApproveNode node1 = approveNodeMapper.selectById(approveNode.getId());
+        Long approveProcessId = node1.getApproveProcessId();
+        ApproveProcess approveProcess = approveProcessService.getBaseMapper().selectById(approveProcessId);
+        int length = approveProcess.getApproveUserIds().split(",").length;
+
+        //姝ゆ椂鏄渶鍚庝竴涓妭鐐逛簡
+        if (length==node.getApproveNodeOrder()){
+            return;
+        }
+
+        LambdaQueryWrapper<ApproveNode> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ApproveNode::getApproveNodeOrder, node.getApproveNodeOrder()+1);
+        queryWrapper.eq(ApproveNode::getApproveProcessId, node.getApproveProcessId());
+        queryWrapper.eq(ApproveNode::getDeleteFlag, 0);
+        ApproveNode nextNode = getOne(queryWrapper);
+        nextNode.setApproveNodeRemark("1");
+        approveNodeMapper.updateById(nextNode);
+    }
+
+    private void updateApproveNodes(String id, int delFlag) {
+        ApproveProcess approve = approveProcessService.getApproveById(id);
+        Long approveId = approve.getId();
+        LambdaQueryWrapper<ApproveNode> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ApproveNode::getApproveProcessId, approveId);
+        List<ApproveNode> list = list(queryWrapper);
+        for (ApproveNode approveNode : list) {
+            approveNode.setDeleteFlag(delFlag);
+            approveNodeMapper.updateById(approveNode);
+        }
     }
 
 }

--
Gitblit v1.9.3