From 089b302259e03ce52fc102bcf168d1fa048fffe9 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期四, 26 九月 2024 16:38:28 +0800
Subject: [PATCH] 修改
---
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java | 496 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 435 insertions(+), 61 deletions(-)
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java
index 5db8653..d85417b 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java
@@ -1,8 +1,8 @@
package com.zt.life.modules.mainPart.taskReliability.service;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.zt.common.constant.Constant;
-import com.zt.common.db.query.QueryFilter;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.XML;
+import com.zt.common.exception.RenException;
import com.zt.common.service.BaseService;
import com.zt.common.servlet.Result;
import com.zt.common.utils.CacheUtils;
@@ -10,15 +10,13 @@
import com.zt.common.utils.TreeUtils;
import com.zt.common.utils.UUIDUtil;
import com.zt.core.shiro.ImportUtil;
+import com.zt.life.modules.mainPart.basicInfo.dao.ParamDataDao;
import com.zt.life.modules.mainPart.basicInfo.dao.XhProductModelDao;
import com.zt.life.modules.mainPart.basicInfo.model.ParamData;
-import com.zt.life.modules.mainPart.basicInfo.model.ProductImg;
import com.zt.life.modules.mainPart.basicInfo.model.XhProductModel;
-import com.zt.life.modules.mainPart.basicInfo.service.ParamDataService;
-import com.zt.life.modules.mainPart.sysPictureBase.service.SysPictureBaseService;
-import com.zt.life.modules.mainPart.taskReliability.dao.ReliabilityAssessDao;
-import com.zt.life.modules.mainPart.taskReliability.dto.TaskModelCheckResultDto;
+import com.zt.life.modules.mainPart.taskReliability.dao.*;
import com.zt.life.modules.mainPart.taskReliability.model.*;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
@@ -39,11 +37,9 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StringWriter;
+import java.io.*;
import java.util.*;
+import java.util.stream.Collectors;
/**
@@ -61,16 +57,45 @@
private String redisHost;
@Value("${spring.redis.port}")
private String redisPort;
- @Value("${data.reliaSimLib.mainPy}")
- private String reliaSimMain;
- @Value("${data.reliaSimLib.resultHome}")
+ @Value("${data.assessLib.mainPy}")
+ private String assessMain;
+ @Value("${data.assessLib.resultHome}")
private String resultHome;
+ @Value("${data.assessLib.resultHome}")
+ private String path;
@Autowired
private RedisTemplate redisTemplate;
+ @Autowired
+ private TaskService taskService;
+ @Autowired
+ private SimulatAssessService simulatAssessService;
+ @Autowired
+ private AssessResultDao assessResultDao;
+ @Autowired
+ private XhProductModelDao xhProductModelDao;
+ @Autowired
+ private ParamDataDao paramDataDao;
+ @Autowired
+ private ModelNodeAlgorithmDao modelNodeAlgorithmDao;
+ @Autowired
+ private AlgorithmDao algorithmDao;
+ @Autowired
+ private OperatConditModelDao operatConditModelDao;
+ @Autowired
+ private ReliabilityAssessDao reliabilityAssessDao;
+
+ public List<ReliabilityAssess> page(AssessResult assessResult) {
+ Long assessId = baseDao.getAssessId(assessResult.getItemId(), assessResult.getProductId(), assessResult.getTaskId());
+ List<ReliabilityAssess> list = this.getAssess(assessResult, assessId);
+ if (list != null) {
+ list = TreeUtils.build(list);
+ }
+ return list;
+ }
@Transactional(rollbackFor = Exception.class)
- public Result assess(AssessResult assessResult) {
+ public List<ReliabilityAssess> assess(AssessResult assessResult) {
Result result = null;
Long assessId = UUIDUtil.generateId();
@@ -90,11 +115,66 @@
// 3. 璋冪敤绠楁硶搴擄紝杩涜璇勫畾璁$畻
result = callReliaAssessLib(assessResult);
+ assessResultDao.insert(assessResult);
- return Result.ok();
+ List<ReliabilityAssess> list = this.getAssess(assessResult, assessId);
+ if (list != null) {
+ list = TreeUtils.build(list);
+ }
+ return list;
}
+ public List<ReliabilityAssess> getAssess(AssessResult assessResult, Long assessId) {
+ List<ReliabilityAssess> list = baseDao.getProductList(assessResult.getProductId(), assessResult.getItemId());
+
+ String filePath = path + "/" + assessId + "/" + "result.xml";
+ String xml;
+ InputStream in = null;
+
+ File file = new File(filePath);
+ if (file.exists()) {
+ try {
+ in = new FileInputStream(filePath);
+ xml = IOUtils.toString(in);
+ } catch (IOException e) {
+ throw new RenException("鏂囦欢涓嶅瓨鍦ㄦ垨鑰呮枃浠舵墦涓嶅紑");
+ } finally {
+ try {
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ JSONObject xmlJSONObj = XML.toJSONObject(xml);
+ JSONObject jsonObject = xmlJSONObj.getJSONObject("Results");
+ for (ReliabilityAssess assess : list) {
+ Double result1 = null;
+ // 閬嶅巻 JSON 瀵硅薄鐨勬墍鏈夐敭
+ for (String key : jsonObject.keySet()) {
+ // 妫�鏌ラ敭鏄惁鍖呭惈鐗瑰畾鐨勫瓧绗︿覆
+ if (key.contains(assess.getId().toString())) {
+ // 鑾峰彇瀵瑰簲鐨勫��
+ result1 = (Double) jsonObject.get(key);
+ break; // 濡傛灉鎵惧埌灏遍��鍑哄惊鐜�
+ }
+ }
+ if (result1 != null) {
+ result1 = Double.valueOf(new Formatter().format("%.2f", result1).toString());
+ }
+ assess.setAssessResult(result1);
+ }
+ } else {
+ list = null;
+ }
+
+ return list;
+ }
+
+
+ // 寤虹珛浜у搧缁撴瀯鏍戞椂锛岀浉鍚岀殑璁惧澶氫釜浣跨敤鏃讹紝澶氫釜璁惧浣跨敤鐩稿悓鐨勫悕绉般�傝繖鏍凤紝鍦ㄦ澶勯�氳繃鍚嶇О鏉ュ垽鏂槸鍚︽槸鐩稿悓鐨勮澶囷紝鐩稿悓鐨勮澶囷紝闇�瑕佹嬁鍑烘潵浣滀负瀛愭爣绛惧祵濂楄繘xml銆�
private void assembleModelXml(AssessResult assessResult) {
+/*
+ // 娴嬭瘯绠楁硶搴撶敤
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"\n" +
"<des name=\"General system\" gama=\"0.7\">\n" +
@@ -103,7 +183,7 @@
" </tasks>\n" +
" <models>\n" +
" <model name=\"1819282257303678978\">\n" +
- " <logic name=\"绯荤粺\" type=\"series\" distType=\"ber\" NoE=\"10\" F=\"1\">\n" +
+ " <logic name=\"绯荤粺1\" type=\"series\" distType=\"ber\" NoE=\"10\" F=\"1\">\n" +
" <logic name=\"鍒嗙郴缁�1\" type=\"series\" distType=\"exp\" ToE=\"68.0\" F=\"1\">\n" +
" <logic name=\"v1\" type=\"parallel\" nums=\"2\">\n" +
" <node name=\"璁惧1\" distType=\"ber\" NoE=\"20\" F=\"1\"/>\n" +
@@ -126,31 +206,30 @@
" </models>\n" +
"</des>";
assessResult.setXml(xml);
-/*
- Long productId = simulatAssess.getProductId();
+*/
+ Long productId = assessResult.getProductId();
+ Long taskId = assessResult.getTaskId();
+ Long itemId = assessResult.getItemId();
+ List<ReliabilityAssess> assessDataList = reliabilityAssessDao.getProductList(productId, itemId);
+ Task task = taskService.get(taskId);
XhProductModel product = xhProductModelDao.getById(productId);
List<XhProductModel> productList = xhProductModelDao.getByShipId(productId);
List<ParamData> paramDataList = paramDataDao.getDeviceParams(productId);
- Long taskId = simulatAssess.getTaskModelId();
- Task task = taskService.get(taskId);
- List<TaskBinoParam> binoParams = taskBinoParamDao.getBinoParams(taskId);
// 1. 璁$畻鍚勪换鍔¢樁娈电殑杩愯鏃堕暱
- List<TaskPhase> taskPhases = calcTaskPhaseDuration(task);
+ List<TaskPhase> taskPhases = simulatAssessService.calcTaskPhaseDuration(task);
// 2. 璁$畻鍚勫伐鍐垫ā鍨嬬殑杩愯鏃堕暱
List<TaskPhaseModel> taskPhaseModelAll = new ArrayList<>();
for (TaskPhase taskPhase : taskPhases) {
- calcTaskPhaseModelDuration(taskPhase, taskPhaseModelAll);
+ simulatAssessService.calcTaskPhaseModelDuration(taskPhase, taskPhaseModelAll);
}
// 3. 灏嗗悇宸ュ喌妯″瀷閫掑綊鎷嗚В涓哄畬鏁寸殑鍙緵绠楁硶鍖呬豢鐪熻绠楃殑妯″瀷
try {
- List<FailureModel> failureModels = new ArrayList<>();
- List<RepairModel> repairModels = new ArrayList<>();
-
Document document = DocumentHelper.createDocument();
// 娣诲姞root鑺傜偣
Element root = document.addElement("des");
root.addAttribute("name", "General system");
+ root.addAttribute("gama", assessResult.getConfidence().toString());
addTasksTag(taskPhaseModelAll, root);
addModelsTag(taskId,
productId,
@@ -159,15 +238,8 @@
productList,
paramDataList,
taskPhaseModelAll,
- binoParams,
- root,
- failureModels, repairModels);
- addFailureModelsTag(failureModels, root);
- addRepairModelsTag(repairModels, root);
- saveSimulatAssessTaskPhaseModel(simulatAssess,
- task,
- taskPhases,
- taskPhaseModelAll);
+ assessDataList,
+ root);
// 杈撳嚭鏍煎紡鍖杧ml
XMLWriter xmlWriter = null;
@@ -177,17 +249,310 @@
StringWriter writer = new StringWriter();
xmlWriter = new XMLWriter(writer, format);
xmlWriter.write(document);
- simulatAssess.setXml(writer.toString());
+ assessResult.setXml(writer.toString());
} finally {
if (xmlWriter != null) xmlWriter.close();
}
- // XML瀛樼洏
- insert(simulatAssess);
} catch (Exception e) {
e.printStackTrace();
- throw new RuntimeException("缁勮绠楁硶搴撲豢鐪熻绠楃敤妯″瀷XML澶辫触: " + e.getMessage());
+ throw new RenException("缁勮绠楁硶搴撲豢鐪熻绠楃敤妯″瀷XML澶辫触: " + e.getMessage());
}
-*/
+ }
+
+ private void addModelsTag(Long taskId,
+ Long productId,
+ String productName,
+ String productNamePath,
+ List<XhProductModel> productList,
+ List<ParamData> paramDataList,
+ List<TaskPhaseModel> taskPhaseModelAll,
+ List<ReliabilityAssess> assessDataList,
+ Element root) {
+ Element modelsTag = root.addElement("models");
+ for (TaskPhaseModel taskPhaseModel : taskPhaseModelAll) {
+ Element modelTag = modelsTag.addElement("model");
+ modelTag.addAttribute("name", taskPhaseModel.getOperatConditId().toString());
+ List<OperatConditModel> gkModelsAssembled = operatConditModelDao.getGKModelAssembled(
+ taskPhaseModel.getOperatConditId());
+ OperatConditModel gkModelTop = gkModelsAssembled.stream().filter(item ->
+ productId.equals(item.getProductId())).collect(Collectors.toList()).get(0);
+ List<ModelNode> modelNodeAndVnodeList = modelNodeAlgorithmDao.getListByModelId(gkModelTop.getModelId());
+ List<Algorithm> algorithmList = algorithmDao.getListByModelId(gkModelTop.getModelId());
+ // 灏嗘ā鍨嬭浆鎹负DOM锛屾坊鍔犲埌model鏍囩
+ Algorithm endAlgo = algorithmList.stream().filter(item ->
+ "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);
+ List<ModelNode> list = new ArrayList<>();
+ list.add(computerNode);
+ node2DOM(taskId,
+ taskPhaseModel,
+ gkModelTop.getModelId(),
+ productId,
+ productName,
+ productNamePath,
+ productList,
+ paramDataList,
+ gkModelsAssembled,
+ algorithmList,
+ modelNodeAndVnodeList,
+ assessDataList,
+ false,
+ null,
+ list,
+ null, null, null, null,
+ modelTag);
+ }
+ }
+
+ // 閫掑綊鍑芥暟
+ private void node2DOM(Long taskId,
+ TaskPhaseModel taskPhaseModel,
+ Long modelId,
+ Long productId,
+ String productName,
+ String productNamePath,
+ List<XhProductModel> productList,
+ List<ParamData> paramDataList,
+ List<OperatConditModel> gkModelsAssembled,
+ List<Algorithm> algorithmList,
+ List<ModelNode> modelNodeAndVnodeList,
+ List<ReliabilityAssess> assessDataList,
+ boolean sameNameGroup,
+ String sameNameGroupAlgorithmType,
+ List<ModelNode> nodeList,
+ Integer distType,
+ String NoE,
+ String ToE,
+ String F,
+ Element parent) {
+ if (sameNameGroup) {
+ // 鐩稿悓璁惧鐨勫垎缁�
+ Element sameNameGroupTag = parent.addElement("logic");
+ sameNameGroupTag.addAttribute("name",
+ nodeList.stream().map(item -> item.getId().toString()).collect(Collectors.joining(",")));
+ if ("parallel".equals(sameNameGroupAlgorithmType)) {
+ sameNameGroupTag.addAttribute("type", "parallel");
+ } else {
+ sameNameGroupTag.addAttribute("type", "series");
+ }
+ sameNameGroupTag.addAttribute("nums", String.valueOf(nodeList.size()));
+ Long dataId = nodeList.get(0).getDataId();
+ ParamData paramData = paramDataList.stream().filter(item ->
+ dataId.equals(item.getProductId())).collect(Collectors.toList()).get(0);
+ String NoEStr = "";
+ String ToEStr = "";
+ String FStr = "";
+ for (ModelNode node : nodeList) {
+ List<ReliabilityAssess> assessDatas = assessDataList.stream().filter(item ->
+ node.getDataId().equals(item.getId())).collect(Collectors.toList());
+ NoEStr += ",";
+ ToEStr += ",";
+ FStr += ",";
+ if (assessDatas.size() > 0) {
+ NoEStr += assessDatas.get(0).getRunNum() != null ? assessDatas.get(0).getRunNum().toString() : "0";
+ 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);
+ for (ModelNode node : nodeList) {
+ List<ModelNode> list = new ArrayList<>();
+ list.add(node);
+ node2DOM(taskId,
+ taskPhaseModel,
+ modelId,
+ null,
+ null,
+ null,
+ productList,
+ paramDataList,
+ gkModelsAssembled,
+ algorithmList,
+ modelNodeAndVnodeList,
+ assessDataList,
+ false,
+ null,
+ list,
+ paramData.getReliabDistribType(), NoEStr, ToEStr, FStr,
+ sameNameGroupTag);
+ }
+ } else {
+ // 涓嶅悓璁惧锛堝彧鏈�1涓級
+ ModelNode node = nodeList.get(0);
+ if ("node".equals(node.getNodeType())) {
+ Long dataId = node.getDataId();
+ XhProductModel product = productList.stream().filter(item ->
+ dataId.equals(item.getId())).collect(Collectors.toList()).get(0);
+ if ("3,4,10".contains(product.getProductType())) {
+ // 绯荤粺銆佸垎绯荤粺銆佽櫄鍗曞厓
+ OperatConditModel gkModel = gkModelsAssembled.stream().filter(item ->
+ dataId.equals(item.getProductId())).collect(Collectors.toList()).get(0);
+ List<Algorithm> algorithmListSub = algorithmDao.getListByModelId(gkModel.getModelId());
+ List<ModelNode> modelNodeAndVnodeListSub = modelNodeAlgorithmDao.getListByModelId(gkModel.getModelId());
+ Algorithm endAlgo = algorithmListSub.stream().filter(item ->
+ "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);
+ List<ModelNode> list = new ArrayList<>();
+ list.add(computerNode);
+ node2DOM(taskId,
+ taskPhaseModel,
+ gkModel.getModelId(),
+ product.getId(),
+ product.getName(),
+ product.getNamePath(),
+ productList,
+ paramDataList,
+ gkModelsAssembled,
+ algorithmListSub,
+ modelNodeAndVnodeListSub,
+ assessDataList,
+ false,
+ null,
+ list,
+ null, null, null, null,
+ parent);
+ } else if ("5".equals(product.getProductType())) {
+ // 璁惧
+ Element nodeTag = parent.addElement("node");
+ nodeTag.addAttribute("name", dataId.toString());
+ nodeTag.addAttribute("real_name", product.getName());
+ nodeTag.addAttribute("name_path", product.getNamePath());
+ if (distType == 3) {
+ // 浜岄」鍒嗗竷
+ nodeTag.addAttribute("distType", "ber");
+ nodeTag.addAttribute("NoE", NoE);
+ } else {
+ nodeTag.addAttribute("distType", "exp");
+ nodeTag.addAttribute("ToE", ToE);
+ }
+ nodeTag.addAttribute("F", F);
+ }
+ } else {
+ // vnode锛堣繍绠楄妭鐐癸級
+ Algorithm algo = algorithmList.stream().filter(item ->
+ node.getId().equals(item.getId())).collect(Collectors.toList()).get(0);
+ Element element = parent.addElement("logic");
+ if (null == productId) {
+ element.addAttribute("name", algo.getId().toString());
+ } else {
+ element.addAttribute("name", productId.toString());
+ element.addAttribute("real_name", productName);
+ element.addAttribute("name_path", productNamePath);
+ }
+ if ("series".equals(algo.getAlgorithmType())) {
+ element.addAttribute("type", "series");
+ } else if ("parallel".equals(algo.getAlgorithmType())) {
+ element.addAttribute("type", "parallel");
+ } else if ("vote".equals(algo.getAlgorithmType())) {
+ element.addAttribute("type", "vote");
+ element.addAttribute("k", algo.getVoteNum().toString());
+ } else if ("switch".equals(algo.getAlgorithmType())) {
+ element.addAttribute("type", "standby");
+ } else if ("bridge".equals(algo.getAlgorithmType())) {
+ element.addAttribute("type", "bridge");
+ }
+ // 鏍规嵁鍚嶅瓧杩涜鍒嗙粍澶勭悊
+ String[] computerNodeListStr = algo.getComputerList().split(",");
+ 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);
+ if (mn.getDataId() == null) {
+ List<ModelNode> list = new ArrayList<>();
+ list.add(mn);
+ groupByNameMap.put(mn.getId().toString(), list);
+ } else {
+ XhProductModel product = productList.stream().filter(item ->
+ mn.getDataId().equals(item.getId())).collect(Collectors.toList()).get(0);
+ String name = product.getName();
+ if (groupByNameMap.containsKey(name)) {
+ groupByNameMap.get(name).add(mn);
+ } else {
+ List<ModelNode> list = new ArrayList<>();
+ list.add(mn);
+ groupByNameMap.put(name, list);
+ }
+ }
+ }
+ Iterator<String> iterator = groupByNameMap.keySet().iterator();
+ while (iterator.hasNext()) {
+ String name = iterator.next();
+ List<ModelNode> list = groupByNameMap.get(name);
+ if (list.size() > 1) {
+ // 鐩稿悓鍚嶇О鐨勮澶�
+ node2DOM(taskId,
+ taskPhaseModel,
+ modelId,
+ null,
+ null,
+ null,
+ productList,
+ paramDataList,
+ gkModelsAssembled,
+ algorithmList,
+ modelNodeAndVnodeList,
+ assessDataList,
+ true,
+ algo.getAlgorithmType(),
+ list,
+ null, null, null, null,
+ element);
+ } else {
+ // 涓嶅悓鍚嶇О鑺傜偣锛�1涓妭鐐癸級
+ Integer distTypeParam = null;
+ String NoEStr = null;
+ String ToEStr = null;
+ String FStr = null;
+ ModelNode oneNode = list.get(0);
+ if (oneNode.getDataId() != null) {
+ List<ParamData> paramDatas = paramDataList.stream().filter(item ->
+ oneNode.getDataId().equals(item.getProductId())).collect(Collectors.toList());
+ if (paramDatas.size() > 0) {
+ distTypeParam = paramDatas.get(0).getReliabDistribType();
+ }
+ List<ReliabilityAssess> assessDatas = assessDataList.stream().filter(item ->
+ oneNode.getDataId().equals(item.getId())).collect(Collectors.toList());
+ if (assessDatas.size() > 0) {
+ NoEStr = assessDatas.get(0).getRunNum() != null ? assessDatas.get(0).getRunNum().toString() : "0";
+ ToEStr = assessDatas.get(0).getRunTimes() != null ? assessDatas.get(0).getRunTimes().toString() : "0";
+ FStr = assessDatas.get(0).getFailNum() != null ? assessDatas.get(0).getFailNum().toString() : "0";
+ }
+ }
+ node2DOM(taskId,
+ taskPhaseModel,
+ modelId,
+ null,
+ null,
+ null,
+ productList,
+ paramDataList,
+ gkModelsAssembled,
+ algorithmList,
+ modelNodeAndVnodeList,
+ assessDataList,
+ false,
+ null,
+ list,
+ distTypeParam, NoEStr, ToEStr, FStr,
+ element);
+ }
+ }
+ }
+ }
+ }
+
+ private void addTasksTag(List<TaskPhaseModel> taskPhaseModelAll,
+ Element root) {
+ Element tasksTag = root.addElement("tasks");
+ for (TaskPhaseModel taskPhaseModel : taskPhaseModelAll) {
+ Element taskTag = tasksTag.addElement("task");
+ taskTag.addAttribute("duration", String.valueOf(taskPhaseModel.getOperatConditDuration()));
+ taskTag.addAttribute("model", taskPhaseModel.getOperatConditId().toString());
+ }
}
private Result callReliaAssessLib(AssessResult assessResult) {
@@ -198,7 +563,7 @@
setParamToRedis(assessResult);
Process process = null;
- String command = "python " + reliaSimMain;
+ String command = "python " + assessMain;
command += " -ip " + redisHost + " -port " + redisPort;
command += " -taskType " + RELIA_ASSESS_TASK_TYPE_SIMULATION + " -taskId " + assessResult.getId().toString();
logger.info("cmd鍛戒护涓猴細" + command);
@@ -225,6 +590,8 @@
throw new RuntimeException("鍚姩绠楁硶搴撳け璐�: errorMsg=" + errorMsg);
}
}
+
+ deleteAssessInfoInRedis(assessResult.getId()); //TODO锛堝彂甯冩椂鏀惧紑锛�
} catch (Exception e) {
logger.error("鍚姩鍙潬鎬ц瘎瀹氱畻娉曞簱鏃跺彂鐢烢xception锛�", e);
e.printStackTrace();
@@ -259,8 +626,8 @@
redisTemplate.opsForValue().set(key, jsonObject.toJSONString());
}
- public void deleteAssessInfoInRedis(Long simId) {
- redisTemplate.delete(simId.toString() + RELIA_ASSESS_TASK_TYPE_SIMULATION);
+ public void deleteAssessInfoInRedis(Long assessId) {
+ redisTemplate.delete(assessId.toString() + RELIA_ASSESS_TASK_TYPE_SIMULATION);
}
@@ -304,7 +671,6 @@
for (int i = 0; i < sheets; i++) {
Sheet sheet = workbook.getSheetAt(i);
int num = sheet.getLastRowNum(); // 涓�鍏辨湁澶氬皯琛�
- String sheetName = sheet.getSheetName(); //鑾峰彇褰撳墠sheet鍚嶇О
for (int j = 1; j <= num; j++) {
CacheUtils.put(progressId, "speed", CommonUtils.getPercent(j, num));
CacheUtils.put(progressId, "msg", "鍏�" + num + "琛岋紝宸插畬鎴愮" + j + "琛�");
@@ -312,16 +678,28 @@
row1 = j;
String pattern = "yyyy-MM-dd";
Row row = sheet.getRow(row1);
- // String sort = ImportUtil.getCellValue(row, 0, pattern); //搴忓彿
String name = ImportUtil.getCellValue(row, 1, pattern); //鑺傜偣鍚嶇О
String type = ImportUtil.getCellValue(row, 2, pattern);//鑺傜偣绫诲瀷
- String runNum = ImportUtil.getCellValue(row, 3, pattern); //杩愯鏃堕暱
- String runTime = ImportUtil.getCellValue(row, 4, pattern); //杩愯娆℃暟
- String failNum = ImportUtil.getCellValue(row, 5, pattern); //澶辫触娆℃暟
+ String runNumStr = ImportUtil.getCellValue(row, 3, pattern); //杩愯鏃堕暱
+ String runTimeStr = ImportUtil.getCellValue(row, 4, pattern); //杩愯娆℃暟
+ String failNumStr = ImportUtil.getCellValue(row, 5, pattern); //澶辫触娆℃暟
if (StringUtils.isBlank(name) || StringUtils.isBlank(type))
continue;
+
+ Integer runNum = 0;
+ Double runTime = 0.0;
+ Integer failNum = 0;
+ if (StringUtils.isNotBlank(runNumStr)) {
+ runNum = Integer.valueOf(runNumStr);
+ }
+ if (StringUtils.isNotBlank(runTimeStr)) {
+ runTime = Double.valueOf(runTimeStr);
+ }
+ if (StringUtils.isNotBlank(failNumStr)) {
+ failNum = Integer.valueOf(failNumStr);
+ }
Long productId = null;
if (type.equals("鎬讳綋")) {
@@ -330,7 +708,7 @@
fxtPath = "";
sbPath = "";
productId = shipId;
- }else {
+ } else {
if (type.equals("绯荤粺")) {
if (StringUtils.isNotBlank(shipPath)) {
path = xtPath = name;
@@ -360,16 +738,11 @@
}
}
-
-
ReliabilityAssess assess = new ReliabilityAssess();
- assess.setFailNum(Integer.valueOf(failNum));
- if (StringUtils.isNotBlank(runNum)){
- assess.setRunNum(Integer.valueOf(runNum));
- }
- if (StringUtils.isNotBlank(runTime)){
- assess.setRunTimes(Double.valueOf(runTime));
- }
+ assess.setFailNum(failNum);
+ assess.setRunNum(runNum);
+ assess.setRunTimes(runTime);
+
assess.setItemId(itemId);
assess.setProductId(productId);
this.insert(assess);
@@ -382,7 +755,7 @@
}
Date nowDate = new Date();
- String msg = "浜у搧妯″瀷瀵煎叆鏃堕棿锛�" + CommonUtils.getDatePoor(nowDate, beginDate) + "\r\n";
+ String msg = "瀵煎叆鏃堕棿锛�" + CommonUtils.getDatePoor(nowDate, beginDate) + "\r\n";
System.out.println(msg);
suc = sum - err;
map = new HashMap<>();
@@ -397,4 +770,5 @@
public List<AssessItem> getAssessDataList(Long productId) {
return baseDao.getAssessDataList(productId);
}
+
}
--
Gitblit v1.9.1