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