diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java index 952d7a748..a0bdb86cb 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/notice/RocketMqMessagePushEventListener.java @@ -268,12 +268,16 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener< throw new NullPointerException("event不能为空"); } List assigners = event.getAssigners(); + if (CollectionUtils.isEmpty(assigners) || assigners.size() <= MQ_ASSIGNER_BATCH_SIZE) { + return Collections.singletonList(build(templateId, type, event, collectionVariable(event))); + } List slice = new ArrayList<>(); Map objectMap = collectionVariable(event); int startIndex = 0; do { List batchAssigners = assigners.subList(startIndex, Integer.min(startIndex + MQ_ASSIGNER_BATCH_SIZE, assigners.size())); - MessagePushEventImpl messagePushEvent = BeanConverter.convert(event, MessagePushEventImpl.class); + MessagePushEventImpl messagePushEvent = new MessagePushEventImpl(event.getType()); + BeanConverter.convert(event, messagePushEvent); messagePushEvent.setAssigner(batchAssigners); MessagePushDTO dto = build(templateId, type, messagePushEvent, objectMap); slice.add(dto);