Commit 10af05066c14b82c02ed75d82d27a36709850906

Authored by kehaiyou
1 parent d7ae9444

feat: 【工作流】--任务列表只返回顶级任务,拼装成父子关系并返回

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,6 +5,8 @@ import lombok.Data;
5 import lombok.EqualsAndHashCode; 5 import lombok.EqualsAndHashCode;
6 import lombok.ToString; 6 import lombok.ToString;
7 7
  8 +import java.util.List;
  9 +
8 @Schema(description = "管理后台 - 流程任务的 Response VO") 10 @Schema(description = "管理后台 - 流程任务的 Response VO")
9 @Data 11 @Data
10 @EqualsAndHashCode(callSuper = true) 12 @EqualsAndHashCode(callSuper = true)
@@ -24,6 +26,9 @@ public class BpmTaskRespVO extends BpmTaskDonePageItemRespVO { @@ -24,6 +26,9 @@ public class BpmTaskRespVO extends BpmTaskDonePageItemRespVO {
24 */ 26 */
25 private String parentTaskId; 27 private String parentTaskId;
26 28
  29 + @Schema(description = "子任务(由加签生成)", requiredMode = Schema.RequiredMode.REQUIRED, example = "childrenTask")
  30 + private List<BpmTaskRespVO> children;
  31 +
27 @Schema(description = "用户信息") 32 @Schema(description = "用户信息")
28 @Data 33 @Data
29 public static class User { 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 package cn.iocoder.yudao.module.bpm.convert.task; 1 package cn.iocoder.yudao.module.bpm.convert.task;
2 2
  3 +import cn.hutool.core.collection.CollUtil;
3 import cn.hutool.core.date.LocalDateTimeUtil; 4 import cn.hutool.core.date.LocalDateTimeUtil;
4 import cn.hutool.core.util.StrUtil; 5 import cn.hutool.core.util.StrUtil;
5 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
@@ -178,4 +179,18 @@ public interface BpmTaskConvert { @@ -178,4 +179,18 @@ public interface BpmTaskConvert {
178 return bpmTaskSubSignRespVO; 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,7 +193,8 @@ public class BpmTaskServiceImpl implements BpmTaskService {
193 Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(convertSet(userMap.values(), AdminUserRespDTO::getDeptId)); 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 @Override 200 @Override