From 0091dd076ed7d6dfb06fa820dabd9cf5e738514c Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期四, 07 十一月 2024 17:15:13 +0800
Subject: [PATCH] 仿真评估检查模型时,总体工况模型里未使用的节点,不检查其模型是否存在。

---
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskService.java |  246 +++++++++++++++++++++++++++---------------------
 1 files changed, 137 insertions(+), 109 deletions(-)

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 4c947b3..f7f7290 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
@@ -145,135 +145,143 @@
                             for (OperatConditModel gkModel : gkModelTree) {
                                 XhProductModel node = (XhProductModel) productTreeList.stream().filter(item ->
                                         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) {
-                                        // 寤烘ā鏈畬鎴�
+                                if (isNodeInRbdOfParent(node, gkModelTree, rbdNodeList)) {
+                                    if (null == gkModel.getModelId()) {
+                                        // 宸ュ喌妯″瀷鏍戜笉瀹屾暣
                                         setTaskModelCheckResult(task, phase, taskPhaseModel,
                                                 node, null, null, null,
-                                                TaskModelCheckResultDto.CATEGORY_MODEL, checkResult);
+                                                TaskModelCheckResultDto.CATEGORY_GK_MODEL, checkResult);
                                     } else {
-                                        if (!"宸插畬鎴�".equals(modelRbds.get(0).getModelState())) {
+                                        List<ModelRbd> modelRbds = modelRbdList.stream().filter(item ->
+                                                gkModel.getModelId().equals(item.getId())).collect(Collectors.toList());
+                                        if (modelRbds.size() == 0) {
                                             // 寤烘ā鏈畬鎴�
                                             setTaskModelCheckResult(task, phase, taskPhaseModel,
-                                                    node, modelRbds.get(0), null, null,
+                                                    node, null, 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) {
+                                            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, "鍙潬鎬у垎甯冪被鍨�",
+                                                                    node, modelRbds.get(0), device, null,
                                                                     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) {
+                                                            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, "鎴愬姛鐜�",
+                                                                                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 {
-                                                                        if (binoParam.getSuccessTimes() != null && binoParam.getSimulatTimes() == null) {
+                                                                        TaskBinoParam binoParam = binoParams.get(0);
+                                                                        if (binoParam.getSuccessRate() == null) {
                                                                             setTaskModelCheckResult(task, phase, taskPhaseModel,
-                                                                                    node, modelRbds.get(0), device, "鎬绘鏁�",
+                                                                                    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);
+                                                                        } 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) {
+                                                                if (param.getRepairable() == null) {
                                                                     setTaskModelCheckResult(task, phase, taskPhaseModel,
-                                                                            node, modelRbds.get(0), device, "缁翠慨鍒嗗竷绫诲瀷",
+                                                                            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);
+                                                                } else {
+                                                                    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);
+                                                                            }
+                                                                        }
                                                                     }
                                                                 }
                                                             }
@@ -296,6 +304,26 @@
 
     }
 
+    private boolean isNodeInRbdOfParent(XhProductModel node,
+                                        List<OperatConditModel> gkModelTree,
+                                        List<ModelNodeAlgorithm> rbdNodeList) {
+        boolean result = false;
+        List<OperatConditModel> parents = gkModelTree.stream().filter(item ->
+                item.getProductId().equals(node.getPid())).collect(Collectors.toList());
+        if (parents.size() > 0) {
+            OperatConditModel parent = parents.get(0);
+            if (parent.getModelId() != null) {
+                List<ModelNodeAlgorithm> nodes = rbdNodeList.stream().filter(item ->
+                        item.getModelId().equals(parent.getModelId()) && item.getDataId().equals(node.getId())).collect(Collectors.toList());
+                if (nodes.size() > 0) {
+                    result = true;
+                }
+            }
+        }
+
+        return result;
+    }
+
     /**
      * 鍙潬鎬ц瘎瀹氾細瀵逛换鍔″彲闈犳�фā鍨嬨�佸弬鏁伴厤缃�佸彲闈犳�ц瘎瀹氭暟鎹繘琛屽畬鏁存�ф鏌ワ紝骞舵寚鍑轰互涓�11绫婚敊璇細
      * 1锛変换鍔℃�绘椂闀挎湭閰嶇疆

--
Gitblit v1.9.1