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 | 30 ++++++++++++++++++++++++------
1 files changed, 24 insertions(+), 6 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 09df9b7..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
@@ -11,6 +11,7 @@
import cn.iocoder.yudao.module.bpm.convert.task.BpmProcessInstanceConvert;
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmCategoryDO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
+import cn.iocoder.yudao.module.bpm.service.attach.BpmBusinessAttachService;
import cn.iocoder.yudao.module.bpm.service.definition.BpmCategoryService;
import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
@@ -56,6 +57,8 @@
private BpmProcessDefinitionService processDefinitionService;
@Resource
private BpmCategoryService categoryService;
+ @Resource
+ private BpmBusinessAttachService businessAttachService;
@Resource
private AdminUserApi adminUserApi;
@@ -196,6 +199,7 @@
@GetMapping("/get-bpmn-model-view")
@Operation(summary = "鑾峰彇娴佺▼瀹炰緥鐨� BPMN 妯″瀷瑙嗗浘", description = "鍦ㄣ�愭祦绋嬭缁嗐�戠晫闈腑锛岃繘琛岃皟鐢�")
@Parameter(name = "id", description = "娴佺▼瀹炰緥鐨勭紪鍙�", required = true)
+ @PreAuthorize("@ss.hasPermission('bpm:process-instance:query')")
public CommonResult<BpmProcessInstanceBpmnModelViewRespVO> getProcessInstanceBpmnModelView(
@RequestParam(value = "id") String id) {
return success(processInstanceService.getProcessInstanceBpmnModelView(id));
@@ -211,15 +215,29 @@
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())));
- return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePrintData(historicProcessInstance,
+ 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(),
+ historicProcessInstance.getBusinessKey());
+ return success(printData);
}
}
--
Gitblit v1.9.3