Commit 10af05066c14b82c02ed75d82d27a36709850906
1 parent
d7ae9444
feat: 【工作流】--任务列表只返回顶级任务,拼装成父子关系并返回
Showing
3 changed files
with
22 additions
and
1 deletions
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java
| ... | ... | @@ -5,6 +5,8 @@ import lombok.Data; |
| 5 | 5 | import lombok.EqualsAndHashCode; |
| 6 | 6 | import lombok.ToString; |
| 7 | 7 | |
| 8 | +import java.util.List; | |
| 9 | + | |
| 8 | 10 | @Schema(description = "管理后台 - 流程任务的 Response VO") |
| 9 | 11 | @Data |
| 10 | 12 | @EqualsAndHashCode(callSuper = true) |
| ... | ... | @@ -24,6 +26,9 @@ public class BpmTaskRespVO extends BpmTaskDonePageItemRespVO { |
| 24 | 26 | */ |
| 25 | 27 | private String parentTaskId; |
| 26 | 28 | |
| 29 | + @Schema(description = "子任务(由加签生成)", requiredMode = Schema.RequiredMode.REQUIRED, example = "childrenTask") | |
| 30 | + private List<BpmTaskRespVO> children; | |
| 31 | + | |
| 27 | 32 | @Schema(description = "用户信息") |
| 28 | 33 | @Data |
| 29 | 34 | public static class User { | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/task/BpmTaskConvert.java
| 1 | 1 | package cn.iocoder.yudao.module.bpm.convert.task; |
| 2 | 2 | |
| 3 | +import cn.hutool.core.collection.CollUtil; | |
| 3 | 4 | import cn.hutool.core.date.LocalDateTimeUtil; |
| 4 | 5 | import cn.hutool.core.util.StrUtil; |
| 5 | 6 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| ... | ... | @@ -178,4 +179,18 @@ public interface BpmTaskConvert { |
| 178 | 179 | return bpmTaskSubSignRespVO; |
| 179 | 180 | }); |
| 180 | 181 | } |
| 182 | + | |
| 183 | + /** | |
| 184 | + * 转换任务为父子级 | |
| 185 | + * @param result | |
| 186 | + * @return | |
| 187 | + */ | |
| 188 | + default List<BpmTaskRespVO> convertChildrenList(List<BpmTaskRespVO> result){ | |
| 189 | + List<BpmTaskRespVO> childrenTaskList = CollectionUtils.filterList(result, r -> StrUtil.isNotEmpty(r.getParentTaskId())); | |
| 190 | + Map<String, List<BpmTaskRespVO>> parentChildrenTaskListMap = CollectionUtils.convertMultiMap(childrenTaskList, BpmTaskRespVO::getParentTaskId); | |
| 191 | + for (BpmTaskRespVO bpmTaskRespVO : result) { | |
| 192 | + bpmTaskRespVO.setChildren(parentChildrenTaskListMap.get(bpmTaskRespVO.getId())); | |
| 193 | + } | |
| 194 | + return CollectionUtils.filterList(result, r -> StrUtil.isEmpty(r.getParentTaskId())); | |
| 195 | + } | |
| 181 | 196 | } | ... | ... |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
| ... | ... | @@ -193,7 +193,8 @@ public class BpmTaskServiceImpl implements BpmTaskService { |
| 193 | 193 | Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(convertSet(userMap.values(), AdminUserRespDTO::getDeptId)); |
| 194 | 194 | |
| 195 | 195 | // 拼接数据 |
| 196 | - return BpmTaskConvert.INSTANCE.convertList3(tasks, bpmTaskExtDOMap, processInstance, userMap, deptMap); | |
| 196 | + List<BpmTaskRespVO> result = BpmTaskConvert.INSTANCE.convertList3(tasks, bpmTaskExtDOMap, processInstance, userMap, deptMap); | |
| 197 | + return BpmTaskConvert.INSTANCE.convertChildrenList(result); | |
| 197 | 198 | } |
| 198 | 199 | |
| 199 | 200 | @Override | ... | ... |