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

---
 web/src/views/modules/taskReliability/RBD-edit-img.vue                                           |   18 ++++++++++++------
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/ModelNode.java          |    3 +++
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/ModelLineService.java |   32 ++++++++++++++++++++++++++++++--
 3 files changed, 45 insertions(+), 8 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/ModelNode.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/ModelNode.java
index 680906f..08865cd 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/ModelNode.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/ModelNode.java
@@ -36,4 +36,7 @@
 	@ApiModelProperty(value = "")
 	private String remark;
 
+	@ApiModelProperty(value = "")
+	private String name;
+
 }
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,
diff --git a/web/src/views/modules/taskReliability/RBD-edit-img.vue b/web/src/views/modules/taskReliability/RBD-edit-img.vue
index df2d1ef..f55b5c2 100644
--- a/web/src/views/modules/taskReliability/RBD-edit-img.vue
+++ b/web/src/views/modules/taskReliability/RBD-edit-img.vue
@@ -19,6 +19,7 @@
 
               <el-button type="primary" @click="saveDiagram()">淇濆瓨</el-button>
               <el-button type="primary" @click="analyzeDiagram()">瑙f瀽</el-button>
+              <el-button type="primary" @click="clearDiagram()">娓呯┖鍥惧舰</el-button>
             </el-form-item>
             <el-form-item>
                 <el-tooltip class="item" effect="dark" content="宸﹀榻�" placement="left">
@@ -115,8 +116,9 @@
         imgsList:[
           {imgPath:'start',imgName:'start',nodeType:'start',imgWidth:60,imgHeight:60,imgId:'1',data:{}},
           {imgPath:'end',imgName:'end',nodeType:'end',imgWidth:60,imgHeight:60,imgId:'2',data:{}},
+          {imgPath:'connect',imgName:'connect',nodeType:'connect',imgWidth:30,imgHeight:30,imgId:'3',data:{}},
           // {imgPath:'parallelLeft',imgName:'parallelLeft',nodeType:'parallelLeft',imgWidth:60,imgHeight:60,imgId:'3',data:{}},
-          {imgPath:'parallelRight',imgName:'parallel',nodeType:'parallel',imgWidth:60,imgHeight:60,imgId:'4',data:{}},
+          // {imgPath:'parallelRight',imgName:'parallel',nodeType:'parallel',imgWidth:60,imgHeight:60,imgId:'4',data:{}},
           {imgPath:'switchRight',imgName:'switch',nodeType:'switch',imgWidth:60,imgHeight:60,imgId:'5',data:{}},
           {imgPath:'voteRight',imgName:'vote',nodeType:'vote',imgWidth:60,imgHeight:60,imgId:'6',data:{}},
         ],
@@ -392,6 +394,14 @@
         // this.diagramIdChange(this.diagramId)
         this.getDiagram()
       },*/
+      async clearDiagram() {
+          this.dataForm.id = null
+          // this.graph.fromJSON(this.emptyJson)
+          this.graph.fromJSON('')
+          this.graph.centerContent()
+          this.graph.zoomToFit()
+          // this.graph.freeze()
+      },
       async getDiagram() {
         let params = {
           modelId : this.dataForm.modelId
@@ -407,11 +417,7 @@
             this.graph.centerContent()
             this.graph.zoomToFit()
           } else {
-            this.dataForm.id = null
-            // this.graph.fromJSON(this.emptyJson)
-            this.graph.centerContent()
-            this.graph.zoomToFit()
-            // this.graph.freeze()
+            await this.clearDiagram()
           }
 
       },

--
Gitblit v1.9.1