From 2b83b077740ccf339081e007d7818b4fbe252043 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Thu, 18 Sep 2025 14:24:53 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat(REQ-4100)=20-=20=E6=94=AF=E6=92=91?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E8=8A=82=E7=82=B9=E6=93=8D=E4=BD=9C=E5=9B=9E?= =?UTF-8?q?=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/bpmn/BpmnProcessTaskController.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java index f09c635b0..f90b4cf13 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java @@ -109,7 +109,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp if (!StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getTaskId())) { throw new WorkflowEngineException(TASK_OPERATION_PARAM_INVALID); } - if(!StringUtils.hasText(dto.getTaskId())) { + if (!StringUtils.hasText(dto.getTaskId())) { dto.setTaskId(bpmnProcessTaskService.findTaskIdByInstanceIdAndPersonId(dto.getProcessInstanceId(), dto.getApprover().getPersonId())); } List tempAttachments = ListUtils.defaultIfNull(dto.getAttachmentList(), new ArrayList<>()); @@ -135,7 +135,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp if (!StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getTaskId())) { throw new WorkflowEngineException(TASK_OPERATION_PARAM_INVALID); } - if(!StringUtils.hasText(dto.getTaskId())) { + if (!StringUtils.hasText(dto.getTaskId())) { dto.setTaskId(bpmnProcessTaskService.findTaskIdByInstanceIdAndPersonId(dto.getProcessInstanceId(), dto.getApprover().getPersonId())); } List tempAttachments = ListUtils.defaultIfNull(dto.getAttachmentList(), new ArrayList<>()); @@ -196,7 +196,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp if (!StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getTaskId())) { throw new WorkflowEngineException(TASK_OPERATION_PARAM_INVALID); } - if(!StringUtils.hasText(dto.getTaskId())) { + if (!StringUtils.hasText(dto.getTaskId()) && StringUtils.hasText(dto.getApprover().getPersonId())) { dto.setTaskId(bpmnProcessTaskService.findTaskIdByInstanceIdAndPersonId(dto.getProcessInstanceId(), dto.getApprover().getPersonId())); } populateUsersAvatar(dto.getApprover()); @@ -229,7 +229,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp if (!StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getTaskId())) { throw new WorkflowEngineException(TASK_OPERATION_PARAM_INVALID); } - if(!StringUtils.hasText(dto.getTaskId())) { + if (!StringUtils.hasText(dto.getTaskId())) { dto.setTaskId(bpmnProcessTaskService.findTaskIdByInstanceIdAndPersonId(dto.getProcessInstanceId(), dto.getApprover().getPersonId())); } populateUsersAvatar(dto.getApprover()); @@ -263,7 +263,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp if (!StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getTaskId())) { throw new WorkflowEngineException(TASK_OPERATION_PARAM_INVALID); } - if(!StringUtils.hasText(dto.getTaskId())) { + if (!StringUtils.hasText(dto.getTaskId())) { dto.setTaskId(bpmnProcessTaskService.findTaskIdByInstanceIdAndPersonId(dto.getProcessInstanceId(), dto.getOriginAssigner().getPersonId())); } // 填充头像 @@ -310,7 +310,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp if (!StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getTaskId())) { throw new WorkflowEngineException(TASK_OPERATION_PARAM_INVALID); } - if(!StringUtils.hasText(dto.getTaskId())) { + if (!StringUtils.hasText(dto.getTaskId())) { dto.setTaskId(bpmnProcessTaskService.findTaskIdByInstanceIdAndPersonId(dto.getProcessInstanceId(), dto.getOriginAssigner().getPersonId())); } // 填充头像 @@ -334,7 +334,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp if (!StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getTaskId())) { throw new WorkflowEngineException(TASK_OPERATION_PARAM_INVALID); } - if(!StringUtils.hasText(dto.getTaskId())) { + if (!StringUtils.hasText(dto.getTaskId())) { dto.setTaskId(bpmnProcessTaskService.findTaskIdByInstanceIdAndPersonId(dto.getProcessInstanceId(), dto.getOriginAssigner().getPersonId())); } populateUsersAvatar(dto.getOriginAssigner()); From b17582842d1076ae6ae262fb1bf571960a079976 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Thu, 18 Sep 2025 14:58:38 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat(REQ-4100)=20-=20=E6=94=AF=E6=92=91?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E8=8A=82=E7=82=B9=E6=93=8D=E4=BD=9C=E5=9B=9E?= =?UTF-8?q?=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BpmnProcessTaskServiceImpl.java | 21 ++++++------------- .../web/bpmn/BpmnProcessTaskController.java | 2 +- 2 files changed, 7 insertions(+), 16 deletions(-) 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 7e21b100e..b7e2d8907 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 @@ -5,7 +5,6 @@ import cn.axzo.workflow.common.enums.BpmnCountersignTypeEnum; import cn.axzo.workflow.common.enums.BpmnFlowNodeType; import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum; import cn.axzo.workflow.common.exception.WorkflowEngineException; -import cn.axzo.workflow.common.model.request.bpmn.BpmnNoticeConf; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnNodeBackSystemOperateDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnOptionalNodeDTO; import cn.axzo.workflow.common.model.request.bpmn.task.BpmnRobotTaskCompleteDTO; @@ -51,9 +50,6 @@ import cn.axzo.workflow.core.engine.cmd.CustomResetTaskApproversAsyncCmd; import cn.axzo.workflow.core.engine.cmd.CustomResetTaskApproversCmd; import cn.axzo.workflow.core.engine.cmd.CustomTransferUserTaskAsyncCmd; import cn.axzo.workflow.core.engine.cmd.CustomTransferUserTaskCmd; -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.repository.entity.ExtAxHiTaskInst; import cn.axzo.workflow.core.service.BpmnProcessDefinitionService; import cn.axzo.workflow.core.service.BpmnProcessTaskService; @@ -65,15 +61,12 @@ import cn.axzo.workflow.core.service.converter.BpmnTaskConverter; import cn.axzo.workflow.core.service.converter.BpmnTaskDonePageItemConverter; import cn.axzo.workflow.core.service.converter.BpmnTaskTodoPageItemConverter; import cn.hutool.core.collection.CollUtil; -import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.tuple.Pair; import org.flowable.bpmn.model.BaseElement; import org.flowable.bpmn.model.BpmnModel; import org.flowable.bpmn.model.FlowElement; -import org.flowable.bpmn.model.Process; -import org.flowable.common.engine.api.delegate.event.FlowableEventDispatcher; import org.flowable.common.engine.impl.identity.Authentication; import org.flowable.common.engine.impl.interceptor.CommandExecutor; import org.flowable.engine.HistoryService; @@ -83,9 +76,6 @@ import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.history.HistoricProcessInstanceQuery; -import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl; -import org.flowable.engine.impl.util.CommandContextUtil; -import org.flowable.engine.impl.util.ProcessDefinitionUtil; import org.flowable.engine.runtime.ProcessInstance; import org.flowable.engine.task.Attachment; import org.flowable.engine.task.Comment; @@ -131,7 +121,6 @@ import static cn.axzo.workflow.common.code.BpmnTaskRespCode.FIND_TASK_BY_PERSON_ import static cn.axzo.workflow.common.code.BpmnTaskRespCode.REACHED_BACKED_MAXIMUM_NUM; import static cn.axzo.workflow.common.code.BpmnTaskRespCode.TASK_COMPLETE_FAIL_NOT_EXISTS; import static cn.axzo.workflow.common.code.BpmnTaskRespCode.TASK_HAS_BEEN_COMPLETE; -import static cn.axzo.workflow.common.code.BpmnTaskRespCode.TASK_REMIND_ERROR_NOT_EXISTS; import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_ADVICE; import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_COMMENT_EXT; import static cn.axzo.workflow.common.constant.BpmnConstants.COMMENT_TYPE_OPERATION_DESC; @@ -156,7 +145,6 @@ import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.valueO import static cn.axzo.workflow.common.util.BpmnNativeQueryUtil.countSql; import static cn.axzo.workflow.common.util.BpmnNativeQueryUtil.sqlConnectors; import static cn.axzo.workflow.core.common.utils.BpmnCollectionUtils.convertSet; -import static cn.axzo.workflow.core.common.utils.BpmnMetaParserHelper.getActivitySignature; @Service @Slf4j @@ -882,7 +870,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { @Transactional(rollbackFor = Exception.class) public void resetTaskApprovers(BpmnTaskResetApproversDTO dto) { CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor(); - if(dto.getAsync() != null && dto.getAsync()) { + if (dto.getAsync() != null && dto.getAsync()) { commandExecutor.execute(new CustomResetTaskApproversAsyncCmd(dto)); } else { commandExecutor.execute(new CustomResetTaskApproversCmd(dto.getTaskId(), dto.getAdvice(), @@ -916,8 +904,11 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { @Override public String findTaskIdByInstanceIdAndPersonId(String processInstanceId, String personId) { - List list = taskService.createTaskQuery().processInstanceId(processInstanceId) - .taskAssigneeLike("%|" + personId) + TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(processInstanceId); + if (StringUtils.hasText(personId)) { + taskQuery.taskAssigneeLike("%|" + personId); + } + List list = taskQuery .active() .list(); if (CollectionUtils.isEmpty(list) || list.size() > 1) { diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java index f90b4cf13..29b7a051b 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/web/bpmn/BpmnProcessTaskController.java @@ -196,7 +196,7 @@ public class BpmnProcessTaskController extends BasicPopulateAvatarController imp if (!StringUtils.hasText(dto.getProcessInstanceId()) && !StringUtils.hasText(dto.getTaskId())) { throw new WorkflowEngineException(TASK_OPERATION_PARAM_INVALID); } - if (!StringUtils.hasText(dto.getTaskId()) && StringUtils.hasText(dto.getApprover().getPersonId())) { + if (!StringUtils.hasText(dto.getTaskId())) { dto.setTaskId(bpmnProcessTaskService.findTaskIdByInstanceIdAndPersonId(dto.getProcessInstanceId(), dto.getApprover().getPersonId())); } populateUsersAvatar(dto.getApprover()); From dc11b8c994da6ae21daf735607e92697e3f834b5 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Sun, 28 Sep 2025 18:12:10 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat(REQ-4100)=20-=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E7=B4=A2=E5=BC=95=E7=9A=84=E5=88=B7=E6=96=B0=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/axzo/workflow/es/model/ProcessInstanceDocument.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessInstanceDocument.java b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessInstanceDocument.java index cf49db62c..048a94e37 100644 --- a/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessInstanceDocument.java +++ b/workflow-engine-elasticsearch/src/main/java/cn/axzo/workflow/es/model/ProcessInstanceDocument.java @@ -24,7 +24,7 @@ import static org.dromara.easyes.annotation.rely.Analyzer.IK_MAX_WORD; */ @Data @Settings(settingsProvider = CustomIndexSettingProvider.class, replicasNum = 1, shardsNum = 1) -@IndexName(value = "process_instance_document", keepGlobalPrefix = true, refreshPolicy = RefreshPolicy.IMMEDIATE) +@IndexName(value = "process_instance_document", keepGlobalPrefix = true, refreshPolicy = RefreshPolicy.NONE) @Join(nodes = {@Node(parentClass = ProcessInstanceDocument.class, parentAlias = "process_instance_document", childClasses = {ProcessTaskDocument.class}, childAliases = {"process_task_document"})}) public class ProcessInstanceDocument {