|
@@ -403,7 +403,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
//导入excel
|
|
//导入excel
|
|
return importExcel(result, wbsTreeFu, wbsTree1);
|
|
return importExcel(result, wbsTreeFu, wbsTree1);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
- throw new ServiceException("导入失败,请确认模板格式内容是否正确");
|
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ return false;
|
|
} finally {
|
|
} finally {
|
|
//资源删除
|
|
//资源删除
|
|
File file2 = new File(canonicalPath);
|
|
File file2 = new File(canonicalPath);
|
|
@@ -421,6 +422,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
if (StringUtils.isNotEmpty(nodeName)) {
|
|
if (StringUtils.isNotEmpty(nodeName)) {
|
|
//初始化节点参数
|
|
//初始化节点参数
|
|
WbsTree wbsTreeZi = new WbsTree();
|
|
WbsTree wbsTreeZi = new WbsTree();
|
|
|
|
+ wbsTreeZi.setId(SnowFlakeUtil.getId());
|
|
wbsTreeZi.setTenantId(AuthUtil.getTenantId());
|
|
wbsTreeZi.setTenantId(AuthUtil.getTenantId());
|
|
wbsTreeZi.setDeptName(nodeName);
|
|
wbsTreeZi.setDeptName(nodeName);
|
|
wbsTreeZi.setDeptCategory(Integer.valueOf(nodeType));
|
|
wbsTreeZi.setDeptCategory(Integer.valueOf(nodeType));
|
|
@@ -428,22 +430,18 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
wbsTreeZi.setParentId(wbsTreeFu.getParentId());
|
|
wbsTreeZi.setParentId(wbsTreeFu.getParentId());
|
|
wbsTreeZi.setAncestors(wbsTreeFu.getAncestors());
|
|
wbsTreeZi.setAncestors(wbsTreeFu.getAncestors());
|
|
wbsTreeZi.setProjectNodeId(wbsTree1.getProjectNodeId());
|
|
wbsTreeZi.setProjectNodeId(wbsTree1.getProjectNodeId());
|
|
-
|
|
|
|
- //新增节点返回未创建成功查询出来的wbsTree对象、成功后的wbsTreeZi对象
|
|
|
|
|
|
+ //新增节点返回 未创建成功为wbsTree对象、成功为null
|
|
WbsTree wbsTree = importTree(wbsTreeZi);
|
|
WbsTree wbsTree = importTree(wbsTreeZi);
|
|
-
|
|
|
|
if (wbsTree == null) {
|
|
if (wbsTree == null) {
|
|
//后置赋值
|
|
//后置赋值
|
|
Long id = wbsTreeZi.getId();
|
|
Long id = wbsTreeZi.getId();
|
|
StringBuilder stringBuffer = new StringBuilder();
|
|
StringBuilder stringBuffer = new StringBuilder();
|
|
StringBuilder appendStr = stringBuffer.append(",").append(wbsTreeZi.getParentId());
|
|
StringBuilder appendStr = stringBuffer.append(",").append(wbsTreeZi.getParentId());
|
|
String ancestors = wbsTreeZi.getAncestors() + appendStr;
|
|
String ancestors = wbsTreeZi.getAncestors() + appendStr;
|
|
-
|
|
|
|
//修改节点ancestors
|
|
//修改节点ancestors
|
|
updateData(ancestors, id);
|
|
updateData(ancestors, id);
|
|
wbsTreeFu.setParentId(id);
|
|
wbsTreeFu.setParentId(id);
|
|
wbsTreeFu.setAncestors(ancestors);
|
|
wbsTreeFu.setAncestors(ancestors);
|
|
-
|
|
|
|
} else {
|
|
} else {
|
|
wbsTreeFu.setParentId(wbsTree.getId());
|
|
wbsTreeFu.setParentId(wbsTree.getId());
|
|
wbsTreeFu.setAncestors(wbsTree.getAncestors());
|
|
wbsTreeFu.setAncestors(wbsTree.getAncestors());
|
|
@@ -459,15 +457,14 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
|
|
|
private WbsTree importTree(WbsTree wbsTreeZi) {
|
|
private WbsTree importTree(WbsTree wbsTreeZi) {
|
|
//判断节点名称是否重复
|
|
//判断节点名称是否重复
|
|
- QueryWrapper<WbsTree> queryWrapper = new QueryWrapper<>();
|
|
|
|
- queryWrapper.eq("wbs_id", wbsTreeZi.getWbsId());
|
|
|
|
- queryWrapper.eq("dept_name", wbsTreeZi.getDeptName());
|
|
|
|
- queryWrapper.eq("dept_category", wbsTreeZi.getDeptCategory());
|
|
|
|
- queryWrapper.eq("project_node_id", wbsTreeZi.getProjectNodeId());
|
|
|
|
- queryWrapper.ne("ancestors", wbsTreeZi.getAncestors());
|
|
|
|
- List<WbsTree> wbsTrees = baseMapper.selectList(queryWrapper);
|
|
|
|
- WbsTree wbsTree = null;
|
|
|
|
-
|
|
|
|
|
|
+ List<WbsTree> wbsTrees = baseMapper.selectList(Wrappers.<WbsTree>query().lambda()
|
|
|
|
+ .eq(WbsTree::getWbsId, wbsTreeZi.getWbsId())
|
|
|
|
+ .eq(WbsTree::getDeptName, wbsTreeZi.getDeptName())
|
|
|
|
+ .eq(WbsTree::getDeptCategory, wbsTreeZi.getDeptCategory())
|
|
|
|
+ .eq(WbsTree::getProjectNodeId, wbsTreeZi.getProjectNodeId())
|
|
|
|
+ .ne(WbsTree::getAncestors, wbsTreeZi.getAncestors())
|
|
|
|
+ );
|
|
|
|
+ WbsTree trees = null;
|
|
if (wbsTrees.size() <= 0) { //不重复-直接新增
|
|
if (wbsTrees.size() <= 0) { //不重复-直接新增
|
|
wbsTreeZi.setStatus(1);
|
|
wbsTreeZi.setStatus(1);
|
|
wbsTreeZi.setType(1);
|
|
wbsTreeZi.setType(1);
|
|
@@ -477,29 +474,31 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
wbsTreeZi.setIsExpernode(0);
|
|
wbsTreeZi.setIsExpernode(0);
|
|
}
|
|
}
|
|
baseMapper.insert(wbsTreeZi);
|
|
baseMapper.insert(wbsTreeZi);
|
|
-
|
|
|
|
} else { //重复-判断是否同级,同级跳过,不同级新增
|
|
} else { //重复-判断是否同级,同级跳过,不同级新增
|
|
-
|
|
|
|
//获取当前相同节点对象信息
|
|
//获取当前相同节点对象信息
|
|
- wbsTree = wbsTrees.stream().findFirst().orElse(wbsTrees.get(wbsTrees.size() - 1));
|
|
|
|
-
|
|
|
|
- //只判断4 5 6级节点类型的名称是否重复,后续可根据实际情况更改控制的层级
|
|
|
|
- if (wbsTreeZi.getDeptCategory() == 4 || wbsTreeZi.getDeptCategory() == 5 || wbsTreeZi.getDeptCategory() == 6) {
|
|
|
|
- if (wbsTreeZi.getDeptName().equals(wbsTree.getDeptName()) && !wbsTreeZi.getParentId().equals(wbsTree.getParentId())) {
|
|
|
|
- wbsTreeZi.setStatus(1);
|
|
|
|
- wbsTreeZi.setType(1);
|
|
|
|
- wbsTreeZi.setMajorDataType(0);
|
|
|
|
- if (wbsTreeZi.getDeptCategory() == 6) {
|
|
|
|
- wbsTreeZi.setIsConcrete(0);
|
|
|
|
- wbsTreeZi.setIsExpernode(0);
|
|
|
|
|
|
+ for (WbsTree tree : wbsTrees) {
|
|
|
|
+ //只判断2 3 4 5 6级节点类型的名称是否重复,可根据实际情况更改控制的层级
|
|
|
|
+ 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);
|
|
|
|
+ }
|
|
|
|
+ baseMapper.insert(wbsTreeZi);
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
- baseMapper.insert(wbsTreeZi);
|
|
|
|
}
|
|
}
|
|
|
|
+ trees = tree;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- return wbsTree;
|
|
|
|
|
|
+ return trees;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public int deleteBatchByProjectNodeId(Long projectNodeId) {
|
|
public int deleteBatchByProjectNodeId(Long projectNodeId) {
|
|
return baseMapper.deleteBatchProjectNodeId(projectNodeId);
|
|
return baseMapper.deleteBatchProjectNodeId(projectNodeId);
|