From 1cbc5439e1a250427587b4b31473a0b4448b68ff Mon Sep 17 00:00:00 2001 From: xyc <jc_xiong@hotmail.com> Date: 星期三, 23 十月 2024 11:04:52 +0800 Subject: [PATCH] 可靠性仿真评估时后端增加可修设备可修阶段可靠度固定为1的控制 --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 47 insertions(+), 12 deletions(-) diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java index 81c21ba..b32a5ea 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java @@ -758,7 +758,8 @@ Element root = document.addElement("des"); root.addAttribute("name", "General system"); addTasksTag(taskPhaseModelAll, root); - addModelsTag(taskId, + addModelsTag(simulatAssess, + taskId, productId, product.getName(), product.getNamePath(), @@ -895,6 +896,10 @@ ele = repairModelTag.addElement("shape"); ele.addAttribute("value", String.valueOf(repairModel.getParam3())); break; + case RepairModel.TYPE_DIRAC: + ele = repairModelTag.addElement("repair-time"); + ele.addAttribute("value", String.valueOf(repairModel.getParam1())); + break; default: break; } @@ -937,7 +942,8 @@ return taskPhases; } - private void addModelsTag(Long taskId, + private void addModelsTag(SimulatAssess simulatAssess, + Long taskId, Long productId, String productName, String productNamePath, @@ -963,7 +969,8 @@ "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(taskId, + node2DOM(simulatAssess, + taskId, taskPhaseModel, gkModelTop.getModelId(), productId, @@ -981,7 +988,8 @@ } // 閫掑綊鍑芥暟 - private void node2DOM(Long taskId, + private void node2DOM(SimulatAssess simulatAssess, + Long taskId, TaskPhaseModel taskPhaseModel, Long modelId, Long productId, @@ -1011,7 +1019,8 @@ "end".equals(item.getAlgorithmType())).collect(Collectors.toList()).get(0); ModelNode computerNode = modelNodeAndVnodeListSub.stream().filter(item -> endAlgo.getComputerList().equals(item.getId().toString())).collect(Collectors.toList()).get(0); - node2DOM(taskId, + node2DOM(simulatAssess, + taskId, taskPhaseModel, gkModel.getModelId(), product.getId(), @@ -1062,7 +1071,12 @@ if (1 == paramData.getRepairable()) { // 鍙淮淇� - RepairModel repairModel = createRepairModel(paramData); + RepairModel repairModel = null; + if (isRepairDirac(simulatAssess.getRepairDiracFlag(), taskPhaseModel, product.getId())) { + repairModel = createRepairModelDirac(0); + } else { + repairModel = createRepairModel(paramData); + } repairModels.add(repairModel); Element repairTag = nodeTag.addElement("repair_model"); repairTag.addAttribute("name", repairModel.getId().toString()); @@ -1097,7 +1111,8 @@ for (String nodeStr : computerNodeListStr) { ModelNode mn = modelNodeAndVnodeList.stream().filter(item -> nodeStr.equals(item.getId().toString())).collect(Collectors.toList()).get(0); - node2DOM(taskId, + node2DOM(simulatAssess, + taskId, taskPhaseModel, modelId, null, @@ -1152,23 +1167,43 @@ return failureModel; } + private boolean isRepairDirac(boolean repairDiracFlag, TaskPhaseModel taskPhaseModel, Long productId) { + boolean result = false; + + if (repairDiracFlag) { + if (taskPhaseModel.getPhaseConstraints() != null) { + List<TaskPhaseConstraintDto> list = taskPhaseModel.getPhaseConstraints().stream().filter(item -> + productId.equals(item.getProductId())).collect(Collectors.toList()); + if (list.size() == 0) { + result = true; + } + } + } + + return result; + } + + private RepairModel createRepairModelDirac(double time) { + RepairModel repairModel = new RepairModel(); + repairModel.setId(UUIDUtil.generateId()); + repairModel.setParam1(0); + return repairModel; + } + private RepairModel createRepairModel(ParamData paramData) { RepairModel repairModel = new RepairModel(); repairModel.setId(UUIDUtil.generateId()); switch (paramData.getRepairDistribType()) { case 1: // 鎸囨暟鍒嗗竷 - repairModel.setType(FailureModel.TYPE_EXP); + repairModel.setType(RepairModel.TYPE_EXP); repairModel.setParam1(1.0 / paramData.getRepairMttcr()); break; case 2: // 濞佸竷灏斿垎甯� - repairModel.setType(FailureModel.TYPE_WBL); + repairModel.setType(RepairModel.TYPE_WBL); repairModel.setParam2(paramData.getRepairMttcrOtherParams2()); repairModel.setParam3(paramData.getRepairMttcrOtherParams3()); - break; - case 3: - // 浜岄」鍒嗗竷锛堢淮淇病鏈夛級 break; default: break; -- Gitblit v1.9.1