Commit 256b6f2c1d9ee1d85f5cc339b2d2dac13cd51147

Authored by YunaiV
1 parent 4d39d533

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

yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceController.java
@@ -214,8 +214,8 @@ public class BpmProcessInstanceController { @@ -214,8 +214,8 @@ public class BpmProcessInstanceController {
214 AdminUserRespDTO startUser = adminUserApi.getUser(Long.valueOf(historicProcessInstance.getStartUserId())); 214 AdminUserRespDTO startUser = adminUserApi.getUser(Long.valueOf(historicProcessInstance.getStartUserId()));
215 DeptRespDTO dept = deptApi.getDept(startUser.getDeptId()); 215 DeptRespDTO dept = deptApi.getDept(startUser.getDeptId());
216 List<HistoricTaskInstance> tasks = taskService.getFinishedTaskListByProcessInstanceIdWithoutCancel(processInstanceId); 216 List<HistoricTaskInstance> tasks = taskService.getFinishedTaskListByProcessInstanceIdWithoutCancel(processInstanceId);
217 - Set<Long> userIds = convertSet(tasks, item -> Long.valueOf(item.getAssignee()));  
218 - Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds); 217 + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
  218 + convertSet(tasks, item -> Long.valueOf(item.getAssignee())));
219 return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePrintData(historicProcessInstance, 219 return success(BpmProcessInstanceConvert.INSTANCE.buildProcessInstancePrintData(historicProcessInstance,
220 processDefinitionService.getProcessDefinitionInfo(historicProcessInstance.getProcessDefinitionId()), 220 processDefinitionService.getProcessDefinitionInfo(historicProcessInstance.getProcessDefinitionId()),
221 tasks, userMap, 221 tasks, userMap,
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessPrintDataRespVO.java
1 package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance; 1 package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance;
2 2
3 -import cn.iocoder.yudao.module.bpm.controller.admin.base.user.UserSimpleBaseVO;  
4 import io.swagger.v3.oas.annotations.media.Schema; 3 import io.swagger.v3.oas.annotations.media.Schema;
5 import lombok.Data; 4 import lombok.Data;
6 5
7 import java.util.List; 6 import java.util.List;
8 -import java.util.Map;  
9 7
10 @Schema(description = "管理后台 - 流程实例的打印数据 Response VO") 8 @Schema(description = "管理后台 - 流程实例的打印数据 Response VO")
11 @Data 9 @Data
@@ -14,25 +12,30 @@ public class BpmProcessPrintDataRespVO { @@ -14,25 +12,30 @@ public class BpmProcessPrintDataRespVO {
14 @Schema(description = "流程实例数据") 12 @Schema(description = "流程实例数据")
15 private BpmProcessInstanceRespVO processInstance; 13 private BpmProcessInstanceRespVO processInstance;
16 14
17 - @Schema(description = "是否开启自定义打印模板") 15 + @Schema(description = "是否开启自定义打印模板", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
18 private Boolean printTemplateEnable; 16 private Boolean printTemplateEnable;
19 17
20 - @Schema(description = "自定义打印模板HTML") 18 + @Schema(description = "自定义打印模板 HTML")
21 private String printTemplateHtml; 19 private String printTemplateHtml;
22 20
23 @Schema(description = "审批任务列表") 21 @Schema(description = "审批任务列表")
24 - private List<ApproveTask> tasks; 22 + private List<Task> tasks;
25 23
  24 + @Schema(description = "流程任务")
26 @Data 25 @Data
27 - public static class ApproveTask { 26 + public static class Task {
28 27
  28 + @Schema(description = "流程任务的编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
29 private String id; 29 private String id;
30 30
  31 + @Schema(description = "任务名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道")
31 private String name; 32 private String name;
32 33
33 - private String description; 34 + @Schema(description = "签名 URL", example = "https://www.iocoder.cn/sign.png")
  35 + private String signPicUrl;
34 36
35 - private String signUrl; 37 + @Schema(description = "任务描述", requiredMode = Schema.RequiredMode.REQUIRED)
  38 + private String description; // 该字段由后端拼接
36 39
37 } 40 }
38 41
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmProcessInstanceConvert.java
@@ -305,25 +305,23 @@ public interface BpmProcessInstanceConvert { @@ -305,25 +305,23 @@ public interface BpmProcessInstanceConvert {
305 // 打印模板是否开启 305 // 打印模板是否开启
306 printData.setPrintTemplateEnable(printTemplateSetting != null && Boolean.TRUE.equals(printTemplateSetting.getEnable())); 306 printData.setPrintTemplateEnable(printTemplateSetting != null && Boolean.TRUE.equals(printTemplateSetting.getEnable()));
307 // 流程相关数据 307 // 流程相关数据
308 - BpmProcessInstanceRespVO processInstance = new BpmProcessInstanceRespVO();  
309 - processInstance.setStatus(FlowableUtils.getProcessInstanceStatus(historicProcessInstance));  
310 - processInstance.setId(historicProcessInstance.getId());  
311 - processInstance.setName(historicProcessInstance.getName());  
312 - processInstance.setBusinessKey(historicProcessInstance.getBusinessKey());  
313 - processInstance.setStartTime(DateUtils.of(historicProcessInstance.getStartTime()));  
314 - processInstance.setEndTime(DateUtils.of(historicProcessInstance.getEndTime()));  
315 - processInstance.setFormVariables(historicProcessInstance.getProcessVariables());  
316 - processInstance.setStartUser(startUser);  
317 - processInstance.setProcessDefinition(BeanUtils.toBean(processDefinitionInfo, BpmProcessDefinitionRespVO.class)); 308 + BpmProcessInstanceRespVO processInstance = new BpmProcessInstanceRespVO()
  309 + .setId(historicProcessInstance.getId()).setName(historicProcessInstance.getName())
  310 + .setBusinessKey(historicProcessInstance.getBusinessKey())
  311 + .setStartTime(DateUtils.of(historicProcessInstance.getStartTime()))
  312 + .setEndTime(DateUtils.of(historicProcessInstance.getEndTime()))
  313 + .setStartUser(startUser).setStatus(FlowableUtils.getProcessInstanceStatus(historicProcessInstance))
  314 + .setFormVariables(historicProcessInstance.getProcessVariables())
  315 + .setProcessDefinition(BeanUtils.toBean(processDefinitionInfo, BpmProcessDefinitionRespVO.class));
318 printData.setProcessInstance(processInstance); 316 printData.setProcessInstance(processInstance);
319 // 审批历史 317 // 审批历史
320 - List<BpmProcessPrintDataRespVO.ApproveTask> approveTasks = new ArrayList<>(tasks.size()); 318 + List<BpmProcessPrintDataRespVO.Task> approveTasks = new ArrayList<>(tasks.size());
321 tasks.forEach(item -> { 319 tasks.forEach(item -> {
322 Map<String, Object> taskLocalVariables = item.getTaskLocalVariables(); 320 Map<String, Object> taskLocalVariables = item.getTaskLocalVariables();
323 - BpmProcessPrintDataRespVO.ApproveTask approveTask = new BpmProcessPrintDataRespVO.ApproveTask(); 321 + BpmProcessPrintDataRespVO.Task approveTask = new BpmProcessPrintDataRespVO.Task();
324 approveTask.setName(item.getName()); 322 approveTask.setName(item.getName());
325 approveTask.setId(item.getId()); 323 approveTask.setId(item.getId());
326 - approveTask.setSignUrl((String) taskLocalVariables.getOrDefault(BpmnVariableConstants.TASK_SIGN_PIC_URL, "")); 324 + approveTask.setSignPicUrl((String) taskLocalVariables.get(BpmnVariableConstants.TASK_SIGN_PIC_URL));
327 approveTask.setDescription(StrUtil.format("{} / {} / {} / {} / {}", 325 approveTask.setDescription(StrUtil.format("{} / {} / {} / {} / {}",
328 userMap.get(Long.valueOf(item.getAssignee())).getNickname(), 326 userMap.get(Long.valueOf(item.getAssignee())).getNickname(),
329 item.getName(), 327 item.getName(),