review:【bpm 工作流】流程打印

This commit is contained in:
YunaiV
2025-09-07 17:22:10 +08:00
parent 4d39d53392
commit 256b6f2c1d
3 changed files with 24 additions and 23 deletions

View File

@@ -214,8 +214,8 @@ public class BpmProcessInstanceController {
AdminUserRespDTO startUser = adminUserApi.getUser(Long.valueOf(historicProcessInstance.getStartUserId())); AdminUserRespDTO startUser = adminUserApi.getUser(Long.valueOf(historicProcessInstance.getStartUserId()));
DeptRespDTO dept = deptApi.getDept(startUser.getDeptId()); DeptRespDTO dept = deptApi.getDept(startUser.getDeptId());
List<HistoricTaskInstance> tasks = taskService.getFinishedTaskListByProcessInstanceIdWithoutCancel(processInstanceId); List<HistoricTaskInstance> tasks = taskService.getFinishedTaskListByProcessInstanceIdWithoutCancel(processInstanceId);
Set<Long> userIds = convertSet(tasks, item -> Long.valueOf(item.getAssignee())); Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds); convertSet(tasks, item -> Long.valueOf(item.getAssignee())));
return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePrintData(historicProcessInstance, return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePrintData(historicProcessInstance,
processDefinitionService.getProcessDefinitionInfo(historicProcessInstance.getProcessDefinitionId()), processDefinitionService.getProcessDefinitionInfo(historicProcessInstance.getProcessDefinitionId()),
tasks, userMap, tasks, userMap,

View File

@@ -1,11 +1,9 @@
package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance;
import cn.iocoder.yudao.module.bpm.controller.admin.base.user.UserSimpleBaseVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
import java.util.Map;
@Schema(description = "管理后台 - 流程实例的打印数据 Response VO") @Schema(description = "管理后台 - 流程实例的打印数据 Response VO")
@Data @Data
@@ -14,25 +12,30 @@ public class BpmProcessPrintDataRespVO {
@Schema(description = "流程实例数据") @Schema(description = "流程实例数据")
private BpmProcessInstanceRespVO processInstance; private BpmProcessInstanceRespVO processInstance;
@Schema(description = "是否开启自定义打印模板") @Schema(description = "是否开启自定义打印模板", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
private Boolean printTemplateEnable; private Boolean printTemplateEnable;
@Schema(description = "自定义打印模板HTML") @Schema(description = "自定义打印模板 HTML")
private String printTemplateHtml; private String printTemplateHtml;
@Schema(description = "审批任务列表") @Schema(description = "审批任务列表")
private List<ApproveTask> tasks; private List<Task> tasks;
@Schema(description = "流程任务")
@Data @Data
public static class ApproveTask { public static class Task {
@Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private String id; private String id;
@Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
private String name; private String name;
private String description; @Schema(description = "签名 URL", example = "https://www.iocoder.cn/sign.png")
private String signPicUrl;
private String signUrl; @Schema(description = "任务描述", requiredMode = Schema.RequiredMode.REQUIRED)
private String description; // 该字段由后端拼接
} }

View File

@@ -305,25 +305,23 @@ public interface BpmProcessInstanceConvert {
// 打印模板是否开启 // 打印模板是否开启
printData.setPrintTemplateEnable(printTemplateSetting != null && Boolean.TRUE.equals(printTemplateSetting.getEnable())); printData.setPrintTemplateEnable(printTemplateSetting != null && Boolean.TRUE.equals(printTemplateSetting.getEnable()));
// 流程相关数据 // 流程相关数据
BpmProcessInstanceRespVO processInstance = new BpmProcessInstanceRespVO(); BpmProcessInstanceRespVO processInstance = new BpmProcessInstanceRespVO()
processInstance.setStatus(FlowableUtils.getProcessInstanceStatus(historicProcessInstance)); .setId(historicProcessInstance.getId()).setName(historicProcessInstance.getName())
processInstance.setId(historicProcessInstance.getId()); .setBusinessKey(historicProcessInstance.getBusinessKey())
processInstance.setName(historicProcessInstance.getName()); .setStartTime(DateUtils.of(historicProcessInstance.getStartTime()))
processInstance.setBusinessKey(historicProcessInstance.getBusinessKey()); .setEndTime(DateUtils.of(historicProcessInstance.getEndTime()))
processInstance.setStartTime(DateUtils.of(historicProcessInstance.getStartTime())); .setStartUser(startUser).setStatus(FlowableUtils.getProcessInstanceStatus(historicProcessInstance))
processInstance.setEndTime(DateUtils.of(historicProcessInstance.getEndTime())); .setFormVariables(historicProcessInstance.getProcessVariables())
processInstance.setFormVariables(historicProcessInstance.getProcessVariables()); .setProcessDefinition(BeanUtils.toBean(processDefinitionInfo, BpmProcessDefinitionRespVO.class));
processInstance.setStartUser(startUser);
processInstance.setProcessDefinition(BeanUtils.toBean(processDefinitionInfo, BpmProcessDefinitionRespVO.class));
printData.setProcessInstance(processInstance); printData.setProcessInstance(processInstance);
// 审批历史 // 审批历史
List<BpmProcessPrintDataRespVO.ApproveTask> approveTasks = new ArrayList<>(tasks.size()); List<BpmProcessPrintDataRespVO.Task> approveTasks = new ArrayList<>(tasks.size());
tasks.forEach(item -> { tasks.forEach(item -> {
Map<String, Object> taskLocalVariables = item.getTaskLocalVariables(); Map<String, Object> taskLocalVariables = item.getTaskLocalVariables();
BpmProcessPrintDataRespVO.ApproveTask approveTask = new BpmProcessPrintDataRespVO.ApproveTask(); BpmProcessPrintDataRespVO.Task approveTask = new BpmProcessPrintDataRespVO.Task();
approveTask.setName(item.getName()); approveTask.setName(item.getName());
approveTask.setId(item.getId()); approveTask.setId(item.getId());
approveTask.setSignUrl((String) taskLocalVariables.getOrDefault(BpmnVariableConstants.TASK_SIGN_PIC_URL, "")); approveTask.setSignPicUrl((String) taskLocalVariables.get(BpmnVariableConstants.TASK_SIGN_PIC_URL));
approveTask.setDescription(StrUtil.format("{} / {} / {} / {} / {}", approveTask.setDescription(StrUtil.format("{} / {} / {} / {} / {}",
userMap.get(Long.valueOf(item.getAssignee())).getNickname(), userMap.get(Long.valueOf(item.getAssignee())).getNickname(),
item.getName(), item.getName(),