cr 1 روز پیش
والد
کامیت
bb5904cd02

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java

@@ -155,4 +155,6 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
     List<ArchiveSyncLogVO> getContractAllLogMonthPack(@Param("contractId") Long contractId);
 
     List<Long> getContractAllLogWbsNodeIds(@Param("contractId") Long contractId);
+
+    List<WbsTreePrivate> selectAllChildNode(List<String> leftIds);
 }

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -1066,4 +1066,5 @@
         select DISTINCT wbs_node_id from u_contract_log  WHERE
             contract_id = #{contractId}
     </select>
+    <select id="selectAllChildNode" resultType="org.springblade.manager.entity.WbsTreePrivate"></select>
 </mapper>

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeService.java

@@ -80,7 +80,7 @@ public interface IWbsTreeService extends BaseService<WbsTree> {
 
     List<WbsTreePrivate> getTitleRange(String projectId,Integer wbsType);
 
-    Object getQueryValueByNodeType(WbsTreePrivateQueryVO vo);
+    Object getQueryValueByNodeType(String wbsId, String projectId, String queryValue, Integer nodeType, Integer majorDataType);
 
     boolean copyNode(List<Long> leftIds, List<Long> rightIds);
 }

+ 66 - 66
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -258,17 +258,17 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         }
         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
     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);
     }
 
-    @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) {
         // 创建节点映射以便快速查找