From 63b8339f409a6cb095744f7b0620632cf494a3ed Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Fri, 15 Dec 2023 14:22:57 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BC=81=E6=A0=87=E7=A8=BD=E6=9F=A5?= =?UTF-8?q?=E8=AE=A1=E5=88=92):=20=E5=8F=AF=E8=B7=B3=E8=BF=87=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E4=B8=BA=E7=A9=BA=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/activiti/entity/ProcessNode.java | 9 ++++++++- .../impl/EsInspectPlanFlowServiceImpl.java | 17 +++++++++++++++++ .../activiti/service/ProcessNodeService.java | 14 +++++++++----- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessNode.java b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessNode.java index eaf2bcb8..8cab1cf7 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessNode.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessNode.java @@ -7,9 +7,10 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.jero.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import java.util.Date; import lombok.Data; +import java.util.Date; + /** *流程节点 *@author liJiaRao @@ -138,4 +139,10 @@ public class ProcessNode { @TableField(value = "is_view") @ApiModelProperty(value = "是否显示(0否,1是)") private Integer isView; + /** + * 是否可跳过节点(0否,1是) + */ + @TableField(value = "is_skip") + @ApiModelProperty(value = "是否可跳过节点(0否,1是)") + private String isSkip; } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java index cf2bd773..4dda3ec5 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java @@ -344,6 +344,23 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { saveCountersign(esInspectPlanFlowVO, map, task); // 完成任务 taskService.complete(task.getId(), map); + // 可跳过节点处理 + if (map.containsKey("pass") && (boolean) map.get("pass")){ + // 更新流程实例节点关联用户表 + processNodeLinkService.saveNodeUserLink(processAll.getProcessDefinitionId(), processAll.getProcessInstanceId(), listToString(map)); + }else if (map.containsKey("pass") && !(boolean) map.get("pass")){ + // 驳回删除可跳过节点人员信息 + ProcessNode processNode = processNodeService.getOne(new LambdaQueryWrapper() + .eq(ProcessNode::getProcessDefinitionId, processAll.getProcessDefinitionId()) + .eq(ProcessNode::getVariableName, "involveList") + .orderByDesc(ProcessNode::getCreateTime)); + processNodeLinkService.update( + new LambdaUpdateWrapper() + .eq(ProcessNodeLink::getProcessDefinitionId, processAll.getProcessDefinitionId()) + .eq(ProcessNodeLink::getProcessInstanceId, processAll.getProcessInstanceId()) + .eq(ProcessNodeLink::getProcessNodeId, processNode.getId()) + .set(ProcessNodeLink::getUserId, "")); + } // 判断是否是最后一个节点 if (isLastNode(processAll.getProcessInstanceId()) && map.containsKey("pass") && (boolean) map.get("pass")){ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java index 46ac7821..ec6fcc46 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java @@ -2,17 +2,17 @@ package com.jero.modules.activiti.service; import cn.hutool.core.collection.CollStreamUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.modules.activiti.entity.ProcessModelNode; +import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.mapper.ProcessModelNodeMapper; -import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey; +import com.jero.modules.activiti.mapper.ProcessNodeMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.jero.modules.activiti.mapper.ProcessNodeMapper; -import com.jero.modules.activiti.entity.ProcessNode; import javax.annotation.Resource; import java.util.ArrayList; @@ -106,7 +106,11 @@ public class ProcessNodeService extends ServiceImpl processNodeList = this.list(wrapper); List processNodeList = processNodeMapper.selectByIdPdIdAndPiId(processDefinitionId,processInstanceId); - + // 可跳过节点判断 + processNodeList = processNodeList.stream().filter(v -> + YesOrNoEnum.NO.getValue().equals(v.getIsSkip()) + || (YesOrNoEnum.YES.getValue().equals(v.getIsSkip()) && StringUtils.isNotBlank(v.getLinkUserIds()))) + .collect(Collectors.toList()); return processNodeList; } }