From c0e3f24edd2ef47339c676ff3dc6fdc06b3c387e Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期五, 18 十月 2024 10:42:40 +0800
Subject: [PATCH] 1)修改bug:可靠性预计参数配置,可靠性分布类型下拉框缺少威布尔分布; 2)细化可靠性仿真评估报错信息。
---
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ModelRbdDao.java | 1
web/src/views/modules/taskReliability/ReliabilityAssess.vue | 1
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java | 344 +++++++++++++++++++++++++++---------------
modules/mainPart/src/main/resources/mapper/taskReliability/TaskBinoParamDao.xml | 4
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskDao.java | 6
web/src/views/modules/basicInfo/ParamData.vue | 7
modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml | 18 +-
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/SimulatAssessService.java | 22 +-
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/ReliabilityAssessService.java | 10
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/TaskBinoParamDao.java | 2
modules/mainPart/src/main/resources/mapper/taskReliability/ModelRbdDao.xml | 10 +
modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResultDto.java | 11
web/src/views/modules/taskReliability/SimulatAssess.vue | 35 +++
13 files changed, 300 insertions(+), 171 deletions(-)
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ModelRbdDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ModelRbdDao.java
index 859ba83..cfd6045 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ModelRbdDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/ModelRbdDao.java
@@ -19,6 +19,7 @@
public interface ModelRbdDao extends BaseDao<ModelRbd> {
List<ModelRbd> getList(Map<String, Object> params);
+ List<ModelRbd> getListAll();
ModelRbd getDiagram(Long modelId);
ModelRbd getDiagramOfXDY(Long productId);
void deleteByModelId(Long modelId);
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 54f9a60..8db688a 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,6 +19,6 @@
public interface TaskBinoParamDao extends BaseDao<TaskBinoParam> {
List<TaskBinoParam> getList(Map<String, Object> params);
- List<TaskBinoParam> getBinoParams(Long taskModelId);
+ List<TaskBinoParam> getBinoParams(Long taskId);
}
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 92c01f3..69d6a0c 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
@@ -24,7 +24,7 @@
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);
+ List<Task> getTasks(Long productId, Long taskId);
+ List<TaskPhase> getTaskPhases(Long productId, Long taskId);
+ List<TaskPhaseModel> getTaskPhaseModels(Long productId, Long taskId);
}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResultDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResultDto.java
index 8501008..cdced77 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResultDto.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dto/TaskModelCheckResultDto.java
@@ -12,10 +12,10 @@
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 taskId; // 浠诲姟ID
+ private String taskName; // 浠诲姟鍚嶇О
+ private Long taskPhaseId; // 浠诲姟闃舵ID
+ private String taskPhaseName; // 浠诲姟闃舵鍚嶇О
private Long gkId; // 宸ュ喌ID
private String gkName; // 宸ュ喌鍚嶇О
private Long nodeId; // 鑺傜偣ID
@@ -24,6 +24,5 @@
private String modelName; // 鑺傜偣閫夋嫨鐨勬ā鍨嬪悕绉�
private Long deviceId; // 璁惧ID
private String deviceName; // 璁惧鍚嶇О
- private Long paramId; // 璁惧鍙傛暟ID
- private String paramName; // 璁惧鍙傛暟鍚嶇О
+ private String paramName; // 鍙傛暟鍚嶇О
}
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 1016376..ccf5062 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
@@ -717,7 +717,7 @@
try {
setParamToRedis(assessResult);
} catch (Exception e) {
- throw new RuntimeException("璁块棶Redis澶辫触銆傝妫�鏌edis鏄惁宸插惎鍔ㄣ��");
+ throw new RenException("璁块棶Redis澶辫触銆傝妫�鏌edis鏄惁宸插惎鍔ㄣ��");
}
Process process = null;
@@ -730,7 +730,7 @@
} else if (System.getProperty("os.name").toLowerCase().indexOf("linux") > -1) {
process = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", command});
} else {
- throw new Exception("鏆備笉鏀寔璇ユ搷浣滅郴缁燂紝杩涜鍚姩绠楁硶搴撹绠楋紒");
+ throw new RenException("鏆備笉鏀寔璇ユ搷浣滅郴缁燂紝杩涜鍚姩绠楁硶搴撹绠楋紒");
}
is = process.getInputStream();
// 浠ュ懡浠よ鏂瑰紡璋冪敤绠楁硶搴撴椂锛屾帴鍙g害瀹氳繑鍥炵殑缁撴灉鏄痷tf-8缂栫爜
@@ -741,11 +741,11 @@
if (line != null) {
ReliaSimLibResult rtn = com.alibaba.fastjson.JSONObject.parseObject(line, ReliaSimLibResult.class);
if ("0".equals(rtn.getCode())) {
- logger.info("鍚姩绠楁硶搴撴垚鍔熴��");
+ logger.info("鍚姩鍙潬鎬ц瘎瀹氱畻娉曞簱鎴愬姛銆�");
result = Result.ok();
} else {
String errorMsg = rtn.getErrorMsg();
- throw new RuntimeException("鍚姩绠楁硶搴撳け璐�: errorMsg=" + errorMsg);
+ throw new RenException("鍚姩鍙潬鎬ц瘎瀹氱畻娉曞簱澶辫触: errorMsg=" + errorMsg);
}
}
@@ -753,7 +753,7 @@
} catch (Exception e) {
logger.error("鍚姩鍙潬鎬ц瘎瀹氱畻娉曞簱鏃跺彂鐢烢xception锛�", e);
e.printStackTrace();
- result = Result.error(e.getMessage());
+ throw new RenException("鍚姩鍙潬鎬ц瘎瀹氱畻娉曞簱澶辫触: errorMsg=" + e.getMessage());
} finally {
if (is != null) {
try {
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 c95075e..f6132a6 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
@@ -612,8 +612,7 @@
List<TaskModelCheckResultDto> chkResult = taskService.checkTaskModel(simulatAssess.getProductId(),
simulatAssess.getTaskModelId());
if (chkResult.size() > 0) {
- result = Result.error("妯″瀷涓嶅畬鏁达紝璇锋鏌ユā鍨嬪畾涔夊強鍙傛暟閰嶇疆銆�");
-// result = Result.ok(chkResult);
+ result = Result.ok(chkResult);
return result;
}
@@ -634,7 +633,7 @@
try {
setParamToRedis(simulatAssess);
} catch (Exception e) {
- throw new RuntimeException("璁块棶Redis澶辫触銆傝妫�鏌edis鏄惁宸插惎鍔ㄣ��");
+ throw new RenException("璁块棶Redis澶辫触銆傝妫�鏌edis鏄惁宸插惎鍔ㄣ��");
}
Process process = null;
@@ -647,7 +646,7 @@
} else if (System.getProperty("os.name").toLowerCase().indexOf("linux") > -1) {
process = Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", command});
} else {
- throw new Exception("鏆備笉鏀寔璇ユ搷浣滅郴缁燂紝杩涜鍚姩绠楁硶搴撹绠楋紒");
+ throw new RenException("鏆備笉鏀寔璇ユ搷浣滅郴缁燂紝杩涜鍚姩绠楁硶搴撹绠楋紒");
}
is = process.getInputStream();
// 浠ュ懡浠よ鏂瑰紡璋冪敤绠楁硶搴撴椂锛屾帴鍙g害瀹氳繑鍥炵殑缁撴灉鏄痷tf-8缂栫爜
@@ -658,17 +657,17 @@
if (line != null) {
ReliaSimLibResult rtn = com.alibaba.fastjson.JSONObject.parseObject(line, ReliaSimLibResult.class);
if ("0".equals(rtn.getCode())) {
- logger.info("鍚姩绠楁硶搴撴垚鍔熴��");
+ logger.info("鍚姩鍙潬鎬т豢鐪熻瘎浼扮畻娉曞簱鎴愬姛銆�");
result = Result.ok();
} else {
String errorMsg = rtn.getErrorMsg();
- throw new RuntimeException("鍚姩绠楁硶搴撳け璐�: errorMsg=" + errorMsg);
+ throw new RenException("鍚姩鍙潬鎬т豢鐪熻瘎浼扮畻娉曞簱澶辫触: errorMsg=" + errorMsg);
}
}
- } catch (Exception e) {
- logger.error("鍚姩绠楁硶搴撲豢鐪熸椂鍙戠敓Exception锛�", e);
+ } catch (IOException e) {
+ logger.error("鍚姩鍙潬鎬т豢鐪熻瘎浼扮畻娉曞簱浠跨湡鏃跺彂鐢烢xception锛�", e);
e.printStackTrace();
- result = Result.error(e.getMessage());
+ throw new RenException("鍚姩鍙潬鎬т豢鐪熻瘎浼扮畻娉曞簱澶辫触: errorMsg=" + e.getMessage());
} finally {
if (is != null) {
try {
@@ -773,7 +772,7 @@
insert(simulatAssess);
} catch (Exception e) {
e.printStackTrace();
- throw new RuntimeException("缁勮绠楁硶搴撲豢鐪熻绠楃敤妯″瀷XML澶辫触: " + e.getMessage());
+ throw new RenException("缁勮绠楁硶搴撲豢鐪熻绠楃敤妯″瀷XML澶辫触: " + e.getMessage());
}
}
@@ -1113,7 +1112,8 @@
break;
case 3:
// 浜岄」鍒嗗竷
- if (taskBinoParam.getSimulatTimes().intValue() == taskBinoParam.getSuccessTimes().intValue()) {
+ if ((taskBinoParam.getSimulatTimes() == null && taskBinoParam.getSuccessTimes() == null) ||
+ (taskBinoParam.getSimulatTimes().intValue() == taskBinoParam.getSuccessTimes().intValue())) {
// 鐩哥瓑鍒欎负鎴愯触鍨�
failureModel.setType(FailureModel.TYPE_FIX);
failureModel.setParam1(taskBinoParam.getSuccessRate());
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 c0d7577..d79a8b5 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
@@ -22,11 +22,11 @@
/**
* task
*
- * @author zt generator
+ * @author zt generator
* @since 1.0.0 2024-03-15
*/
@Service
-public class TaskService extends BaseService<TaskDao, Task> {
+public class TaskService extends BaseService<TaskDao, Task> {
@Autowired
private OperatConditModelDao operatConditModelDao;
@@ -34,6 +34,8 @@
private ModelNodeAlgorithmDao modelNodeAlgorithmDao;
@Autowired
private ModelRbdDao modelRbdDao;
+ @Autowired
+ private AlgorithmDao algorithmDao;
@Autowired
private XhProductModelDao xhProductModelDao;
@Autowired
@@ -61,7 +63,7 @@
}
public List<Task> getTaskList(Long productId) {
- return baseDao.getTaskList(productId);
+ return baseDao.getTaskList(productId);
}
/**
@@ -73,97 +75,215 @@
* 4锛夊缓妯℃湭瀹屾垚
* 5锛夎澶囧弬鏁版湭閰嶇疆
* 鍙互瀵规墍鏈変换鍔℃ā鍨嬭繘琛屾鏌ワ紝涔熷彲浠ュ彧妫�鏌ュ叆鍙傛寚瀹氱殑浜у搧鑺傜偣涓嬬殑浠诲姟妯″瀷锛涘墠鑰呴�傚悎鍦ㄩ〉闈㈠垪琛ㄦ樉绀哄叏浣撳缓妯$姸鎬侊紝鍚庤�呴�傚悎瀵规煇浠诲姟杩涜浠跨湡鏃剁殑妫�鏌ャ��
+ *
* @param productId 浜у搧鑺傜偣ID锛堜竴鑸负鎬讳綋锛�
* @return 妫�鏌ュ嚭鐨勯敊璇殑List锛岄暱搴︿负0琛ㄧず娌℃湁閿欒锛屼笉浼氳繑鍥瀗ull
*/
- public List<TaskModelCheckResultDto> checkTaskModel(Long productId, Long taskModelId) {
+ public List<TaskModelCheckResultDto> checkTaskModel(Long productId, Long taskId) {
List<TaskModelCheckResultDto> 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.1 鑾峰彇鎵�鏈変换鍔℃暟鎹甃ist
+ List<Task> taskList = baseDao.getTasks(productId, taskId);
+ // 1.2 鑾峰彇鎵�鏈変换鍔¢樁娈垫暟鎹甃ist
+ List<TaskPhase> taskPhaseList = baseDao.getTaskPhases(productId, taskId);
+ // 1.3 鑾峰彇鎵�鏈変换鍔″伐鍐垫暟鎹甃ist
+ List<TaskPhaseModel> taskPhaseModelList = baseDao.getTaskPhaseModels(productId, taskId);
// 1.4 鑾峰彇浜у搧缁撴瀯鏍戠粨鏋勬暟鎹�
List<XhProductModel> productTreeList = xhProductModelDao.getProductTree(productId);
- // 1.5 鑾峰彇鎵�鏈夋ā鍨嬪寘鍚殑鑺傜偣鏁版嵁
- List<ModelNodeAlgorithm> rbdNodeList = modelNodeAlgorithmDao.getRbdNodes();
- // 1.6 鑾峰彇鎵�鏈夊伐鍐垫ā鍨嬫爲鏁版嵁List
+ // 1.5 鑾峰彇鎵�鏈夊伐鍐垫ā鍨嬫爲鏁版嵁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
+ // 1.6 鑾峰彇鎵�鏈塕BD鏁版嵁List
+ List<ModelRbd> modelRbdList = modelRbdDao.getListAll();
+ // 1.7 鑾峰彇鎵�鏈夋ā鍨嬪寘鍚殑鑺傜偣鏁版嵁
+ List<ModelNodeAlgorithm> rbdNodeList = modelNodeAlgorithmDao.getRbdNodes();
+ // 1.8 鑾峰彇璇ヨ埞鐨勬墍鏈夎澶囧弬鏁癓ist
List<ParamData> paramDataList = paramDataDao.getDeviceParams(productId);
- List<TaskBinoParam> binoParamList = taskBinoParamDao.getBinoParams(taskModelId);
+ // 1.8 鑾峰彇璇ヤ换鍔$殑浜岄」鍒嗗竷鍙傛暟锛塋ist
+ List<TaskBinoParam> binoParamList = taskBinoParamDao.getBinoParams(taskId);
- // 2. 妫�鏌ユ瘡涓换鍔℃ā鍨嬬殑鏁版嵁瀹屾暣鎬э紙閫掑綊锛�
- for (Task taskModel : taskModelList) {
- if (null == taskModel.getTaskDuration() || 0.0 == taskModel.getTaskDuration()) {
+ // 2. 妫�鏌ユ瘡涓换鍔℃ā鍨嬬殑鏁版嵁瀹屾暣鎬�
+ for (Task task : taskList) {
+ if (null == task.getTaskDuration() || 0.0 == task.getTaskDuration()) {
// 2.1 浠诲姟鎬绘椂闀挎湭閰嶇疆
- setTaskModelCheckResult(taskModel,
- null,
- null, null, null,
+ setTaskModelCheckResult(task, null, null,
+ null, null, null, null,
TaskModelCheckResultDto.CATEGORY_TASK_TIME, checkResult);
}
- List<TaskPhase> phases = taskModelPhaseList.stream().filter(item ->
- taskModel.getId().equals(item.getTaskId())).collect(Collectors.toList());
+ List<TaskPhase> phases = taskPhaseList.stream().filter(item ->
+ task.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,
+ setTaskModelCheckResult(task, phase, null,
+ null, null, null, null,
TaskModelCheckResultDto.CATEGORY_PHASE_TIME, checkResult);
}
- List<TaskPhaseModel> phaseModels = taskModelPhaseModelList.stream().filter(item ->
- phase.getId().equals(item.getPhaseId())).collect(Collectors.toList());
+ List<TaskPhaseModel> phaseModels = taskPhaseModelList.stream().filter(item ->
+ phase.getId().equals(item.getPhaseId()) && 0.0 != item.getOperatConditDurationRate()).
+ collect(Collectors.toList());
if (phaseModels.size() <= 0) {
- // 鏃犲伐鍐垫ā鍨嬫暟鎹�
// 2.3 宸ュ喌鏃堕暱鏈厤缃�
- setTaskModelCheckResult(taskModel,
- phase,
- null, null, null,
+ setTaskModelCheckResult(task, phase, null,
+ null, null, null, null,
TaskModelCheckResultDto.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,
- TaskModelCheckResultDto.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) {
- // 鏃犲伐鍐垫ā鍨嬫爲鏍硅妭鐐癸紝鍗虫剰鍛崇潃鏃犲伐鍐垫ā鍨嬫爲
+ // 鏈夊伐鍐佃閫夌敤锛屾鏌ラ�夌敤鐨勫伐鍐�
+ for (TaskPhaseModel taskPhaseModel : phaseModels) {
+ List<OperatConditModel> gkModelTree = gkModelList.stream().filter(item ->
+ taskPhaseModel.getOperatConditId().equals(item.getOperatConditId())).collect(Collectors.toList());
+ if (gkModelTree.size() <= 0) {
+ // 鏃犲伐鍐垫ā鍨嬫爲
+ XhProductModel node = (XhProductModel) productTreeList.stream().filter(item ->
+ task.getProductId().equals(item.getId())).collect(Collectors.toList()).get(0);
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, null, null, null,
+ TaskModelCheckResultDto.CATEGORY_GK_MODEL, checkResult);
+ } else {
+ // 鏈夊伐鍐垫ā鍨嬫爲锛屾鏌ュ叾瀹屾暣鎬�
+ for (OperatConditModel gkModel : gkModelTree) {
XhProductModel node = (XhProductModel) productTreeList.stream().filter(item ->
- taskModel.getProductId().equals(item.getId())).collect(Collectors.toList()).get(0);
- setTaskModelCheckResult(taskModel,
- phase,
- taskPhaseModel,
- null,
- node,
- TaskModelCheckResultDto.CATEGORY_GK_MODEL, checkResult);
- } else {
- // 鏈夊伐鍐垫ā鍨嬫爲锛屾鏌ュ叾瀹屾暣鎬�
-// checkGkModel(taskModel, phase, taskPhaseModel, gkModelTops.get(0),
-// deviceUsedList, checkResult);
+ gkModel.getProductId().equals(item.getId())).collect(Collectors.toList()).get(0);
+ if (null == gkModel.getModelId()) {
+ // 宸ュ喌妯″瀷鏍戜笉瀹屾暣
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, null, null, null,
+ TaskModelCheckResultDto.CATEGORY_GK_MODEL, checkResult);
+ } else {
+ List<ModelRbd> modelRbds = modelRbdList.stream().filter(item ->
+ gkModel.getModelId().equals(item.getId())).collect(Collectors.toList());
+ if (modelRbds.size() == 0) {
+ // 寤烘ā鏈畬鎴�
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, null, null, null,
+ TaskModelCheckResultDto.CATEGORY_MODEL, checkResult);
+ } else {
+ if (!"宸插畬鎴�".equals(modelRbds.get(0).getModelState())) {
+ // 寤烘ā鏈畬鎴�
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), null, null,
+ TaskModelCheckResultDto.CATEGORY_MODEL, checkResult);
+ } else {
+ List<ModelNodeAlgorithm> deviceNodes = rbdNodeList.stream().filter(item ->
+ gkModel.getModelId().equals(item.getModelId())).collect(Collectors.toList());
+ for (ModelNodeAlgorithm deviceNode : deviceNodes) {
+ XhProductModel device = (XhProductModel) productTreeList.stream().filter(item ->
+ deviceNode.getDataId().equals(item.getId())).collect(Collectors.toList()).get(0);
+ if ("5".equals(device.getProductType())) {
+ // 璁惧
+ List<ParamData> params = paramDataList.stream().filter(item ->
+ deviceNode.getDataId().equals(item.getProductId())).collect(Collectors.toList());
+ if (params.size() == 0) {
+ // 璁惧鍙傛暟鏈厤缃�
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, null,
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ } else {
+ ParamData param = params.get(0);
+ if (param.getReliabDistribType() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "鍙潬鎬у垎甯冪被鍨�",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ } else {
+ if (param.getReliabDistribType() == 1) {
+ // 鎸囨暟鍒嗗竷
+ if (param.getTaskMtbcfRegulate() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "MTBCF",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ }
+ }
+ if (param.getReliabDistribType() == 2) {
+ // 濞佸竷灏斿垎甯�
+ if (param.getTaskMtbcfRegulate() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "MTBCF",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ }
+ if (param.getTaskMtbcfOtherParams2() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "MTBCF鍙傛暟2",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ }
+ if (param.getTaskMtbcfOtherParams3() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "MTBCF鍙傛暟3",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ }
+ }
+ if (param.getReliabDistribType() == 3) {
+ // 浜岄」鍒嗗竷
+ List<TaskBinoParam> binoParams = binoParamList.stream().filter(item ->
+ phase.getId().equals(item.getPhaseId()) &&
+ taskPhaseModel.getOperatConditId().equals(item.getOperatConditId()) &&
+ modelRbds.get(0).getId().equals(item.getModelId()) &&
+ device.getId().equals(item.getProductId())).collect(Collectors.toList());
+ if (binoParams.size() == 0) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "浜岄」鍒嗗竷鍙傛暟",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ } else {
+ TaskBinoParam binoParam = binoParams.get(0);
+ if (binoParam.getSuccessRate() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "鎴愬姛鐜�",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ } else {
+ if (binoParam.getSuccessTimes() != null && binoParam.getSimulatTimes() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "鎬绘鏁�",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ }
+ if (binoParam.getSuccessTimes() == null && binoParam.getSimulatTimes() != null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "鎴愬姛娆℃暟",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ }
+ }
+ }
+ }
+ if (1 == param.getRepairable()) {
+ // 鍙淮淇�
+ if (param.getRepairDistribType() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "缁翠慨鍒嗗竷绫诲瀷",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ }
+ if (param.getRepairDistribType() == 1) {
+ // 鎸囨暟鍒嗗竷
+ if (param.getRepairMttcr() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "MTTCR",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ }
+ }
+ if (param.getRepairDistribType() == 2) {
+ // 濞佸竷灏斿垎甯�
+ if (param.getRepairMttcr() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "MTTCR",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ }
+ if (param.getRepairMttcrOtherParams2() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "MTTCR鍙傛暟2",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ }
+ if (param.getRepairMttcrOtherParams3() == null) {
+ setTaskModelCheckResult(task, phase, taskPhaseModel,
+ node, modelRbds.get(0), device, "MTTCR鍙傛暟3",
+ TaskModelCheckResultDto.CATEGORY_PARAM, checkResult);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
}
}
}
@@ -176,69 +296,41 @@
}
- // 閫掑綊鍑芥暟
- private void checkGkModel(Task taskModel,
- TaskPhase phase,
- TaskPhaseModel taskPhaseModel,
- OperatConditModel gkModelTreeTop,
- List<OperatConditModel> gkModelList,
- List<ModelNodeAlgorithm> rbdNodeList,
- List<XhProductModel> productTreeList,
- List<XhProductModel> deviceUsedList,
- List<TaskModelCheckResultDto> 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,
- TaskModelCheckResultDto.CATEGORY_GK_MODEL, checkResult);
- }
- }
-
- private void setTaskModelCheckResult(Task taskModel,
- TaskPhase taskModelPhase,
- TaskPhaseModel taskModelPhaseModel,
- OperatConditModel gkModel,
+ private void setTaskModelCheckResult(Task task,
+ TaskPhase taskPhase,
+ TaskPhaseModel taskPhaseModel,
XhProductModel node,
+ ModelRbd model,
+ XhProductModel device,
+ String paramName,
String category,
List<TaskModelCheckResultDto> checkResult) {
TaskModelCheckResultDto result = new TaskModelCheckResultDto();
result.setCategory(category);
- result.setProductId(taskModel.getProductId());
- result.setTaskModelId(taskModel.getId());
- result.setTaskModelName(taskModel.getTaskName());
- switch(category) {
- case TaskModelCheckResultDto.CATEGORY_TASK_TIME:
- break;
- case TaskModelCheckResultDto.CATEGORY_PHASE_TIME:
- result.setTaskModelPhaseId(taskModelPhase.getId());
- result.setTaskModelPhaseName(taskModelPhase.getPhaseName());
- break;
- case TaskModelCheckResultDto.CATEGORY_GK_TIME:
- result.setTaskModelPhaseId(taskModelPhase.getId());
- result.setTaskModelPhaseName(taskModelPhase.getPhaseName());
- if (null != taskModelPhaseModel) {
- result.setGkId(taskModelPhaseModel.getOperatConditId());
- result.setGkName(taskModelPhaseModel.getOperatConditName());
- }
- break;
- case TaskModelCheckResultDto.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;
+ result.setProductId(task.getProductId());
+ result.setTaskId(task.getId());
+ result.setTaskName(task.getTaskName());
+ if (taskPhase != null) {
+ result.setTaskPhaseId(taskPhase.getId());
+ result.setTaskPhaseName(taskPhase.getPhaseName());
}
+ if (taskPhaseModel != null) {
+ result.setGkId(taskPhaseModel.getOperatConditId());
+ result.setGkName(taskPhaseModel.getOperatConditName());
+ }
+ if (node != null) {
+ result.setNodeId(node.getId());
+ result.setNodeName(node.getName());
+ }
+ if (model != null) {
+ result.setModelId(model.getId());
+ result.setModelName(model.getModelName());
+ }
+ if (device != null) {
+ result.setDeviceId(device.getId());
+ result.setDeviceName(device.getName());
+ }
+ result.setParamName(paramName);
checkResult.add(result);
}
}
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/ModelRbdDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/ModelRbdDao.xml
index 5a1a366..4e2475b 100644
--- a/modules/mainPart/src/main/resources/mapper/taskReliability/ModelRbdDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/ModelRbdDao.xml
@@ -43,6 +43,16 @@
</where>
limit 1
</select>
+ <select id="getListAll" resultType="com.zt.life.modules.mainPart.taskReliability.model.ModelRbd">
+ select a.*,
+ CASE
+ WHEN b.end =1 THEN '宸插畬鎴�'
+ ELSE '鏈畬鎴�' END AS modelState
+ from model_rbd a
+ left join (select model_id,1 as end from algorithm where model_type = 'end' and is_delete=0 ) b on b.model_id = a.id
+ where
+ a.is_delete = 0
+ </select>
<update id="deleteByModelId">
delete
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskBinoParamDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskBinoParamDao.xml
index bc584f3..b12ad72 100644
--- a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskBinoParamDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskBinoParamDao.xml
@@ -68,8 +68,6 @@
task_bino_param a
where
a.IS_DELETE=0
- <if test="shipId!=null">
- and a.task_id = #{taskModelId}
- </if>
+ and a.task_id = #{taskId}
</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 0f7f89b..3c8ebf3 100644
--- a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml
@@ -26,7 +26,7 @@
and a.product_id=${productId}
</select>
- <select id="getTaskModels" resultType="com.zt.life.modules.mainPart.taskReliability.model.Task">
+ <select id="getTasks" resultType="com.zt.life.modules.mainPart.taskReliability.model.Task">
select
a.*
FROM
@@ -36,12 +36,12 @@
<if test="productId!=null">
and a.product_id=${productId}
</if>
- <if test="taskModelId!=null">
- and a.id=${taskModelId}
+ <if test="taskId!=null">
+ and a.id=${taskId}
</if>
ORDER BY a.task_sort
</select>
- <select id="getTaskModelPhases" resultType="com.zt.life.modules.mainPart.taskReliability.model.TaskPhase">
+ <select id="getTaskPhases" resultType="com.zt.life.modules.mainPart.taskReliability.model.TaskPhase">
select
b.*
FROM
@@ -53,12 +53,12 @@
<if test="productId!=null">
and a.product_id=${productId}
</if>
- <if test="taskModelId!=null">
- and a.id=${taskModelId}
+ <if test="taskId!=null">
+ and a.id=${taskId}
</if>
ORDER BY a.task_sort, b.phase_sort
</select>
- <select id="getTaskModelPhaseModels" resultType="com.zt.life.modules.mainPart.taskReliability.model.TaskPhaseModel">
+ <select id="getTaskPhaseModels" resultType="com.zt.life.modules.mainPart.taskReliability.model.TaskPhaseModel">
select
c.*
FROM
@@ -75,8 +75,8 @@
and a.product_id=${productId}
and d.product_id=${productId}
</if>
- <if test="taskModelId!=null">
- and a.id=${taskModelId}
+ <if test="taskId!=null">
+ and a.id=${taskId}
</if>
ORDER BY a.task_sort, b.phase_sort
</select>
diff --git a/web/src/views/modules/basicInfo/ParamData.vue b/web/src/views/modules/basicInfo/ParamData.vue
index fe90112..5519625 100644
--- a/web/src/views/modules/basicInfo/ParamData.vue
+++ b/web/src/views/modules/basicInfo/ParamData.vue
@@ -335,7 +335,12 @@
{
value: 1,
label: '鎸囨暟鍒嗗竷'
- }, {
+ },
+ {
+ value: 2,
+ label: '濞佸竷灏斿垎甯�'
+ },
+ {
value: 3,
label: '浜岄」鍒嗗竷'
}
diff --git a/web/src/views/modules/taskReliability/ReliabilityAssess.vue b/web/src/views/modules/taskReliability/ReliabilityAssess.vue
index c6e7205..49562fe 100644
--- a/web/src/views/modules/taskReliability/ReliabilityAssess.vue
+++ b/web/src/views/modules/taskReliability/ReliabilityAssess.vue
@@ -143,6 +143,7 @@
async assess() {
if (!this.dataForm.productId || !this.dataForm.taskId || !this.dataForm.itemId || !this.dataForm.confidence) {
this.$tip.alert("鏈夋湭濉啓鐨勬暟鎹�")
+ return
}
let res = await this.$http.post('/taskReliability/ReliabilityAssess/assess', this.dataForm)
console.log(res.data)
diff --git a/web/src/views/modules/taskReliability/SimulatAssess.vue b/web/src/views/modules/taskReliability/SimulatAssess.vue
index e8c100b..e957d47 100644
--- a/web/src/views/modules/taskReliability/SimulatAssess.vue
+++ b/web/src/views/modules/taskReliability/SimulatAssess.vue
@@ -35,6 +35,23 @@
</div>
</el-col>
</el-row>
+ <el-dialog :close-on-click-modal="false" :visible.sync="dialogVisible" title="妯″瀷妫�鏌�" width="60%" @close="dialogVisible = false">
+ <el-tag type="danger">妯″瀷瀹氫箟/鍙傛暟閰嶇疆閲屽瓨鍦ㄤ互涓嬮棶棰橈細</el-tag>
+ <el-table :data="modelCheckResult" height="100px" v-adaptive="{bottomOffset:30}"
+ :header-cell-style="{'text-align':'center'}">
+ <el-table-column prop="category" label="妫�鏌ョ粨鏋�" align="center" width="150"/>
+ <el-table-column prop="taskName" label="浠诲姟鍚嶇О" align="center"/>
+ <el-table-column prop="taskPhaseName" label="浠诲姟闃舵鍚嶇О" align="center"/>
+ <el-table-column prop="gkName" label="宸ュ喌鍚嶇О" align="center"/>
+ <el-table-column prop="nodeName" label="鑺傜偣鍚嶇О" align="center"/>
+ <el-table-column prop="modelName" label="妯″瀷鍚嶇О" align="center"/>
+ <el-table-column prop="deviceName" label="璁惧鍚嶇О" align="center"/>
+ <el-table-column prop="paramName" label="鍙傛暟鍚嶇О" align="center"/>
+ </el-table>
+ <div slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="dialogVisible = false">鍏� 闂�</el-button>
+ </div>
+ </el-dialog>
</div>
</template>
@@ -63,8 +80,10 @@
dataType: 'fz',
samplPeriod: '10',
simulatFrequency: 500,
- simulatTime: ''
- }
+ simulatTime: '',
+ },
+ dialogVisible: false,
+ modelCheckResult: [],
}
},
mounted() {
@@ -132,16 +151,20 @@
}
},
async analyze() {
+ this.dialogVisible = false
+ this.modelCheckResult = []
this.isShow = true
let result = await this.$http.get(`/basicInfo/TyProductModel/getUuid`)
this.dataForm.id = result.data
let res = await this.$http.post('/taskReliability/SimulatAssess/analyze', this.dataForm)
if (res.success) {
- // let chkResult = res.data
- // console.log(chkResult)
- // if (chkResult.length == 0) {
+ console.log(res.data)
+ if (res.data != null && res.data.length > 0) {
+ this.modelCheckResult = res.data
+ this.dialogVisible = true
+ } else {
this.timers = window.setInterval(this.getStroke, 1000)
- // }
+ }
}
}
}
--
Gitblit v1.9.1