From bd9b6a58beb6b478ad27d645aa1cc0da99c25d7d Mon Sep 17 00:00:00 2001
From: 青城 <1662047068@qq.com>
Date: 星期三, 09 七月 2025 18:02:37 +0800
Subject: [PATCH] 协调审批

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 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
new file mode 100644
index 0000000..81af66c
--- /dev/null
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -0,0 +1,93 @@
+package com.ruoyi.approve.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.approve.mapper.ApproveNodeMapper;
+import com.ruoyi.approve.pojo.ApproveNode;
+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;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+
+@Service
+@RequiredArgsConstructor
+public class ApproveNodeServiceImpl extends ServiceImpl<ApproveNodeMapper, ApproveNode> implements IApproveNodeService {
+
+    @Autowired
+    private  ApproveNodeMapper approveNodeMapper;
+    @Autowired
+    private  IApproveProcessService approveProcessService;
+
+
+    @Override
+    public void initApproveNodes(String id) {
+        //绉熸埛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);
+            approveNode.setApproveNodeOrder(i +1);
+            approveNode.setApproveNodeUser(names[i]);
+            approveNode.setApproveNodeTime(new Date());
+            approveNode.setApproveNodeStatus(0);
+            approveNode.setTenantId(tenantId);
+            approveNode.setDeleteFlag(0);
+            approveNodeMapper.insert(approveNode);
+        }
+    }
+
+    @Override
+    public List<ApproveNode> details(String id) {
+        ApproveProcess approve = approveProcessService.getApproveById(id);
+        Long approveId = approve.getId();
+
+        LambdaQueryWrapper<ApproveNode> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ApproveNode::getApproveProcessId, approveId);
+        List<ApproveNode> list = list(queryWrapper);
+        // 鎸夌収 approveNodeOrder 瀛楁鍗囧簭鎺掑簭
+        list.sort(Comparator.comparingInt(ApproveNode::getApproveNodeOrder));
+        return list;
+    }
+
+    @Override
+    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);
+            approveProcessService.saveOrUpdate(approveProcess);
+
+            //瀹℃壒鑺傜偣鐘舵�佹敼鍙�
+            initApproveNodes(approveProcess.getApproveId());
+
+            return;
+        }
+        //鏇存柊瀹℃壒娴佺▼
+         approveProcessService.updateApproveProcessStatus(approveNode);
+
+        //瀹℃壒娴佺▼褰撳墠瀹℃壒浜轰慨鏀�
+        ApproveNode node = getById(approveNode.getId());
+        node.setApproveNodeTime(new Date());
+        node.setApproveNodeStatus(approveNode.getApproveNodeStatus());
+        approveNodeMapper.updateById(node);
+    }
+
+}

--
Gitblit v1.9.3