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 | 74 ++++++++++++++++++++++++++++++++++--
1 files changed, 69 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 1bc54ed..5201305 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -7,6 +7,7 @@
import com.ruoyi.approve.pojo.ApproveProcess;
import com.ruoyi.approve.service.IApproveNodeService;
import com.ruoyi.approve.service.IApproveProcessService;
+import com.ruoyi.approve.vo.ApproveNodeVo;
import com.ruoyi.common.utils.SecurityUtils;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
@@ -29,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);
@@ -44,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);
}
}
@@ -56,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));
@@ -63,12 +72,67 @@
}
@Override
- public void updateApproveNode(ApproveNode approveNode) {
+ public void updateApproveNode(ApproveNodeVo approveNode) {
+ //鏌愪釜鑺傜偣瀹℃壒涓嶉�氳繃
+ if(approveNode.getApproveNodeStatus().intValue()==2){
+ //淇敼瀹℃壒娴佺▼
+ ApproveNode node = approveNodeMapper.selectById(approveNode.getId());
+ Long approveProcessId = node.getApproveProcessId();
+ 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);
+
+ //瀹℃壒鑺傜偣鐘舵�佹敼鍙�
+ updateApproveNodes(approveProcess.getApproveId(),1);
+ initApproveNodes(approveProcess.getApproveId(),0);
+
+ return;
+ }
+ //鏇存柊瀹℃壒娴佺▼ 褰撳墠瀹℃壒浜轰慨鏀�
approveProcessService.updateApproveProcessStatus(approveNode);
- approveNode.setApproveNodeTime(new Date());
+ //瀹℃壒娴佺▼ 鑺傜偣鐘舵�佹敼鍙�
+ ApproveNode node = getById(approveNode.getId());
+ node.setApproveNodeRemark("0");
+ node.setApproveNodeTime(new Date());
+ node.setApproveNodeReason(approveNode.getApproveNodeReason());
+ node.setApproveNodeStatus(approveNode.getApproveNodeStatus());
+ approveNodeMapper.updateById(node);
- approveNodeMapper.updateById(approveNode);
+ //涓嬩竴涓妭鐐圭姸鎬佹敼鍙�
+ 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