Browse Source

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

YunaiV 9 months ago
parent
commit
256b6f2c1d

+ 2 - 2
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java

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

+ 11 - 8
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessPrintDataRespVO.java

@@ -1,11 +1,9 @@
 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 lombok.Data;
 
 import java.util.List;
-import java.util.Map;
 
 @Schema(description = "管理后台 - 流程实例的打印数据 Response VO")
 @Data
@@ -14,25 +12,30 @@ public class BpmProcessPrintDataRespVO {
     @Schema(description = "流程实例数据")
     private BpmProcessInstanceRespVO processInstance;
 
-    @Schema(description = "是否开启自定义打印模板")
+    @Schema(description = "是否开启自定义打印模板", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
     private Boolean printTemplateEnable;
 
-    @Schema(description = "自定义打印模板HTML")
+    @Schema(description = "自定义打印模板 HTML")
     private String printTemplateHtml;
 
     @Schema(description = "审批任务列表")
-    private List<ApproveTask> tasks;
+    private List<Task> tasks;
 
+    @Schema(description = "流程任务")
     @Data
-    public static class ApproveTask {
+    public static class Task {
 
+        @Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
         private String id;
 
+        @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
         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; // 该字段由后端拼接
 
     }
 

+ 11 - 13
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmProcessInstanceConvert.java

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