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 | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 50 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 81af66c..5201305 100644 --- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java +++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java @@ -30,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); @@ -45,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); } } @@ -57,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)); @@ -73,21 +81,58 @@ 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); //瀹℃壒鑺傜偣鐘舵�佹敼鍙� - initApproveNodes(approveProcess.getApproveId()); + updateApproveNodes(approveProcess.getApproveId(),1); + initApproveNodes(approveProcess.getApproveId(),0); return; } - //鏇存柊瀹℃壒娴佺▼ + //鏇存柊瀹℃壒娴佺▼ 褰撳墠瀹℃壒浜轰慨鏀� approveProcessService.updateApproveProcessStatus(approveNode); - //瀹℃壒娴佺▼褰撳墠瀹℃壒浜轰慨鏀� + //瀹℃壒娴佺▼ 鑺傜偣鐘舵�佹敼鍙� ApproveNode node = getById(approveNode.getId()); + node.setApproveNodeRemark("0"); node.setApproveNodeTime(new Date()); + node.setApproveNodeReason(approveNode.getApproveNodeReason()); node.setApproveNodeStatus(approveNode.getApproveNodeStatus()); approveNodeMapper.updateById(node); + + //涓嬩竴涓妭鐐圭姸鎬佹敼鍙� + 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