From 413eae5cb4d5fe78fc25258bf7b5e3b53740b1f9 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期三, 24 七月 2024 11:08:01 +0800
Subject: [PATCH] 1)新增仿真时模型及参数完整性检查 2)增加调用算法库后端接口
---
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/async/PythonLib.java | 196 ++++++++++++++++-
starter/src/main/resources/application.yml | 8
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ModelNodeAlgorithmDao.java | 1
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java | 211 +++++++++++++++++++
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ModelLineController.java | 4
modules/mainPart/src/main/resources/mapper/taskReliability/TaskBinoParamDao.xml | 10
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskController.java | 8
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java | 2
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskDao.java | 6
modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditModelDao.xml | 14 +
modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml | 54 ++++
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditModelDao.java | 2
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskBinoParamDao.java | 1
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResult.java | 29 ++
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/ParamDataDao.java | 1
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java | 33 ++
modules/mainPart/src/main/resources/mapper/basicInfo/ParamDataDao.xml | 11 +
modules/mainPart/src/main/resources/mapper/taskReliability/ModelNodeAlgorithmDao.xml | 9
modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml | 8
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java | 6
20 files changed, 582 insertions(+), 32 deletions(-)
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/async/PythonLib.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/async/PythonLib.java
index 3da299e..19139d5 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/async/PythonLib.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/async/PythonLib.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSONObject;
import com.zt.common.servlet.Result;
import com.zt.life.modules.mainPart.taskReliability.model.PythonResult;
+import com.zt.life.modules.mainPart.taskReliability.model.SimulatAssess;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -23,22 +24,31 @@
private String redisHost;
@Value("${spring.redis.port}")
private String redisPort;
+ @Value("${data.reliaSimLib.mainPy}")
+ private String reliaSimMain;
+ @Value("${data.reliaSimLib.resultHome}")
+ private String resultHome;
- private Long taskId = 123L;
- private String taskFlag = "relia";
+// private Long taskId = 123L;
+// private Long taskId = 124L;
+// private Long taskId = 100L; // =銆� model1.xml1
+ private String taskType = "calcreq";
@Autowired
private RedisTemplate redisTemplate;
- public Result callPython() {
+ public Result callPython(SimulatAssess simulatAssess) {
Result result = null;
InputStream is = null;
BufferedReader br = null;
try {
+ setParamToRedis(simulatAssess);
+
Process process = null;
- String command = "python D:\\work\\python\\relia_calc.py";
- command += " " + redisHost + " " + redisPort;
- command += " " + taskFlag + " " + taskId.toString();
+// String command = "python D:\\work\\python\\relia_calc.py";
+ String command = "python " + reliaSimMain;
+ command += " -ip " + redisHost + " -port " + redisPort;
+ command += " -taskType " + taskType + " -taskId " + simulatAssess.getId().toString();
logger.info("cmd鍛戒护涓猴細" + command);
if(System.getProperty("os.name").toLowerCase().indexOf("windows") > -1){
process = Runtime.getRuntime().exec(new String[]{"cmd", "/c", command});
@@ -48,12 +58,12 @@
throw new Exception("鏆備笉鏀寔璇ユ搷浣滅郴缁燂紝杩涜鍚姩python璁$畻锛�");
}
is = process.getInputStream();
- // 浠ュ懡浠よ鏂瑰紡璋冪敤python鏃讹紝杩斿洖鐨勭粨鏋滄槸GBK缂栫爜鐨勶紝鑰岄潪utf-8
- br = new BufferedReader(new InputStreamReader(is,"gb2312"));
+ // 浠ュ懡浠よ鏂瑰紡璋冪敤python鏃讹紝杩斿洖鐨勭粨鏋滄槸utf-8缂栫爜
+ br = new BufferedReader(new InputStreamReader(is,"utf-8"));
String line = br.readLine();
logger.info("python杩斿洖缁撴灉锛�" + line);
- int exitCode = process.waitFor();
- if (exitCode == 0) {
+// int exitCode = process.waitFor();
+// if (exitCode == 0) {
logger.info("鍚姩python璁$畻鎴愬姛");
if (line != null) {
PythonResult rtn = JSONObject.parseObject(line, PythonResult.class);
@@ -64,23 +74,23 @@
throw new RuntimeException("鍚姩python璁$畻澶辫触: errorMsg=" + errorMsg);
}
}
- } else {
- logger.error("鍚姩python璁$畻澶辫触: exitCode=" + exitCode);
- throw new RuntimeException("鍚姩python璁$畻澶辫触: exitCode=" + exitCode);
- }
+// } else {
+// logger.error("鍚姩python璁$畻澶辫触: exitCode=" + exitCode);
+// throw new RuntimeException("鍚姩python璁$畻澶辫触: exitCode=" + exitCode);
+// }
} catch (Exception e) {
logger.error("鍚姩python璁$畻鏃跺彂鐢烢xception锛�", e);
e.printStackTrace();
result = Result.error(e.getMessage());
} finally {
- if (is == null) {
+ if (is != null) {
try {
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
- if (br == null) {
+ if (br != null) {
try {
br.close();
} catch (Exception e) {
@@ -92,11 +102,163 @@
return result;
}
+/*
public String getPythonCalcResult() {
- String key = taskFlag + taskId.toString();
+ String key = taskId.toString() + "calcprog";
logger.info("redis key锛�" + key);
String progress = (String)redisTemplate.opsForValue().get(key);
if (progress==null) progress = "0";
return progress;
}
+*/
+
+ private void setParamToRedis(SimulatAssess simulatAssess) {
+ String key = simulatAssess.getId().toString() + taskType;
+ logger.info("redis key锛�" + key);
+ String xmlfile = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
+ "<des name=\"General system\">\n" +
+ " <tasks>\n" +
+ " <task duration=\"200\" model=\"model1\"/>\n" +
+ " <task duration=\"100\" model=\"model2\"/>\n" +
+ " </tasks>\n" +
+ " <models>\n" +
+ " <model name =\"model1\">\n" +
+ " <logic name=\"鎬讳綋\" type=\"series\"> \n" +
+ "\t\t\t\t<logic name=\"绯荤粺1\" type=\"series\"> \n" +
+ "\t\t\t\t\t<logic name=\"p1\" type=\"parallel\"> \n" +
+ "\t\t\t\t\t\t<node name=\"X1\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ " <repair_model name=\"rm1\"/>\n" +
+ "\t\t\t\t\t\t</node> \n" +
+ "\t\t\t\t\t\t<node name=\"X2\" type=\"node\" cycon=\"15\" cycdown=\"5\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t\t</node>\n" +
+ "\t\t\t\t\t</logic>\n" +
+ " <logic name=\"v1\" type=\"vote\" k=\"2\">\n" +
+ "\t\t\t\t\t\t<node name=\"X3\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ " <repair_model name=\"rm2\"/>\n" +
+ "\t\t\t\t\t\t</node> \n" +
+ "\t\t\t\t\t\t<node name=\"X4\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm2\"/>\n" +
+ "\t\t\t\t\t\t</node>\n" +
+ "\t\t\t\t\t\t<node name=\"X5\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t\t</node> \n" +
+ "\t\t\t\t\t</logic>\n" +
+ " <logic name=\"s1\" type=\"parallel\">\n" +
+ "\t\t\t\t\t\t<node name=\"X6\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t\t</node> \n" +
+ "\t\t\t\t\t\t<node name=\"X7\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm2\"/>\n" +
+ "\t\t\t\t\t\t</node>\n" +
+ "\t\t\t\t\t\t<node name=\"X8\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t\t</node> \n" +
+ "\t\t\t\t\t</logic>\n" +
+ "\t\t\t\t</logic>\n" +
+ "\t\t\t\t<logic name=\"绯荤粺2\" type=\"series\"> \n" +
+ "\t\t\t\t\t<node name =\"X14\" type=\"node\">\n" +
+ "\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t</node>\n" +
+ "\t\t\t\t\t<node name=\"X15\" type=\"node\">\n" +
+ "\t\t\t\t\t\t<failure_model name=\"fm2\"/>\n" +
+ "\t\t\t\t\t</node>\n" +
+ "\t\t\t\t\t<node name=\"X16\" type=\"node\">\n" +
+ "\t\t\t\t\t\t<failure_model name=\"fm3\"/>\n" +
+ "\t\t\t\t\t</node>\n" +
+ "\t\t\t\t</logic>\n" +
+ " </logic>\n" +
+ " </model>\n" +
+ " <model name =\"model2\">\n" +
+ " <logic name=\"鎬讳綋\" type=\"series\"> \n" +
+ "\t\t\t\t<logic name=\"绯荤粺1\" type=\"series\">\n" +
+ "\t\t\t\t\t<logic name=\"p1\" type=\"parallel\"> \n" +
+ "\t\t\t\t\t\t<node name=\"X1\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t\t</node> \n" +
+ "\t\t\t\t\t\t<node name=\"X2\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm2\"/>\n" +
+ "\t\t\t\t\t\t</node>\n" +
+ "\t\t\t\t\t</logic>\n" +
+ " <logic name=\"v1\" type=\"vote\" k=\"2\">\n" +
+ "\t\t\t\t\t\t<node name=\"X3\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t\t</node> \n" +
+ "\t\t\t\t\t\t<node name=\"X4\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm2\"/>\n" +
+ "\t\t\t\t\t\t</node>\n" +
+ "\t\t\t\t\t\t<node name=\"X5\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t\t</node> \n" +
+ "\t\t\t\t\t</logic>\n" +
+ " <logic name=\"s1\" type=\"parallel\">\n" +
+ "\t\t\t\t\t\t<node name=\"X6\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t\t</node> \n" +
+ "\t\t\t\t\t\t<node name=\"X7\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm2\"/>\n" +
+ "\t\t\t\t\t\t</node>\n" +
+ "\t\t\t\t\t\t<node name=\"X8\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t\t</node> \n" +
+ "\t\t\t\t\t</logic>\n" +
+ "\t\t\t\t</logic>\n" +
+ "\t\t\t\t<logic name=\"绯荤粺2\" type=\"series\"> \n" +
+ "\t\t\t\t\t<logic name=\"p2\" type=\"parallel\"> \n" +
+ "\t\t\t\t\t\t<node name=\"X14\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t\t</node> \n" +
+ "\t\t\t\t\t\t<node name=\"X15\" type=\"node\">\n" +
+ "\t\t\t\t\t\t\t<failure_model name=\"fm2\"/>\n" +
+ "\t\t\t\t\t\t</node>\n" +
+ "\t\t\t\t\t</logic>\n" +
+ "\t\t\t\t\t<node name=\"X17\" type=\"node\">\n" +
+ "\t\t\t\t\t\t<failure_model name=\"fm1\"/>\n" +
+ "\t\t\t\t\t</node>\n" +
+ "\t\t\t\t</logic>\n" +
+ " </logic>\n" +
+ " </model>\n" +
+ " </models>\n" +
+ " <failure_models>\n" +
+ " <failure_model name=\"fm1\" type=\"exponential\">\n" +
+ " <failure-rate value=\"0.004\"/>\n" +
+ " </failure_model>\n" +
+ " <failure_model name=\"fm2\" type=\"fixed\">\n" +
+ " <unreliability value=\"0.04\"/>\n" +
+ " </failure_model>\n" +
+ " <failure_model name=\"fm3\" type=\"weibull\">\n" +
+ " <scale value=\"100\"/>\n" +
+ " <shape value=\"2\"/>\n" +
+ " </failure_model>\n" +
+ " </failure_models>\n" +
+ " <repair_models>\n" +
+ " <repair_model name=\"rm1\" type=\"exponential\">\n" +
+ " <repair-rate value=\"0.1\"/>\n" +
+ " </repair_model>\n" +
+ " <repair_model name=\"rm2\" type=\"weibull\">\n" +
+ " <scale value=\"13\"/>\n" +
+ " <shape value=\"2\"/>\n" +
+ " </repair_model>\n" +
+ " </repair_models>\n" +
+ "</des>";
+ JSONObject jsonObject = new JSONObject();
+/*
+ Long simulate_times = 10000L;
+ Long timeslice = 10L;
+ jsonObject.put("xmlfile", xmlfile);
+ jsonObject.put("simulate_times", simulate_times);
+ jsonObject.put("seed", 1000);
+ jsonObject.put("timeslice", 1);
+// jsonObject.put("timeslice", timeslice/60.0);
+// jsonObject.put("timeslice", timeslice);
+*/
+ jsonObject.put("xmlfile", xmlfile);
+ jsonObject.put("simulate_times", simulatAssess.getSimulatFrequency());
+ jsonObject.put("seed", 1000);
+ jsonObject.put("timeslice", simulatAssess.getSamplPeriod()/60.0);
+ jsonObject.put("result_home", resultHome);
+ redisTemplate.opsForValue().set(key, jsonObject.toJSONString());
+ }
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/ParamDataDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/ParamDataDao.java
index bc3297c..92dd5f3 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/ParamDataDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/ParamDataDao.java
@@ -22,6 +22,7 @@
ParamData getParamData(Long productId, String pageCode);
List<ParamData> getByShipId(Long shipId);
+ List<ParamData> getDeviceParams(Long shipId);
void deleteByShipId(Long shipId);
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java
index ca3a09a..164c3c5 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java
@@ -33,5 +33,7 @@
List<XhProductModel> getByShipId(Long shipId);
+ List<XhProductModel> getProductTree(Long shipId);
+
void deleteByShipId(Long shipId);
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ModelLineController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ModelLineController.java
index 84fe38d..34ec34f 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ModelLineController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/ModelLineController.java
@@ -50,6 +50,7 @@
@Autowired
private PythonLib pythonLib;
+/*
@GetMapping("callPythonCalc")
@ApiOperation("淇℃伅")
public Result callPythonCalc() {
@@ -57,7 +58,9 @@
return result;
}
+*/
+/*
@GetMapping("getPythonCalcResult")
@ApiOperation("淇℃伅")
public Result<String> getPythonCalcResult() {
@@ -65,6 +68,7 @@
return Result.ok(result);
}
+*/
@GetMapping("page")
@ApiOperation("鍒嗛〉")
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java
index 88d71d9..c56ef67 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/SimulatAssessController.java
@@ -1,32 +1,29 @@
package com.zt.life.modules.mainPart.taskReliability.controller;
-import cn.hutool.http.HttpUtil;
import com.zt.common.annotation.LogOperation;
import com.zt.common.constant.Constant;
import com.zt.common.annotation.QueryParam;
import com.zt.common.db.query.QueryFilter;
import com.zt.common.servlet.Result;
import com.zt.common.servlet.PageResult;
-import com.zt.common.utils.UUIDUtil;
import com.zt.common.validator.AssertUtils;
import com.zt.common.validator.ValidatorUtils;
-import com.zt.common.validator.group.AddGroup;
import com.zt.common.validator.group.DefaultGroup;
import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.mainPart.async.PythonLib;
import com.zt.life.modules.mainPart.taskReliability.model.SimulatAssess;
import com.zt.life.modules.mainPart.taskReliability.service.SimulatAssessService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.HashMap;
-import java.util.List;
/**
@@ -39,6 +36,15 @@
@RequestMapping("/taskReliability/SimulatAssess/")
@Api(tags = "simulat_assess")
public class SimulatAssessController {
+ private static final Logger logger = LoggerFactory.getLogger(SimulatAssessController.class);
+ private static final String taskTypeProgress = "calcreq";
+
+ @Autowired
+ private RedisTemplate redisTemplate;
+
+ @Autowired
+ private PythonLib pythonLib;
+
@Autowired
private SimulatAssessService simulatAssessService;
@@ -66,6 +72,7 @@
@PostMapping("analyze")
public Result<Long> analyze(@RequestBody SimulatAssess simulatAssess) {
//鏁堥獙鏁版嵁
+/*
ValidatorUtils.validateEntity(simulatAssess, AddGroup.class, DefaultGroup.class);
Long taskId = UUIDUtil.generateId();
Integer time = simulatAssess.getSamplPeriod();
@@ -76,8 +83,10 @@
paramMap.put("Frequency", Frequency);
paramMap.put("url", "http://localhost:8050/test-project//taskReliability/SimulatAssess/calculate");
String result1 = HttpUtil.get("http://localhost:8080/system/user/get", paramMap);
+*/
+ Result result = pythonLib.callPython(simulatAssess);
- return Result.ok(taskId);
+ return result;
}
@GetMapping("calculate")
@@ -92,6 +101,14 @@
return Result.ok();
}
+ @GetMapping("getCalcProgress")
+ public String getCalcProgress(Long taskId) {
+ String key = taskId.toString() + taskTypeProgress;
+ String progress = (String)redisTemplate.opsForValue().get(key);
+ if (progress==null) progress = "0";
+ return progress;
+ }
+
@PutMapping
@ApiOperation("淇敼")
@LogOperation("淇敼")
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskController.java
index 1bd2725..183d77c 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskController.java
@@ -11,6 +11,7 @@
import com.zt.common.validator.group.AddGroup;
import com.zt.common.validator.group.DefaultGroup;
import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.mainPart.taskReliability.dto.TaskModelCheckResult;
import com.zt.life.modules.mainPart.taskReliability.model.Task;
import com.zt.life.modules.mainPart.taskReliability.service.TaskService;
import io.swagger.annotations.Api;
@@ -62,6 +63,13 @@
return Result.ok(taskService.getTaskList(productId));
}
+ @GetMapping("checkTaskModel")
+ @ApiOperation("浠诲姟妯″瀷瀹屾暣鎬ф鏌�")
+ public Result<List<TaskModelCheckResult>> checkTaskModel(Long productId){
+ List<TaskModelCheckResult> checkResult = taskService.checkTaskModel(productId);
+ return Result.ok(checkResult);
+ }
+
@PostMapping
@ApiOperation("鏂板")
@LogOperation("鏂板")
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ModelNodeAlgorithmDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ModelNodeAlgorithmDao.java
index 6e356bc..e25e1d6 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ModelNodeAlgorithmDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ModelNodeAlgorithmDao.java
@@ -22,4 +22,5 @@
List<ModelNode> getListByModelId(Long modelId);
void deleteByModelId(Long modelId);
+ List<ModelNodeAlgorithm> getRbdNodes();
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditModelDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditModelDao.java
index 0ccc3be..9e9d362 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditModelDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditModelDao.java
@@ -28,4 +28,6 @@
List<ModelNodes> getModelNodes(Long shipId);
void deleteByOperatConditId(Long operatConditId);
+
+ List<OperatConditModel> getGKModelTrees(Long productId);
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskBinoParamDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskBinoParamDao.java
index 075412c..54f9a60 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskBinoParamDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskBinoParamDao.java
@@ -19,5 +19,6 @@
public interface TaskBinoParamDao extends BaseDao<TaskBinoParam> {
List<TaskBinoParam> getList(Map<String, Object> params);
+ List<TaskBinoParam> getBinoParams(Long taskModelId);
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskDao.java
index 87c7740..92c01f3 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskDao.java
@@ -2,6 +2,8 @@
import com.zt.common.dao.BaseDao;
import com.zt.life.modules.mainPart.taskReliability.model.Task;
+import com.zt.life.modules.mainPart.taskReliability.model.TaskPhase;
+import com.zt.life.modules.mainPart.taskReliability.model.TaskPhaseModel;
import org.apache.ibatis.annotations.Mapper;
@@ -21,4 +23,8 @@
List<Task> getList(Map<String, Object> params);
List<Task> getTaskList(Long productId);
+
+ List<Task> getTaskModels(Long productId, Long taskModelId);
+ List<TaskPhase> getTaskModelPhases(Long productId, Long taskModelId);
+ List<TaskPhaseModel> getTaskModelPhaseModels(Long productId, Long taskModelId);
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResult.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResult.java
new file mode 100644
index 0000000..b7d307c
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResult.java
@@ -0,0 +1,29 @@
+package com.zt.life.modules.mainPart.taskReliability.dto;
+
+import lombok.Data;
+
+@Data
+public class TaskModelCheckResult {
+ public final static String CATEGORY_TASK_TIME = "浠诲姟鎬绘椂闀挎湭閰嶇疆";
+ public final static String CATEGORY_PHASE_TIME = "闃舵鏃堕暱鏈厤缃�";
+ public final static String CATEGORY_GK_TIME = "宸ュ喌鏃堕暱鏈厤缃�";
+ public final static String CATEGORY_GK_MODEL = "宸ュ喌妯″瀷鏍戜笉瀹屾暣";
+ public final static String CATEGORY_MODEL = "寤烘ā鏈畬鎴�";
+ public final static String CATEGORY_PARAM = "璁惧鍙傛暟鏈厤缃�";
+ private String category; // 妫�鏌ョ粨鏋滃垎绫�
+ private Long productId; // 浜у搧缁撴瀯鏍戣妭鐐笽D锛堜负浠诲姟鍙潬鎬у缓妯″璞¤妭鐐癸紝涓�鑸负鎬讳綋锛�
+ private Long taskModelId; // 浠诲姟妯″瀷ID
+ private String taskModelName; // 浠诲姟妯″瀷鍚嶇О
+ private Long taskModelPhaseId; // 浠诲姟闃舵ID
+ private String taskModelPhaseName; // 浠诲姟闃舵鍚嶇О
+ private Long gkId; // 宸ュ喌ID
+ private String gkName; // 宸ュ喌鍚嶇О
+ private Long nodeId; // 鑺傜偣ID
+ private String nodeName; // 鑺傜偣鍚嶇О
+ private Long modelId; // 鑺傜偣閫夋嫨鐨勬ā鍨婭D
+ private String modelName; // 鑺傜偣閫夋嫨鐨勬ā鍨嬪悕绉�
+ private Long deviceId; // 璁惧ID
+ private String deviceName; // 璁惧鍚嶇О
+ private Long paramId; // 璁惧鍙傛暟ID
+ private String paramName; // 璁惧鍙傛暟鍚嶇О
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java
index cb1ef09..f93e4b9 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/SimulatAssess.java
@@ -31,9 +31,6 @@
@ApiModelProperty(value = "鎬讳綋浠诲姟妯″瀷ID")
private Long taskModelId;
- @ApiModelProperty(value = "浠跨湡ID")
- private Long taskId;
-
@ApiModelProperty(value = "鏁版嵁绫诲瀷")
private Integer dataType;
@@ -54,4 +51,7 @@
private String errorMsg;
private String curveData;
+ @ApiModelProperty(value = "浼犵粰绠楁硶搴撶殑xml")
+ private String xml;
+
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java
index b4e4d06..af3f35b 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java
@@ -1,12 +1,22 @@
package com.zt.life.modules.mainPart.taskReliability.service;
import com.zt.common.service.BaseService;
-import com.zt.life.modules.mainPart.taskReliability.dao.TaskDao;
-import com.zt.life.modules.mainPart.taskReliability.model.Task;
+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.XhProductModel;
+import com.zt.life.modules.mainPart.taskReliability.dao.*;
+import com.zt.life.modules.mainPart.taskReliability.dto.TaskModelCheckResult;
+import com.zt.life.modules.mainPart.taskReliability.model.*;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zt.common.db.query.QueryFilter;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
@@ -17,6 +27,19 @@
*/
@Service
public class TaskService extends BaseService<TaskDao, Task> {
+
+ @Autowired
+ private OperatConditModelDao operatConditModelDao;
+ @Autowired
+ private ModelNodeAlgorithmDao modelNodeAlgorithmDao;
+ @Autowired
+ private ModelRbdDao modelRbdDao;
+ @Autowired
+ private XhProductModelDao xhProductModelDao;
+ @Autowired
+ private ParamDataDao paramDataDao;
+ @Autowired
+ private TaskBinoParamDao taskBinoParamDao;
/**
* 鍒嗛〉鏌ヨ
@@ -40,4 +63,188 @@
public List<Task> getTaskList(Long productId) {
return baseDao.getTaskList(productId);
}
+
+ /**
+ * 瀵逛换鍔″彲闈犳�фā鍨嬪強鍏跺弬鏁伴厤缃繘琛屽畬鏁存�ф鏌ワ紝骞舵寚鍑轰互涓�5绫婚敊璇細
+ * 0锛変换鍔℃�绘椂闀挎湭閰嶇疆
+ * 1锛夐樁娈垫椂闀挎湭閰嶇疆
+ * 2锛夊伐鍐垫椂闀挎湭閰嶇疆
+ * 3锛夊伐鍐垫ā鍨嬫爲涓嶅畬鏁�
+ * 4锛夊缓妯℃湭瀹屾垚
+ * 5锛夎澶囧弬鏁版湭閰嶇疆
+ * 鍙互瀵规墍鏈変换鍔℃ā鍨嬭繘琛屾鏌ワ紝涔熷彲浠ュ彧妫�鏌ュ叆鍙傛寚瀹氱殑浜у搧鑺傜偣涓嬬殑浠诲姟妯″瀷锛涘墠鑰呴�傚悎鍦ㄩ〉闈㈠垪琛ㄦ樉绀哄叏浣撳缓妯$姸鎬侊紝鍚庤�呴�傚悎瀵规煇浠诲姟杩涜浠跨湡鏃剁殑妫�鏌ャ��
+ * @param productId 浜у搧鑺傜偣ID锛堜竴鑸负鎬讳綋锛�
+ * @return 妫�鏌ュ嚭鐨勯敊璇殑List锛岄暱搴︿负0琛ㄧず娌℃湁閿欒锛屼笉浼氳繑鍥瀗ull
+ */
+ public List<TaskModelCheckResult> checkTaskModel(Long productId) {
+ List<TaskModelCheckResult> result = new ArrayList<>();
+ result = doCheckTaskModel(productId, null);
+ return result;
+ }
+
+ private List<TaskModelCheckResult> doCheckTaskModel(Long productId, Long taskModelId) {
+ List<TaskModelCheckResult> checkResult = new ArrayList<>();
+ List<XhProductModel> deviceUsedList = new ArrayList<>(); // 妫�鏌ュ璞℃ā鍨嬩腑浣跨敤鍒扮殑鎵�鏈夎澶�
+
+ // 1. 鑾峰彇鏁版嵁
+ // 1.1 鑾峰彇鎵�鏈変换鍔℃ā鍨嬫暟鎹甃ist
+ List<Task> taskModelList = baseDao.getTaskModels(productId, taskModelId);
+ // 1.2 鑾峰彇鎵�鏈変换鍔℃ā鍨嬮樁娈垫暟鎹甃ist
+ List<TaskPhase> taskModelPhaseList = baseDao.getTaskModelPhases(productId, taskModelId);
+ // 1.3 鑾峰彇鎵�鏈変换鍔℃ā鍨嬪伐鍐垫暟鎹甃ist
+ List<TaskPhaseModel> taskModelPhaseModelList = baseDao.getTaskModelPhaseModels(productId, taskModelId);
+ // 1.4 鑾峰彇浜у搧缁撴瀯鏍戠粨鏋勬暟鎹�
+ List<XhProductModel> productTreeList = xhProductModelDao.getProductTree(productId);
+ // 1.5 鑾峰彇鎵�鏈夋ā鍨嬪寘鍚殑鑺傜偣鏁版嵁
+ List<ModelNodeAlgorithm> rbdNodeList = modelNodeAlgorithmDao.getRbdNodes();
+ // 1.6 鑾峰彇鎵�鏈夊伐鍐垫ā鍨嬫爲鏁版嵁List
+ List<OperatConditModel> gkModelList = operatConditModelDao.getGKModelTrees(productId);
+ // 1.7 鑾峰彇鎵�鏈塕BD鏁版嵁List
+ Map<String, Object> mapFilter = new HashMap<>();
+ mapFilter.put("productId", productId);
+ List<ModelRbd> modelRbdList = modelRbdDao.getList(mapFilter);
+ // 1.8 鑾峰彇鎵�鏈夎澶囧弬鏁帮紙鍚换鍔℃ā鍨嬬殑浜岄」鍒嗗竷鍙傛暟锛塋ist
+ List<ParamData> paramDataList = paramDataDao.getDeviceParams(productId);
+ List<TaskBinoParam> binoParamList = taskBinoParamDao.getBinoParams(taskModelId);
+
+ // 2. 妫�鏌ユ瘡涓换鍔℃ā鍨嬬殑鏁版嵁瀹屾暣鎬э紙閫掑綊锛�
+ for (Task taskModel : taskModelList) {
+ if (null == taskModel.getTaskDuration() || 0.0 == taskModel.getTaskDuration()) {
+ // 2.1 浠诲姟鎬绘椂闀挎湭閰嶇疆
+ setTaskModelCheckResult(taskModel,
+ null,
+ null, null, null,
+ TaskModelCheckResult.CATEGORY_TASK_TIME, checkResult);
+ }
+ List<TaskPhase> phases = taskModelPhaseList.stream().filter(item ->
+ taskModel.getId().equals(item.getTaskId())).collect(Collectors.toList());
+ for (TaskPhase phase : phases) {
+ if (null == phase.getPhaseDurationRate() || 0.0 == phase.getPhaseDurationRate()) {
+ // 2.2 闃舵鏃堕暱鏈厤缃�
+ setTaskModelCheckResult(taskModel,
+ phase,
+ null, null, null,
+ TaskModelCheckResult.CATEGORY_PHASE_TIME, checkResult);
+ }
+ List<TaskPhaseModel> phaseModels = taskModelPhaseModelList.stream().filter(item ->
+ phase.getId().equals(item.getPhaseId())).collect(Collectors.toList());
+ if (phaseModels.size() <= 0) {
+ // 鏃犲伐鍐垫ā鍨嬫暟鎹�
+ // 2.3 宸ュ喌鏃堕暱鏈厤缃�
+ setTaskModelCheckResult(taskModel,
+ phase,
+ null, null, null,
+ TaskModelCheckResult.CATEGORY_GK_TIME, checkResult);
+ } else {
+ // 鏈夊伐鍐垫ā鍨嬫暟鎹�
+ List<TaskPhaseModel> phaseModelWithDurations = taskModelPhaseModelList.stream().filter(item ->
+ 0.0 != item.getOperatConditDurationRate()).collect(Collectors.toList());
+ if (phaseModelWithDurations.size() <= 0) {
+ // 鏃犲伐鍐垫ā鍨嬭閫夌敤
+ // 2.3 宸ュ喌鏃堕暱鏈厤缃�
+ for (TaskPhaseModel taskPhaseModel : phaseModels) {
+ setTaskModelCheckResult(taskModel,
+ phase,
+ taskPhaseModel,
+ null, null,
+ TaskModelCheckResult.CATEGORY_GK_TIME, checkResult);
+ }
+ } else {
+ // 鏈夊伐鍐垫ā鍨嬭閫夌敤锛屾鏌ラ�夌敤鐨勫伐鍐垫ā鍨�
+ for (TaskPhaseModel taskPhaseModel : phaseModelWithDurations) {
+ // 棣栧厛鎵惧埌椤跺眰妯″瀷
+ List<OperatConditModel> gkModelTops = gkModelList.stream().filter(item ->
+ taskPhaseModel.getOperatConditId().equals(item.getOperatConditId())
+ && taskModel.getProductId().equals(item.getProductId())).collect(Collectors.toList());
+ if (gkModelTops.size() <= 0) {
+ // 鏃犲伐鍐垫ā鍨嬫爲鏍硅妭鐐癸紝鍗虫剰鍛崇潃鏃犲伐鍐垫ā鍨嬫爲
+ XhProductModel node = (XhProductModel) productTreeList.stream().filter(item ->
+ taskModel.getProductId().equals(item.getId())).collect(Collectors.toList()).get(0);
+ setTaskModelCheckResult(taskModel,
+ phase,
+ taskPhaseModel,
+ null,
+ node,
+ TaskModelCheckResult.CATEGORY_GK_MODEL, checkResult);
+ } else {
+ // 鏈夊伐鍐垫ā鍨嬫爲锛屾鏌ュ叾瀹屾暣鎬�
+// checkGkModel(taskModel, phase, taskPhaseModel, gkModelTops.get(0),
+// deviceUsedList, checkResult);
+ }
+ }
+ }
+ }
+
+ }
+ }
+ // 3. 杩斿洖妫�鏌ョ粨鏋�
+ return checkResult;
+
+ }
+
+ // 閫掑綊鍑芥暟
+ private void checkGkModel(Task taskModel,
+ TaskPhase phase,
+ TaskPhaseModel taskPhaseModel,
+ OperatConditModel gkModelTreeTop,
+ List<OperatConditModel> gkModelList,
+ List<ModelNodeAlgorithm> rbdNodeList,
+ List<XhProductModel> productTreeList,
+ List<XhProductModel> deviceUsedList,
+ List<TaskModelCheckResult> checkResult) {
+ // 棣栧厛鎵惧埌椤跺眰妯″瀷
+ List<OperatConditModel> gkModelTops = gkModelList.stream().filter(item ->
+ taskPhaseModel.getOperatConditId().equals(item.getOperatConditId())
+ && taskModel.getProductId().equals(item.getProductId())).collect(Collectors.toList());
+ if (gkModelTops.size() <= 0) {
+ // 宸ュ喌妯″瀷鏍戜笉瀹屾暣锛堥《灞傝妭鐐规湭閰嶇疆妯″瀷锛�
+ XhProductModel node = (XhProductModel) productTreeList.stream().filter(item ->
+ taskModel.getProductId().equals(item.getId())).collect(Collectors.toList()).get(0);
+ setTaskModelCheckResult(taskModel,
+ phase,
+ taskPhaseModel,
+ null,
+ node,
+ TaskModelCheckResult.CATEGORY_GK_MODEL, checkResult);
+ }
+ }
+
+ private void setTaskModelCheckResult(Task taskModel,
+ TaskPhase taskModelPhase,
+ TaskPhaseModel taskModelPhaseModel,
+ OperatConditModel gkModel,
+ XhProductModel node,
+ String category,
+ List<TaskModelCheckResult> checkResult) {
+ TaskModelCheckResult result = new TaskModelCheckResult();
+ result.setCategory(category);
+ result.setProductId(taskModel.getProductId());
+ result.setTaskModelId(taskModel.getId());
+ result.setTaskModelName(taskModel.getTaskName());
+ switch(category) {
+ case TaskModelCheckResult.CATEGORY_TASK_TIME:
+ break;
+ case TaskModelCheckResult.CATEGORY_PHASE_TIME:
+ result.setTaskModelPhaseId(taskModelPhase.getId());
+ result.setTaskModelPhaseName(taskModelPhase.getPhaseName());
+ break;
+ case TaskModelCheckResult.CATEGORY_GK_TIME:
+ result.setTaskModelPhaseId(taskModelPhase.getId());
+ result.setTaskModelPhaseName(taskModelPhase.getPhaseName());
+ if (null != taskModelPhaseModel) {
+ result.setGkId(taskModelPhaseModel.getOperatConditId());
+ result.setGkName(taskModelPhaseModel.getOperatConditName());
+ }
+ break;
+ case TaskModelCheckResult.CATEGORY_GK_MODEL:
+ result.setTaskModelPhaseId(taskModelPhase.getId());
+ result.setTaskModelPhaseName(taskModelPhase.getPhaseName());
+ result.setGkId(taskModelPhaseModel.getOperatConditId());
+ result.setGkName(taskModelPhaseModel.getOperatConditName());
+ result.setNodeId(node.getId());
+ result.setNodeName(node.getName());
+ break;
+ }
+ checkResult.add(result);
+ }
}
diff --git a/modules/mainPart/src/main/resources/mapper/basicInfo/ParamDataDao.xml b/modules/mainPart/src/main/resources/mapper/basicInfo/ParamDataDao.xml
index 02d292a..388ff9c 100644
--- a/modules/mainPart/src/main/resources/mapper/basicInfo/ParamDataDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/basicInfo/ParamDataDao.xml
@@ -51,4 +51,15 @@
and a.ship_id = #{shipId}
</select>
+ <select id="getDeviceParams" resultType="com.zt.life.modules.mainPart.basicInfo.model.ParamData">
+ SELECT a.*
+ FROM param_data a
+ inner join product_model b on b.id=a.product_id
+ where a.is_delete = 0
+ and b.is_delete = 0
+ and b.product_type = '5'
+ <if test="shipId!=null">
+ and a.ship_id = #{shipId}
+ </if>
+ </select>
</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml b/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
index d111bc8..d4016bb 100644
--- a/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
@@ -121,4 +121,12 @@
and a.product_type > 2
</select>
+ <select id="getProductTree" resultType="com.zt.life.modules.mainPart.basicInfo.model.XhProductModel">
+ select a.*
+ from product_model a
+ where a.is_delete = 0
+ <if test="shipId!=null">
+ and a.ship_id = #{shipId}
+ </if>
+ </select>
</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/ModelNodeAlgorithmDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/ModelNodeAlgorithmDao.xml
index 6dc4b80..08d8a54 100644
--- a/modules/mainPart/src/main/resources/mapper/taskReliability/ModelNodeAlgorithmDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/ModelNodeAlgorithmDao.xml
@@ -24,6 +24,15 @@
and model_id=#{modelId}
</select>
+ <select id="getRbdNodes" resultType="com.zt.life.modules.mainPart.taskReliability.model.ModelNodeAlgorithm">
+ select a.*
+ from model_node_algorithm a
+ where
+ a.is_delete = 0
+ and a.node_type = 'node'
+ order by a.model_id, a.data_id
+ </select>
+
<update id="deleteByModelId">
delete from model_node_algorithm where model_id=#{modelId}
</update>
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditModelDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditModelDao.xml
index 900b8cb..84d252a 100644
--- a/modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditModelDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditModelDao.xml
@@ -53,4 +53,18 @@
group by model_id
</select>
+ <select id="getGKModelTrees" resultType="com.zt.life.modules.mainPart.taskReliability.model.OperatConditModel">
+ select
+ a.*
+ FROM
+ operat_condit_model a
+ inner join operat_condit b on b.id=a.operat_condit_id
+ where
+ a.is_delete = 0
+ and b.is_delete = 0
+ <if test="productId!=null">
+ and b.product_id=${productId}
+ </if>
+ ORDER BY a.operat_condit_id, a.product_id
+ </select>
</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskBinoParamDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskBinoParamDao.xml
index 94eee5f..bab87f4 100644
--- a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskBinoParamDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskBinoParamDao.xml
@@ -62,4 +62,14 @@
order by a.phase_id, a.operat_condit_id, a.product_id
</select>
+ <select id="getBinoParams" resultType="com.zt.life.modules.mainPart.taskReliability.model.TaskBinoParam">
+ select a.*
+ from
+ task_bino_param a
+ where
+ a.IS_DELETE=0
+ <if test="shipId!=null">
+ and a.task_id = #{taskModelId}
+ </if>
+ </select>
</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml
index b2b188c..0f7f89b 100644
--- a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml
@@ -26,4 +26,58 @@
and a.product_id=${productId}
</select>
+ <select id="getTaskModels" resultType="com.zt.life.modules.mainPart.taskReliability.model.Task">
+ select
+ a.*
+ FROM
+ task a
+ where
+ a.is_delete = 0
+ <if test="productId!=null">
+ and a.product_id=${productId}
+ </if>
+ <if test="taskModelId!=null">
+ and a.id=${taskModelId}
+ </if>
+ ORDER BY a.task_sort
+ </select>
+ <select id="getTaskModelPhases" resultType="com.zt.life.modules.mainPart.taskReliability.model.TaskPhase">
+ select
+ b.*
+ FROM
+ task a
+ inner join task_phase b on b.task_id=a.id
+ where
+ a.is_delete = 0
+ and b.is_delete = 0
+ <if test="productId!=null">
+ and a.product_id=${productId}
+ </if>
+ <if test="taskModelId!=null">
+ and a.id=${taskModelId}
+ </if>
+ ORDER BY a.task_sort, b.phase_sort
+ </select>
+ <select id="getTaskModelPhaseModels" resultType="com.zt.life.modules.mainPart.taskReliability.model.TaskPhaseModel">
+ select
+ c.*
+ FROM
+ task a
+ inner join task_phase b on b.task_id=a.id
+ inner join task_phase_model c on c.phase_id=b.id
+ inner join operat_condit d on d.id=c.operat_condit_id
+ where
+ a.is_delete = 0
+ and b.is_delete = 0
+ and c.is_delete = 0
+ and d.is_delete = 0
+ <if test="productId!=null">
+ and a.product_id=${productId}
+ and d.product_id=${productId}
+ </if>
+ <if test="taskModelId!=null">
+ and a.id=${taskModelId}
+ </if>
+ ORDER BY a.task_sort, b.phase_sort
+ </select>
</mapper>
diff --git a/starter/src/main/resources/application.yml b/starter/src/main/resources/application.yml
index 52ff66e..e529845 100644
--- a/starter/src/main/resources/application.yml
+++ b/starter/src/main/resources/application.yml
@@ -4,7 +4,7 @@
uri-encoding: UTF-8
max-threads: 1000
min-spare-threads: 30
- port: 8050
+ port: 8066
servlet:
context-path: /test-project
session:
@@ -145,4 +145,8 @@
tokenTimeout: 60
# 鍗曚綅鍒嗛挓
-
+ reliaSimLib:
+ # 绠楁硶搴撳惎鍔ㄨ剼鏈紙鍏ㄨ矾寰勶級
+ mainPy: D:/relia_sim/main.py
+ # 绠楁硶搴撲豢鐪熺粨鏋滃瓨鏀炬牴鐩綍
+ resultHome: d:/relia_sim/sim_result
--
Gitblit v1.9.1