|
@@ -474,6 +474,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
|
|
|
|
|
|
return importExcel(result, wbsTreeFu, wbsTree1);
|
|
|
+
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
return false;
|
|
@@ -561,6 +562,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
wbsTreeZi.setIsExpernode(0);
|
|
|
}
|
|
|
baseMapper.insert(wbsTreeZi);
|
|
|
+
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -571,6 +573,106 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ private boolean importExcel2(ArrayList<Map<String, String>> result, WbsTree wbsTreeFu, WbsTree wbsTree1) {
|
|
|
+
|
|
|
+ List<WbsTree> allNodeData = new ArrayList<>();
|
|
|
+ result.stream().forEach(map -> {
|
|
|
+ map.forEach((nodeType, nodeName) -> {
|
|
|
+ if (StringUtils.isNotEmpty(nodeName)) {
|
|
|
+
|
|
|
+ WbsTree wbsTreeZi = new WbsTree();
|
|
|
+ wbsTreeZi.setId(SnowFlakeUtil.getId());
|
|
|
+ wbsTreeZi.setTenantId(AuthUtil.getTenantId());
|
|
|
+ wbsTreeZi.setDeptName(nodeName);
|
|
|
+ wbsTreeZi.setDeptCategory(Integer.valueOf(nodeType));
|
|
|
+ wbsTreeZi.setWbsId(wbsTreeFu.getWbsId());
|
|
|
+ wbsTreeZi.setParentId(wbsTreeFu.getId());
|
|
|
+ wbsTreeZi.setAncestors(wbsTreeFu.getAncestors());
|
|
|
+ wbsTreeZi.setProjectNodeId(wbsTree1.getProjectNodeId());
|
|
|
+
|
|
|
+
|
|
|
+ WbsTree wbsTree = buildTreeNode(wbsTreeZi, allNodeData);
|
|
|
+
|
|
|
+ wbsTreeFu.setAncestors(wbsTree.getAncestors());
|
|
|
+ wbsTreeFu.setId(wbsTree.getId());
|
|
|
+
|
|
|
+ allNodeData.add(wbsTree);
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ boolean b = this.saveBatch(allNodeData, 10000);
|
|
|
+
|
|
|
+ int i = baseMapper.updateById(wbsTree1);
|
|
|
+
|
|
|
+ return i > 0 && b;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private WbsTree buildTreeNode(WbsTree wbsTreeZi, List<WbsTree> allNodeData) {
|
|
|
+
|
|
|
+ List<WbsTree> wbsTrees = null;
|
|
|
+ if (allNodeData.size() > 0) {
|
|
|
+
|
|
|
+ wbsTrees = allNodeData.stream().filter(f -> f.getWbsId().equals(wbsTreeZi.getWbsId()))
|
|
|
+ .filter(f -> f.getDeptName().equals(wbsTreeZi.getDeptName()))
|
|
|
+ .filter(f -> f.getDeptCategory().equals(wbsTreeZi.getDeptCategory()))
|
|
|
+ .filter(f -> f.getProjectNodeId().equals(wbsTreeZi.getProjectNodeId()))
|
|
|
+ .filter(f -> !f.getAncestors().equals(wbsTreeZi.getAncestors())
|
|
|
+
|
|
|
+ ).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ wbsTreeZi.setStatus(1);
|
|
|
+ wbsTreeZi.setType(1);
|
|
|
+ wbsTreeZi.setMajorDataType(0);
|
|
|
+ if (wbsTreeZi.getDeptCategory() == 6) {
|
|
|
+ wbsTreeZi.setIsConcrete(0);
|
|
|
+ wbsTreeZi.setIsExpernode(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ StringBuilder stringBuffer = new StringBuilder();
|
|
|
+ StringBuilder appendStr = stringBuffer.append(",").append(wbsTreeZi.getParentId());
|
|
|
+ String ancestors = wbsTreeZi.getAncestors() + appendStr;
|
|
|
+ wbsTreeZi.setAncestors(ancestors);
|
|
|
+
|
|
|
+ if (wbsTrees != null) {
|
|
|
+
|
|
|
+ for (WbsTree tree : wbsTrees) {
|
|
|
+
|
|
|
+ if (wbsTreeZi.getDeptCategory() == 2 || wbsTreeZi.getDeptCategory() == 3 || wbsTreeZi.getDeptCategory() == 4
|
|
|
+ || wbsTreeZi.getDeptCategory() == 5 || wbsTreeZi.getDeptCategory() == 6) {
|
|
|
+ if (!wbsTreeZi.getParentId().equals(tree.getParentId()) && wbsTreeZi.getDeptName().equals(tree.getDeptName())) {
|
|
|
+ wbsTreeZi.setStatus(1);
|
|
|
+ wbsTreeZi.setType(1);
|
|
|
+ wbsTreeZi.setMajorDataType(0);
|
|
|
+ if (wbsTreeZi.getDeptCategory() == 6) {
|
|
|
+ wbsTreeZi.setIsConcrete(0);
|
|
|
+ wbsTreeZi.setIsExpernode(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ StringBuilder stringBuffer1 = new StringBuilder();
|
|
|
+ StringBuilder appendStr1 = stringBuffer1.append(",").append(wbsTreeZi.getParentId());
|
|
|
+ String ancestors1 = wbsTreeZi.getAncestors() + appendStr1;
|
|
|
+ wbsTreeZi.setAncestors(ancestors1);
|
|
|
+
|
|
|
+ return wbsTreeZi;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+
|
|
|
+ return tree;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return wbsTreeZi;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public int deleteBatchByProjectNodeId(Long projectNodeId) {
|
|
|
return baseMapper.deleteBatchProjectNodeId(projectNodeId);
|