feat(RDMP-3845) - 调整 MQ 广播事件中的流程变量输出,过滤一些对业务无关紧要的数据
This commit is contained in:
parent
e6d260a05b
commit
f1d93a4d0f
@ -1,10 +1,17 @@
|
|||||||
package cn.axzo.workflow.core.listener;
|
package cn.axzo.workflow.core.listener;
|
||||||
|
|
||||||
|
import cn.axzo.workflow.common.constant.BpmnConstants;
|
||||||
import cn.axzo.workflow.core.common.context.OperationContext;
|
import cn.axzo.workflow.core.common.context.OperationContext;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import org.slf4j.MDC;
|
import org.slf4j.MDC;
|
||||||
import org.springframework.util.StringUtils;
|
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;
|
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];
|
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)) {
|
if (Objects.nonNull(processInstance)) {
|
||||||
dto.setProcessDefinitionKey(processInstance.getProcessDefinitionKey());
|
dto.setProcessDefinitionKey(processInstance.getProcessDefinitionKey());
|
||||||
dto.setBusinessKey(processInstance.getBusinessKey());
|
dto.setBusinessKey(processInstance.getBusinessKey());
|
||||||
dto.setVariables(processInstance.getProcessVariables());
|
dto.setVariables(removeBpmnConstantsVariables(processInstance.getProcessVariables()));
|
||||||
dto.setWorkflowEngineVersion(String.valueOf(processInstance.getProcessVariables()
|
dto.setWorkflowEngineVersion(String.valueOf(processInstance.getProcessVariables()
|
||||||
.getOrDefault(WORKFLOW_ENGINE_VERSION, FLOW_SERVER_VERSION_121)));
|
.getOrDefault(WORKFLOW_ENGINE_VERSION, FLOW_SERVER_VERSION_121)));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -26,7 +26,6 @@ import org.flowable.engine.HistoryService;
|
|||||||
import org.flowable.engine.TaskService;
|
import org.flowable.engine.TaskService;
|
||||||
import org.flowable.engine.impl.util.CommandContextUtil;
|
import org.flowable.engine.impl.util.CommandContextUtil;
|
||||||
import org.flowable.engine.impl.util.ProcessDefinitionUtil;
|
import org.flowable.engine.impl.util.ProcessDefinitionUtil;
|
||||||
import org.flowable.task.api.Task;
|
|
||||||
import org.flowable.task.api.history.HistoricTaskInstance;
|
import org.flowable.task.api.history.HistoricTaskInstance;
|
||||||
import org.flowable.task.service.impl.persistence.entity.TaskEntity;
|
import org.flowable.task.service.impl.persistence.entity.TaskEntity;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
@ -451,7 +450,7 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
|
|||||||
.setTemplateId(templateId)
|
.setTemplateId(templateId)
|
||||||
.setTaskId(event.getTaskId())
|
.setTaskId(event.getTaskId())
|
||||||
.setReceivePersons(event.getAssigners())
|
.setReceivePersons(event.getAssigners())
|
||||||
.setVariables(variables)
|
.setVariables(removeBpmnConstantsVariables(variables))
|
||||||
.setProcessApproveConf(event.getProcessApproveConfig())
|
.setProcessApproveConf(event.getProcessApproveConfig())
|
||||||
.setActivitySignature(activitySignature)
|
.setActivitySignature(activitySignature)
|
||||||
.setTerminalType(terminalType);
|
.setTerminalType(terminalType);
|
||||||
|
|||||||
@ -81,7 +81,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
|||||||
.setProcessDefinitionKey(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionKey())
|
.setProcessDefinitionKey(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionKey())
|
||||||
.setProcessDefinitionVersion(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionVersion())
|
.setProcessDefinitionVersion(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionVersion())
|
||||||
.setInitiator(initiator)
|
.setInitiator(initiator)
|
||||||
.setVariables(((ExecutionEntityImpl) event.getEntity()).getVariables())
|
.setVariables(removeBpmnConstantsVariables(((ExecutionEntityImpl) event.getEntity()).getVariables()))
|
||||||
.setStartTime(((ExecutionEntityImpl) event.getEntity()).getStartTime())
|
.setStartTime(((ExecutionEntityImpl) event.getEntity()).getStartTime())
|
||||||
.setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId())
|
.setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId())
|
||||||
.setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getBusinessKey())
|
.setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getBusinessKey())
|
||||||
@ -117,7 +117,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
|||||||
.setProcessDefinitionKey(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionKey())
|
.setProcessDefinitionKey(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionKey())
|
||||||
.setProcessDefinitionVersion(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionVersion())
|
.setProcessDefinitionVersion(((ExecutionEntityImpl) event.getEntity()).getProcessDefinitionVersion())
|
||||||
.setInitiator(initiator)
|
.setInitiator(initiator)
|
||||||
.setVariables(((ExecutionEntityImpl) event.getEntity()).getVariables())
|
.setVariables(removeBpmnConstantsVariables(((ExecutionEntityImpl) event.getEntity()).getVariables()))
|
||||||
.setStartTime(((ExecutionEntityImpl) event.getEntity()).getStartTime())
|
.setStartTime(((ExecutionEntityImpl) event.getEntity()).getStartTime())
|
||||||
.setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId())
|
.setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId())
|
||||||
.setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getProcessInstance().getBusinessKey())
|
.setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getProcessInstance().getBusinessKey())
|
||||||
@ -151,7 +151,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
|||||||
.setInitiator(initiator)
|
.setInitiator(initiator)
|
||||||
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
||||||
runtimeService.getVariable(event.getProcessInstanceId(), CLOSE_PROCESS_ASSIGNER, BpmnTaskDelegateAssigner.class))))
|
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())
|
.setStartTime(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getStartTime())
|
||||||
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
|
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
|
||||||
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
|
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
|
||||||
@ -192,7 +192,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
|||||||
.setInitiator(initiator)
|
.setInitiator(initiator)
|
||||||
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
||||||
runtimeService.getVariable(event.getProcessInstanceId(), CLOSE_PROCESS_ASSIGNER, BpmnTaskDelegateAssigner.class))))
|
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())
|
.setStartTime(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getStartTime())
|
||||||
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
|
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
|
||||||
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
|
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
|
||||||
@ -228,7 +228,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
|||||||
.setInitiator(initiator)
|
.setInitiator(initiator)
|
||||||
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
||||||
runtimeService.getVariable(event.getProcessInstanceId(), CLOSE_PROCESS_ASSIGNER, BpmnTaskDelegateAssigner.class))))
|
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())
|
.setStartTime(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getStartTime())
|
||||||
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
|
.setTenantId(((FlowableProcessCancelledEventImpl) event).getExecution().getTenantId())
|
||||||
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
|
.setBusinessKey(((FlowableProcessCancelledEventImpl) event).getExecution().getProcessInstanceBusinessKey())
|
||||||
@ -264,7 +264,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
|
|||||||
.setInitiator(initiator)
|
.setInitiator(initiator)
|
||||||
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
.setLastOperationAssigner(getContext().getLastOperationAssigner(() -> BpmnTaskDelegateAssigner.toObjectCompatible(
|
||||||
runtimeService.getVariable(event.getProcessInstanceId(), CLOSE_PROCESS_ASSIGNER, BpmnTaskDelegateAssigner.class))))
|
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())
|
.setStartTime(((ExecutionEntityImpl) event.getEntity()).getStartTime())
|
||||||
.setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId())
|
.setTenantId(((ExecutionEntityImpl) event.getEntity()).getTenantId())
|
||||||
.setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getProcessInstanceBusinessKey())
|
.setBusinessKey(((ExecutionEntityImpl) event.getEntity()).getProcessInstanceBusinessKey())
|
||||||
|
|||||||
@ -154,7 +154,7 @@ public class RocketMqBpmnTaskEvent_102_Listener extends AbstractBpmnEventListene
|
|||||||
.setInitiator(BpmnTaskDelegateAssigner.toObjectCompatible(delegateTask.getVariable(INTERNAL_INITIATOR)))
|
.setInitiator(BpmnTaskDelegateAssigner.toObjectCompatible(delegateTask.getVariable(INTERNAL_INITIATOR)))
|
||||||
.setApprover(BpmnTaskDelegateAssigner.toObjectCompatible(
|
.setApprover(BpmnTaskDelegateAssigner.toObjectCompatible(
|
||||||
delegateTask.getVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + delegateTask.getId())))
|
delegateTask.getVariable(INTERNAL_TASK_RELATION_ASSIGNEE_INFO + delegateTask.getId())))
|
||||||
.setVariables(delegateTask.getVariables())
|
.setVariables(removeBpmnConstantsVariables(delegateTask.getVariables()))
|
||||||
.setStartTime(delegateTask.getCreateTime())
|
.setStartTime(delegateTask.getCreateTime())
|
||||||
.setTenantId(delegateTask.getTenantId())
|
.setTenantId(delegateTask.getTenantId())
|
||||||
.setBusinessKey(processInstance.getBusinessKey())
|
.setBusinessKey(processInstance.getBusinessKey())
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user