|
@@ -1643,13 +1643,11 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
//通过递归的方式去获取祖级路径
|
|
//通过递归的方式去获取祖级路径
|
|
|
|
|
|
if (addData.isEmpty()) {
|
|
if (addData.isEmpty()) {
|
|
return null;
|
|
return null;
|
|
- }else{
|
|
|
|
|
|
+ } else {
|
|
try {
|
|
try {
|
|
String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
|
|
String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
|
|
Set<String> urls = new HashSet<>();
|
|
Set<String> urls = new HashSet<>();
|
|
@@ -1675,8 +1673,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
//查询出当前项目所有节点
|
|
//查询出当前项目所有节点
|
|
List<WbsTreePrivate> addList = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
List<WbsTreePrivate> addList = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
.eq(WbsTreePrivate::getIsDeleted, 0)
|
|
.eq(WbsTreePrivate::getIsDeleted, 0)
|
|
@@ -1708,12 +1704,12 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
if (StringUtils.isNotEmpty(primaryKeyId)) {
|
|
if (StringUtils.isNotEmpty(primaryKeyId)) {
|
|
//获取当前节点对应节点信息
|
|
//获取当前节点对应节点信息
|
|
WbsTreePrivate wbsTreePrivate = baseMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPKeyId, primaryKeyId));
|
|
WbsTreePrivate wbsTreePrivate = baseMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPKeyId, primaryKeyId));
|
|
- if(StringUtils.isEmpty(wbsTreePrivate.getAncestorsPId())){
|
|
|
|
|
|
+ if (StringUtils.isEmpty(wbsTreePrivate.getAncestorsPId())) {
|
|
throw new RuntimeException("当前节点祖级路径数据异常,请联系工作人员修复数据");
|
|
throw new RuntimeException("当前节点祖级路径数据异常,请联系工作人员修复数据");
|
|
}
|
|
}
|
|
//查询当前选中节点下的子节点是否为表单 如果子节点还有子节点就不允许同步
|
|
//查询当前选中节点下的子节点是否为表单 如果子节点还有子节点就不允许同步
|
|
Long count = baseMapper.selectCount(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPId, wbsTreePrivate.getPKeyId()).eq(WbsTreePrivate::getType, 1));
|
|
Long count = baseMapper.selectCount(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getPId, wbsTreePrivate.getPKeyId()).eq(WbsTreePrivate::getType, 1));
|
|
- if(count > 0){
|
|
|
|
|
|
+ if (count > 0) {
|
|
throw new RuntimeException("请选择底层节点");
|
|
throw new RuntimeException("请选择底层节点");
|
|
}
|
|
}
|
|
//获取项目信息
|
|
//获取项目信息
|
|
@@ -1723,178 +1719,177 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
List<WbsTreeContract> insertDataContractList = new ArrayList<>();
|
|
List<WbsTreeContract> insertDataContractList = new ArrayList<>();
|
|
|
|
|
|
// if (("1").equals(wbsTreePrivate.getWbsType())) {
|
|
// if (("1").equals(wbsTreePrivate.getWbsType())) {
|
|
- if (("public").equals(projectInfo.getReferenceWbsTemplateType())) {
|
|
|
|
- /*-------------------------------------质检公有引用同步--------------------------------------------*/
|
|
|
|
- //获取当前节点对应的公有引用树下的元素表
|
|
|
|
- List<WbsTree> wbsTrees = wbsTreeMapper.selectList(Wrappers.<WbsTree>lambdaQuery()
|
|
|
|
- .select(WbsTree::getAncestors, WbsTree::getWbsId, WbsTree::getId)
|
|
|
|
- .and(wq -> wq.eq(WbsTree::getId, wbsTreePrivate.getId())
|
|
|
|
- .or()
|
|
|
|
- .eq(WbsTree::getId, wbsTreePrivate.getTreePId()))
|
|
|
|
|
|
+ if (("public").equals(projectInfo.getReferenceWbsTemplateType())) {
|
|
|
|
+ /*-------------------------------------质检公有引用同步--------------------------------------------*/
|
|
|
|
+ //获取当前节点对应的公有引用树下的元素表
|
|
|
|
+ List<WbsTree> wbsTrees = wbsTreeMapper.selectList(Wrappers.<WbsTree>lambdaQuery()
|
|
|
|
+ .select(WbsTree::getAncestors, WbsTree::getWbsId, WbsTree::getId)
|
|
|
|
+ .and(wq -> wq.eq(WbsTree::getId, wbsTreePrivate.getTreePId())
|
|
|
|
+ .or()
|
|
|
|
+ .eq(WbsTree::getId, wbsTreePrivate.getTreePId()))
|
|
|
|
+ );
|
|
|
|
+ List<WbsTree> wbsTreesPublicTables;
|
|
|
|
+ WbsTree wbsTree = wbsTrees.get(0);
|
|
|
|
+ if (wbsTree.getAncestors().equals("0")) {
|
|
|
|
+ //根节点
|
|
|
|
+ wbsTreesPublicTables = wbsTreeMapper.selectList(Wrappers.<WbsTree>query().lambda()
|
|
|
|
+ .select(WbsTree::getId, WbsTree::getParentId)
|
|
|
|
+ .eq(WbsTree::getWbsId, wbsTree.getWbsId()).eq(WbsTree::getType, 2)
|
|
|
|
+ /*.eq(WbsTree::getStatus,1)*/
|
|
);
|
|
);
|
|
- List<WbsTree> wbsTreesPublicTables;
|
|
|
|
- WbsTree wbsTree = wbsTrees.get(0);
|
|
|
|
- if (wbsTree.getAncestors().equals("0")) {
|
|
|
|
- //根节点
|
|
|
|
- wbsTreesPublicTables = wbsTreeMapper.selectList(Wrappers.<WbsTree>query().lambda()
|
|
|
|
- .select(WbsTree::getId, WbsTree::getParentId)
|
|
|
|
- .eq(WbsTree::getWbsId, wbsTree.getWbsId()).eq(WbsTree::getType, 2)
|
|
|
|
- /*.eq(WbsTree::getStatus,1)*/
|
|
|
|
- );
|
|
|
|
- } else {
|
|
|
|
- wbsTreesPublicTables = wbsTreeMapper.selectList(Wrappers.<WbsTree>query().lambda()
|
|
|
|
- .select(WbsTree::getId, WbsTree::getParentId)
|
|
|
|
- .eq(WbsTree::getWbsId, wbsTree.getWbsId()).eq(WbsTree::getType, 2)
|
|
|
|
- /*.eq(WbsTree::getStatus,1)*/
|
|
|
|
- .like(WbsTree::getAncestors, wbsTree.getId())
|
|
|
|
- );
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //获取当前项目树下的元素表 节点
|
|
|
|
- List<WbsTreePrivate> wbsTreePrivatesProjectAll = baseMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
|
- .select(WbsTreePrivate::getType, WbsTreePrivate::getId, WbsTreePrivate::getAncestorsPId, WbsTreePrivate::getTreePId)
|
|
|
|
- .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
|
|
|
|
- .eq(WbsTreePrivate::getWbsId, wbsTreePrivate.getWbsId())
|
|
|
|
- /*.eq(WbsTreePrivate::getStatus, 1)*/
|
|
|
|
|
|
+ } else {
|
|
|
|
+ wbsTreesPublicTables = wbsTreeMapper.selectList(Wrappers.<WbsTree>query().lambda()
|
|
|
|
+ .select(WbsTree::getId, WbsTree::getParentId)
|
|
|
|
+ .eq(WbsTree::getWbsId, wbsTree.getWbsId()).eq(WbsTree::getType, 2)
|
|
|
|
+ /*.eq(WbsTree::getStatus,1)*/
|
|
|
|
+ .like(WbsTree::getAncestors, wbsTree.getId())
|
|
);
|
|
);
|
|
- List<WbsTreePrivate> wbsTreePrivatesProjectNodes = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(1)).collect(Collectors.toList());
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- List<WbsTreePrivate> wbsTreePrivatesProjectTables;
|
|
|
|
- if (wbsTreePrivate.getAncestorsPId().equals("0")) {
|
|
|
|
- //根节点
|
|
|
|
- wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2)).collect(Collectors.toList());
|
|
|
|
- } else {
|
|
|
|
- wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2) && f.getAncestorsPId().contains(String.valueOf(wbsTreePrivate.getPKeyId()))).collect(Collectors.toList());
|
|
|
|
- }
|
|
|
|
|
|
+ //获取当前项目树下的元素表 节点
|
|
|
|
+ List<WbsTreePrivate> wbsTreePrivatesProjectAll = baseMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
|
+ .select(WbsTreePrivate::getType, WbsTreePrivate::getAncestorsPId, WbsTreePrivate::getTreePId)
|
|
|
|
+ .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
|
|
|
|
+ .eq(WbsTreePrivate::getWbsId, wbsTreePrivate.getWbsId())
|
|
|
|
+ /*.eq(WbsTreePrivate::getStatus, 1)*/
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ List<WbsTreePrivate> wbsTreePrivatesProjectTables;
|
|
|
|
+ if (wbsTreePrivate.getAncestorsPId().equals("0")) {
|
|
|
|
+ //根节点
|
|
|
|
+ wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2)).collect(Collectors.toList());
|
|
|
|
+ } else {
|
|
|
|
+ wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2) && f.getAncestorsPId().contains(String.valueOf(wbsTreePrivate.getPKeyId()))).collect(Collectors.toList());
|
|
|
|
+ }
|
|
|
|
|
|
- //获取新增的公有元素表addPublicTable
|
|
|
|
|
|
+ //获取新增的公有元素表addPublicTable
|
|
// List<WbsTree> addPublicTable = wbsTreesPublicTables.stream().filter(f ->
|
|
// List<WbsTree> addPublicTable = wbsTreesPublicTables.stream().filter(f ->
|
|
// !wbsTreePrivatesProjectTables.stream().map(WbsTreePrivate::getId).collect(Collectors.toList()).contains(f.getId())).collect(Collectors.toList());
|
|
// !wbsTreePrivatesProjectTables.stream().map(WbsTreePrivate::getId).collect(Collectors.toList()).contains(f.getId())).collect(Collectors.toList());
|
|
- Set<Long> privateIdsAndPids = wbsTreePrivatesProjectTables.stream()
|
|
|
|
- .flatMap(p -> Stream.of(p.getId(), p.getTreePId()))
|
|
|
|
- .collect(Collectors.toSet());
|
|
|
|
|
|
+ Set<Long> privateIdsAndPids = wbsTreePrivatesProjectTables.stream()
|
|
|
|
+ .map(WbsTreePrivate::getTreePId)
|
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
+
|
|
|
|
+ // 过滤 wbsTreesPublicTables
|
|
|
|
+ List<WbsTree> addPublicTable = wbsTreesPublicTables.stream()
|
|
|
|
+ .filter(f -> !privateIdsAndPids.contains(f.getId()))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ //判断当前新增的表在项目的wbs树中是否存在上级节点,存在表示可以新增,不存在表示不新增
|
|
|
|
+ // List<WbsTree> addPublicTables = addPublicTable.stream().filter(node ->
|
|
|
|
+ // wbsTreePrivatesProjectNodes.stream().map(WbsTreePrivate::getId).collect(Collectors.toList()).contains(node.getParentId())).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ //构造
|
|
|
|
+ List<Long> ids = addPublicTable.stream().map(WbsTree::getId).collect(Collectors.toList());
|
|
|
|
+ if (ids.size() > 0) {
|
|
|
|
+ List<WbsTree> resultDataList = wbsTreeMapper.selectList(Wrappers.<WbsTree>lambdaQuery().in(WbsTree::getId, ids));
|
|
|
|
+ for (WbsTree tree : resultDataList) {
|
|
|
|
+ WbsTreePrivate dataPrivate = BeanUtil.copyProperties(tree, WbsTreePrivate.class);
|
|
|
|
+ if (dataPrivate != null) {
|
|
|
|
+ dataPrivate.setPKeyId(SnowFlakeUtil.getId());
|
|
|
|
+ dataPrivate.setWbsType(wbsTreePrivate.getWbsType());
|
|
|
|
+ dataPrivate.setProjectId(wbsTreePrivate.getProjectId());
|
|
|
|
+ dataPrivate.setFullName(dataPrivate.getNodeName());
|
|
|
|
+ dataPrivate.setInitTableId(tree.getInitTableId().toString());
|
|
|
|
+ dataPrivate.setIsAddConceal(0);
|
|
|
|
+ dataPrivate.setParentId(wbsTreePrivate.getId());
|
|
|
|
+ //TODO
|
|
|
|
+ dataPrivate.setTreePId(tree.getId());
|
|
|
|
+ //TODO
|
|
|
|
+ dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
|
|
+ //TODO
|
|
|
|
+ dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + wbsTreePrivate.getPKeyId());
|
|
|
|
|
|
- // 过滤 wbsTreesPublicTables
|
|
|
|
- List<WbsTree> addPublicTable = wbsTreesPublicTables.stream()
|
|
|
|
- .filter(f -> !privateIdsAndPids.contains(f.getId()))
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- //判断当前新增的表在项目的wbs树中是否存在上级节点,存在表示可以新增,不存在表示不新增
|
|
|
|
- // List<WbsTree> addPublicTables = addPublicTable.stream().filter(node ->
|
|
|
|
- // wbsTreePrivatesProjectNodes.stream().map(WbsTreePrivate::getId).collect(Collectors.toList()).contains(node.getParentId())).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- //构造
|
|
|
|
- List<Long> ids = addPublicTable.stream().map(WbsTree::getId).collect(Collectors.toList());
|
|
|
|
- if (ids.size() > 0) {
|
|
|
|
- List<WbsTree> resultDataList = wbsTreeMapper.selectList(Wrappers.<WbsTree>lambdaQuery().in(WbsTree::getId, ids));
|
|
|
|
- for (WbsTree tree : resultDataList) {
|
|
|
|
- WbsTreePrivate dataPrivate = BeanUtil.copyProperties(tree, WbsTreePrivate.class);
|
|
|
|
- if (dataPrivate != null) {
|
|
|
|
- dataPrivate.setPKeyId(SnowFlakeUtil.getId());
|
|
|
|
- dataPrivate.setWbsType(wbsTreePrivate.getWbsType());
|
|
|
|
- dataPrivate.setProjectId(wbsTreePrivate.getProjectId());
|
|
|
|
- dataPrivate.setFullName(dataPrivate.getNodeName());
|
|
|
|
- dataPrivate.setInitTableId(tree.getInitTableId().toString());
|
|
|
|
- dataPrivate.setIsAddConceal(0);
|
|
|
|
- dataPrivate.setParentId(wbsTreePrivate.getId());
|
|
|
|
- //TODO
|
|
|
|
- dataPrivate.setTreePId(tree.getId());
|
|
|
|
- //TODO
|
|
|
|
- dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
|
|
- //TODO
|
|
|
|
- dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + dataPrivate.getPId());
|
|
|
|
-
|
|
|
|
- insertDataPrivateList.add(dataPrivate);//新增
|
|
|
|
- }
|
|
|
|
|
|
+ insertDataPrivateList.add(dataPrivate);//新增
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
- } else if (("private").equals(projectInfo.getReferenceWbsTemplateType())) {
|
|
|
|
- /*-------------------------------------质检私有引用同步--------------------------------------------*/
|
|
|
|
- //根据wbsTreePrivate的wbsId=私有引用的pKeyId来获取引用树根节点
|
|
|
|
- WbsTreePrivate wbsTreePrivateRoot = baseMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
|
|
- .eq(WbsTreePrivate::getPKeyId, wbsTreePrivate.getWbsId()));
|
|
|
|
-
|
|
|
|
- //获取到私有模板的当前节点的子节点数据
|
|
|
|
-
|
|
|
|
- //获取当前私有引用树的元素表信息
|
|
|
|
- List<WbsTreePrivate> wbsTreePrivateRootTables;
|
|
|
|
- if (wbsTreePrivate.getAncestorsPId().equals("0")) {
|
|
|
|
- //根节点
|
|
|
|
- wbsTreePrivateRootTables = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
|
|
- .select(WbsTreePrivate::getId, WbsTreePrivate::getParentId, WbsTreePrivate::getPKeyId)
|
|
|
|
- .eq(WbsTreePrivate::getProjectId, wbsTreePrivateRoot.getProjectId())
|
|
|
|
- .eq(WbsTreePrivate::getWbsId, wbsTreePrivateRoot.getWbsId())
|
|
|
|
- .eq(WbsTreePrivate::getType, 2)
|
|
|
|
- /*.eq(WbsTreePrivate::getStatus, 1)*/
|
|
|
|
- );
|
|
|
|
- } else {
|
|
|
|
- wbsTreePrivateRootTables = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
|
|
- .select(WbsTreePrivate::getId, WbsTreePrivate::getParentId, WbsTreePrivate::getPKeyId)
|
|
|
|
- .eq(WbsTreePrivate::getProjectId, wbsTreePrivateRoot.getProjectId())
|
|
|
|
- .eq(WbsTreePrivate::getWbsId, wbsTreePrivateRoot.getWbsId())
|
|
|
|
- .eq(WbsTreePrivate::getType, 2)
|
|
|
|
- /*.eq(WbsTreePrivate::getStatus, 1)*/
|
|
|
|
- .like(WbsTreePrivate::getAncestors, wbsTreePrivate.getId()));
|
|
|
|
- }
|
|
|
|
- if(CollectionUtil.isEmpty(wbsTreePrivateRootTables)){
|
|
|
|
- throw new ServiceException("私有模板无法找到此节点");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //获取当前项目选择的节点下的所有元素表 节点
|
|
|
|
- List<WbsTreePrivate> wbsTreePrivatesProjectAll = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
|
|
- .select(WbsTreePrivate::getType, WbsTreePrivate::getId, WbsTreePrivate::getAncestorsPId, WbsTreePrivate::getPKeyId)
|
|
|
|
- .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
|
|
|
|
- .eq(WbsTreePrivate::getWbsId, wbsTreePrivate.getWbsId())
|
|
|
|
|
|
+ } else if (("private").equals(projectInfo.getReferenceWbsTemplateType())) {
|
|
|
|
+ /*-------------------------------------质检私有引用同步--------------------------------------------*/
|
|
|
|
+ //根据wbsTreePrivate的wbsId=私有引用的pKeyId来获取引用树根节点
|
|
|
|
+ WbsTreePrivate wbsTreePrivateRoot = baseMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
|
|
+ .eq(WbsTreePrivate::getPKeyId, wbsTreePrivate.getWbsId()));
|
|
|
|
+
|
|
|
|
+ //根据模板跟节点信息 查询选中节点的信息
|
|
|
|
+ wbsTreePrivateRoot = baseMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
|
|
+ .eq(WbsTreePrivate::getProjectId, wbsTreePrivateRoot.getProjectId())
|
|
|
|
+
|
|
|
|
+ .eq(WbsTreePrivate::getTreePId, wbsTreePrivate.getTreePId()));
|
|
|
|
+
|
|
|
|
+ //获取当前私有引用树的元素表信息
|
|
|
|
+ List<WbsTreePrivate> wbsTreePrivateRootTables;
|
|
|
|
+ if (wbsTreePrivate.getAncestorsPId().equals("0")) {
|
|
|
|
+ //根节点
|
|
|
|
+ wbsTreePrivateRootTables = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
|
|
+ .select(WbsTreePrivate::getTreePId, WbsTreePrivate::getParentId, WbsTreePrivate::getPKeyId)
|
|
|
|
+ .eq(WbsTreePrivate::getProjectId, wbsTreePrivateRoot.getProjectId())
|
|
|
|
+ .eq(WbsTreePrivate::getWbsId, wbsTreePrivateRoot.getWbsId())
|
|
|
|
+ .eq(WbsTreePrivate::getType, 2)
|
|
/*.eq(WbsTreePrivate::getStatus, 1)*/
|
|
/*.eq(WbsTreePrivate::getStatus, 1)*/
|
|
);
|
|
);
|
|
|
|
+ } else {
|
|
|
|
+ wbsTreePrivateRootTables = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
|
|
+ .select(WbsTreePrivate::getTreePId, WbsTreePrivate::getParentId, WbsTreePrivate::getPKeyId)
|
|
|
|
+ .eq(WbsTreePrivate::getProjectId, wbsTreePrivateRoot.getProjectId())
|
|
|
|
+ .eq(WbsTreePrivate::getWbsId, wbsTreePrivateRoot.getWbsId())
|
|
|
|
+ .eq(WbsTreePrivate::getType, 2)
|
|
|
|
+ /*.eq(WbsTreePrivate::getStatus, 1)*/
|
|
|
|
+ .like(WbsTreePrivate::getAncestorsPId, wbsTreePrivateRoot.getPKeyId()));
|
|
|
|
+ }
|
|
|
|
+ if (CollectionUtil.isEmpty(wbsTreePrivateRootTables)) {
|
|
|
|
+ throw new ServiceException("私有模板无法找到此节点");
|
|
|
|
+ }
|
|
|
|
|
|
- List<WbsTreePrivate> wbsTreePrivatesProjectNodes = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(1)).collect(Collectors.toList());
|
|
|
|
- List<WbsTreePrivate> wbsTreePrivatesProjectTables;
|
|
|
|
- if (wbsTreePrivate.getAncestorsPId().equals("0")) {
|
|
|
|
- //根节点
|
|
|
|
- wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2)).collect(Collectors.toList());
|
|
|
|
- } else {
|
|
|
|
- try {
|
|
|
|
- wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2) && f.getAncestorsPId().contains(String.valueOf(wbsTreePrivate.getPKeyId()))).collect(Collectors.toList());
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- throw new ServiceException("祖级路径数据异常,请联系工作人员修复数据");
|
|
|
|
- }
|
|
|
|
|
|
+ //获取当前项目选择的节点下的所有元素表 节点
|
|
|
|
+ List<WbsTreePrivate> wbsTreePrivatesProjectAll = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
|
|
|
|
+ .select(WbsTreePrivate::getType, WbsTreePrivate::getTreePId, WbsTreePrivate::getAncestorsPId, WbsTreePrivate::getPKeyId)
|
|
|
|
+ .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
|
|
|
|
+ .eq(WbsTreePrivate::getWbsId, wbsTreePrivate.getWbsId())
|
|
|
|
+ /*.eq(WbsTreePrivate::getStatus, 1)*/
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ List<WbsTreePrivate> wbsTreePrivatesProjectTables;
|
|
|
|
+ if (wbsTreePrivate.getAncestorsPId().equals("0")) {
|
|
|
|
+ //根节点
|
|
|
|
+ wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2)).collect(Collectors.toList());
|
|
|
|
+ } else {
|
|
|
|
+ try {
|
|
|
|
+ wbsTreePrivatesProjectTables = wbsTreePrivatesProjectAll.stream().filter(f -> f.getType().equals(2) && f.getAncestorsPId().contains(String.valueOf(wbsTreePrivate.getPKeyId()))).collect(Collectors.toList());
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ throw new ServiceException("祖级路径数据异常,请联系工作人员修复数据");
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
|
|
- //获取新增的私有元素表addPrivateTable
|
|
|
|
- List<WbsTreePrivate> addPrivateTable = wbsTreePrivateRootTables.stream().filter(f ->
|
|
|
|
- !wbsTreePrivatesProjectTables.stream().map(WbsTreePrivate::getId).collect(Collectors.toList()).contains(f.getId())).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- //判断当前新增的表在私有wbs中是否存在上级节点,存在表示可以新增,不存在表示不新增
|
|
|
|
- List<WbsTreePrivate> addPrivateTables = addPrivateTable.stream().filter(node ->
|
|
|
|
- wbsTreePrivatesProjectNodes.stream().map(WbsTreePrivate::getId).collect(Collectors.toList()).contains(node.getParentId())).collect(Collectors.toList());
|
|
|
|
- //构造
|
|
|
|
- List<Long> ids = addPrivateTables.stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList());
|
|
|
|
- if (ids.size() > 0) {
|
|
|
|
- List<WbsTreePrivate> resultDataList = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery().in(WbsTreePrivate::getPKeyId, ids));
|
|
|
|
- for (WbsTreePrivate tree : resultDataList) {
|
|
|
|
- WbsTreePrivate dataPrivate = BeanUtil.copyProperties(tree, WbsTreePrivate.class);
|
|
|
|
- if (dataPrivate != null) {
|
|
|
|
- dataPrivate.setPKeyId(SnowFlakeUtil.getId());
|
|
|
|
- dataPrivate.setWbsId(wbsTreePrivate.getWbsId());
|
|
|
|
- dataPrivate.setWbsType(tree.getWbsType());
|
|
|
|
- dataPrivate.setProjectId(wbsTreePrivate.getProjectId());
|
|
|
|
- dataPrivate.setInitTableId(tree.getInitTableId());
|
|
|
|
- dataPrivate.setIsAddConceal(0);
|
|
|
|
-
|
|
|
|
- //TODO
|
|
|
|
- dataPrivate.setTreePId(dataPrivate.getId());
|
|
|
|
- //TODO
|
|
|
|
- dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
|
|
- //TODO
|
|
|
|
- dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + wbsTreePrivate.getPId());
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- insertDataPrivateList.add(dataPrivate);
|
|
|
|
- }
|
|
|
|
|
|
+ //获取新增的私有元素表addPrivateTable
|
|
|
|
+ List<WbsTreePrivate> addPrivateTable = wbsTreePrivateRootTables.stream().filter(f ->
|
|
|
|
+ !wbsTreePrivatesProjectTables.stream().map(WbsTreePrivate::getTreePId).collect(Collectors.toList()).contains(f.getTreePId())).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ //构造
|
|
|
|
+ List<Long> ids = addPrivateTable.stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList());
|
|
|
|
+ if (ids.size() > 0) {
|
|
|
|
+ List<WbsTreePrivate> resultDataList = baseMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery().in(WbsTreePrivate::getPKeyId, ids));
|
|
|
|
+ for (WbsTreePrivate tree : resultDataList) {
|
|
|
|
+ WbsTreePrivate dataPrivate = BeanUtil.copyProperties(tree, WbsTreePrivate.class);
|
|
|
|
+ if (dataPrivate != null) {
|
|
|
|
+ dataPrivate.setPKeyId(SnowFlakeUtil.getId());
|
|
|
|
+ dataPrivate.setWbsId(wbsTreePrivate.getWbsId());
|
|
|
|
+ dataPrivate.setWbsType(tree.getWbsType());
|
|
|
|
+ dataPrivate.setProjectId(wbsTreePrivate.getProjectId());
|
|
|
|
+ dataPrivate.setInitTableId(tree.getInitTableId());
|
|
|
|
+ dataPrivate.setIsAddConceal(0);
|
|
|
|
+
|
|
|
|
+ //TODO
|
|
|
|
+ dataPrivate.setTreePId(tree.getId());
|
|
|
|
+ //TODO
|
|
|
|
+ dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
|
|
+ //TODO
|
|
|
|
+ dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + wbsTreePrivate.getPKeyId());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ insertDataPrivateList.add(dataPrivate);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ }
|
|
// }
|
|
// }
|
|
|
|
|
|
// if (("2").equals(wbsTreePrivate.getWbsType())) {
|
|
// if (("2").equals(wbsTreePrivate.getWbsType())) {
|
|
@@ -1967,7 +1962,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
// //TODO
|
|
// //TODO
|
|
// dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
// dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
// //TODO
|
|
// //TODO
|
|
-// dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + wbsTreePrivate.getPId());
|
|
|
|
|
|
+// dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + wbsTreePrivate.getPKeyId());
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// insertDataPrivateList.add(dataPrivate);//新增
|
|
// insertDataPrivateList.add(dataPrivate);//新增
|
|
@@ -2047,7 +2042,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
// //TODO
|
|
// //TODO
|
|
// dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
// dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
// //TODO
|
|
// //TODO
|
|
-// dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + wbsTreePrivate.getPId());
|
|
|
|
|
|
+// dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + wbsTreePrivate.getPKeyId());
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// insertDataPrivateList.add(dataPrivate);
|
|
// insertDataPrivateList.add(dataPrivate);
|
|
@@ -2126,7 +2121,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
// //TODO
|
|
// //TODO
|
|
// dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
// dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
// //TODO
|
|
// //TODO
|
|
-// dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + wbsTreePrivate.getPId());
|
|
|
|
|
|
+// dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + wbsTreePrivate.getPKeyId());
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// insertDataPrivateList.add(dataPrivate);//新增
|
|
// insertDataPrivateList.add(dataPrivate);//新增
|
|
@@ -2203,7 +2198,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
// //TODO
|
|
// //TODO
|
|
// dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
// dataPrivate.setPId(wbsTreePrivate.getPKeyId());
|
|
// //TODO
|
|
// //TODO
|
|
-// dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + wbsTreePrivate.getPId());
|
|
|
|
|
|
+// dataPrivate.setAncestorsPId(wbsTreePrivate.getAncestorsPId() + "," + wbsTreePrivate.getPKeyId());
|
|
//
|
|
//
|
|
//
|
|
//
|
|
// insertDataPrivateList.add(dataPrivate);
|
|
// insertDataPrivateList.add(dataPrivate);
|
|
@@ -2246,18 +2241,18 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //--------------------------------------------------------可能使用事务管理---------------------------------------------------------
|
|
//同步到合同段(合同段中可能不存在原始节点(那么分配wsb处就同步不成功),但合同段存在新增、复制的节点,所以单独处理)
|
|
//同步到合同段(合同段中可能不存在原始节点(那么分配wsb处就同步不成功),但合同段存在新增、复制的节点,所以单独处理)
|
|
if (!insertDataPrivateList.isEmpty()) {
|
|
if (!insertDataPrivateList.isEmpty()) {
|
|
- //
|
|
|
|
- for (WbsTreePrivate treePrivate : insertDataPrivateList) {
|
|
|
|
- WbsTreePrivate treePrivateP = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>lambdaQuery().eq(WbsTreePrivate::getId, treePrivate.getParentId()).eq(WbsTreePrivate::getProjectId, treePrivate.getProjectId()).eq(WbsTreePrivate::getWbsId, treePrivate.getWbsId()));
|
|
|
|
- List<WbsTreeContract> addOrCo = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>lambdaQuery()
|
|
|
|
- .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
|
|
|
|
- .eq(WbsTreeContract::getIsTypePrivatePid, treePrivateP.getPKeyId())
|
|
|
|
- .eq(WbsTreeContract::getIsDeleted, 0)
|
|
|
|
|
|
+ //查询合同段当前节点父级的所有对应的合同段节点
|
|
|
|
+ List<WbsTreeContract> addOrCo = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>lambdaQuery()
|
|
|
|
+ .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
|
|
|
|
+ .eq(WbsTreeContract::getIsTypePrivatePid, wbsTreePrivate.getPKeyId())
|
|
|
|
+ .eq(WbsTreeContract::getIsDeleted, 0)
|
|
|
|
+ );
|
|
|
|
+ if (addOrCo.size() > 0) {
|
|
|
|
|
|
- );
|
|
|
|
- if (addOrCo.size() > 0) {
|
|
|
|
|
|
+ insertDataPrivateList.forEach(treePrivate -> {
|
|
for (WbsTreeContract addwbsTreeC : addOrCo) {
|
|
for (WbsTreeContract addwbsTreeC : addOrCo) {
|
|
WbsTreeContract wbsTreeContract = BeanUtil.copyProperties(treePrivate, WbsTreeContract.class);
|
|
WbsTreeContract wbsTreeContract = BeanUtil.copyProperties(treePrivate, WbsTreeContract.class);
|
|
wbsTreeContract.setIsBussShow(1);
|
|
wbsTreeContract.setIsBussShow(1);
|
|
@@ -2266,16 +2261,17 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
wbsTreeContract.setIsTypePrivatePid(treePrivate.getPKeyId()); //记录原始表的pKeyId
|
|
wbsTreeContract.setIsTypePrivatePid(treePrivate.getPKeyId()); //记录原始表的pKeyId
|
|
wbsTreeContract.setPKeyId(SnowFlakeUtil.getId());
|
|
wbsTreeContract.setPKeyId(SnowFlakeUtil.getId());
|
|
wbsTreeContract.setParentId(addwbsTreeC.getId());
|
|
wbsTreeContract.setParentId(addwbsTreeC.getId());
|
|
|
|
+ wbsTreeContract.setAncestors(addwbsTreeC.getAncestors() + "," + addwbsTreeC.getId());
|
|
//TODO
|
|
//TODO
|
|
wbsTreeContract.setTreePId(wbsTreeContract.getId());
|
|
wbsTreeContract.setTreePId(wbsTreeContract.getId());
|
|
//TODO
|
|
//TODO
|
|
wbsTreeContract.setPId(addwbsTreeC.getPKeyId());
|
|
wbsTreeContract.setPId(addwbsTreeC.getPKeyId());
|
|
//TODO
|
|
//TODO
|
|
- wbsTreeContract.setAncestorsPId(addwbsTreeC.getAncestorsPId() + "," + wbsTreeContract.getPId());
|
|
|
|
|
|
+ wbsTreeContract.setAncestorsPId(addwbsTreeC.getAncestorsPId() + "," + addwbsTreeC.getPKeyId());
|
|
wbsTreeContract.setContractId(addwbsTreeC.getContractId());
|
|
wbsTreeContract.setContractId(addwbsTreeC.getContractId());
|
|
insertDataContractList.add(wbsTreeContract);
|
|
insertDataContractList.add(wbsTreeContract);
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
/*Map<Long, List<WbsTreePrivate>> tabParentNodesGroup = insertDataPrivateList.stream().collect(Collectors.groupingBy(WbsTreePrivate::getParentId));
|
|
/*Map<Long, List<WbsTreePrivate>> tabParentNodesGroup = insertDataPrivateList.stream().collect(Collectors.groupingBy(WbsTreePrivate::getParentId));
|