Browse Source

selectFaultListTree Fault 返回tree结构数据。

tom 5 months ago
parent
commit
392899be74

+ 17 - 3
ruoyi-sim/src/main/java/com/ruoyi/sim/controller/FaultController.java

@@ -3,13 +3,13 @@ package com.ruoyi.sim.controller;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.sim.domain.vo.FaultNode;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.security.access.prepost.PreAuthorize;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -97,4 +97,18 @@ public class FaultController extends BaseController {
     public AjaxResult remove(@PathVariable String[] faultIds) {
         return toAjax(faultService.deleteFaultByFaultIds(faultIds));
     }
+
+    // -------------------------------- tom add  --------------------------------
+    private static final Logger logger = LoggerFactory.getLogger(FaultController.class);
+
+    /**
+     * 查询故障列表
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:fault:list')")
+    @GetMapping("/listTree")
+    @ApiOperation("查询故障列表")
+    public TableDataInfo listTree(Fault fault) {
+        List<FaultNode> list = faultService.selectFaultListTree(fault);
+        return getDataTable(list);
+    }
 }

+ 11 - 8
ruoyi-sim/src/main/java/com/ruoyi/sim/domain/Fault.java

@@ -23,19 +23,22 @@ public class Fault extends BaseEntity {
      * $column.columnComment
      */
     @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
-    private String parentFaultId;
+    private String parentFaultId = "";
 
-    /** 模拟器类型
+    /**
+     * 模拟器类型
      */
     @Excel(name = "模拟器类型")
     private String simType;
 
-    /** 故障类型:
-     1:故障现象
-     2:故障现象的可能原因
-     3:故障部位
-     4:故障部位的排除方法
-     5:修复结论 */
+    /**
+     * 故障类型:
+     * 1:故障现象
+     * 2:故障现象的可能原因
+     * 3:故障部位
+     * 4:故障部位的排除方法
+     * 5:修复结论
+     */
     @Excel(name = "故障类型")
     private String faultType;
 

+ 11 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/IFaultService.java

@@ -3,6 +3,7 @@ package com.ruoyi.sim.service;
 import java.util.List;
 
 import com.ruoyi.sim.domain.Fault;
+import com.ruoyi.sim.domain.vo.FaultNode;
 
 /**
  * 故障Service接口
@@ -58,4 +59,14 @@ public interface IFaultService {
      * @return 结果
      */
     public int deleteFaultByFaultId(String faultId);
+
+    // -------------------------------- tom add  --------------------------------
+
+    /**
+     * 查询故障列表tree
+     *
+     * @param fault 故障
+     * @return 故障集合
+     */
+    public List<FaultNode> selectFaultListTree(Fault fault);
 }

+ 75 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/FaultServiceImpl.java

@@ -1,8 +1,15 @@
 package com.ruoyi.sim.service.impl;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.sim.domain.vo.FaultNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.sim.mapper.FaultMapper;
@@ -87,4 +94,72 @@ public class FaultServiceImpl implements IFaultService {
     public int deleteFaultByFaultId(String faultId) {
         return faultMapper.deleteFaultByFaultId(faultId);
     }
+
+    // -------------------------------- tom add  --------------------------------
+
+    private static final Logger log = LoggerFactory.getLogger(FaultServiceImpl.class);
+
+    /**
+     * 查询故障列表tree
+     *
+     * @param fault 故障
+     * @return 故障
+     */
+    @Override
+    public List<FaultNode> selectFaultListTree(Fault fault) {
+        //
+        // fault.getParams().put(TableSupport.PAGE_NUM, 1);
+        // fault.getParams().put(TableSupport.PAGE_SIZE, 100);
+        //
+        List<Fault> list = faultMapper.selectFaultList(fault);
+        log.info("AAAAAAAAAAAAAAAAAAAAAAAAAAAA000000000000");
+        log.info(Objects.requireNonNull(list).toString());
+        log.info(Objects.requireNonNull(fault.getParams()).toString());
+        log.info(Objects.requireNonNull(list.size()).toString());
+
+        List<FaultNode> tempListNode = new ArrayList<>();
+        for (Fault source : list) {
+            FaultNode target = new FaultNode();
+            BeanUtils.copyProperties(source, target);
+            tempListNode.add(target);
+        }
+        log.info(Objects.requireNonNull(tempListNode).toString());
+        List<FaultNode> tree = toTree(tempListNode, ROOT_FAULT_ID);
+        log.info(Objects.requireNonNull(tree).toString());
+        return tree;
+    }
+
+    private static String ROOT_FAULT_ID = "000000000000";
+
+//    private static List<FaultNode> toTree2(List<FaultNode> list) {
+//        List<FaultNode> tree = new ArrayList<>();
+//        for (FaultNode fn1 : list) {
+//            if (fn1.getParentFaultId().equals(ROOT_FAULT_ID)) {
+//                tree.add(fn1);
+//            }
+//            for (FaultNode fn2 : list) {
+//                if (fn2.getParentFaultId().equals(fn1.getParentFaultId())) {
+//                    if (fn1.getChildren() == null) {
+//                        fn1.setChildren(new ArrayList<>());
+//                    }
+//                    fn1.getChildren().add(fn2);
+//                }
+//            }
+//        }
+//        return tree;
+//    }
+
+    private static List<FaultNode> toTree(List<FaultNode> list, String parentFaultId) {
+        List<FaultNode> tree = list
+                .stream()
+                .filter(
+                        parent ->
+                                parent.getParentFaultId().equals(parentFaultId))
+                .map(child -> {
+                    child.setChildren(toTree(list, child.getFaultId()));
+                    return child;
+                })
+                .collect(Collectors.toList());
+        return tree;
+    }
 }