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/resources/mapper/baseReliability/ParamDataBasicDao.xml | 48 +++++++++++++++++++++++++++++++++++++----------- 1 files changed, 37 insertions(+), 11 deletions(-) diff --git a/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml b/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml index 9f9eb6e..12b4d14 100644 --- a/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml +++ b/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml @@ -26,9 +26,11 @@ WHEN b.product_type < 5 THEN 1 * 1 / basic_mtbf_regulate_tmp WHEN a.reliab_distrib_type = 1 THEN - 1 * a.basic_mtbf_operating_ratio / a.basic_mtbf_regulate_tmp + a.basic_unit_num * a.basic_mtbf_operating_ratio / + a.basic_mtbf_regulate_tmp WHEN a.reliab_distrib_type = 3 THEN - 1 * a.basic_mtbf_operating_ratio / a.basic_mtbf_regul_succ_rate + a.basic_unit_num * a.basic_mtbf_operating_ratio / + a.basic_mtbf_regul_succ_rate ELSE 0 END ) AS WeightedFailure, sum( @@ -36,10 +38,10 @@ WHEN b.product_type < 5 THEN 1 * 1 * a.repair_mttcr / a.basic_mtbf_regulate_tmp WHEN a.repairable = 1 and a.reliab_distrib_type = 1 THEN - 1 * a.basic_mtbf_operating_ratio * a.repair_mttcr / + a.basic_unit_num * a.basic_mtbf_operating_ratio * a.repair_mttcr / a.basic_mtbf_regulate_tmp WHEN a.repairable = 1 and a.reliab_distrib_type = 3 THEN - 1 * a.basic_mtbf_operating_ratio * a.repair_mttcr / + a.basic_unit_num * a.basic_mtbf_operating_ratio * a.repair_mttcr / a.basic_mtbf_regul_succ_rate ELSE 0 END @@ -68,31 +70,53 @@ ) c ) d set f.basic_mtbf_regulate_tmp = d.basic_mtbf_regulate_tmp, - f.repair_mttcr = d.repair_mttcr + f.repair_mttcr = d.repair_mttcr where f.product_id = d.id; </update> <update id="compute1"> UPDATE param_data a, product_model b SET repair_mttcr = 0 - where b.ship_id = ${shipId} and repair_mttcr is null; + where b.ship_id = ${shipId} + and repair_mttcr is null; + UPDATE param_data a, product_model b SET basic_mtbf_regulate_tmp = basic_mtbf_regulate where b.ship_id = ${shipId}; + UPDATE param_data a, product_model b - SET basic_mtbf_regulate_tmp = basic_runs_num /basic_mtbf_regul_succ_rate - where b.ship_id = ${shipId} and reliab_distrib_type = 3 + SET basic_mtbf_regulate_tmp = basic_runs_num / basic_mtbf_regul_succ_rate + where b.ship_id = ${shipId} + and reliab_distrib_type = 3 </update> <update id="compute2"> UPDATE param_data a, product_model b - SET basic_mtbf_regulate = basic_mtbf_regulate_tmp - where b.ship_id = ${shipId} and (reliab_distrib_type = 1 or reliab_distrib_type is null); + SET basic_mtbf_regulate = basic_mtbf_regulate_tmp + where b.ship_id = ${shipId} + and (reliab_distrib_type = 1 or reliab_distrib_type is null) + and a.product_id = b.id + and a.IS_DELETE = 0 + and b.IS_DELETE = 0; UPDATE param_data a, product_model b SET ai = basic_mtbf_regulate_tmp / (basic_mtbf_regulate_tmp + repair_mttcr) where b.ship_id = ${shipId} + and a.product_id = b.id + and a.IS_DELETE = 0 + and b.IS_DELETE = 0; + UPDATE param_data a,( + select pid, case when count(1) > 0 then 1 else 0 end as basic_join_compute + from param_data a, + product_model b + where b.ship_id = ${shipId} + and a.product_id = b.id + and a.basic_join_compute = 1 + group by b.pid + ) b + set a.basic_join_compute = b.basic_join_compute + where a.product_id = b.pid; </update> <select id="getAI" resultType="com.zt.life.modules.mainPart.basicInfo.model.ParamData"> @@ -104,11 +128,13 @@ b.repair_mttcr, b.basic_mtbf_operating_ratio, b.basic_mtbf_regul_succ_rate, - b.basic_runs_num + b.basic_runs_num, + b.basic_unit_num FROM product_model a LEFT JOIN param_data b ON b.product_id = a.id and b.is_delete = 0 where a.is_delete = 0 and a.product_type <> 10 + and b.basic_join_compute = 1 and a.ship_id = ${shipId} or a.id = ${shipId} ORDER BY a.product_type, a.sort -- Gitblit v1.9.1