Commit f409a67d2f74f4e351af7d11682c1b3ee09708a9

Authored by LesanOuO
1 parent 0ef84675

feat: 抄送添加摘要

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  
... ...