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; } }