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