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