From 7186ed1f64b762b3558d482199a2906811d8528d Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Sat, 9 Dec 2023 13:36:24 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E8=B0=83=E6=95=B4=E5=BE=85?= =?UTF-8?q?=E5=8A=9E=E6=B6=88=E6=81=AF=E7=8A=B6=E6=80=81=E7=9A=84=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/core/engine/id/TimeBasedIdGenerator.java | 2 +- .../core/service/impl/BpmnProcessTaskServiceImpl.java | 8 ++++++-- .../listener/notice/RocketMqMessagePushEventListener.java | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/id/TimeBasedIdGenerator.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/id/TimeBasedIdGenerator.java index 959f2866d..c2748368e 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/id/TimeBasedIdGenerator.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/id/TimeBasedIdGenerator.java @@ -19,7 +19,7 @@ public class TimeBasedIdGenerator implements IdGenerator { private static final long MAX_SEQUENCE = ~(-1L << SEQUENCE_BITS); private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm"); - private static final AtomicLong sequence = new AtomicLong(0); + private static final AtomicLong sequence = new AtomicLong(1); private static volatile String lastTimestamp = ""; @Override diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java index 5805b71c5..03ee5c065 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java @@ -24,7 +24,6 @@ import cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper; import cn.axzo.workflow.core.engine.event.MessagePushEventBuilder; import cn.axzo.workflow.core.engine.event.MessagePushEventImpl; import cn.axzo.workflow.core.engine.event.MessagePushEventType; -import cn.axzo.workflow.core.engine.id.TimeBasedIdGenerator; import cn.axzo.workflow.core.service.BpmnProcessTaskService; import cn.axzo.workflow.core.service.converter.BpmnHistoricAttachmentConverter; import cn.axzo.workflow.core.service.converter.BpmnHistoricCommentConverter; @@ -41,6 +40,7 @@ import org.flowable.bpmn.model.BpmnModel; import org.flowable.bpmn.model.FlowElement; import org.flowable.bpmn.model.UserTask; import org.flowable.common.engine.api.delegate.event.FlowableEventDispatcher; +import org.flowable.common.engine.impl.cfg.IdGenerator; import org.flowable.common.engine.impl.identity.Authentication; import org.flowable.engine.HistoryService; import org.flowable.engine.ManagementService; @@ -57,6 +57,7 @@ import org.flowable.engine.runtime.ProcessInstance; import org.flowable.engine.task.Attachment; import org.flowable.engine.task.Comment; import org.flowable.form.api.FormInfo; +import org.flowable.spring.SpringProcessEngineConfiguration; import org.flowable.task.api.Task; import org.flowable.task.api.TaskQuery; import org.flowable.task.api.history.HistoricTaskInstance; @@ -148,6 +149,8 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { private BpmnHistoricAttachmentConverter attachmentConverter; @Resource private ManagementService managementService; + @Resource + private SpringProcessEngineConfiguration springProcessEngineConfiguration; @Override public BpmPageResult getTodoTaskPage(BpmnTaskPageSearchDTO dto) { @@ -417,7 +420,8 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { TaskEntity task = null; if (parentTask != null) { //1.生成新的工作流子任务 - task = (TaskEntity) taskService.newTask(new TimeBasedIdGenerator().getNextId()); + IdGenerator idGenerator = springProcessEngineConfiguration.getIdGenerator(); + task = (TaskEntity) taskService.newTask(idGenerator.getNextId()); task.setCategory(parentTask.getCategory()); task.setDescription(parentTask.getDescription()); task.setTenantId(parentTask.getTenantId()); 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 f41400b77..180f09fa6 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 @@ -278,7 +278,7 @@ public class RocketMqMessagePushEventListener implements BpmnMessagePushEventLis return; } eventProducer.send(Event.builder() - .shardingKey(dto.getTemplateId()) + .shardingKey(dto.getProcessInstanceId()) .eventCode(eventEnum.getEventCode()) .targetId(dto.getProcessInstanceId()) .targetType(eventEnum.getTag())