From c9e784140d837cb27a4f93935b08bbb739d47c8e Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期三, 13 八月 2025 17:08:14 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/pim_yys' --- src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java | 73 ++++++++++++++++++++++++++++++++---- 1 files changed, 64 insertions(+), 9 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 54c153b..d0ff36a 100644 --- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java +++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java @@ -4,19 +4,24 @@ 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.enums.FileNameType; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.other.service.impl.TempFileServiceImpl; import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.mapper.SysUserMapper; -import lombok.AllArgsConstructor; +import com.ruoyi.sales.mapper.CommonFileMapper; +import com.ruoyi.sales.pojo.CommonFile; +import com.ruoyi.sales.service.impl.CommonFileServiceImpl; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.io.IOException; import java.time.LocalDateTime; import java.util.Comparator; import java.util.Date; @@ -29,15 +34,31 @@ @Autowired private ApproveNodeMapper approveNodeMapper; @Autowired - private ApproveProcessServiceImpl approveProcessService; + private ApproveProcessMapper approveProcessMapper; @Autowired private SysUserMapper sysUserMapper; + @Autowired + private TempFileServiceImpl tempFileService; + + @Autowired + private CommonFileMapper fileMapper; + + + 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 approveUserIds,String approveID,Long tenantId) { Long userId = SecurityUtils.getLoginUser().getUser().getUserId(); - ApproveProcess approve = approveProcessService.getApproveById(approveID); + ApproveProcess approve = getApproveById(approveID); String[] names = approveUserIds.split(","); String approveId = approve.getApproveId(); for (int i = 0; i < names.length; i++) { @@ -74,11 +95,17 @@ .eq(ApproveProcess::getApproveDelete, 0) .eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId()) .last("limit 1"); - ApproveProcess approveProcess = approveProcessService.getOne(approveProcessLambdaQueryWrapper); + ApproveProcess approveProcess = approveProcessMapper.selectOne(approveProcessLambdaQueryWrapper); if(approveProcess != null && approveProcess.getApproveStatus() == 3){ return list; } for (ApproveNode approveNode : list) { + List<CommonFile> commonFiles = fileMapper.selectList(new LambdaQueryWrapper<CommonFile>() + .eq(CommonFile::getCommonId, approveNode.getId()) + .eq(CommonFile::getType, FileNameType.ApproveNode.getValue())); + if(!CollectionUtils.isEmpty(commonFiles)){ + approveNode.setUrl(commonFiles.get(0).getUrl()); + } if(approveNode.getApproveNodeStatus() == 1){ continue; } @@ -88,15 +115,43 @@ return list; } + public void updateApproveProcessStatus(ApproveNode approveNode,Integer status) throws IOException { + 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(approveNode1.getApproveNodeUserId()); + approveProcess.setApproveUserCurrentName(approveNode1.getApproveNodeUser()); + } + approveProcessMapper.updateById(approveProcess); + + // 缁戝畾闄勪欢 + if(!CollectionUtils.isEmpty(approveNode.getTempFileIds()) && approveNode.getApproveNodeStatus() == 1){ + tempFileService.migrateTempFilesToFormal(approveNode.getId(), approveNode.getTempFileIds(), FileNameType.ApproveNode.getValue()); + } + } + @Override - public void updateApproveNode(ApproveNode approveNode) { + public void updateApproveNode(ApproveNode approveNode) throws IOException { // 瀹℃壒鑺傜偣鐘舵��:1鍚屾剰锛�2鎷掔粷锛�0灏氭湭瀹℃牳 switch (approveNode.getApproveNodeStatus()){ case 1: - approveProcessService.updateApproveProcessStatus(approveNode, Boolean.TRUE.equals(approveNode.getIsLast()) ? 2 : 1); + updateApproveProcessStatus(approveNode, Boolean.TRUE.equals(approveNode.getIsLast()) ? 2 : 1); break; case 2: - approveProcessService.updateApproveProcessStatus(approveNode, 3); + updateApproveProcessStatus(approveNode, 3); break; default: break; -- Gitblit v1.9.3