| | |
| | | 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, |