|
@@ -34,11 +34,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
-import javax.annotation.Resource;
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
-import java.util.concurrent.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@@ -419,6 +417,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
List<WbsTreeQueryValueVO> listRoot = wbsTreeQueryValueVOS.stream().filter(f -> f.getParentId() == 0L).collect(Collectors.toList());
|
|
|
Map<Long, List<WbsTreeQueryValueVO>> mapAll = wbsTreeQueryValueVOS.stream().collect(Collectors.groupingBy(WbsTreeQueryValueVO::getParentId));
|
|
|
this.buildWbsTreeByGetQueryValueByType(listRoot, mapAll);
|
|
|
+ this.sortListPublic(listRoot);
|
|
|
return listRoot;
|
|
|
}
|
|
|
} else {//私有
|
|
@@ -431,6 +430,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
List<WbsTreePrivateQueryValueVO> listRoot = wbsTreePrivateQueryValueVOS.stream().filter(f -> f.getParentId() == 0L).collect(Collectors.toList());
|
|
|
Map<Long, List<WbsTreePrivateQueryValueVO>> mapAll = wbsTreePrivateQueryValueVOS.stream().collect(Collectors.groupingBy(WbsTreePrivateQueryValueVO::getParentId));
|
|
|
this.buildWbsTreePrivateByGetQueryValueByType(listRoot, mapAll);
|
|
|
+ this.sortListPrivate(listRoot);
|
|
|
return listRoot;
|
|
|
}
|
|
|
}
|
|
@@ -445,6 +445,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
List<WbsTreeQueryValueVO> listRoot = wbsTreeQueryValueVOS.stream().filter(f -> f.getParentId() == 0L).collect(Collectors.toList());
|
|
|
Map<Long, List<WbsTreeQueryValueVO>> mapAll = wbsTreeQueryValueVOS.stream().collect(Collectors.groupingBy(WbsTreeQueryValueVO::getParentId));
|
|
|
this.buildWbsTreeByGetQueryValueByType(listRoot, mapAll);
|
|
|
+ this.sortListPublic(listRoot);
|
|
|
return listRoot;
|
|
|
}
|
|
|
} else {//私有
|
|
@@ -457,6 +458,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
List<WbsTreePrivateQueryValueVO> listRoot = wbsTreePrivateQueryValueVOS.stream().filter(f -> f.getParentId() == 0L).collect(Collectors.toList());
|
|
|
Map<Long, List<WbsTreePrivateQueryValueVO>> mapAll = wbsTreePrivateQueryValueVOS.stream().collect(Collectors.groupingBy(WbsTreePrivateQueryValueVO::getParentId));
|
|
|
this.buildWbsTreePrivateByGetQueryValueByType(listRoot, mapAll);
|
|
|
+ this.sortListPrivate(listRoot);
|
|
|
return listRoot;
|
|
|
}
|
|
|
}
|
|
@@ -465,6 +467,30 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 公有排序
|
|
|
+ */
|
|
|
+ private void sortListPublic(List<WbsTreeQueryValueVO> list) {
|
|
|
+ list.sort(Comparator.comparing(WbsTreeQueryValueVO::getSort, Comparator.nullsLast(Integer::compare)));
|
|
|
+ for (WbsTreeQueryValueVO item : list) {
|
|
|
+ if (item.getType() == 1 && item.getHasChildren()) {
|
|
|
+ sortListPublic(item.getChildren());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 私有排序
|
|
|
+ */
|
|
|
+ private void sortListPrivate(List<WbsTreePrivateQueryValueVO> list) {
|
|
|
+ list.sort(Comparator.comparing(WbsTreePrivateQueryValueVO::getSort, Comparator.nullsLast(Integer::compare)));
|
|
|
+ for (WbsTreePrivateQueryValueVO item : list) {
|
|
|
+ if (item.getType() == 1 && item.getHasChildren()) {
|
|
|
+ sortListPrivate(item.getChildren());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 公有树构造,获取所有父级节点
|
|
|
*/
|
|
@@ -486,6 +512,13 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
wbsTree.setTitle(wbsTree.getNodeName());
|
|
|
wbsTree.setChildren(childrenList);
|
|
|
wbsTree.setHasChildren(true);
|
|
|
+ //如果子级是元素表,那么表示最底层
|
|
|
+ List<WbsTreeQueryValueVO> collect = childrenList.stream().filter(f -> f.getType() == 2).collect(Collectors.toList());
|
|
|
+ if (wbsTree.getType() == 1 && collect.size() > 0) {
|
|
|
+ wbsTree.setChildren(null);
|
|
|
+ wbsTree.setHasChildren(false);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
this.buildWbsTreeByGetQueryValueByType(childrenList, mapAll);
|
|
|
}
|
|
|
}
|
|
@@ -512,6 +545,13 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
wbsTree.setTitle(wbsTree.getNodeName());
|
|
|
wbsTree.setChildren(childrenList);
|
|
|
wbsTree.setHasChildren(true);
|
|
|
+ //如果子级是元素表,那么表示最底层
|
|
|
+ List<WbsTreePrivateQueryValueVO> collect = childrenList.stream().filter(f -> f.getType() == 2).collect(Collectors.toList());
|
|
|
+ if (wbsTree.getType() == 1 && collect.size() > 0) {
|
|
|
+ wbsTree.setChildren(null);
|
|
|
+ wbsTree.setHasChildren(false);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
this.buildWbsTreePrivateByGetQueryValueByType(childrenList, mapAll);
|
|
|
}
|
|
|
}
|