|
@@ -569,8 +569,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
List<String> diffRent = WbsTreeContractServiceImpl.getDiffrent(idList1, idList2);
|
|
List<String> diffRent = WbsTreeContractServiceImpl.getDiffrent(idList1, idList2);
|
|
//元素表同步
|
|
//元素表同步
|
|
if (diffRent.size() == 0) {
|
|
if (diffRent.size() == 0) {
|
|
- List<String> tableId1 = new ArrayList<>();
|
|
|
|
- List<String> tableId2 = new ArrayList<>();
|
|
|
|
if (pawDTO.getReferenceType().equals("public")) {
|
|
if (pawDTO.getReferenceType().equals("public")) {
|
|
//公有同步新增元素表
|
|
//公有同步新增元素表
|
|
//获取公有wbs树新增的元素表
|
|
//获取公有wbs树新增的元素表
|
|
@@ -586,24 +584,22 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
wbsTreeListAll.addAll(wbsTreeList);
|
|
wbsTreeListAll.addAll(wbsTreeList);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
- wbsTreeListAll.stream().forEach(wbsTree -> {
|
|
|
|
- tableId1.add(String.valueOf(wbsTree.getId()));
|
|
|
|
- });
|
|
|
|
|
|
+ List<Long> collect1 = wbsTreeListAll.stream().map(WbsTree::getId).collect(Collectors.toList());
|
|
|
|
+ List<String> collect2 = collect1.stream().map(String::valueOf).collect(Collectors.toList());
|
|
//获取项目私有wbs树下当前所有的元素表
|
|
//获取项目私有wbs树下当前所有的元素表
|
|
List<WbsTreePrivate> wbsTreePrivates1 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
List<WbsTreePrivate> wbsTreePrivates1 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
.eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
|
|
.eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
|
|
.eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
|
|
.eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
|
|
.eq(WbsTreePrivate::getType, 2)
|
|
.eq(WbsTreePrivate::getType, 2)
|
|
);
|
|
);
|
|
- wbsTreePrivates1.stream().forEach(wbsTreePrivate -> {
|
|
|
|
- tableId2.add(String.valueOf(wbsTreePrivate.getId()));
|
|
|
|
- });
|
|
|
|
- List<String> diffRent1 = WbsTreeContractServiceImpl.getDiffrent(tableId1, tableId2);
|
|
|
|
|
|
+ List<Long> collect3 = wbsTreePrivates1.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
|
|
|
|
+ List<String> collect4 = collect3.stream().map(String::valueOf).collect(Collectors.toList());
|
|
|
|
+ List<String> diffRent1 = WbsTreeContractServiceImpl.getDiffrent(collect2, collect4);
|
|
if (diffRent1.size() == 0) {
|
|
if (diffRent1.size() == 0) {
|
|
//当wbsTreeIds == "" 时 1.在第一次新增未选择wbs树时 2.同步新增的元素表时
|
|
//当wbsTreeIds == "" 时 1.在第一次新增未选择wbs树时 2.同步新增的元素表时
|
|
throw new ServiceException("请选择需要关联的树或未检测到所对应新增的元素表");
|
|
throw new ServiceException("请选择需要关联的树或未检测到所对应新增的元素表");
|
|
} else {
|
|
} else {
|
|
- if (tableId1.size() > tableId2.size()) {
|
|
|
|
|
|
+ if (collect2.size() > collect4.size()) {
|
|
//公有同步元素表
|
|
//公有同步元素表
|
|
diffRent1.stream().forEach(tableId -> {
|
|
diffRent1.stream().forEach(tableId -> {
|
|
WbsTree wbsTree = wbsTreeMapper.selectById(tableId);
|
|
WbsTree wbsTree = wbsTreeMapper.selectById(tableId);
|
|
@@ -625,23 +621,21 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
.eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
|
|
.eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId())
|
|
.eq(WbsTreePrivate::getType, 2)
|
|
.eq(WbsTreePrivate::getType, 2)
|
|
);
|
|
);
|
|
- wbsTreePrivates.stream().forEach(wbsTreePrivate1 -> {
|
|
|
|
- tableId1.add(String.valueOf(wbsTreePrivate1.getId()));
|
|
|
|
- });
|
|
|
|
|
|
+ List<Long> collect1 = wbsTreePrivates.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
|
|
|
|
+ List<String> collect2 = collect1.stream().map(String::valueOf).collect(Collectors.toList());
|
|
//获取当前项目私有wbs树下当前所有的元素表
|
|
//获取当前项目私有wbs树下当前所有的元素表
|
|
List<WbsTreePrivate> wbsTreePrivates1 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
List<WbsTreePrivate> wbsTreePrivates1 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
.eq(WbsTreePrivate::getWbsId, pawDTO.getPrimaryKeyId())
|
|
.eq(WbsTreePrivate::getWbsId, pawDTO.getPrimaryKeyId())
|
|
.eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
|
|
.eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
|
|
.eq(WbsTreePrivate::getType, 2)
|
|
.eq(WbsTreePrivate::getType, 2)
|
|
);
|
|
);
|
|
- wbsTreePrivates1.stream().forEach(wbsTreePrivate2 -> {
|
|
|
|
- tableId2.add(String.valueOf(wbsTreePrivate2.getId()));
|
|
|
|
- });
|
|
|
|
- List<String> diffRent1 = WbsTreeContractServiceImpl.getDiffrent(tableId1, tableId2);
|
|
|
|
|
|
+ List<Long> collect3 = wbsTreePrivates1.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
|
|
|
|
+ List<String> collect4 = collect3.stream().map(String::valueOf).collect(Collectors.toList());
|
|
|
|
+ List<String> diffRent1 = WbsTreeContractServiceImpl.getDiffrent(collect2, collect4);
|
|
if (diffRent1.size() == 0) {
|
|
if (diffRent1.size() == 0) {
|
|
throw new ServiceException("未检测到引用的私有wbs树下有新增的元素表");
|
|
throw new ServiceException("未检测到引用的私有wbs树下有新增的元素表");
|
|
} else {
|
|
} else {
|
|
- if (tableId1.size() > tableId2.size()) {
|
|
|
|
|
|
+ if (collect2.size() > collect4.size()) {
|
|
//私有同步元素表
|
|
//私有同步元素表
|
|
List<WbsTreePrivate> lists = new ArrayList<>();
|
|
List<WbsTreePrivate> lists = new ArrayList<>();
|
|
diffRent1.stream().forEach(tableId -> {
|
|
diffRent1.stream().forEach(tableId -> {
|
|
@@ -674,6 +668,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
//公有
|
|
//公有
|
|
//查询所有公共节点+表单
|
|
//查询所有公共节点+表单
|
|
List<WbsTree> trees = baseMapper.selectList(Wrappers.<WbsTree>query().lambda().eq(WbsTree::getWbsId, pawDTO.getWbsId()));
|
|
List<WbsTree> trees = baseMapper.selectList(Wrappers.<WbsTree>query().lambda().eq(WbsTree::getWbsId, pawDTO.getWbsId()));
|
|
|
|
+ List<WbsTree> treesTable = trees.stream().filter(f -> f.getType() == 2).collect(Collectors.toList());
|
|
//根据id获取指定WbsTree节点数据
|
|
//根据id获取指定WbsTree节点数据
|
|
List<WbsTree> listTree = new ArrayList<>();
|
|
List<WbsTree> listTree = new ArrayList<>();
|
|
trees.stream().map(tree -> {
|
|
trees.stream().map(tree -> {
|
|
@@ -685,17 +680,25 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
return null;
|
|
return null;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
//初始化
|
|
//初始化
|
|
|
|
+ //节点
|
|
listTree.stream().forEach(tree -> {
|
|
listTree.stream().forEach(tree -> {
|
|
WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate1(tree, pawDTO);
|
|
WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate1(tree, pawDTO);
|
|
insertData.add(wbsTreePrivate2);
|
|
insertData.add(wbsTreePrivate2);
|
|
});
|
|
});
|
|
|
|
+ //元素表
|
|
|
|
+ treesTable.stream().forEach(tree -> {
|
|
|
|
+ WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate1(tree, pawDTO);
|
|
|
|
+ insertData.add(wbsTreePrivate2);
|
|
|
|
+ });
|
|
} else if (pawDTO.getReferenceType().equals("private")) {
|
|
} else if (pawDTO.getReferenceType().equals("private")) {
|
|
//私有
|
|
//私有
|
|
- //查询所有私有节点+表单
|
|
|
|
|
|
+ //查询所有私有节点
|
|
List<WbsTreePrivate> wbsTreePrivatesList = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
List<WbsTreePrivate> wbsTreePrivatesList = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
.eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
|
|
.eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
|
|
.eq(WbsTreePrivate::getProjectId, pawDTO.getReferencePrivateWbsProjectId())
|
|
.eq(WbsTreePrivate::getProjectId, pawDTO.getReferencePrivateWbsProjectId())
|
|
);
|
|
);
|
|
|
|
+ //表单
|
|
|
|
+ List<WbsTreePrivate> wbsTreePrivatesListTable = wbsTreePrivatesList.stream().filter(f -> f.getType() == 2).collect(Collectors.toList());
|
|
List<WbsTreePrivate> listTree = new ArrayList<>();
|
|
List<WbsTreePrivate> listTree = new ArrayList<>();
|
|
wbsTreePrivatesList.stream().map(tree -> {
|
|
wbsTreePrivatesList.stream().map(tree -> {
|
|
diffRent.stream().forEach(id -> {
|
|
diffRent.stream().forEach(id -> {
|
|
@@ -706,10 +709,16 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
return null;
|
|
return null;
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|
|
//初始化
|
|
//初始化
|
|
|
|
+ //节点
|
|
listTree.stream().forEach(wbsTreePrivate -> {
|
|
listTree.stream().forEach(wbsTreePrivate -> {
|
|
WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate2(wbsTreePrivate, pawDTO);
|
|
WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate2(wbsTreePrivate, pawDTO);
|
|
insertData2.add(wbsTreePrivate2);
|
|
insertData2.add(wbsTreePrivate2);
|
|
});
|
|
});
|
|
|
|
+ //元素表
|
|
|
|
+ wbsTreePrivatesListTable.stream().forEach(wbsTreePrivate -> {
|
|
|
|
+ WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate2(wbsTreePrivate, pawDTO);
|
|
|
|
+ insertData2.add(wbsTreePrivate2);
|
|
|
|
+ });
|
|
}
|
|
}
|
|
if (pawDTO.getReferenceType().equals("public")) {
|
|
if (pawDTO.getReferenceType().equals("public")) {
|
|
wbsTreePrivateService.saveBatch(insertData, 10000);
|
|
wbsTreePrivateService.saveBatch(insertData, 10000);
|
|
@@ -721,17 +730,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
}
|
|
}
|
|
//删除节点 表单
|
|
//删除节点 表单
|
|
else {
|
|
else {
|
|
- ArrayList<Long> ids1 = new ArrayList<>();
|
|
|
|
- ArrayList<Long> ids2 = new ArrayList<>();
|
|
|
|
- diffRent.stream().forEach(id -> {
|
|
|
|
- ids1.add(Long.valueOf(id));
|
|
|
|
- });
|
|
|
|
- if (deletedStatus == 1) {
|
|
|
|
- diffRent.stream().forEach(id -> {
|
|
|
|
- ids2.add(Long.valueOf(id));
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
if (pawDTO.getReferenceType().equals("public")) {
|
|
if (pawDTO.getReferenceType().equals("public")) {
|
|
|
|
+ List<Long> ids1 = diffRent.stream().map(Long::parseLong).collect(Collectors.toList());
|
|
//判断是否被合同段引用
|
|
//判断是否被合同段引用
|
|
List<WbsTreeContract> wbsTreeContract = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
|
|
List<WbsTreeContract> wbsTreeContract = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
|
|
.eq(WbsTreeContract::getWbsId, pawDTO.getWbsId())
|
|
.eq(WbsTreeContract::getWbsId, pawDTO.getWbsId())
|
|
@@ -754,7 +754,9 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
}
|
|
}
|
|
baseMapper.deleteBatch(ids1, pawDTO.getWbsId(), pawDTO.getProjectId());
|
|
baseMapper.deleteBatch(ids1, pawDTO.getWbsId(), pawDTO.getProjectId());
|
|
baseMapper.deleteBatch2(ids1, pawDTO.getWbsId(), pawDTO.getProjectId());
|
|
baseMapper.deleteBatch2(ids1, pawDTO.getWbsId(), pawDTO.getProjectId());
|
|
|
|
+
|
|
} else if (pawDTO.getReferenceType().equals("private")) {
|
|
} else if (pawDTO.getReferenceType().equals("private")) {
|
|
|
|
+ List<Long> ids2 = diffRent.stream().map(Long::parseLong).collect(Collectors.toList());
|
|
//判断是否被合同段引用
|
|
//判断是否被合同段引用
|
|
List<WbsTreeContract> wbsTreeContract = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
|
|
List<WbsTreeContract> wbsTreeContract = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
|
|
.eq(WbsTreeContract::getWbsId, pawDTO.getPrimaryKeyId())
|
|
.eq(WbsTreeContract::getWbsId, pawDTO.getPrimaryKeyId())
|