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