Browse Source

Merge branch 'demo_' of http://124.71.196.186:8888/hfxc226/hitch-manage into demo_

guarantee-lsq 1 year ago
parent
commit
54c3abc70c

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/pojo/TreeNode.java

@@ -25,6 +25,10 @@ public class TreeNode implements Serializable {
      * 父ID
      */
     protected String parentId;
+    /**
+     * 排序
+     */
+    protected Integer sort;
 
     /**
      * 分组

+ 59 - 4
platform-dao/src/main/java/com/platform/dao/util/TreeUtil.java

@@ -27,10 +27,7 @@ import com.platform.dao.vo.sb.SbPositionVO;
 import com.platform.dao.vo.sb.SbTypeVO;
 import lombok.experimental.UtilityClass;
 
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.BiConsumer;
 import java.util.stream.Collectors;
@@ -129,6 +126,41 @@ public class TreeUtil {
         return trees;
     }
 
+    /**
+     * 多层两次循环实现建树:排序
+     * 当没有父节点的时候,当前节点也要显示
+     * @param treeNodes 传入的树节点列表
+     * @return
+     */
+    public <T extends TreeNode> List<T> buildByLoopWithNoParentWithSort(List<T> treeNodes, Object root) {
+        treeNodes = treeNodes.stream().distinct().sorted(Comparator.comparing(T::getSort)).collect(Collectors.toList());
+        List<T> trees = new ArrayList<>();
+        Map<String, T> treeNodeMap = MapUtils.newHashMap(treeNodes.size());
+        treeNodes.forEach(treeNode -> {
+            treeNodeMap.put(treeNode.getId(), treeNode);
+        });
+
+        treeNodes.forEach(treeNode -> {
+            if (StringUtils.isBlank(treeNode.getParentId()) || "0".equals(treeNode.getParentId())) {
+                trees.add(treeNode);
+            } else if (treeNode.getParentId().equals(root)) {
+                trees.add(treeNode);
+            } else {
+                T t = treeNodeMap.get(treeNode.getParentId());
+                if (t != null) {
+                    t.setGroup(true);
+                    if (t.getChildren() == null) {
+                        t.setChildren(new ArrayList<>());
+                    }
+                    t.getChildren().add(treeNode);
+                }else{
+                    trees.add(treeNode);
+                }
+            }
+        });
+        return trees;
+    }
+
     /**
      * 多层两次循环实现建树
      * 不包括root节点
@@ -425,6 +457,29 @@ public class TreeUtil {
         return TreeUtil.buildByLoopWithNoParent(trees, root);
     }
 
+    /**
+     * 创建设备位置树
+     *
+     * @param types
+     * @param root
+     * @return
+     */
+    public List<CommonTree> buildRemotePositionTreeWithNoParentWithSort(List<RemotePositionVO> types, String root) {
+        List<CommonTree> trees = new LinkedList<>();
+        types.forEach(type -> {
+            CommonTree node = new CommonTree();
+            node.setId(type.getId());
+            node.setKey(type.getId());
+            node.setSort(type.getSort());
+            node.setParentId(type.getParentId());
+            node.setTitle(type.getName());
+            node.setImg(type.getOpcImg());
+            node.setValue(type.getId());
+            trees.add(node);
+        });
+        return TreeUtil.buildByLoopWithNoParentWithSort(trees, root);
+    }
+
     /**
      * 创建设备位置树
      *

+ 1 - 1
platform-rest/src/main/java/com/platform/rest/controller/remote/RemotePositionController.java

@@ -156,7 +156,7 @@ public class RemotePositionController {
      */
     @GetMapping("tree")
     public R queryTree(RemotePositionDTO sbPositionDTO) {
-        return new R<>(TreeUtil.buildRemotePositionTreeWithNoParent(sbPositionService.selectVOList(sbPositionDTO), ""));
+        return new R<>(TreeUtil.buildRemotePositionTreeWithNoParentWithSort(sbPositionService.selectVOList(sbPositionDTO), ""));
     }
 
     /**

+ 6 - 1
platform-service/src/main/java/com/platform/service/remote/impl/RemotePositionServiceImpl.java

@@ -27,14 +27,17 @@ import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.remote.RemotePositionService;
 import com.platform.service.util.ExecuteSql;
 import lombok.AllArgsConstructor;
+import org.activiti.engine.task.Task;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.stereotype.Service;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
 import java.time.LocalDateTime;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description 设备位置 service 实现类
@@ -276,7 +279,9 @@ public class RemotePositionServiceImpl extends BaseServiceImpl<RemotePositionMap
 
     @Override
     public List<RemotePositionVO> selectVOList(RemotePositionDTO model) {
-        return mapper.selectVOList(model);
+        List<RemotePositionVO> list = mapper.selectVOList(model);
+        list = list.stream().distinct().sorted(Comparator.comparing(RemotePositionVO::getSort)).collect(Collectors.toList());
+        return list;
     }
 
     @Override