liuyc 2 years ago
parent
commit
14ab159a22

+ 14 - 26
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -8,17 +8,10 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.google.common.collect.Lists;
 import io.swagger.annotations.*;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
 import org.apache.commons.lang.StringUtils;
 import org.jetbrains.annotations.NotNull;
 import org.springblade.business.entity.*;
@@ -33,6 +26,7 @@ import org.springblade.business.vo.*;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -57,14 +51,11 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springblade.core.boot.ctrl.BladeController;
 
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 import java.io.IOException;
 import java.util.*;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -1663,12 +1654,10 @@ public class InformationWriteQueryController extends BladeController {
      */
     private List<WbsTreeContract> reBuildAncestors(List<WbsTreeContract> list) {
         List<WbsTreeContract> result = new ArrayList<>();
-        List<WbsTreeContract> sortedResult = list.stream()
-                .sorted(Comparator.nullsFirst(Comparator.comparing(WbsTreeContract::getType, Comparator.nullsLast(Comparator.naturalOrder())))
-                        .thenComparing(Comparator.nullsFirst(Comparator.comparing(WbsTreeContract::getNodeType, Comparator.nullsLast(Comparator.naturalOrder()))))
-                        .thenComparing(Comparator.nullsFirst(Comparator.comparing(WbsTreeContract::getId, Comparator.nullsLast(Comparator.naturalOrder()))))
-                        .thenComparing(Comparator.nullsFirst(Comparator.comparing(WbsTreeContract::getCreateTime, Comparator.nullsLast(Comparator.naturalOrder())))))
-                .collect(Collectors.toList());
+        //根据pKeyId排序,pKeyId是由雪花算法-时间戳递增的顺序来生成的id
+        List<WbsTreeContract> sortedResult = new ArrayList<>(list);
+        sortedResult.sort(Comparator.comparingLong(WbsTreeContract::getPKeyId));
+
         Map<Long, WbsTreeContract> newMap = BeanUtil.copyProperties(result, WbsTreeContract.class).stream().collect(Collectors.toMap(WbsTreeContract::getId, Function.identity()));
         for (WbsTreeContract obj : sortedResult) {
             if (obj != null && ObjectUtil.isNotEmpty(obj.getParentId())) {
@@ -1921,6 +1910,11 @@ public class InformationWriteQueryController extends BladeController {
             //根节点id
             Long needCopyNodeOldId = needCopyNode.getId();
             needCopyNode.setId(SnowFlakeUtil.getId());
+            needCopyNode.setPKeyId(SnowFlakeUtil.getId());
+            needCopyNode.setNodeName(toCopyNode.getNodeName());
+            needCopyNode.setFullName(toCopyNode.getNodeName());
+            needCopyNode.setPartitionCode(toCopyNode.getPartitionCode());
+            needCopyNode.setCreateTime(new Date());
 
             Map<Long, Long> parentIdToId = new HashMap<>();
             Map<Long, List<WbsTreeContract>> tabMap = needTabs.stream().collect(Collectors.groupingBy(WbsTreeContract::getParentId));
@@ -2021,13 +2015,7 @@ public class InformationWriteQueryController extends BladeController {
                 //跨节点
                 needCopyNode.setParentId(toCopyNode.getId());
             }
-            needCopyNode.setPKeyId(SnowFlakeUtil.getId());
-            needCopyNode.setNodeName(toCopyNode.getNodeName());
-            needCopyNode.setFullName(toCopyNode.getNodeName());
-            needCopyNode.setPartitionCode(toCopyNode.getPartitionCode());
-            needCopyNode.setCreateTime(new Date());
-
-            addNodeList.add(needCopyNode);
+            addNodeList.add(0, needCopyNode);
         }
     }