From 81f7d381c300f6b0a22c00f98517b2619d0094f4 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期三, 23 七月 2025 16:00:27 +0800 Subject: [PATCH] yys 释放javaWork资源路径 --- src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java | 111 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 92 insertions(+), 19 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..201ccb5 100644 --- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java +++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java @@ -1,19 +1,21 @@ package com.ruoyi.approve.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.approve.mapper.ApproveNodeMapper; +import com.ruoyi.approve.mapper.ApproveProcessMapper; 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.common.utils.SecurityUtils; -import lombok.AllArgsConstructor; +import com.ruoyi.project.system.domain.SysUser; +import com.ruoyi.project.system.mapper.SysUserMapper; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; import java.util.Comparator; import java.util.Date; import java.util.List; @@ -25,50 +27,121 @@ @Autowired private ApproveNodeMapper approveNodeMapper; @Autowired - private IApproveProcessService approveProcessService; + private ApproveProcessMapper approveProcessMapper; + @Autowired + private SysUserMapper sysUserMapper; + + public ApproveProcess getApproveById(String id) { + LambdaQueryWrapper<ApproveProcess> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ApproveProcess::getApproveId, id); + queryWrapper.eq(ApproveProcess::getApproveDelete, 0); + queryWrapper.eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId()); + queryWrapper.last("limit 1"); + ApproveProcess one = approveProcessMapper.selectOne(queryWrapper); + return one; + } @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(); + public void initApproveNodes(String approveUserIds,String approveID,Long tenantId) { + Long userId = SecurityUtils.getLoginUser().getUser().getUserId(); + ApproveProcess approve = getApproveById(approveID); + String[] names = approveUserIds.split(","); + String approveId = approve.getApproveId(); for (int i = 0; i < names.length; i++) { + SysUser sysUser = sysUserMapper.selectUserById(Long.parseLong(names[i])); + if (sysUser == null) continue; ApproveNode approveNode = new ApproveNode(); approveNode.setApproveProcessId(approveId); approveNode.setApproveNodeOrder(i +1); - approveNode.setApproveNodeUser(names[i]); + approveNode.setApproveNodeUser(sysUser.getNickName()); + approveNode.setApproveNodeUserId(sysUser.getUserId()); approveNode.setApproveNodeTime(new Date()); approveNode.setApproveNodeStatus(0); approveNode.setTenantId(tenantId); approveNode.setDeleteFlag(0); + approveNode.setCreateUser(userId); + approveNode.setUpdateUser(userId); + approveNode.setCreateTime(LocalDateTime.now()); + approveNode.setUpdateTime(LocalDateTime.now()); 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); + queryWrapper.eq(ApproveNode::getApproveProcessId, id); + queryWrapper.eq(ApproveNode::getDeleteFlag, 0); + queryWrapper.eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId()); List<ApproveNode> list = list(queryWrapper); // 鎸夌収 approveNodeOrder 瀛楁鍗囧簭鎺掑簭 list.sort(Comparator.comparingInt(ApproveNode::getApproveNodeOrder)); + LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>(); + approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveId, id) + .eq(ApproveProcess::getApproveDelete, 0) + .eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId()) + .last("limit 1"); + ApproveProcess approveProcess = approveProcessMapper.selectOne(approveProcessLambdaQueryWrapper); + if(approveProcess != null && approveProcess.getApproveStatus() == 3){ + return list; + } + for (ApproveNode approveNode : list) { + if(approveNode.getApproveNodeStatus() == 1){ + continue; + } + approveNode.setIsShen(true); + break; + } return list; + } + + public void updateApproveProcessStatus(ApproveNode approveNode,Integer status) { + LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>(); + approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveId, approveNode.getApproveProcessId()) + .eq(ApproveProcess::getApproveDelete, 0) + .eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId()) + .last("limit 1"); + ApproveProcess approveProcess = approveProcessMapper.selectOne(approveProcessLambdaQueryWrapper); + if(approveProcess == null) throw new RuntimeException("瀹℃壒涓嶅瓨鍦�"); + LambdaQueryWrapper<ApproveNode> approveNodeLambdaQueryWrapper = new LambdaQueryWrapper<>(); + approveNodeLambdaQueryWrapper.eq(ApproveNode::getApproveProcessId, approveNode.getApproveProcessId()) + .eq(ApproveNode::getApproveNodeOrder, approveNode.getApproveNodeOrder() + 1) + .eq(ApproveNode::getDeleteFlag, 0) + .eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId()) + .last("limit 1"); + ApproveNode approveNode1 = approveNodeMapper.selectOne(approveNodeLambdaQueryWrapper); + approveProcess.setApproveStatus(status); + if(approveNode1 != null){ + approveProcess.setApproveUserCurrentId(approveNode.getApproveNodeUserId()); + approveProcess.setApproveUserCurrentName(approveNode1.getApproveNodeUser()); + } + approveProcessMapper.updateById(approveProcess); } @Override public void updateApproveNode(ApproveNode approveNode) { - approveProcessService.updateApproveProcessStatus(approveNode); - + // 瀹℃壒鑺傜偣鐘舵��:1鍚屾剰锛�2鎷掔粷锛�0灏氭湭瀹℃牳 + switch (approveNode.getApproveNodeStatus()){ + case 1: + updateApproveProcessStatus(approveNode, Boolean.TRUE.equals(approveNode.getIsLast()) ? 2 : 1); + break; + case 2: + updateApproveProcessStatus(approveNode, 3); + break; + default: + break; + } approveNode.setApproveNodeTime(new Date()); - approveNodeMapper.updateById(approveNode); } + @Override + public void delApproveNodeByApproveId(Long id) { + UpdateWrapper<ApproveNode> queryWrapper = new UpdateWrapper<>(); + queryWrapper.lambda().set(ApproveNode::getDeleteFlag, 1) + .eq(ApproveNode::getApproveProcessId, id); + update(queryWrapper); + } + } -- Gitblit v1.9.3