From 3ecb68c427a627ad8e90d8c555655e7724be2d96 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期五, 06 九月 2024 11:06:12 +0800 Subject: [PATCH] 修改 --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ModelLineService.java | 308 ++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 231 insertions(+), 77 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 0cf4c28..adc3692 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 @@ -5,26 +5,18 @@ import com.zt.common.service.BaseService; import com.zt.common.utils.JsonUtils2; 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.ProductImg; 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.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zt.common.db.query.QueryFilter; import org.springframework.transaction.annotation.Transactional; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import java.io.StringWriter; import java.util.*; import java.util.stream.Collectors; @@ -47,6 +39,10 @@ private AlgorithmDao algorithmDao; @Autowired private ModelNodeAlgorithmDao modelNodeAlgorithmDao; + @Autowired + private XhProductModelDao xhProductModelDao; + @Autowired + private ParamDataDao paramDataDao; /** * 鍒嗛〉鏌ヨ @@ -85,6 +81,7 @@ modelRbdDao.insert(modelRbd); } + @Transactional(rollbackFor = Exception.class) public void update(ModelRbd modelRbd) { if (modelRbd==null) return; @@ -117,62 +114,78 @@ List<ModelNode> modelNodeList = new ArrayList<>(); List<ModelLine> modelLineList = new ArrayList<>(); List<Algorithm> algorithmList = new ArrayList<>(); - List<ProductImg> productImgList = new ArrayList<>(); + List<ProductImg> productImgList = new ArrayList<>(); // 鏆備笉浣跨敤锛堣�屼娇鐢ㄦ暟鎹簱涓殑鍙潬鎬у弬鏁帮級 // 1. 瑙f瀽鍑鸿妭鐐逛笌杈� getNodeAndLineFromRbd(modelRbd.getId(), rbdJsonArray, modelNodeList, modelLineList, productImgList); - // 2. 璁$畻鎵�鏈夎妭鐐圭殑鍏ュ彛绾挎暟鍙婂嚭鍙g嚎鏁� + // 2. 瀵逛簬鏈夊鏍瑰叆鍙g嚎鐨勪骇鍝佽妭鐐癸紝灏嗗叾涓婄殑琛ㄥ喅銆佹梺鑱斿叧绯诲墺绂绘垚杩愮畻绗﹁妭鐐癸紝娣诲姞鍒拌鑺傜偣鐨勫墠闈紝骞舵坊鍔犵浉搴旂殑杈� + peelOperationFromProductNode(modelRbd.getId(), modelNodeList, modelLineList); + // 3. 璁$畻鎵�鏈夎妭鐐圭殑鍏ュ彛绾挎暟鍙婂嚭鍙g嚎鏁� calcInOutLineNumAllNode(modelNodeList, modelLineList); - // 3. 澶嶅埗浜у搧鑺傜偣(node)鍒發ist + // 4. 澶嶅埗浜у搧鑺傜偣(node)鍒發ist List<ModelNode> modelNodeAndVnodeList = modelNodeList.stream().filter(item -> "node".equals(item.getNodeType())).collect(Collectors.toList()); - // 4. 涓嶆柇灏嗗熀鏈ā鍨嬶紙涓茶仈銆佸苟鑱斻�佹梺鑱斻�佽〃鍐炽�佹ˉ鑱旓級鏇挎崲涓鸿櫄鑺傜偣鑰岀畝鍖栧浘褰紝鐩磋嚦鏃犳硶绠�鍖栦负姝€�� - result = getAlgorithmFromRbd(modelRbd, modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, productImgList); + // 5. 涓嶆柇灏嗗熀鏈ā鍨嬶紙涓茶仈銆佸苟鑱斻�佹梺鑱斻�佽〃鍐炽�佹ˉ鑱旓級鏇挎崲涓鸿櫄鑺傜偣鑰岀畝鍖栧浘褰紝鐩磋嚦鏃犳硶绠�鍖栦负姝€�� + result = getAlgorithmFromRbd(modelRbd, modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList); - // 5. 杞崲涓虹畻娉曞簱鎺ュ彛XML + // 6. 杞崲涓虹畻娉曞簱鎺ュ彛XML if (result) { - result = createIfXmlFromRbd(modelRbd, algorithmList, modelNodeAndVnodeList, productImgList); +// result = createIfXmlFromRbd(modelRbd, algorithmList, modelNodeAndVnodeList); } - // 6. 淇濆瓨妯″瀷 + // 7. 淇濆瓨妯″瀷 if (saveFlag) saveModel(modelRbd, modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList); return result; } - private boolean createIfXmlFromRbd(ModelRbd modelRbd, - List<Algorithm> algorithmList, - List<ModelNode> modelNodeAndVnodeList, - List<ProductImg> productImgList) { - boolean result = true; - try { - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = factory.newDocumentBuilder(); - Document doc = builder.newDocument(); - Element rootElement = doc.createElement("DES"); - doc.appendChild(rootElement); + private void peelOperationFromProductNode(Long modelId, + List<ModelNode> modelNodeList, + List<ModelLine> modelLineList) { + List<ModelNode> nodesToAdd = new ArrayList<>(); + List<ModelLine> linesToAdd = new ArrayList<>(); + for (ModelNode node: modelNodeList) { + List<ModelLine> inLineList = modelLineList.stream().filter(item -> + item.getEndCell().equals(node.getPicId())).collect(Collectors.toList()); + if ("node".equals(node.getNodeType()) && + StringUtils.isNotBlank(node.getNodeTypeExt()) && + inLineList.size() > 1) { + // 鏃佽仈or琛ㄥ喅 + ModelNode nodeNew = new ModelNode(); + Long nodeNewId = UUIDUtil.generateId(); + nodeNew.setId(nodeNewId); + nodeNew.setPicId(nodeNewId.toString()); + nodeNew.setModelId(modelId); + nodeNew.setNodeType(node.getNodeTypeExt()); + nodeNew.setName(node.getNodeTypeExt()); + nodeNew.setVoteNum(node.getVoteNum()); + nodeNew.setPositionX(node.getPositionX()); + nodeNew.setPositionY(node.getPositionY()); + nodesToAdd.add(nodeNew); - TransformerFactory tf = TransformerFactory.newInstance(); - Transformer transformer = tf.newTransformer(); - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - StringWriter writer = new StringWriter(); - transformer.transform(new DOMSource(doc), new StreamResult(writer)); - String xmlString = writer.getBuffer().toString(); - modelRbd.setIfXml(xmlString); - } catch (Exception e) { - e.printStackTrace(); - result = false; + ModelLine lineNew = new ModelLine(); + Long lineNewId = UUIDUtil.generateId(); + lineNew.setId(lineNewId); + lineNew.setPicId(lineNewId.toString()); + lineNew.setModelId(modelId); + lineNew.setBeginCell(nodeNewId.toString()); + lineNew.setEndCell(node.getPicId()); + linesToAdd.add(lineNew); + + for(ModelLine line: inLineList){ + line.setEndCell(nodeNewId.toString()); + } + } } - - return result; + modelNodeList.addAll(nodesToAdd); + modelLineList.addAll(linesToAdd); } private boolean getAlgorithmFromRbd(ModelRbd modelRbd, List<ModelNode> modelNodeList, List<ModelLine> modelLineList, List<Algorithm> algorithmList, - List<ModelNode> modelNodeAndVnodeList, - List<ProductImg> productImgList) { + List<ModelNode> modelNodeAndVnodeList) { // 鏍规嵁浠ヤ笅鐨勬瀯鍥捐鍒欐潵杩涜绠楁硶鍒嗚В锛� // 1銆佽妭鐐圭殑瀹氫箟 // 1-1) 杩愮畻鑺傜偣锛氬叡2涓細鏃佽仈銆佽〃鍐筹紝涓旇繍绠楄妭鐐归渶鏀惧湪琚繍绠楄妭鐐圭殑鍙充晶銆� @@ -191,7 +204,8 @@ do { hasSimplified = false; hasSimplified = simplifySeries(modelRbd.getId(), modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, hasSimplified); - hasSimplified = simplifyParallel(modelRbd.getId(), modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, hasSimplified); +// hasSimplified = simplifyParallel(modelRbd.getId(), modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, hasSimplified); + hasSimplified = simplifyOperator("parallel", modelRbd.getId(), modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, hasSimplified); hasSimplified = simplifyOperator("switch", modelRbd.getId(), modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, hasSimplified); hasSimplified = simplifyOperator("vote", modelRbd.getId(), modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, hasSimplified); hasSimplified = simplifyBridge(modelRbd.getId(), modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, hasSimplified); @@ -274,7 +288,7 @@ if (result.size()<2) continue; ModelNode endNode = result.get(result.size()-1); - if ("start,switch,vote".contains(endNode.getNodeType()) || endNode.getOutLineNum()!=1) { + if ("start,parallel,switch,vote,bridge".contains(endNode.getNodeType()) || endNode.getOutLineNum()!=1) { result.remove(endNode); } List<ModelNode> realSeriesNodes = result.stream().filter(item -> @@ -538,12 +552,37 @@ List<ModelNode> result) { ModelLine inLine = modelLineList.stream().filter(item -> item.getEndCell().equals(startNode.getPicId())).collect(Collectors.toList()).get(0); - ModelNode pathNode = modelNodeList.stream().filter(item -> - inLine.getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); + if (isBridgeUpperLine(inLine, modelLineList) || isBridgeLowerLine(inLine, modelLineList)) return; + List<ModelNode> nodes = modelNodeList.stream().filter(item -> + inLine.getBeginCell().equals(item.getPicId())).collect(Collectors.toList()); + if (0==nodes.size()) return; // 鍒版ˉ鑱斾腑闂磋妭鐐圭殑绾跨殑璧风偣涓嶆槸Node锛岃�屾槸Line锛屾墍浠ヨ幏鍙栫殑璧风偣鏁板彲鑳戒负0 + ModelNode pathNode = nodes.get(0); result.add(pathNode); if (pathNode.getOutLineNum()!=1 || pathNode.getInLineNum()!=1) return; - if ("switch,vote".contains(pathNode.getNodeType())) return; + if ("parallel,switch,vote,bridge".contains(pathNode.getNodeType())) return; seekPathSeries(modelNodeList, modelLineList, pathNode, result); + } + + private boolean isBridgeUpperLine(ModelLine line, List<ModelLine> modelLineList) { + boolean result = false; + for (ModelLine ln : modelLineList) { + if (ln.getBeginCell().equals(line.getPicId())) { + result = true; + break; + } + } + return result; + } + + private boolean isBridgeLowerLine(ModelLine line, List<ModelLine> modelLineList) { + boolean result = false; + for (ModelLine ln : modelLineList) { + if (ln.getEndCell().equals(line.getPicId())) { + result = true; + break; + } + } + return result; } private boolean simplifyParallel(Long modelId, @@ -592,6 +631,7 @@ ModelNode endNode = getBranchNodesOneParallel(pathOneGroup, branchNodeList); if ("connect".equals(startNode.getNodeType()) && pathOneGroup.size()==lines.size()) { // 鏇挎崲鎴愯櫄鑺傜偣 + modelNodeAndVnodeList.add(startNode); replaceToVnode("parallel", modelId, modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, startNode, endNode, branchNodeList); } else { @@ -681,15 +721,15 @@ boolean hasSimplified) { boolean hasSimplifiedMe = false; List<ModelNode> startNodes = modelNodeList.stream().filter(item -> - "node,vnode,connect,end".contains(item.getNodeType())).collect(Collectors.toList()); + "bridge".equals(item.getNodeType())).collect(Collectors.toList()); if (startNodes.size()==0) return hasSimplified; for (ModelNode startNode : startNodes) { 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) { @@ -708,12 +748,15 @@ List<Algorithm> algorithmList, List<ModelNode> modelNodeAndVnodeList, ModelNode startNode, - ModelLinePair linePair) { + ModelLinePairDto linePair) { ModelNode node1 = null; ModelNode node2 = null; ModelNode node3 = null; ModelNode node4 = null; ModelNode node5 = null; + ModelLine line1To2 = null; + ModelLine line4To5 = null; +/* ModelNode nodeTmp1 = modelNodeList.stream().filter(item -> linePair.getLine1().getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); ModelNode nodeTmp2 = modelNodeList.stream().filter(item -> @@ -778,6 +821,79 @@ lineTo4.getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); if (!nodeTmp1.getId().equals(nodeTmp2.getId())) return false; ModelNode endNode = nodeTmp1; +*/ + ModelNode nodeTmp1 = modelNodeList.stream().filter(item -> + linePair.getLine1().getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); + ModelNode nodeTmp2 = modelNodeList.stream().filter(item -> + linePair.getLine2().getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); + if (nodeTmp1.getInLineNum()!=1 || nodeTmp1.getOutLineNum()!=1) return false; + if (nodeTmp2.getInLineNum()!=1 || nodeTmp2.getOutLineNum()!=1) return false; + ModelNode finalNode = nodeTmp1; + ModelLine lineToNodeTmp1 = modelLineList.stream().filter(item -> + item.getEndCell().equals(finalNode.getPicId())).collect(Collectors.toList()).get(0); + ModelNode finalNode1 = nodeTmp2; + ModelLine lineToNodeTmp2 = modelLineList.stream().filter(item -> + item.getEndCell().equals(finalNode1.getPicId())).collect(Collectors.toList()).get(0); + ModelNode nodeTmp3 = modelNodeList.stream().filter(item -> + lineToNodeTmp1.getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); + ModelNode nodeTmp4 = modelNodeList.stream().filter(item -> + lineToNodeTmp2.getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); + if (nodeTmp3.getId().equals(nodeTmp4.getId())) return false; + boolean isBridgeUpperLine1 = isBridgeUpperLine(lineToNodeTmp1, modelLineList); + boolean isBridgeUpperLine2 = isBridgeUpperLine(lineToNodeTmp2, modelLineList); + if (!isBridgeUpperLine1 && !isBridgeUpperLine2) return false; + if (isBridgeUpperLine1 && isBridgeUpperLine2) return false; + boolean isBridgeLowerLine1 = isBridgeLowerLine(lineToNodeTmp1, modelLineList); + boolean isBridgeLowerLine2 = isBridgeLowerLine(lineToNodeTmp2, modelLineList); + if (!isBridgeLowerLine1 && !isBridgeLowerLine2) return false; + if (isBridgeLowerLine1 && isBridgeLowerLine2) return false; + if (isBridgeUpperLine1) { + line1To2 = lineToNodeTmp1; + line4To5 = lineToNodeTmp2; + node2 = nodeTmp1; + node5 = nodeTmp2; + } else { + line1To2 = lineToNodeTmp2; + line4To5 = lineToNodeTmp1; + node2 = nodeTmp2; + node5 = nodeTmp1; + } + ModelLine finalLine = line1To2; + ModelLine lineTo3 = modelLineList.stream().filter(item -> + item.getBeginCell().equals(finalLine.getPicId())).collect(Collectors.toList()).get(0); + ModelLine finalLine1 = line4To5; + ModelLine lineFrom3 = modelLineList.stream().filter(item -> + item.getEndCell().equals(finalLine1.getPicId())).collect(Collectors.toList()).get(0); + ModelLine finalLine2 = lineTo3; + ModelNode node3Candidate1 = modelNodeList.stream().filter(item -> + finalLine2.getEndCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); + ModelLine finalLine3 = lineFrom3; + ModelNode node3Candidate2 = modelNodeList.stream().filter(item -> + finalLine3.getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); + if (!node3Candidate1.getId().equals(node3Candidate2.getId())) return false; + node3 = node3Candidate1; + if (node3.getInLineNum()!=1 || node3.getOutLineNum()!=1) return false; + ModelLine finalLine4 = line1To2; + node1 = modelNodeList.stream().filter(item -> + finalLine4.getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); + if (node1.getInLineNum()!=1 || node1.getOutLineNum()!=1) return false; + ModelLine finalLine5 = line4To5; + node4 = modelNodeList.stream().filter(item -> + finalLine5.getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); + if (node4.getInLineNum()!=1 || node4.getOutLineNum()!=1) return false; + ModelNode finalNode3 = node1; + ModelLine lineTo1 = modelLineList.stream().filter(item -> + item.getEndCell().equals(finalNode3.getPicId())).collect(Collectors.toList()).get(0); + ModelNode finalNode4 = node4; + ModelLine lineTo4 = modelLineList.stream().filter(item -> + item.getEndCell().equals(finalNode4.getPicId())).collect(Collectors.toList()).get(0); + nodeTmp1 = modelNodeList.stream().filter(item -> + lineTo1.getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); + nodeTmp2 = modelNodeList.stream().filter(item -> + lineTo4.getBeginCell().equals(item.getPicId())).collect(Collectors.toList()).get(0); + if (!nodeTmp1.getId().equals(nodeTmp2.getId())) return false; + ModelNode endNode = nodeTmp1; + List<ModelNode> branchNodeList = new ArrayList<>(); branchNodeList.add(node1); branchNodeList.add(node2); @@ -785,8 +901,14 @@ branchNodeList.add(node4); branchNodeList.add(node5); + modelNodeAndVnodeList.add(startNode); + replaceToVnode("bridge", modelId, modelNodeList, modelLineList, + algorithmList, modelNodeAndVnodeList, startNode, endNode, branchNodeList); + +/* if ("connect".equals(startNode.getNodeType()) && startNode.getInLineNum()==2) { // 鏇挎崲鎴愯櫄鑺傜偣 + modelNodeAndVnodeList.add(startNode); replaceToVnode("bridge", modelId, modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, startNode, endNode, branchNodeList); } else { @@ -816,6 +938,7 @@ algorithmList, modelNodeAndVnodeList, vnode, endNode, branchNodeList); calcInOutLineNum(startNode, modelLineList); } +*/ return true; } @@ -836,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); @@ -882,6 +1005,7 @@ } } if (thisNodeSuccess) { + modelNodeAndVnodeList.add(opNode); replaceToVnode(opNode.getNodeType(), modelId, modelNodeList, modelLineList, algorithmList, modelNodeAndVnodeList, opNode, endNode, branchNodeList); hasSimplified = true; @@ -911,6 +1035,7 @@ algorithm.setAlgorithmType(type); algorithm.setComputerList(computerList.get(0)); algorithm.setObjectList(computerList.get(1)); + if ("vote".equals(type)) algorithm.setVoteNum(startNode.getVoteNum()); algorithm.setStep(algorithmList.size()==0 ? 0 : algorithmList.get(algorithmList.size()-1).getStep()+1); algorithmList.add(algorithm); @@ -965,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(); @@ -984,36 +1110,63 @@ 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); - Object obj = JsonUtils2.getJsonValueByPath(jsonObject, "data/reliabDistribType".split("/")); - if (obj!=null && StringUtils.isNotBlank(obj.toString())) { - productImg.setReliabDistribType(Integer.valueOf(obj.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())); - } - if (1==productImg.getIsRepair()) { - obj = JsonUtils2.getJsonValueByPath(jsonObject, "data/repairDistribType".split("/")); - if (obj!=null && StringUtils.isNotBlank(obj.toString())) { - productImg.setRepairDistribType(Integer.valueOf(obj.toString())); + String productType = JsonUtils2.getJsonValueByPath(jsonObject, "data/productType".split("/")).toString(); + productImg.setProductType(productType); + if ("product_sb".equals(productType)) { + jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/reliabDistribType".split("/")); + if (jsonValue != null && StringUtils.isNotBlank(jsonValue.toString())) { + productImg.setReliabDistribType(Integer.valueOf(jsonValue.toString())); + if (3==productImg.getReliabDistribType()) { + // 浜岄」鍒嗗竷 + jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/simulatTimes".split("/")); + if (jsonValue != null && StringUtils.isNotBlank(jsonValue.toString())) { + productImg.setBinomialTotalNum(Integer.valueOf(jsonValue.toString())); + modelNode.setBinomialTotalNum(Integer.valueOf(jsonValue.toString())); + } + jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/successTimes".split("/")); + if (jsonValue != null && StringUtils.isNotBlank(jsonValue.toString())) { + productImg.setBinomialSuccessNum(Integer.valueOf(jsonValue.toString())); + modelNode.setBinomialSuccessNum(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/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()) { + jsonValue = JsonUtils2.getJsonValueByPath(jsonObject, "data/repairDistribType".split("/")); + if (jsonValue != null && StringUtils.isNotBlank(jsonValue.toString())) { + productImg.setRepairDistribType(Integer.valueOf(jsonValue.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); } @@ -1065,6 +1218,7 @@ } // 鏇存柊RBD鏁版嵁 + modelRbd.setPublishedContent(modelRbd.getContent()); modelRbdDao.updateById(modelRbd); } -- Gitblit v1.9.1