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