|  |  | 
 |  |  |             String NoEStr = ""; | 
 |  |  |             String ToEStr = ""; | 
 |  |  |             String FStr = ""; | 
 |  |  |             for (ModelNode node : nodeList) { | 
 |  |  | //            for (ModelNode node : nodeList) { | 
 |  |  |                 List<ReliabilityAssess> assessDatas = assessDataList.stream().filter(item -> | 
 |  |  |                         node.getDataId().equals(item.getId())).collect(Collectors.toList()); | 
 |  |  |                         dataId.equals(item.getId())).collect(Collectors.toList()); | 
 |  |  |                 NoEStr += ","; | 
 |  |  |                 ToEStr += ","; | 
 |  |  |                 FStr += ","; | 
 |  |  | 
 |  |  |                     ToEStr += assessDatas.get(0).getRunTimes() != null ? assessDatas.get(0).getRunTimes().toString() : "0"; | 
 |  |  |                     FStr += assessDatas.get(0).getFailNum() != null ? assessDatas.get(0).getFailNum().toString() : "0"; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  | //            } | 
 |  |  |             NoEStr = NoEStr.substring(1); | 
 |  |  |             ToEStr = ToEStr.substring(1); | 
 |  |  |             FStr = FStr.substring(1); | 
 |  |  | 
 |  |  |             sameNameGroupTag.addAttribute("nums", String.valueOf(nodeList.size())); | 
 |  |  |             Element nodeTag = sameNameGroupTag.addElement("node"); | 
 |  |  |             nodeTag.addAttribute("name", | 
 |  |  |                     nodeList.stream().map(item -> item.getDataId().toString()).collect(Collectors.joining(","))); | 
 |  |  |                     nodeList.stream().map(item -> item.getDataId().toString()+"-"+item.getDeviceNo().toString()). | 
 |  |  |                             collect(Collectors.joining(","))); | 
 |  |  |             nodeTag.addAttribute("real_name", product.getSameSbName()); | 
 |  |  |             nodeTag.addAttribute("name_path", product.getNamePath()); | 
 |  |  |             if (paramData.getReliabDistribType() == 3) { | 
 |  |  | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 // 根据同类设备名称进行分组处理 | 
 |  |  |                 // 根据同类设备名称进行分组处理(改为根据dataId进行分组) | 
 |  |  |                 Map<String, List<ModelNode>> groupByNameMap = new HashMap<>(); | 
 |  |  |                 for (String nodeStr : computerNodeListStr) { | 
 |  |  |                     ModelNode mn = modelNodeAndVnodeList.stream().filter(item -> | 
 |  |  |                             nodeStr.equals(item.getId().toString())).collect(Collectors.toList()).get(0); | 
 |  |  |                     String sameSbName = null; | 
 |  |  |                     if (mn.getDataId() != null) { | 
 |  |  |                         XhProductModel product = productList.stream().filter(item -> | 
 |  |  |                                 mn.getDataId().equals(item.getId())).collect(Collectors.toList()).get(0); | 
 |  |  |                         if ("5".equals(product.getProductType())) sameSbName = product.getSameSbName(); | 
 |  |  | //                        XhProductModel product = productList.stream().filter(item -> | 
 |  |  | //                                mn.getDataId().equals(item.getId())).collect(Collectors.toList()).get(0); | 
 |  |  | //                        if ("5".equals(product.getProductType())) sameSbName = product.getSameSbName(); | 
 |  |  |                         sameSbName = mn.getDataId().toString(); | 
 |  |  |                     } | 
 |  |  |                     if (sameSbName == null) { | 
 |  |  |                         List<ModelNode> list = new ArrayList<>(); | 
 |  |  | 
 |  |  |                 NoEStr += "," + (assessData.getRunNum() != null ? assessData.getRunNum().toString() : "0"); | 
 |  |  |                 ToEStr += "," + (assessData.getRunTimes() != null ? assessData.getRunTimes().toString() : "0"); | 
 |  |  |                 FStr += "," + (assessData.getFailNum() != null ? assessData.getFailNum().toString() : "0"); | 
 |  |  |                 break; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         NoEStr = NoEStr.substring(1); | 
 |  |  | 
 |  |  |         FStr = FStr.substring(1); | 
 |  |  |  | 
 |  |  |         nodeTag.addAttribute("name", | 
 |  |  |                 nodes.stream().map(item -> item.getDataId().toString()).collect(Collectors.joining(","))); | 
 |  |  |                 nodes.stream().map(item -> item.getDataId().toString()+"-"+item.getDeviceNo().toString()). | 
 |  |  |                         collect(Collectors.joining(","))); | 
 |  |  |         if (distTypes.get(0) == 3) { | 
 |  |  |             // 二项分布 | 
 |  |  |             nodeTag.addAttribute("distType", "ber"); | 
 |  |  | 
 |  |  |                 ReliaSimLibResult rtn = com.alibaba.fastjson.JSONObject.parseObject(line, ReliaSimLibResult.class); | 
 |  |  |                 if ("0".equals(rtn.getCode())) { | 
 |  |  |                     logger.info("启动可靠性评定算法库成功。"); | 
 |  |  |                     result = Result.ok(); | 
 |  |  |                     if (exitCode ==0) { | 
 |  |  |                         deleteAssessInfoInRedis(assessResult.getId()); | 
 |  |  |                         result = Result.ok(); | 
 |  |  |                     } else { | 
 |  |  |                         result = Result.error("可靠性评定算法库计算失败: exitCode=" + exitCode); | 
 |  |  |                     } | 
 |  |  |                 } else { | 
 |  |  |                     String errorMsg = rtn.getErrorMsg(); | 
 |  |  |                     throw new RenException("启动可靠性评定算法库失败: errorMsg=" + errorMsg); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             deleteAssessInfoInRedis(assessResult.getId()); | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             logger.error("启动可靠性评定算法库时发生Exception:", e); | 
 |  |  |             e.printStackTrace(); |