fix: 80949 80943 立项变更流程节点名称特殊处理

This commit is contained in:
2024-01-17 14:23:11 +08:00
parent 82b59528fa
commit f7903bacc7
@@ -10,6 +10,10 @@ import com.jero.modules.activiti.entity.ProcessNode;
import com.jero.modules.activiti.mapper.ProcessModelNodeMapper;
import com.jero.modules.activiti.mapper.ProcessNodeMapper;
import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.esInitChange.entity.EsInitChangeConstant;
import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPApplicationCategoryEnum;
import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService;
import com.jero.modules.activiti.process.esRevision.entity.RevisionTaskNodeIdConstant;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -33,11 +37,13 @@ import java.util.stream.Collectors;
public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNode> {
@Resource
private ProcessModelNodeMapper processModelNodeMapper;
@Resource
private ProcessNodeLinkService processNodeLinkService;
@Resource
private ProcessNodeMapper processNodeMapper;
@Resource
private ProcessEsInitChangeService esInitChangeService;
public void copyNodeFromModel(String modelId, String processDefinitionId) {
LambdaQueryWrapper<ProcessModelNode> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessModelNode::getNodeType, "userTask");
@@ -120,7 +126,7 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
YesOrNoEnum.NO.getValue().equals(v.getIsSkip())
|| (YesOrNoEnum.YES.getValue().equals(v.getIsSkip()) && StringUtils.isNotBlank(v.getLinkUserIds())))
.collect(Collectors.toList());
// 制修订流程特殊处理
// 制修订流程特殊处理
if (processDefinitionId.contains(ProcessType.ES_REVISION.getProcessKey())) {
specialProcessEsRevisionEnd(processNodeList);
}
@@ -130,9 +136,34 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
processDefinitionId.contains(ProcessType.ES_ABOLISH.getProcessKey())) {
specialProcessEsMiniProcessEnd(processNodeList);
}
// 立项变更流程特殊后处理
if (processDefinitionId.contains(ProcessType.ES_INIT_CHANGE.getProcessKey())) {
specialProcessEsInitChange(processNodeList, processInstanceId);
}
return processNodeList;
}
private void specialProcessEsInitChange(List<ProcessNode> processNodeList, String processInstanceId) {
// 如果是变更分支 则需要删掉专家审批节点 并将两个节点改名
LambdaQueryWrapper<ProcessEsInitChange> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId);
List<ProcessEsInitChange> processEsInitChanges = esInitChangeService.list(wrapper);
if (CollectionUtils.isNotEmpty(processEsInitChanges)) {
ProcessEsInitChange processEsInitChange = processEsInitChanges.get(0);
if (Objects.equals(processEsInitChange.getApplicationCategory(), ESPApplicationCategoryEnum.CHANGE.getValue())) {
processNodeList.removeIf(processNode -> Objects.equals(processNode.getNodeName(), EsInitChangeConstant.EXPERT_CHECK));
processNodeList.forEach(processNode -> {
if (Objects.equals(processNode.getNodeName(), EsInitChangeConstant.MAIN_DRAFT_USER_LEADER)) {
processNode.setNodeName("发起人主管级领导审批");
}
if (Objects.equals(processNode.getNodeName(), EsInitChangeConstant.MAIN_DRAFT_USER_LEADER_LEADER)) {
processNode.setNodeName("发起人主管级上一级领导审批");
}
});
}
}
}
private void specialProcessEsMiniProcessEnd(List<ProcessNode> processNodeList) {
// 如果第三个节点有选人信息,则判断相关人员会签节点是否有人,如果没人,则删除相关人员会签节点
if (processNodeList.size() >= 3) {