Merge branch 'feature/REQ-5965' into dev
This commit is contained in:
commit
f6847ad087
@ -1,10 +1,17 @@
|
||||
package cn.axzo.workflow.core.listener;
|
||||
|
||||
import cn.axzo.workflow.common.constant.BpmnConstants;
|
||||
import cn.axzo.workflow.core.common.context.OperationContext;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.azxo.framework.common.constatns.Constants.CTX_LOG_ID_MDC;
|
||||
|
||||
/**
|
||||
@ -43,4 +50,31 @@ public abstract class AbstractBpmnEventListener<T extends OperationContext> impl
|
||||
}
|
||||
return processDefinitionId.split(":")[0];
|
||||
}
|
||||
|
||||
public static Map<String, Object> removeBpmnConstantsVariables(Map<String, Object> originVariables) {
|
||||
// 定义多个正则表达式规则
|
||||
List<String> regexPatterns = Arrays.asList(
|
||||
"^" + BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_INFO, // 以 "" 开头
|
||||
"^" + BpmnConstants.INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT,
|
||||
"^" + BpmnConstants.TASK_COMPLETE_OPERATION_TYPE,
|
||||
"^" + BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO,
|
||||
"_old$", // 以 "_old" 结尾
|
||||
"deprecated|obsolete" // 包含 "deprecated" 或 "obsolete"
|
||||
);
|
||||
|
||||
// 预编译正则表达式,提升性能
|
||||
List<Pattern> patterns = regexPatterns.stream()
|
||||
.map(Pattern::compile)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 使用 Stream API 和正则进行过滤
|
||||
Map<String, Object> filteredMap = originVariables.entrySet().stream()
|
||||
.filter(entry -> patterns.stream()
|
||||
.noneMatch(pattern -> pattern.matcher(entry.getKey()).find()))
|
||||
.collect(Collectors.toMap(
|
||||
Map.Entry::getKey,
|
||||
Map.Entry::getValue
|
||||
));
|
||||
return filteredMap;
|
||||
}
|
||||
}
|
||||
|
||||
@ -178,7 +178,7 @@ public class RocketMqBpmActivityEvent_100_Listener extends AbstractBpmnEventList
|
||||
if (Objects.nonNull(processInstance)) {
|
||||
dto.setProcessDefinitionKey(processInstance.getProcessDefinitionKey());
|
||||
dto.setBusinessKey(processInstance.getBusinessKey());
|
||||
dto.setVariables(processInstance.getProcessVariables());
|
||||
dto.setVariables(removeBpmnConstantsVariables(processInstance.getProcessVariables()));
|
||||
dto.setWorkflowEngineVersion(String.valueOf(processInstance.getProcessVariables()
|
||||
.getOrDefault(WORKFLOW_ENGINE_VERSION, FLOW_SERVER_VERSION_121)));
|
||||
} else {
|
||||
|
||||
@ -26,7 +26,6 @@ import org.flowable.engine.HistoryService;
|
||||
import org.flowable.engine.TaskService;
|
||||
import org.flowable.engine.impl.util.CommandContextUtil;
|
||||
import org.flowable.engine.impl.util.ProcessDefinitionUtil;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||
import org.flowable.task.service.impl.persistence.entity.TaskEntity;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@ -451,7 +450,7 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
|
||||
.setTemplateId(templateId)
|
||||
.setTaskId(event.getTaskId())
|
||||
.setReceivePersons(event.getAssigners())
|
||||
.setVariables(variables)
|
||||
.setVariables(removeBpmnConstantsVariables(variables))
|
||||
.setProcessApproveConf(event.getProcessApproveConfig())
|
||||
.setActivitySignature(activitySignature)
|
||||
.setTerminalType(terminalType);
|
||||
|
||||
@ -81,7 +81,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
||||
.setProcessDefinitionKey(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionKey())
|
||||
.setProcessDefinitionVersion(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionVersion())
|
||||
.setInitiator(initiator)
|
||||
.setVariables(((ExecutionEntityImpl) event.getEntity()).getVariables())
|
||||
.setVariables(removeBpmnConstantsVariables(((ExecutionEntityImpl) event.getEntity()).getVariables()))
|
||||
.setStartTime(((ExecutionEntityImpl) event.getEntity()).getStartTime())
|
||||
.setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId())
|
||||
.setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getBusinessKey())
|
||||
@ -117,7 +117,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
||||
.setProcessDefinitionKey(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionKey())
|
||||
.setProcessDefinitionVersion(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionVersion())
|
||||
.setInitiator(initiator)
|
||||
.setVariables(((ExecutionEntityImpl) event.getEntity()).getVariables())
|
||||
.setVariables(removeBpmnConstantsVariables(((ExecutionEntityImpl) event.getEntity()).getVariables()))
|
||||
.setStartTime(((ExecutionEntityImpl) event.getEntity()).getStartTime())
|
||||
.setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId())
|
||||
.setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getProcessInstance().getBusinessKey())
|
||||
@ -151,7 +151,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
||||
.setInitiator(initiator)
|
||||
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
||||
runtimeService.getVariable(event.getProcessInstanceId(), CLOSE_PROCESS_ASSIGNER, BpmnTaskDelegateAssigner.class))))
|
||||
.setVariables(((FlowableProcessCancelledEventImpl) event).getExecution().getVariables())
|
||||
.setVariables(removeBpmnConstantsVariables(((FlowableProcessCancelledEventImpl) event).getExecution().getVariables()))
|
||||
.setStartTime(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getStartTime())
|
||||
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
|
||||
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
|
||||
@ -192,7 +192,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
||||
.setInitiator(initiator)
|
||||
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
||||
runtimeService.getVariable(event.getProcessInstanceId(), CLOSE_PROCESS_ASSIGNER, BpmnTaskDelegateAssigner.class))))
|
||||
.setVariables(((FlowableProcessCancelledEventImpl) event).getExecution().getVariables())
|
||||
.setVariables(removeBpmnConstantsVariables(((FlowableProcessCancelledEventImpl) event).getExecution().getVariables()))
|
||||
.setStartTime(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getStartTime())
|
||||
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
|
||||
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
|
||||
@ -228,7 +228,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
||||
.setInitiator(initiator)
|
||||
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
||||
runtimeService.getVariable(event.getProcessInstanceId(), CLOSE_PROCESS_ASSIGNER, BpmnTaskDelegateAssigner.class))))
|
||||
.setVariables(((FlowableProcessCancelledEventImpl) event).getExecution().getVariables())
|
||||
.setVariables(removeBpmnConstantsVariables(((FlowableProcessCancelledEventImpl) event).getExecution().getVariables()))
|
||||
.setStartTime(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getStartTime())
|
||||
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
|
||||
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
|
||||
@ -264,7 +264,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
||||
.setInitiator(initiator)
|
||||
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
||||
runtimeService.getVariable(event.getProcessInstanceId(), CLOSE_PROCESS_ASSIGNER, BpmnTaskDelegateAssigner.class))))
|
||||
.setVariables(((ExecutionEntityImpl) event.getEntity()).getVariables())
|
||||
.setVariables(removeBpmnConstantsVariables(((ExecutionEntityImpl) event.getEntity()).getVariables()))
|
||||
.setStartTime(((ExecutionEntityImpl) event.getEntity()).getStartTime())
|
||||
.setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId())
|
||||
.setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getProcessInstanceBusinessKey())
|
||||
|
||||
@ -154,7 +154,7 @@ public class RocketMqBpmnTaskEvent_102_Listener extends AbstractBpmnEventListene
|
||||
.setInitiator(BpmnTaskDelegateAssigner.toObjectCompatible(delegateTask.getVariable(INTERNAL_INITIATOR)))
|
||||
.setApprover(BpmnTaskDelegateAssigner.toObjectCompatible(
|
||||
delegateTask.getVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + delegateTask.getId())))
|
||||
.setVariables(delegateTask.getVariables())
|
||||
.setVariables(removeBpmnConstantsVariables(delegateTask.getVariables()))
|
||||
.setStartTime(delegateTask.getCreateTime())
|
||||
.setTenantId(delegateTask.getTenantId())
|
||||
.setBusinessKey(processInstance.getBusinessKey())
|
||||
|
||||
Loading…
Reference in New Issue
Block a user