From 890d7e52a767ec0550b5bfb665efacdd0d12026e Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期三, 06 三月 2024 09:02:42 +0800
Subject: [PATCH] 能解析串联、并联、旁联、表决的版本

---
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/ModelLineService.java |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/ModelLineService.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/ModelLineService.java
index f1089bf..6c435ca 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/ModelLineService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/ModelLineService.java
@@ -131,6 +131,7 @@
                 if ("node".equals(modelNode.getNodeType())) {
                     modelNode.setDataId(Long.valueOf(JsonUtils2.getJsonValueByPath(jsonObject, "data/dataId".split("/")).toString()));
                     modelNode.setNodeTypeExt(JsonUtils2.getJsonValueByPath(jsonObject, "data/nodeTypeExt".split("/")).toString());
+                    modelNode.setName(JsonUtils2.getJsonValueByPath(jsonObject, "attrs/label/textWrap/text".split("/")).toString());
                 }
                 modelNodeList.add(modelNode);
             }
@@ -251,27 +252,35 @@
                                 List<Algorithm> algoList,
                                 int stepNo) {
         String computerList = "";
+        String objectList = "";
         for (List<ModelNode> path : listPath) {
             path.remove(path.get(path.size()-1));
             Long id = null;
+            String name = "";
             if (path.size()==0) {
                 return stepNo;
             } else if (path.size()==1) {
+                if ("end".equals(opNode.getNodeType()) && !"start".equals(lastNode.getNodeType())) return stepNo;
                 id = path.get(path.size()-1).getId();
+                name = path.get(path.size()-1).getName();
             } else {
                 id = UUIDUtil.generateId();
+                name = id.toString();
                 Algorithm algo = new Algorithm();
                 algo.setId(id);
                 algo.setModelId(modelId);
                 algo.setComputerId(id);
                 algo.setModelType("series");
                 algo.setAlgorithmType("series");
-                algo.setComputerList(StringUtils.join(path.stream().map(ModelNode::getId).collect(Collectors.toSet()), ","));
+                algo.setComputerList(joinNodeId(path, ","));
+                algo.setObjectList(joinNodeName(path, ","));
                 algo.setStep(stepNo);
                 stepNo++;
                 algoList.add(algo);
+                name = "v"+ algo.getStep();
             }
             computerList = computerList.equals("") ? id.toString() : computerList + "," + id.toString();
+            objectList = objectList.equals("") ? name : objectList + "," + name;
             for (ModelNode node : path) {
                 List<ModelLine> lineList4 = modelLineList.stream().filter(item ->
                         item.getEndCell().equals(node.getPicId()) || item.getBeginCell().equals(node.getPicId())).collect(Collectors.toList());
@@ -287,14 +296,15 @@
         algo.setModelType(opNode.getNodeType());
         algo.setAlgorithmType(opNode.getNodeType());
         algo.setComputerList(computerList);
+        algo.setObjectList(objectList);
         algo.setStep(stepNo);
         stepNo++;
         algoList.add(algo);
 
         //灏嗗師杩愮畻鑺傜偣鏀规垚铏氳妭鐐�
         opNode.setId(id);
-//        opNode.setPicId(id.toString());
         opNode.setNodeType("vnode");
+        opNode.setName("v"+algo.getStep());
 
         ModelLine modelLineNew = new ModelLine();
         Long picId2 = UUIDUtil.generateId();
@@ -308,6 +318,24 @@
         return stepNo;
     }
 
+    private String joinNodeId(List<ModelNode> nodeList, String sep) {
+        String result = "";
+        for (int i = 0; i < nodeList.size(); i++) {
+            if (i > 0) result = result + sep;
+            result = result + nodeList.get(i).getId().toString();
+        }
+        return result;
+    }
+
+    private String joinNodeName(List<ModelNode> nodeList, String sep) {
+        String result = "";
+        for (int i = 0; i < nodeList.size(); i++) {
+            if (i > 0) result = result + sep;
+            result = result + nodeList.get(i).getName();
+        }
+        return result;
+    }
+
     private void saveModel(Long modelId,
                            List<ModelNode> modelNodeList,
                            List<ModelLine> modelLineList,

--
Gitblit v1.9.1