From 5f612ab2f67b2c6f6894c624a7780799526d566d Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 05 十一月 2026 20:20:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_business_新高电力' into dev_business_新高电力
---
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java | 26 +++++++++++++++++++++-----
1 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
index f7d2dd5..a7f083f 100644
--- a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
+++ b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
@@ -37,6 +37,7 @@
import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils;
import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils;
import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.SimpleModelUtils;
+import cn.iocoder.yudao.module.bpm.service.attach.BpmBusinessAttachService;
import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService;
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
@@ -124,6 +125,9 @@
@Resource
private BpmProcessIdRedisDAO processIdRedisDAO;
+ @Resource
+ private BpmBusinessAttachService businessAttachService;
+
// ========== Query 鏌ヨ鐩稿叧鏂规硶 ==========
@Override
@@ -194,9 +198,13 @@
processVariables.put(BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_START_USER_ID, loginUserId);
}
// 1.3 璇诲彇鍏跺畠鐩稿叧鏁版嵁
- ProcessDefinition processDefinition = processDefinitionService.getProcessDefinition(
- historicProcessInstance != null ? historicProcessInstance.getProcessDefinitionId()
- : reqVO.getProcessDefinitionId());
+ String processDefinitionId = historicProcessInstance != null
+ ? historicProcessInstance.getProcessDefinitionId() : reqVO.getProcessDefinitionId();
+ ProcessDefinition processDefinition = processDefinitionService.getProcessDefinition(processDefinitionId);
+ if (processDefinition == null) {
+ // 娴佺▼瀹氫箟涓嶅瓨鍦ㄦ椂杩斿洖鏄庣‘鐨勪笟鍔¢敊璇紝閬垮厤 NPE / Flowable 寮傚父鍙樻垚 500銆岀郴缁熷紓甯搞��
+ throw exception(ErrorCodeConstants.PROCESS_DEFINITION_NOT_EXISTS);
+ }
BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService
.getProcessDefinitionInfo(processDefinition.getId());
BpmnModel bpmnModel = processDefinitionService.getProcessDefinitionBpmnModel(processDefinition.getId());
@@ -389,9 +397,14 @@
Map<String, String> formFieldsPermission = getFormFieldsPermission(bpmnModel, reqVO.getActivityId(), taskId);
// 3. 鎷兼帴鏁版嵁
- return BpmProcessInstanceConvert.INSTANCE.buildApprovalDetail(bpmnModel, processDefinition,
- processDefinitionInfo, processInstance,
+ BpmApprovalDetailRespVO detailRespVO = BpmProcessInstanceConvert.INSTANCE.buildApprovalDetail(bpmnModel,
+ processDefinition, processDefinitionInfo, processInstance,
processInstanceStatus, approveNodes, todoTask, formFieldsPermission, userMap, deptMap);
+
+ // 4. 濉厖涓氬姟闄勪欢閰嶇疆锛屽疄鐜板鎵硅鎯呰嚜鍔ㄥ睍绀哄閮ㄤ笟鍔′俊鎭�
+ businessAttachService.fillBusinessForm(detailRespVO.getProcessDefinition(), processDefinition.getKey(),
+ processInstance != null ? processInstance.getBusinessKey() : null);
+ return detailRespVO;
}
/**
@@ -763,6 +776,9 @@
// 鑾峰緱娴佺▼瀹氫箟
ProcessDefinition definition = processDefinitionService
.getProcessDefinition(createReqVO.getProcessDefinitionId());
+ if (definition == null) {
+ throw exception(ErrorCodeConstants.PROCESS_DEFINITION_NOT_EXISTS);
+ }
// 鍙戣捣娴佺▼
return createProcessInstance0(userId, definition, createReqVO.getVariables(), null,
createReqVO.getStartUserSelectAssignees());
--
Gitblit v1.9.3