From 5c8628ad86af02286454f02c15decca24158a1c5 Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Sat, 2 Aug 2025 17:00:08 +0800 Subject: [PATCH] =?UTF-8?q?fix(qms):=20=E5=90=AF=E5=8A=A8=E4=B8=8D?= =?UTF-8?q?=E5=90=88=E6=A0=BC=E8=AF=84=E5=AE=A1=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 启动不合格评审流程,推动工作流异步线程时正确传递租户id - 在启动不合格评审流程时,捕获当前租户 ID - 使用 Dubbo 附件机制传递租户 ID 到异步任务 - 优化了多租户环境下的流程启动和任务完成逻辑 --- .../qms/service/impl/QcPDAServiceImpl.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcPDAServiceImpl.java b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcPDAServiceImpl.java index b8f329d..d0215bb 100644 --- a/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcPDAServiceImpl.java +++ b/ruoyi-modules/hwmom-qms/src/main/java/org/dromara/qms/service/impl/QcPDAServiceImpl.java @@ -10,6 +10,8 @@ import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.tenant.helper.TenantHelper; +import org.apache.dubbo.rpc.RpcContext; import org.dromara.pda.api.RemotePdaMesApiService; import org.dromara.pda.api.model.ProdQmsPlanDetail; import org.dromara.pda.api.model.bo.GenerateInspectionTaskBo; @@ -345,12 +347,18 @@ public class QcPDAServiceImpl implements IQcPDAService { reviewBo.setProcessInstanceId(processInstanceId);// 流程实例ID qcUnqualifiedReviewService.updateByBo(reviewBo); + // 捕获当前租户ID + final String currentTenantId = TenantHelper.getTenantId(); //异步推动流程 final Long finalTaskId = taskId; - CompletableFuture.runAsync(TtlRunnable.get(() -> { - RemoteCompleteTask completeTask = new RemoteCompleteTask(); - completeTask.setTaskId(finalTaskId); - completeTask.setMessage("启动不合格评审,处置类型: " + dispositionType); + CompletableFuture.runAsync(TtlRunnable.get(() -> { + + // 设置Dubbo附件传递租户ID + RpcContext.getContext().setAttachment("tenantId", currentTenantId); + + RemoteCompleteTask completeTask = new RemoteCompleteTask(); + completeTask.setTaskId(finalTaskId); + completeTask.setMessage("启动不合格评审,处置类型: " + dispositionType); // 设置消息类型 List messageTypes = new ArrayList<>();