From 33246bb56e05b273944ec1cc03a58dc112e48848 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期五, 16 八月 2024 09:42:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java | 199 +++++++++----------------------------------------
1 files changed, 37 insertions(+), 162 deletions(-)
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java
index 5b53ca9..d9f6b39 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java
@@ -7,24 +7,16 @@
import com.zt.common.utils.UUIDUtil;
import com.zt.life.modules.mainPart.basicInfo.dao.ParamDataDao;
import com.zt.life.modules.mainPart.basicInfo.dao.XhProductModelDao;
-import com.zt.life.modules.mainPart.basicInfo.model.ParamData;
import com.zt.life.modules.mainPart.basicInfo.model.ProductImg;
-import com.zt.life.modules.mainPart.basicInfo.model.XhProductModel;
import com.zt.life.modules.mainPart.taskReliability.dao.*;
-import com.zt.life.modules.mainPart.taskReliability.dto.ModelLinePair;
+import com.zt.life.modules.mainPart.taskReliability.dto.ModelLinePairDto;
import com.zt.life.modules.mainPart.taskReliability.model.*;
import org.apache.commons.lang3.StringUtils;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Document;
-import org.dom4j.Element;
-import org.dom4j.io.OutputFormat;
-import org.dom4j.io.XMLWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zt.common.db.query.QueryFilter;
import org.springframework.transaction.annotation.Transactional;
-import java.io.StringWriter;
import java.util.*;
import java.util.stream.Collectors;
@@ -138,7 +130,7 @@
// 6. 杞崲涓虹畻娉曞簱鎺ュ彛XML
if (result) {
- result = createIfXmlFromRbd(modelRbd, algorithmList, modelNodeAndVnodeList);
+// result = createIfXmlFromRbd(modelRbd, algorithmList, modelNodeAndVnodeList);
}
// 7. 淇濆瓨妯″瀷
@@ -187,134 +179,6 @@
}
modelNodeList.addAll(nodesToAdd);
modelLineList.addAll(linesToAdd);
- }
-
- private boolean createIfXmlFromRbd(ModelRbd modelRbd,
- List<Algorithm> algorithmList,
- List<ModelNode> modelNodeAndVnodeList) {
- boolean result = true;
-
- try {
- Document document = DocumentHelper.createDocument();
- // 娣诲姞root鑺傜偣
- Element root = document.addElement("DES");
- root.addAttribute("Name", "A System");
- // 娣诲姞terminal鑺傜偣鍒皉oot1
- Element terminal = root.addElement("Node");
- terminal.addAttribute("Name", "Terminal");
- terminal.addAttribute("Type", "NODE");
-
- // 灏嗘ā鍨嬭浆鎹负DOM锛屾坊鍔犲埌root
- Algorithm endAlgo = algorithmList.stream().filter(item ->
- "end".equals(item.getAlgorithmType())).collect(Collectors.toList()).get(0);
- ModelNode computerNode = modelNodeAndVnodeList.stream().filter(item ->
- endAlgo.getComputerList().equals(item.getId().toString())).collect(Collectors.toList()).get(0);
- node2DOM(algorithmList, modelNodeAndVnodeList, computerNode, root);
-
- // 娣诲姞start鑺傜偣鍒皉oot
- Element start = root.addElement("Node");
- start.addAttribute("Name", "Start");
- start.addAttribute("Type", "NODE");
- // 娣诲姞link锛堣矾寰勶級鍒皉oot
- Element link = root.addElement("Link");
- Element block = link.addElement("Block");
- block.addAttribute("Name", "Terminal");
- block = link.addElement("Block");
- block.addAttribute("Name", computerNode.getId().toString());
- block = link.addElement("Block");
- block.addAttribute("Name", "Start");
-
-// document.setXMLEncoding("UTF-8");
-// String xmlString = document.asXML();
- // 杈撳嚭鏍煎紡鍖杧ml
- XMLWriter xmlWriter = null;
- try {
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setEncoding("UTF-8");
- StringWriter writer = new StringWriter();
- xmlWriter = new XMLWriter(writer, format);
- xmlWriter.write(document);
- modelRbd.setPublishedXml(writer.toString());
- } finally {
- if (xmlWriter!=null) xmlWriter.close();
- }
- } catch (Exception e) {
- e.printStackTrace();
- result = false;
- }
-
- return result;
- }
-
- // 閫掑綊鍑芥暟
- private void node2DOM(List<Algorithm> algorithmList,
- List<ModelNode> modelNodeAndVnodeList,
- ModelNode node,
- Element parent) {
- if ("node".equals(node.getNodeType())) {
- Long dataId = node.getDataId();
- XhProductModel xhProductModel = xhProductModelDao.getById(dataId);
- if (xhProductModel == null) return;
- if ("5".equals(xhProductModel.getProductType())) {
- // 璁惧
- ParamData paramData = paramDataDao.getParamData(dataId, "expect");
- if (paramData == null) return;
- Element element = parent.addElement("Node");
- element.addAttribute("Name", dataId.toString());
- element.addAttribute("Type", "NODE");
- Element failureTag = element.addElement("Failure");
- failureTag.addAttribute("Dist", "EXP"); // TODO:闇�璁句负鍏蜂綋鐨勫垎甯�
- Element argsTag = failureTag.addElement("Args");
- Double value = new Double(paramData.getTaskMtbcfRegulate());
- value = 1.0/value;
- argsTag.addAttribute("value", value.toString());
- if (1==paramData.getRepairable()) {
- Element repairTag = element.addElement("Repair");
- repairTag.addAttribute("Dist", "EXP"); // TODO:闇�璁句负鍏蜂綋鐨勫垎甯�
- argsTag = repairTag.addElement("Args");
- value = new Double(paramData.getRepairMttcr());
- value = 1.0/value;
- argsTag.addAttribute("value", value.toString());
- Element repairTimeLimitTag = element.addElement("RepairTimeLimit");
- repairTimeLimitTag.setText(String.valueOf(paramData.getRepairMttcr()));
- }
- } else if ("10".equals(xhProductModel.getProductType())) {
- // 铏氬崟浣�
- ModelRbd rbdXDY = modelRbdDao.getDiagramOfXDY(dataId);
- if (rbdXDY == null) return;
- List<Algorithm> algorithmListXDY = algorithmDao.getListByModelId(rbdXDY.getId());
- List<ModelNode> modelNodeAndVnodeListXDY =modelNodeAlgorithmDao.getListByModelId(rbdXDY.getId());
- Algorithm endAlgo = algorithmListXDY.stream().filter(item ->
- "end".equals(item.getAlgorithmType())).collect(Collectors.toList()).get(0);
- ModelNode computerNode = modelNodeAndVnodeListXDY.stream().filter(item ->
- endAlgo.getComputerList().equals(item.getId().toString())).collect(Collectors.toList()).get(0);
- node2DOM(algorithmListXDY, modelNodeAndVnodeListXDY, computerNode, parent);
- }
- } else {
- // vnode锛堣繍绠楄妭鐐癸級
- Algorithm algo = algorithmList.stream().filter(item ->
- node.getId().equals(item.getId())).collect(Collectors.toList()).get(0);
- Element element = parent.addElement("Logic");
- element.addAttribute("Name", algo.getId().toString());
- if ("series".equals(algo.getAlgorithmType())) {
- element.addAttribute("Type", "SERIES");
- } else if ("parallel".equals(algo.getAlgorithmType())) {
- element.addAttribute("Type", "PARALLEL");
- } else if ("vote".equals(algo.getAlgorithmType())) {
- element.addAttribute("Type", "VOTE");
- element.addAttribute("VoteValue", algo.getVoteNum().toString());
- } else if ("switch".equals(algo.getAlgorithmType())) {
- element.addAttribute("Type", "STANDBY");
- } else if ("bridge".equals(algo.getAlgorithmType())) {
- element.addAttribute("Type", "BRIDGE");
- }
- String[] computerNodeListStr = algo.getComputerList().split(",");
- for (String nodeStr : computerNodeListStr) {
- ModelNode nd = modelNodeAndVnodeList.stream().filter(item ->
- nodeStr.equals(item.getId().toString())).collect(Collectors.toList()).get(0);
- node2DOM(algorithmList, modelNodeAndVnodeList, nd, element);
- }
- }
}
private boolean getAlgorithmFromRbd(ModelRbd modelRbd,
@@ -864,8 +728,8 @@
List<ModelLine> lines = modelLineList.stream().filter(item ->
item.getEndCell().equals(startNode.getPicId())).collect(Collectors.toList());
if (lines.size()<2) continue;
- List<ModelLinePair> linePairs = getLinePairs(lines);
- for (ModelLinePair linePair : linePairs) {
+ List<ModelLinePairDto> linePairs = getLinePairs(lines);
+ for (ModelLinePairDto linePair : linePairs) {
hasSimplifiedMe = simplifyBridgeOneLinePair(modelId, modelNodeList, modelLineList,
algorithmList, modelNodeAndVnodeList, startNode, linePair);
if (hasSimplifiedMe) {
@@ -884,7 +748,7 @@
List<Algorithm> algorithmList,
List<ModelNode> modelNodeAndVnodeList,
ModelNode startNode,
- ModelLinePair linePair) {
+ ModelLinePairDto linePair) {
ModelNode node1 = null;
ModelNode node2 = null;
ModelNode node3 = null;
@@ -1095,11 +959,11 @@
}
// 鎵惧嚭鎵�鏈�2鏍圭嚎鐨勭粍鍚�
- private List<ModelLinePair> getLinePairs(List<ModelLine> lines) {
- List<ModelLinePair> linePairs = new ArrayList<>();
+ private List<ModelLinePairDto> getLinePairs(List<ModelLine> lines) {
+ List<ModelLinePairDto> linePairs = new ArrayList<>();
for (int i=0; i<lines.size()-1; i++) {
for (int j=i+1; j<lines.size(); j++) {
- ModelLinePair linePair = new ModelLinePair();
+ ModelLinePairDto linePair = new ModelLinePairDto();
linePair.setLine1(lines.get(i));
linePair.setLine2(lines.get(j));
linePairs.add(linePair);
@@ -1226,6 +1090,7 @@
List<ModelNode> modelNodeList,
List<ModelLine> modelLineList,
List<ProductImg> productImgList) {
+ Object jsonValue = null;
for (int i = 0; i < rbdJsonArray.size(); i++) {
JSONObject jsonObject = rbdJsonArray.getJSONObject(i);
String shape = jsonObject.get("shape").toString();
@@ -1245,39 +1110,49 @@
modelNode.setNodeType(JsonUtils2.getJsonValueByPath(jsonObject, "data/nodeType".split("/")).toString());
modelNode.setPositionX(Double.valueOf(JsonUtils2.getJsonValueByPath(jsonObject, "position/x".split("/")).toString()));
modelNode.setPositionY(Double.valueOf(JsonUtils2.getJsonValueByPath(jsonObject, "position/y".split("/")).toString()));
- Object voteNum = JsonUtils2.getJsonValueByPath(jsonObject, "data/voteNum".split("/"));
- if (voteNum!=null && StringUtils.isNotBlank(voteNum.toString())) {
- modelNode.setVoteNum(Integer.valueOf(voteNum.toString()));
+ jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/voteNum".split("/"));
+ if (jsonValue!=null && StringUtils.isNotBlank(jsonValue.toString())) {
+ modelNode.setVoteNum(Integer.valueOf(jsonValue.toString()));
}
if ("node".equals(modelNode.getNodeType())) {
ProductImg productImg = new ProductImg();
String dataId = JsonUtils2.getJsonValueByPath(jsonObject, "data/dataId".split("/")).toString();
modelNode.setDataId(Long.valueOf(dataId));
modelNode.setNodeTypeExt(JsonUtils2.getJsonValueByPath(jsonObject, "data/nodeTypeExt".split("/")).toString());
- Object name = JsonUtils2.getJsonValueByPath(jsonObject, "attrs/text/text".split("/"));
- modelNode.setName(name==null ? "" : name.toString());
+ jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "attrs/text/text".split("/"));
+ modelNode.setName(jsonValue==null ? "" : jsonValue.toString());
productImg.setDataId(dataId);
String productType = JsonUtils2.getJsonValueByPath(jsonObject, "data/productType".split("/")).toString();
productImg.setProductType(productType);
if ("product_sb".equals(productType)) {
- Object obj = JsonUtils2.getJsonValueByPath(jsonObject, "data/reliabDistribType".split("/"));
- if (obj != null && StringUtils.isNotBlank(obj.toString())) {
- productImg.setReliabDistribType(Integer.valueOf(obj.toString()));
+ jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/reliabDistribType".split("/"));
+ if (jsonValue != null && StringUtils.isNotBlank(jsonValue.toString())) {
+ productImg.setReliabDistribType(Integer.valueOf(jsonValue.toString()));
}
- productImg.setTaskMtbcf(JsonUtils2.getJsonValueByPath(jsonObject, "data/taskMtbcf".split("/")).toString());
- productImg.setTaskMtbcfOther(JsonUtils2.getJsonValueByPath(jsonObject, "data/taskMtbcfOther".split("/")).toString());
- obj = JsonUtils2.getJsonValueByPath(jsonObject, "data/isRepair".split("/"));
- if (obj != null && StringUtils.isNotBlank(obj.toString())) {
- productImg.setIsRepair(Integer.valueOf(obj.toString()));
+ jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/taskMtbcf".split("/"));
+ if (null != jsonValue) productImg.setTaskMtbcf(jsonValue.toString());
+ jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/taskMtbcfOtherParams2".split("/"));
+ if (null != jsonValue) productImg.setTaskMtbcfOtherParams2(jsonValue.toString());
+ jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/taskMtbcfOtherParams3".split("/"));
+ if (null != jsonValue) productImg.setTaskMtbcfOtherParams3(jsonValue.toString());
+ jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/isRepair".split("/"));
+ if (jsonValue != null && StringUtils.isNotBlank(jsonValue.toString()) && !"null".equals(jsonValue.toString())) {
+ productImg.setIsRepair(Integer.valueOf(jsonValue.toString()));
+ } else {
+ productImg.setIsRepair(0);
}
if (1 == productImg.getIsRepair()) {
- obj = JsonUtils2.getJsonValueByPath(jsonObject, "data/repairDistribType".split("/"));
- if (obj != null && StringUtils.isNotBlank(obj.toString())) {
- productImg.setRepairDistribType(Integer.valueOf(obj.toString()));
+ jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/repairDistribType".split("/"));
+ if (jsonValue != null && StringUtils.isNotBlank(jsonValue.toString())) {
+ productImg.setRepairDistribType(Integer.valueOf(jsonValue.toString()));
}
- productImg.setRepairMttcr(JsonUtils2.getJsonValueByPath(jsonObject, "data/repairMttcr".split("/")).toString());
- productImg.setRepairMttcrOther(JsonUtils2.getJsonValueByPath(jsonObject, "data/repairMttcrOther".split("/")).toString());
+ jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/repairMttcr".split("/"));
+ if (null != jsonValue) productImg.setRepairMttcr(jsonValue.toString());
+ jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/repairMttcrOtherParams2".split("/"));
+ if (null != jsonValue) productImg.setRepairMttcrOtherParams2(jsonValue.toString());
+ jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/repairMttcrOtherParams3".split("/"));
+ if (null != jsonValue) productImg.setRepairMttcrOtherParams3(jsonValue.toString());
}
}
productImgList.add(productImg);
--
Gitblit v1.9.1