|
@@ -6,7 +6,7 @@ import java.util.stream.Collectors;
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
import com.ruoyi.sim.domain.TaskFault;
|
|
import com.ruoyi.sim.domain.TaskFault;
|
|
-import com.ruoyi.sim.domain.vo.FaultTree;
|
|
|
|
|
|
+import com.ruoyi.sim.domain.vo.FaultTreeVo;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -103,7 +103,6 @@ public class FaultServiceImpl implements IFaultService {
|
|
/**
|
|
/**
|
|
* 查询故障列表tree
|
|
* 查询故障列表tree
|
|
*
|
|
*
|
|
- * @param fault 故障
|
|
|
|
* @return 故障
|
|
* @return 故障
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
@@ -122,19 +121,20 @@ public class FaultServiceImpl implements IFaultService {
|
|
// fault.getParams().put(TableSupport.PAGE_SIZE, 100);
|
|
// fault.getParams().put(TableSupport.PAGE_SIZE, 100);
|
|
//
|
|
//
|
|
List<Fault> list = faultMapper.selectFaultList(q);
|
|
List<Fault> list = faultMapper.selectFaultList(q);
|
|
|
|
+ Collections.sort(list);
|
|
log.info("AAAAAAAAAAAAAAAAAAAAAAAAAAAA000000000000");
|
|
log.info("AAAAAAAAAAAAAAAAAAAAAAAAAAAA000000000000");
|
|
log.info(Objects.requireNonNull(list).toString());
|
|
log.info(Objects.requireNonNull(list).toString());
|
|
log.info(Objects.requireNonNull(q.getParams()).toString());
|
|
log.info(Objects.requireNonNull(q.getParams()).toString());
|
|
log.info(Objects.requireNonNull(list.size()).toString());
|
|
log.info(Objects.requireNonNull(list.size()).toString());
|
|
|
|
|
|
- List<FaultTree> tempListNode = new ArrayList<>();
|
|
|
|
|
|
+ List<FaultTreeVo> tempListNode = new ArrayList<>();
|
|
for (Fault source : list) {
|
|
for (Fault source : list) {
|
|
- FaultTree target = new FaultTree();
|
|
|
|
|
|
+ FaultTreeVo target = new FaultTreeVo();
|
|
BeanUtils.copyProperties(source, target);
|
|
BeanUtils.copyProperties(source, target);
|
|
tempListNode.add(target);
|
|
tempListNode.add(target);
|
|
}
|
|
}
|
|
log.info(Objects.requireNonNull(tempListNode).toString());
|
|
log.info(Objects.requireNonNull(tempListNode).toString());
|
|
- List<FaultTree> tree = toTree(tempListNode, ROOT_FAULT_ID);
|
|
|
|
|
|
+ List<FaultTreeVo> tree = toTree(tempListNode, Fault.ROOT_FAULT_ID);
|
|
log.info(Objects.requireNonNull(tree).toString());
|
|
log.info(Objects.requireNonNull(tree).toString());
|
|
return AjaxResult.success(tree);
|
|
return AjaxResult.success(tree);
|
|
}
|
|
}
|
|
@@ -158,8 +158,6 @@ public class FaultServiceImpl implements IFaultService {
|
|
return SIM_TYPE_SET.contains(simType);
|
|
return SIM_TYPE_SET.contains(simType);
|
|
}
|
|
}
|
|
|
|
|
|
- private static String ROOT_FAULT_ID = "000000000000";
|
|
|
|
-
|
|
|
|
// private static List<FaultNode> toTree2(List<FaultNode> list) {
|
|
// private static List<FaultNode> toTree2(List<FaultNode> list) {
|
|
// List<FaultNode> tree = new ArrayList<>();
|
|
// List<FaultNode> tree = new ArrayList<>();
|
|
// for (FaultNode fn1 : list) {
|
|
// for (FaultNode fn1 : list) {
|
|
@@ -178,9 +176,9 @@ public class FaultServiceImpl implements IFaultService {
|
|
// return tree;
|
|
// return tree;
|
|
// }
|
|
// }
|
|
|
|
|
|
- private static List<FaultTree> toTree(List<FaultTree> list, String parentFaultId) {
|
|
|
|
|
|
+ public static List<FaultTreeVo> toTree(List<FaultTreeVo> list, String parentFaultId) {
|
|
// todo:sort
|
|
// todo:sort
|
|
- List<FaultTree> tree = list
|
|
|
|
|
|
+ List<FaultTreeVo> tree = list
|
|
.stream()
|
|
.stream()
|
|
.filter(
|
|
.filter(
|
|
parent ->
|
|
parent ->
|
|
@@ -195,4 +193,43 @@ public class FaultServiceImpl implements IFaultService {
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
return tree;
|
|
return tree;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public static List<FaultTreeVo> flatten(List<FaultTreeVo> list) {
|
|
|
|
+ return list
|
|
|
|
+ // todo:stream filter
|
|
|
|
+
|
|
|
|
+// .stream()
|
|
|
|
+// .filter(x -> {
|
|
|
|
+// return StringUtils.isEmpty(x.getParentFaultId());
|
|
|
|
+// })
|
|
|
|
+// .collect(Collectors.toList())
|
|
|
|
+ .stream()
|
|
|
|
+ .map(x -> {
|
|
|
|
+ return flatten(x, list);
|
|
|
|
+ })
|
|
|
|
+ .flatMap(Collection::stream)
|
|
|
|
+ .distinct()
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static List<FaultTreeVo> flatten(FaultTreeVo node, List<FaultTreeVo> list2222) {
|
|
|
|
+ List<FaultTreeVo> results = new ArrayList<>();
|
|
|
|
+ if (node != null) {
|
|
|
|
+ // get rid of children & parent references
|
|
|
|
+ FaultTreeVo target = new FaultTreeVo();
|
|
|
|
+ BeanUtils.copyProperties(node, target);
|
|
|
|
+ results.add(target);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<FaultTreeVo> children = node.getChildren();
|
|
|
|
+ for (FaultTreeVo child : children) {
|
|
|
|
+ if (child.getChildren() != null) {
|
|
|
|
+ // Recursive call - Keep flattening until no more children
|
|
|
|
+ List<FaultTreeVo> flatten = flatten(child, list2222);
|
|
|
|
+ results.addAll(flatten);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // stop or exit condition
|
|
|
|
+ return results;
|
|
|
|
+ }
|
|
}
|
|
}
|