Commit f409a67d2f74f4e351af7d11682c1b3ee09708a9
1 parent
0ef84675
feat: 抄送添加摘要
Showing
4 changed files
with
26 additions
and
2 deletions
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmProcessInstanceCopyController.java
| ... | ... | @@ -9,7 +9,10 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 9 | 9 | import cn.iocoder.yudao.module.bpm.controller.admin.base.user.UserSimpleBaseVO; |
| 10 | 10 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.cc.BpmProcessInstanceCopyRespVO; |
| 11 | 11 | import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceCopyPageReqVO; |
| 12 | +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO; | |
| 12 | 13 | import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceCopyDO; |
| 14 | +import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils; | |
| 15 | +import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; | |
| 13 | 16 | import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceCopyService; |
| 14 | 17 | import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; |
| 15 | 18 | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| ... | ... | @@ -42,6 +45,8 @@ public class BpmProcessInstanceCopyController { |
| 42 | 45 | private BpmProcessInstanceCopyService processInstanceCopyService; |
| 43 | 46 | @Resource |
| 44 | 47 | private BpmProcessInstanceService processInstanceService; |
| 48 | + @Resource | |
| 49 | + private BpmProcessDefinitionService processDefinitionService; | |
| 45 | 50 | |
| 46 | 51 | @Resource |
| 47 | 52 | private AdminUserApi adminUserApi; |
| ... | ... | @@ -62,6 +67,8 @@ public class BpmProcessInstanceCopyController { |
| 62 | 67 | convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getProcessInstanceId)); |
| 63 | 68 | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertListByFlatMap(pageResult.getList(), |
| 64 | 69 | copy -> Stream.of(copy.getStartUserId(), Long.parseLong(copy.getCreator())))); |
| 70 | + Map<String, BpmProcessDefinitionInfoDO> processDefinitionInfoMap = processDefinitionService.getProcessDefinitionInfoMap( | |
| 71 | + convertSet(pageResult.getList(), BpmProcessInstanceCopyDO::getProcessDefinitionId)); | |
| 65 | 72 | return success(convertPage(pageResult, copy -> { |
| 66 | 73 | BpmProcessInstanceCopyRespVO copyVO = BeanUtils.toBean(copy, BpmProcessInstanceCopyRespVO.class); |
| 67 | 74 | MapUtils.findAndThen(userMap, Long.valueOf(copy.getCreator()), |
| ... | ... | @@ -69,7 +76,12 @@ public class BpmProcessInstanceCopyController { |
| 69 | 76 | MapUtils.findAndThen(userMap, copy.getStartUserId(), |
| 70 | 77 | user -> copyVO.setCreateUser(BeanUtils.toBean(user, UserSimpleBaseVO.class))); |
| 71 | 78 | MapUtils.findAndThen(processInstanceMap, copyVO.getProcessInstanceId(), |
| 72 | - processInstance -> copyVO.setProcessInstanceStartTime(DateUtils.of(processInstance.getStartTime()))); | |
| 79 | + processInstance -> { | |
| 80 | + copyVO.setSummary(FlowableUtils.getSummary( | |
| 81 | + processDefinitionInfoMap.get(processInstance.getProcessDefinitionId()), | |
| 82 | + processInstance.getProcessVariables())); | |
| 83 | + copyVO.setProcessInstanceStartTime(DateUtils.of(processInstance.getStartTime())); | |
| 84 | + }); | |
| 73 | 85 | return copyVO; |
| 74 | 86 | })); |
| 75 | 87 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/cc/BpmProcessInstanceCopyRespVO.java
| 1 | 1 | package cn.iocoder.yudao.module.bpm.controller.admin.task.vo.cc; |
| 2 | 2 | |
| 3 | +import cn.iocoder.yudao.framework.common.core.KeyValue; | |
| 3 | 4 | import cn.iocoder.yudao.module.bpm.controller.admin.base.user.UserSimpleBaseVO; |
| 4 | 5 | import io.swagger.v3.oas.annotations.media.Schema; |
| 5 | 6 | import lombok.Data; |
| 6 | 7 | |
| 7 | 8 | import java.time.LocalDateTime; |
| 9 | +import java.util.List; | |
| 8 | 10 | |
| 9 | 11 | @Schema(description = "管理后台 - 流程实例抄送的分页 Item Response VO") |
| 10 | 12 | @Data |
| ... | ... | @@ -40,4 +42,7 @@ public class BpmProcessInstanceCopyRespVO { |
| 40 | 42 | @Schema(description = "抄送时间", requiredMode = Schema.RequiredMode.REQUIRED) |
| 41 | 43 | private LocalDateTime createTime; |
| 42 | 44 | |
| 45 | + @Schema(description = "流程摘要", example = "[]") | |
| 46 | + private List<KeyValue<String, String>> summary; | |
| 47 | + | |
| 43 | 48 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmProcessInstanceCopyDO.java
| ... | ... | @@ -50,6 +50,12 @@ public class BpmProcessInstanceCopyDO extends BaseDO { |
| 50 | 50 | */ |
| 51 | 51 | private String processInstanceId; |
| 52 | 52 | /** |
| 53 | + * 流程实例的流程定义编号 | |
| 54 | + * | |
| 55 | + * 关联 ProcessInstance 的 processDefinitionId 属性 | |
| 56 | + */ | |
| 57 | + private String processDefinitionId; | |
| 58 | + /** | |
| 53 | 59 | * 流程分类 |
| 54 | 60 | * |
| 55 | 61 | * 冗余 ProcessInstance 的 category 字段 | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceCopyServiceImpl.java
| ... | ... | @@ -77,7 +77,8 @@ public class BpmProcessInstanceCopyServiceImpl implements BpmProcessInstanceCopy |
| 77 | 77 | .setUserId(userId).setReason(reason).setStartUserId(Long.valueOf(processInstance.getStartUserId())) |
| 78 | 78 | .setProcessInstanceId(processInstanceId).setProcessInstanceName(processInstance.getName()) |
| 79 | 79 | .setCategory(processDefinition.getCategory()).setTaskId(taskId) |
| 80 | - .setActivityId(activityId).setActivityName(activityName)); | |
| 80 | + .setActivityId(activityId).setActivityName(activityName) | |
| 81 | + .setProcessDefinitionId(processInstance.getProcessDefinitionId())); | |
| 81 | 82 | processInstanceCopyMapper.insertBatch(copyList); |
| 82 | 83 | } |
| 83 | 84 | ... | ... |