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