| | |
| | | @ApiModelProperty(value = "") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "") |
| | | private String name; |
| | | |
| | | } |
| | |
| | | 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); |
| | | } |
| | |
| | | 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()); |
| | |
| | | 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(); |
| | |
| | | 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, |
| | |
| | | |
| | | <el-button type="primary" @click="saveDiagram()">保存</el-button> |
| | | <el-button type="primary" @click="analyzeDiagram()">解析</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"> |
| | |
| | | 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:{}}, |
| | | ], |
| | |
| | | // 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 |
| | |
| | | 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() |
| | | } |
| | | |
| | | }, |