|
@@ -258,17 +258,17 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- @Override
|
|
|
|
- public boolean removeTableByPKeyIdCondition(String pKeyId, String wbsId, String projectId) {
|
|
|
|
- baseMapper.removeTableByPKeyIdCondition(pKeyId, wbsId, projectId);
|
|
|
|
- List<WbsTreeContract> wbsTreeContractsTable = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda().select(WbsTreeContract::getPKeyId).eq(WbsTreeContract::getProjectId, projectId)
|
|
|
|
- .eq(WbsTreeContract::getIsTypePrivatePid, pKeyId).eq(WbsTreeContract::getWbsId, wbsId).eq(WbsTreeContract::getType, 2).eq(WbsTreeContract::getStatus, 1));
|
|
|
|
- List<Long> ids = wbsTreeContractsTable.stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
|
|
|
|
- if (!ids.isEmpty()) {
|
|
|
|
- wbsTreeContractMapper.updateDeletedByIds(ids);
|
|
|
|
- }
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
|
|
+// @Override
|
|
|
|
+// public boolean removeTableByPKeyIdCondition(String pKeyId, String wbsId, String projectId) {
|
|
|
|
+// baseMapper.removeTableByPKeyIdCondition(pKeyId, wbsId, projectId);
|
|
|
|
+// List<WbsTreeContract> wbsTreeContractsTable = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda().select(WbsTreeContract::getPKeyId).eq(WbsTreeContract::getProjectId, projectId)
|
|
|
|
+// .eq(WbsTreeContract::getIsTypePrivatePid, pKeyId).eq(WbsTreeContract::getWbsId, wbsId).eq(WbsTreeContract::getType, 2).eq(WbsTreeContract::getStatus, 1));
|
|
|
|
+// List<Long> ids = wbsTreeContractsTable.stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
|
|
|
|
+// if (!ids.isEmpty()) {
|
|
|
|
+// wbsTreeContractMapper.updateDeletedByIds(ids);
|
|
|
|
+// }
|
|
|
|
+// return true;
|
|
|
|
+// }
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public List<WbsTreePrivateVO> lazyTree(String wbsId, String wbsType, Long parentId, String projectId, Integer type) {
|
|
public List<WbsTreePrivateVO> lazyTree(String wbsId, String wbsType, Long parentId, String projectId, Integer type) {
|
|
@@ -3231,61 +3231,61 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
|
|
return baseMapper.getContractAllLogWbsNodeIds(contractId);
|
|
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;
|
|
|
|
- }
|
|
|
|
|
|
+// @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) {
|
|
private void reassignNodeValues(List<WbsTreePrivate> leftLists, WbsTreePrivate rootNode, WbsTreePrivate rightWbsTreePrivate) {
|
|
// 创建节点映射以便快速查找
|
|
// 创建节点映射以便快速查找
|