fix: scc流程人员信息左侧节点修正
This commit is contained in:
@@ -8,13 +8,8 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.util.MessageUtils;
|
||||
import com.jero.modules.activiti.entity.ProcessModelNode;
|
||||
import com.jero.modules.activiti.listener.CompleteListener;
|
||||
import com.jero.modules.activiti.listener.CreateListener;
|
||||
import com.jero.modules.activiti.listener.EndListener;
|
||||
import com.jero.modules.activiti.listener.StartListener;
|
||||
import com.jero.modules.activiti.service.ProcessNodeService;
|
||||
import com.jero.modules.activiti.service.ProcessModelNodeService;
|
||||
import com.jero.modules.activiti.util.CreatedTools;
|
||||
import com.jero.modules.activiti.vo.AddTaskVO;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -28,8 +23,6 @@ import org.activiti.bpmn.model.Process;
|
||||
import org.activiti.editor.constants.ModelDataJsonConstants;
|
||||
import org.activiti.editor.language.json.converter.BpmnJsonConverter;
|
||||
import org.activiti.engine.*;
|
||||
import org.activiti.engine.delegate.BaseExecutionListener;
|
||||
import org.activiti.engine.delegate.TaskListener;
|
||||
import org.activiti.engine.repository.*;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
+27
-21
@@ -1,15 +1,17 @@
|
||||
package com.jero.modules.activiti.service;
|
||||
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
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.common.ActivitiCommon;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
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.mapper.ProcessNodeMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@@ -21,6 +23,9 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.jero.modules.activiti.common.ActivitiCommon.*;
|
||||
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.*;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2023-09-26 15:12
|
||||
@@ -34,6 +39,12 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
|
||||
@Resource
|
||||
private ProcessNodeMapper processNodeMapper;
|
||||
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
|
||||
@Resource
|
||||
private ProcessApprovalRecordService parService;
|
||||
|
||||
public void copyNodeFromModel(String modelId, String processDefinitionId) {
|
||||
LambdaQueryWrapper<ProcessModelNode> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessModelNode::getNodeType, "userTask");
|
||||
@@ -114,30 +125,25 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
|
||||
// 过滤掉自动处理任务节点
|
||||
processNodeList = processNodeList.stream().filter(v -> !"123".equals(v.getVariableName()))
|
||||
.collect(Collectors.toList());
|
||||
specialProcessScc(processNodeList, processInstanceId);
|
||||
return processNodeList;
|
||||
}
|
||||
|
||||
private void specialProcessEsRecheck(List<ProcessNode> processNodeList, String processInstanceId) {
|
||||
// 如果有标准化发起节点,但是没有人员,则删除标准化发起节点
|
||||
ProcessNode firstNode = processNodeList.get(0);
|
||||
ProcessNode secondNode = processNodeList.get(1);
|
||||
if (StrUtil.isNotBlank(secondNode.getLinkUserIds())) {
|
||||
if (StrUtil.isBlank(firstNode.getLinkUserIds())) {
|
||||
processNodeList.remove(0);
|
||||
}
|
||||
private void specialProcessScc(List<ProcessNode> processNodeList, String processInstanceId) {
|
||||
// 如果没分发 则不显示 主排查人单线审核 主排查人汇总节点
|
||||
String mainInstanceId = (String) runtimeService.getVariable(processInstanceId, ActivitiCommon.MAIN_INSTANCE_ID);
|
||||
boolean distribute = (boolean) runtimeService.getVariable(mainInstanceId, DISTRIBUTE);
|
||||
if (!distribute) {
|
||||
processNodeList.removeIf( v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_APPROVAL)
|
||||
|| v.getXmlNodeId().equals(MAIN_CHECK_USER_COLLECT));
|
||||
}
|
||||
}
|
||||
|
||||
private void specialProcessEsMiniProcessEnd(List<ProcessNode> processNodeList) {
|
||||
// 如果第三个节点有选人信息,则判断相关人员会签节点是否有人,如果没人,则删除相关人员会签节点
|
||||
if (processNodeList.size() >= 3) {
|
||||
ProcessNode processNode = processNodeList.get(2);
|
||||
if (StrUtil.isNotBlank(processNode.getLinkUserIds())) {
|
||||
ProcessNode processNode1 = processNodeList.get(1);
|
||||
if (StrUtil.isBlank(processNode1.getLinkUserIds())) {
|
||||
processNodeList.remove(1);
|
||||
}
|
||||
}
|
||||
// 判断有没有 主排查人重新分批下发 节点
|
||||
LambdaQueryWrapper<ProcessApprovalRecord> parWrapper = new LambdaQueryWrapper<>();
|
||||
parWrapper.eq(ProcessApprovalRecord::getProcessInstanceId, processInstanceId);
|
||||
parWrapper.eq(ProcessApprovalRecord::getNodeId, MAIN_CHECK_USER_REDISTRIBUTE);
|
||||
List<ProcessApprovalRecord> list = parService.list(parWrapper);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
processNodeList.removeIf( v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_REDISTRIBUTE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user