fix: scc流程人员信息左侧节点修正

This commit is contained in:
2024-07-18 10:04:13 +08:00
parent d55ddecc67
commit b7e9f7d363
2 changed files with 27 additions and 28 deletions
@@ -8,13 +8,8 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.util.MessageUtils; import com.jero.common.util.MessageUtils;
import com.jero.modules.activiti.entity.ProcessModelNode; 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.ProcessNodeService;
import com.jero.modules.activiti.service.ProcessModelNodeService; import com.jero.modules.activiti.service.ProcessModelNodeService;
import com.jero.modules.activiti.util.CreatedTools;
import com.jero.modules.activiti.vo.AddTaskVO; import com.jero.modules.activiti.vo.AddTaskVO;
import com.jero.common.api.vo.ResultCommon; import com.jero.common.api.vo.ResultCommon;
import io.swagger.annotations.Api; 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.constants.ModelDataJsonConstants;
import org.activiti.editor.language.json.converter.BpmnJsonConverter; import org.activiti.editor.language.json.converter.BpmnJsonConverter;
import org.activiti.engine.*; 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.repository.*;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -1,15 +1,17 @@
package com.jero.modules.activiti.service; package com.jero.modules.activiti.service;
import cn.hutool.core.collection.CollStreamUtil; import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.YesOrNoEnum; 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.ProcessModelNode;
import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.entity.ProcessNode;
import com.jero.modules.activiti.mapper.ProcessModelNodeMapper; import com.jero.modules.activiti.mapper.ProcessModelNodeMapper;
import com.jero.modules.activiti.mapper.ProcessNodeMapper; import com.jero.modules.activiti.mapper.ProcessNodeMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@@ -21,6 +23,9 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; 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 * @author liJiaRao
* @date 2023-09-26 15:12 * @date 2023-09-26 15:12
@@ -34,6 +39,12 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
@Resource @Resource
private ProcessNodeMapper processNodeMapper; private ProcessNodeMapper processNodeMapper;
@Resource
private RuntimeService runtimeService;
@Resource
private ProcessApprovalRecordService parService;
public void copyNodeFromModel(String modelId, String processDefinitionId) { public void copyNodeFromModel(String modelId, String processDefinitionId) {
LambdaQueryWrapper<ProcessModelNode> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessModelNode> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessModelNode::getNodeType, "userTask"); 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())) processNodeList = processNodeList.stream().filter(v -> !"123".equals(v.getVariableName()))
.collect(Collectors.toList()); .collect(Collectors.toList());
specialProcessScc(processNodeList, processInstanceId);
return processNodeList; return processNodeList;
} }
private void specialProcessEsRecheck(List<ProcessNode> processNodeList, String processInstanceId) { private void specialProcessScc(List<ProcessNode> processNodeList, String processInstanceId) {
// 如果有标准化发起节点,但是没有人员,则删除标准化发起节点 // 如果没分发 则不显示 主排查人单线审核 主排查人汇总节点
ProcessNode firstNode = processNodeList.get(0); String mainInstanceId = (String) runtimeService.getVariable(processInstanceId, ActivitiCommon.MAIN_INSTANCE_ID);
ProcessNode secondNode = processNodeList.get(1); boolean distribute = (boolean) runtimeService.getVariable(mainInstanceId, DISTRIBUTE);
if (StrUtil.isNotBlank(secondNode.getLinkUserIds())) { if (!distribute) {
if (StrUtil.isBlank(firstNode.getLinkUserIds())) { processNodeList.removeIf( v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_APPROVAL)
processNodeList.remove(0); || v.getXmlNodeId().equals(MAIN_CHECK_USER_COLLECT));
}
} }
} // 判断有没有 主排查人重新分批下发 节点
LambdaQueryWrapper<ProcessApprovalRecord> parWrapper = new LambdaQueryWrapper<>();
private void specialProcessEsMiniProcessEnd(List<ProcessNode> processNodeList) { parWrapper.eq(ProcessApprovalRecord::getProcessInstanceId, processInstanceId);
// 如果第三个节点有选人信息,则判断相关人员会签节点是否有人,如果没人,则删除相关人员会签节点 parWrapper.eq(ProcessApprovalRecord::getNodeId, MAIN_CHECK_USER_REDISTRIBUTE);
if (processNodeList.size() >= 3) { List<ProcessApprovalRecord> list = parService.list(parWrapper);
ProcessNode processNode = processNodeList.get(2); if (CollectionUtils.isEmpty(list)) {
if (StrUtil.isNotBlank(processNode.getLinkUserIds())) { processNodeList.removeIf( v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_REDISTRIBUTE));
ProcessNode processNode1 = processNodeList.get(1);
if (StrUtil.isBlank(processNode1.getLinkUserIds())) {
processNodeList.remove(1);
}
}
} }
} }
} }