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