From 962f78c8383e7c884ddb08c951c15e5ba6eb4cb8 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期五, 23 十月 2026 15:43:33 +0800
Subject: [PATCH] fix: 完善审批流程与业务状态校验

---
 yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java
index 7d5705b..b11af88 100644
--- a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java
+++ b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java
@@ -215,16 +215,24 @@
         if (historicProcessInstance == null) {
             throw exception(PROCESS_INSTANCE_NOT_EXISTS);
         }
-        AdminUserRespDTO startUser = adminUserApi.getUser(Long.valueOf(historicProcessInstance.getStartUserId()));
-        DeptRespDTO dept = deptApi.getDept(startUser.getDeptId());
+        // 鍙戣捣浜� / 閮ㄩ棬鍙兘涓嶅瓨鍦紙鍘嗗彶鏁版嵁銆佺敤鎴峰凡鍒犻櫎锛夛紝闇�鍋氱┖鍊间繚鎶�
+        AdminUserRespDTO startUser = adminUserApi.getUser(NumberUtils.parseLong(historicProcessInstance.getStartUserId()));
+        DeptRespDTO dept = startUser != null && startUser.getDeptId() != null
+                ? deptApi.getDept(startUser.getDeptId()) : null;
         List<HistoricTaskInstance> tasks = taskService.getFinishedTaskListByProcessInstanceIdWithoutCancel(processInstanceId);
         Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
-                convertSet(tasks, item -> Long.valueOf(item.getAssignee())));
+                convertSet(tasks, item -> NumberUtils.parseLong(item.getAssignee())));
+        UserSimpleBaseVO startUserVO = new UserSimpleBaseVO();
+        if (startUser != null) {
+            startUserVO.setNickname(startUser.getNickname());
+        }
+        if (dept != null) {
+            startUserVO.setDeptName(dept.getName());
+        }
         BpmProcessPrintDataRespVO printData = BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePrintData(
                 historicProcessInstance,
                 processDefinitionService.getProcessDefinitionInfo(historicProcessInstance.getProcessDefinitionId()),
-                tasks, userMap,
-                new UserSimpleBaseVO().setNickname(startUser.getNickname()).setDeptName(dept.getName()));
+                tasks, userMap, startUserVO);
         // 濉厖涓氬姟闄勪欢閰嶇疆锛屽疄鐜版墦鍗拌嚜鍔ㄥ睍绀哄閮ㄤ笟鍔′俊鎭�
         businessAttachService.fillBusinessForm(printData.getProcessInstance().getProcessDefinition(),
                 processDefinitionService.getProcessDefinition(historicProcessInstance.getProcessDefinitionId()).getKey(),

--
Gitblit v1.9.3