Commit 256b6f2c1d9ee1d85f5cc339b2d2dac13cd51147
1 parent
4d39d533
review:【bpm 工作流】流程打印
Showing
3 changed files
with
24 additions
and
23 deletions
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(), |