From a43fd8f15c7da7f4a14ba4ebb79970dad4ce1fae Mon Sep 17 00:00:00 2001 From: xyc <jc_xiong@hotmail.com> Date: 星期五, 02 八月 2024 15:18:25 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java | 84 +++++++++++++++++++++++++++++++++--------- 1 files changed, 66 insertions(+), 18 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..89f2744 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.*; @@ -31,13 +27,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.zt.life.modules.mainPart.taskReliability.dto.StatusDto; +import com.zt.life.modules.mainPart.taskReliability.model.ModelRbd; import com.zt.life.modules.mainPart.taskReliability.model.SimulatAssess; import com.zt.life.modules.mainPart.taskReliability.model.SimulatAssessTaskPhaseModel; import com.zt.life.modules.mainPart.taskReliability.model.TimeDiagram; 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; @@ -51,7 +47,6 @@ 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,13 +93,16 @@ private XhProductModelDao xhProductModelDao; @Autowired private ParamDataDao paramDataDao; + @Autowired + private TaskBinoParamDao taskBinoParamDao; + @Autowired + private TaskRepairParamDao taskRepairParamDao; @Autowired private TimeDiagramDao timeDiagramDao; @Value("${data.reliaSimLib.resultHome}") private String path; - private JSONObject dialgramJson; @@ -257,13 +255,21 @@ } else { setlineXy(modelJson2, x2, y1, x2, y2, null); } - jsonArray.add(modelJson2); + //鍒ゆ柇鏄惁鏈夋ā鍨� + ModelRbd modelRbd = baseDao.getModelByProductGk(modelDto.getGkId(), productId); + String modelName = "鏈敤"; + String modelId = ""; + if (modelRbd != null) { + modelName = modelRbd.getModelName(); + modelId = modelRbd.getId().toString(); + } + JSONObject textJson = new JSONObject(templetsStrMap.get("text")); - JsonUtils2.setJsonValueByPath(textJson, "data/dataId".split("/"), modelDto.getGkId()); + JsonUtils2.setJsonValueByPath(textJson, "data/dataId".split("/"), modelId); JsonUtils2.setJsonValueByPath(textJson, "id".split("/"), UUIDUtil.generateId().toString()); - JsonUtils2.setJsonValueByPath(textJson, "attrs/label/textWrap/text".split("/"), modelDto.getGkName()); + JsonUtils2.setJsonValueByPath(textJson, "attrs/label/textWrap/text".split("/"), modelName); JsonUtils2.setJsonValueByPath(textJson, "position/x".split("/"), x1 + 30); JsonUtils2.setJsonValueByPath(textJson, "position/y".split("/"), y1); jsonArray.add(textJson); @@ -688,7 +694,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 +730,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 +747,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 +771,8 @@ productList, paramDataList, taskPhaseModelAll, + binoParams, + taskRepairParams, root, failureModels, repairModels); addFailureModelsTag(failureModels, root); @@ -901,7 +912,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 +926,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 +936,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 +961,8 @@ gkModelsAssembled, algorithmList, modelNodeAndVnodeList, + binoParams, + taskRepairParams, computerNode, modelTag, failureModels, repairModels); } @@ -957,6 +974,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 +984,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 +999,8 @@ gkModelsAssembled, algorithmListSub, modelNodeAndVnodeListSub, + binoParams, + taskRepairParams, computerNode, parent, failureModels, repairModels); } else if ("5".equals(product.getProductType())) { @@ -989,11 +1010,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 +1049,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