|
@@ -262,6 +262,53 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
|
}
|
|
|
return treeVO2s;
|
|
|
}
|
|
|
+ @Override
|
|
|
+ public List<ArchiveTreeVO3> tree3(String tenantId, Long projectId, Integer disPlayTree, Integer nodeType, String wbsId, boolean bgetExtNodes) {
|
|
|
+ if (projectId == null) {
|
|
|
+ projectId = 0L;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<ArchiveTreeVO3> archiveTreeVOList = baseMapper.tree3(tenantId, projectId, disPlayTree, nodeType);
|
|
|
+ List<ArchiveTreeVO3> treeVO2s = ForestNodeMergerEx.mergeRoot(archiveTreeVOList);
|
|
|
+ if (archiveTreeVOList != null && archiveTreeVOList.size() > 0) {
|
|
|
+ List<String> list = new ArrayList<>();
|
|
|
+ archiveTreeVOList.stream().forEach(l -> {
|
|
|
+ if (l.getHasChildren() == false && l.getIsDisplayTree() == 1) {
|
|
|
+ list.add(l.getId() + "");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ treeVO2s.get(0).setSelectAllNodes(list);
|
|
|
+ }
|
|
|
+ //todo 遍历树,找到质检节点,调用getWbsArchiveTree,根据关联层级,拼接上去
|
|
|
+
|
|
|
+ //是否获取扩展的wbs节点
|
|
|
+ if (StringUtils.isEmpty(wbsId) && projectId != null && projectId != 0 && bgetExtNodes) {
|
|
|
+ ProjectInfo projectInfo = projectInfoService.getOne(projectId);
|
|
|
+ if (projectInfo != null) {
|
|
|
+ Long lWbsId = projectInfo.getReferenceWbsTemplateId();
|
|
|
+ if (lWbsId != null) {
|
|
|
+ wbsId = projectInfo.getReferenceWbsTemplateId().toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotEmpty(wbsId)) {
|
|
|
+ for (ArchiveTreeVO3 ar : archiveTreeVOList) {
|
|
|
+ //关联质检资料
|
|
|
+ if (ar.getAssociationType() != null
|
|
|
+ && ar.getAssociationType() == 1
|
|
|
+ && ar.getDisplayHierarchy() != null) {
|
|
|
+ ArchiveTreeVO3 child = getWbsArchiveTree3(tenantId, projectId, ar.getId(),
|
|
|
+ wbsId, "1", Long.parseLong(ar.getDisplayHierarchy()));
|
|
|
+
|
|
|
+ if (child != null) {
|
|
|
+ ar.getChildren().add(child);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return treeVO2s;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public List<ArchiveTree> selectByParentIdOrId(String id) {
|
|
@@ -452,6 +499,76 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 按照层次获取归档树链表
|
|
|
+ *
|
|
|
+ * @param parentId
|
|
|
+ * @param wbsId
|
|
|
+ * @param tenantId
|
|
|
+ * @param type
|
|
|
+ * @param level 层次,1,单位工程,2
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ArchiveTreeVO3 getWbsArchiveTree3(String tenantId, Long projectId, Long parentId, String wbsId, String type, Long level) {
|
|
|
+ List<ArchiveTreeVO3> archiveTreeList = new ArrayList<>();
|
|
|
+
|
|
|
+ List<WbsTreeVO2> wbsTreeVO2s = null;
|
|
|
+
|
|
|
+ if (projectId == 0) {
|
|
|
+ wbsTreeVO2s = wbsTreeService.tree(wbsId, tenantId, type);
|
|
|
+ } else {
|
|
|
+ wbsTreeVO2s = wbsTreePrivateService.tree2(wbsId, projectId.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<WbsTreeVO2> wbsTreeVO2List = new ArrayList<>();
|
|
|
+ ForestNodeMerger.getTreeList(wbsTreeVO2s.get(0), wbsTreeVO2List);
|
|
|
+
|
|
|
+ Map<Long, Long> idPkidMap = new LinkedHashMap<>();
|
|
|
+ if (projectId != 0) {
|
|
|
+ for (WbsTreeVO2 wbsTreeVO2 : wbsTreeVO2List) {
|
|
|
+ idPkidMap.put(wbsTreeVO2.getId(), wbsTreeVO2.getPrimaryKeyId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //遍历构建
|
|
|
+ for (WbsTreeVO2 wbsTreeVO2 : wbsTreeVO2List) {
|
|
|
+ //只展示指定层级之上的
|
|
|
+
|
|
|
+// if (!wbsTreeVO2.isProcessType()) {
|
|
|
+// continue;
|
|
|
+// }
|
|
|
+
|
|
|
+ if (!wbsTreeVO2.isMatchLevel(level)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ ArchiveTreeVO3 archiveTree = new ArchiveTreeVO3();
|
|
|
+ archiveTree.setTitle(wbsTreeVO2.getTitle());
|
|
|
+
|
|
|
+ archiveTree.setId(wbsTreeVO2.getId());
|
|
|
+ archiveTree.setParentId(wbsTreeVO2.getParentId());
|
|
|
+ if (projectId != 0) {
|
|
|
+ archiveTree.setId(wbsTreeVO2.getId());
|
|
|
+ //archiveTree.setId(idPkidMap.get(wbsTreeVO2.getId()));
|
|
|
+ int i = 0;
|
|
|
+ Long pid = wbsTreeVO2.getParentId();
|
|
|
+ if (pid == null) {
|
|
|
+ pid = 0L;
|
|
|
+ }
|
|
|
+ archiveTree.setParentId(pid);
|
|
|
+ }
|
|
|
+
|
|
|
+ archiveTree.setDisplayHierarchy(level.toString());
|
|
|
+ archiveTreeList.add(archiveTree);
|
|
|
+ }
|
|
|
+
|
|
|
+ //设置pid
|
|
|
+ List<ArchiveTreeVO3> archiveTreeVO2s = ForestNodeMergerEx.merge(archiveTreeList);
|
|
|
+ if (archiveTreeVO2s != null && archiveTreeVO2s.size() > 0) {
|
|
|
+ return archiveTreeVO2s.get(0);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 保存组卷规则设置
|