|
|
@@ -3254,61 +3254,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
|
return baseMapper.getContractAllLogWbsNodeIds(contractId);
|
|
|
}
|
|
|
|
|
|
-// @Override
|
|
|
-// @Transactional(rollbackFor = Exception.class)
|
|
|
-// public boolean copyNode(List<String> leftIds, List<String> rightIds) {
|
|
|
-// List<WbsTreePrivate> leftLists = baseMapper.selectAllChildNode(leftIds);
|
|
|
-// for (String rightId : rightIds) {
|
|
|
-// // 每次循环都创建一个新的集合作为副本
|
|
|
-// List<WbsTreePrivate> workingList = leftLists.stream()
|
|
|
-// .map(node -> {
|
|
|
-// // 创建每个节点的副本
|
|
|
-// WbsTreePrivate copy = new WbsTreePrivate();
|
|
|
-// BeanUtils.copyProperties(copy, node);
|
|
|
-// return copy;
|
|
|
-// })
|
|
|
-// .collect(Collectors.toList());
|
|
|
-// WbsTreePrivate rightWbsTreePrivate = baseMapper.getByPKeyId(Long.parseLong(rightId));
|
|
|
-// Integer rightNodeType = rightWbsTreePrivate.getNodeType();
|
|
|
-// if (rightNodeType == 1) {
|
|
|
-// rightNodeType=1;
|
|
|
-// }else if(rightNodeType==18){
|
|
|
-// rightNodeType=2;
|
|
|
-// }else {
|
|
|
-// rightNodeType=rightNodeType++;
|
|
|
-// }
|
|
|
-// for (WbsTreePrivate leftList : leftLists) {
|
|
|
-// Integer leftType=leftList.getNodeType();
|
|
|
-// if(leftType==1){
|
|
|
-// leftType=1;
|
|
|
-// }else if(leftType==18){
|
|
|
-// leftType=2;
|
|
|
-// }else {
|
|
|
-// leftType=leftType++;
|
|
|
-// }
|
|
|
-// if(leftType<=rightNodeType){
|
|
|
-// throw new ServiceException(leftList.getNodeName()+"不能复制到"+rightWbsTreePrivate.getNodeName()+",原因节点类型不能复制");
|
|
|
-// }
|
|
|
-// }
|
|
|
-// // 找到leftLists中所有的根节点(没有在leftLists中作为子节点出现的节点)
|
|
|
-// Set<Long> allPIds = workingList.stream()
|
|
|
-// .map(WbsTreePrivate::getPId)
|
|
|
-// .filter(Objects::nonNull)
|
|
|
-// .collect(Collectors.toSet());
|
|
|
-//
|
|
|
-// List<WbsTreePrivate> rootNodes = workingList.stream()
|
|
|
-// .filter(node -> !allPIds.contains(node.getPKeyId()))
|
|
|
-// .collect(Collectors.toList());
|
|
|
-//
|
|
|
-// // 为每个根节点重新设置属性,并将其放到rightWbsTreePrivate节点下
|
|
|
-// for (WbsTreePrivate rootNode : rootNodes) {
|
|
|
-// // 重新分配节点值
|
|
|
-// reassignNodeValues(workingList, rootNode, rightWbsTreePrivate);
|
|
|
-// }
|
|
|
-// this.insertBatch(workingList,500);
|
|
|
-// }
|
|
|
-// return true;
|
|
|
-// }
|
|
|
// 添加一个辅助方法来重新分配节点值
|
|
|
private void reassignNodeValues(List<WbsTreePrivate> leftLists, WbsTreePrivate rootNode, WbsTreePrivate rightWbsTreePrivate) {
|
|
|
// 创建节点映射以便快速查找
|