From e3efb341dd56be82b73d31d7054b04994a4926a1 Mon Sep 17 00:00:00 2001 From: xyc <jc_xiong@hotmail.com> Date: 星期五, 02 八月 2024 15:11:35 +0800 Subject: [PATCH] 修改仿真后台 --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java | 69 +++++++++++++++++++++++++++------- 1 files changed, 54 insertions(+), 15 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 abaa21e..039ee79 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 @@ -1,8 +1,7 @@ package com.zt.life.modules.mainPart.taskReliability.service; -import com.alibaba.fastjson.JSONObject; -import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONArray; import com.fasterxml.jackson.databind.ObjectMapper; import com.spire.pdf.tables.table.convert.Convert; import com.zt.common.exception.RenException; @@ -14,12 +13,9 @@ import com.zt.life.modules.mainPart.basicInfo.model.ParamData; import com.zt.life.modules.mainPart.basicInfo.model.XhProductModel; import com.zt.life.modules.mainPart.taskReliability.dao.*; -import com.zt.common.servlet.Result; import com.zt.common.utils.JsonUtils2; -import com.zt.common.utils.UUIDUtil; import com.zt.life.modules.mainPart.taskReliability.dao.SimulatAssessDao; import com.zt.life.modules.mainPart.taskReliability.dao.TimeDiagramDao; -import com.zt.life.modules.mainPart.taskReliability.dto.ModelDto; import com.zt.life.modules.mainPart.taskReliability.dto.ProductStatusDto; import com.zt.life.modules.mainPart.taskReliability.dto.TaskModelCheckResult; import com.zt.life.modules.mainPart.taskReliability.model.*; @@ -37,7 +33,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -49,11 +44,9 @@ import java.io.File; import java.io.IOException; import java.util.HashMap; -import java.util.Hashtable; import java.util.List; import java.util.stream.Collectors; import java.util.Map; -import java.util.stream.Collectors; /** @@ -98,6 +91,10 @@ private XhProductModelDao xhProductModelDao; @Autowired private ParamDataDao paramDataDao; + @Autowired + private TaskBinoParamDao taskBinoParamDao; + @Autowired + private TaskRepairParamDao taskRepairParamDao; @Autowired private TimeDiagramDao timeDiagramDao; @@ -688,7 +685,7 @@ logger.info("绠楁硶搴撹繑鍥炵粨鏋滐細" + line); // int exitCode = process.waitFor(); // 寮傛鏂瑰紡锛屼笉绛夊緟绠楁硶搴撹绠楀畬姣曪紝鎵�浠ヨ娉ㄩ噴鎺夎琛� if (line != null) { - ReliaSimLibResult rtn = JSONObject.parseObject(line, ReliaSimLibResult.class); + ReliaSimLibResult rtn = com.alibaba.fastjson.JSONObject.parseObject(line, ReliaSimLibResult.class); if ("0".equals(rtn.getCode())) { logger.info("鍚姩绠楁硶搴撴垚鍔熴��"); result = Result.ok(); @@ -724,7 +721,7 @@ private void setParamToRedis(SimulatAssess simulatAssess) { String key = simulatAssess.getId().toString() + RELIA_SIM_TASK_TYPE_SIMULATION; logger.info("redis key锛�" + key); - JSONObject jsonObject = new JSONObject(); + com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject(); jsonObject.put("xmlfile", simulatAssess.getXml()); // 浠跨湡娆℃暟 jsonObject.put("simulate_times", simulatAssess.getSimulatFrequency()); @@ -741,6 +738,9 @@ List<ParamData> paramDataList = paramDataDao.getDeviceParams(productId); Long taskId = simulatAssess.getTaskModelId(); Task task = taskService.get(taskId); + List<TaskBinoParam> binoParams = taskBinoParamDao.getBinoParams(taskId); + List<TaskRepairParam> taskRepairParams = taskRepairParamDao.getTaskRepairParams(taskId); + // 1. 璁$畻鍚勪换鍔¢樁娈电殑杩愯鏃堕暱 List<TaskPhase> taskPhases = calcTaskPhaseDuration(task); // 2. 璁$畻鍚勫伐鍐垫ā鍨嬬殑杩愯鏃堕暱 @@ -762,6 +762,8 @@ productList, paramDataList, taskPhaseModelAll, + binoParams, + taskRepairParams, root, failureModels, repairModels); addFailureModelsTag(failureModels, root); @@ -901,7 +903,8 @@ taskPhaseModelAll.add(taskPhaseModel); } // 鎶婇浂澶磋ˉ鍒版渶鍚庝竴涓伐鍐垫ā鍨� - taskPhaseModels.get(taskPhaseModels.size()-1).setOperatConditDuration(taskPhase.getPhaseDuration() - sum); + double duration = taskPhaseModels.get(taskPhaseModels.size()-1).getOperatConditDuration(); + taskPhaseModels.get(taskPhaseModels.size()-1).setOperatConditDuration(duration + taskPhase.getPhaseDuration() - sum); } private List<TaskPhase> calcTaskPhaseDuration(Task task) { @@ -914,7 +917,8 @@ sum += duration; } // 鎶婇浂澶磋ˉ鍒版渶鍚庝竴涓樁娈� - taskPhases.get(taskPhases.size()-1).setPhaseDuration(task.getTaskDuration() - sum); + double duration = taskPhases.get(taskPhases.size()-1).getPhaseDuration(); + taskPhases.get(taskPhases.size()-1).setPhaseDuration(duration + task.getTaskDuration() - sum); return taskPhases; } @@ -923,6 +927,8 @@ List<XhProductModel> productList, List<ParamData> paramDataList, List<TaskPhaseModel> taskPhaseModelAll, + List<TaskBinoParam> binoParams, + List<TaskRepairParam> taskRepairParams, Element root, List<FailureModel> failureModels, List<RepairModel> repairModels) { @@ -946,6 +952,8 @@ gkModelsAssembled, algorithmList, modelNodeAndVnodeList, + binoParams, + taskRepairParams, computerNode, modelTag, failureModels, repairModels); } @@ -957,6 +965,8 @@ List<OperatConditModel> gkModelsAssembled, List<Algorithm> algorithmList, List<ModelNode> modelNodeAndVnodeList, + List<TaskBinoParam> binoParams, + List<TaskRepairParam> taskRepairParams, ModelNode node, Element parent, List<FailureModel> failureModels, @@ -965,7 +975,7 @@ Long dataId = node.getDataId(); XhProductModel product = productList.stream().filter(item -> dataId.equals(item.getId())).collect(Collectors.toList()).get(0); - if ("3,4,10".equals(product.getProductType())) { + if ("3,4,10".contains(product.getProductType())) { // 绯荤粺銆佸垎绯荤粺銆佽櫄鍗曞厓 OperatConditModel gkModel = gkModelsAssembled.stream().filter(item -> dataId.equals(item.getProductId())).collect(Collectors.toList()).get(0); @@ -980,6 +990,8 @@ gkModelsAssembled, algorithmListSub, modelNodeAndVnodeListSub, + binoParams, + taskRepairParams, computerNode, parent, failureModels, repairModels); } else if ("5".equals(product.getProductType())) { @@ -989,11 +1001,13 @@ Element nodeTag = parent.addElement("node"); nodeTag.addAttribute("name", dataId.toString()); nodeTag.addAttribute("type", "node"); + FailureModel failureModel = new FailureModel(); failureModel.setId(UUIDUtil.generateId()); failureModel.setType(FailureModel.TYPE_EXP); failureModel.setParam1(1.0 / paramData.getTaskMtbcfRegulate()); failureModels.add(failureModel); + Element failureTag = nodeTag.addElement("failure_model"); failureTag.addAttribute("name", failureModel.getId().toString()); if (1 == paramData.getRepairable()) { @@ -1026,16 +1040,41 @@ } String[] computerNodeListStr = algo.getComputerList().split(","); for (String nodeStr : computerNodeListStr) { - ModelNode md = modelNodeAndVnodeList.stream().filter(item -> + ModelNode mn = modelNodeAndVnodeList.stream().filter(item -> nodeStr.equals(item.getId().toString())).collect(Collectors.toList()).get(0); node2DOM(productList, paramDataList, gkModelsAssembled, algorithmList, modelNodeAndVnodeList, - md, element, + binoParams, + taskRepairParams, + mn, element, failureModels, repairModels); } } } + + private FailureModel createFailureModel(ParamData paramData) { + FailureModel failureModel = new FailureModel(); + failureModel.setId(UUIDUtil.generateId()); + switch (paramData.getReliabDistribType()) { + case 1: + failureModel.setType(FailureModel.TYPE_EXP); + failureModel.setParam1(1.0 / paramData.getTaskMtbcfRegulate()); + break; + case 2: + failureModel.setType(FailureModel.TYPE_WBL); + failureModel.setParam2(paramData.getTaskMtbcfOtherParams2()); + failureModel.setParam3(paramData.getTaskMtbcfOtherParams3()); + break; + case 3: + failureModel.setType(FailureModel.TYPE_BIN); + break; + default: + break; + } + + return failureModel; + } } -- Gitblit v1.9.1