From 9fdb8bef649c8bba6ea97330d0e509fade235417 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期三, 23 十月 2024 10:39:24 +0800 Subject: [PATCH] 关于修改可靠性产品重复 --- modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml | 58 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 41 insertions(+), 17 deletions(-) diff --git a/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml b/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml index d35bb9e..572c271 100644 --- a/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml +++ b/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml @@ -11,7 +11,7 @@ AND WeightedFailure > 0 THEN 1 / WeightedFailure ELSE 0 - END AS basic_mtbf_regulate, + END AS basic_mtbf_regulate_tmp, CASE WHEN WeightedFailure IS NOT NULL AND WeightedFailure > 0 THEN @@ -24,22 +24,24 @@ sum( CASE WHEN b.product_type < 5 THEN - 1 * 1 / basic_mtbf_regulate + 1 * 1 / basic_mtbf_regulate_tmp WHEN a.reliab_distrib_type = 1 THEN - 1 * a.basic_mtbf_operating_ratio / a.basic_mtbf_regulate - WHEN a.reliab_distrib_type = 2 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_regulate_tmp + WHEN a.reliab_distrib_type = 3 THEN + a.basic_unit_num * a.basic_mtbf_operating_ratio / + a.basic_mtbf_regul_succ_rate ELSE 0 END ) AS WeightedFailure, sum( CASE WHEN b.product_type < 5 THEN - 1 * 1 * a.repair_mttcr / a.basic_mtbf_regulate + 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_mtbf_regulate - WHEN a.repairable = 1 and a.reliab_distrib_type = 2 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 + a.basic_unit_num * a.basic_mtbf_operating_ratio * a.repair_mttcr / a.basic_mtbf_regul_succ_rate ELSE 0 END @@ -59,23 +61,43 @@ AND ((b.product_type = 5 AND a.basic_join_compute = 1 and (( a.reliab_distrib_type = 1 - AND a.basic_mtbf_regulate > 0 + AND a.basic_mtbf_regulate_tmp > 0 ) - OR (a.reliab_distrib_type = 2 AND a.basic_mtbf_regul_succ_rate > 0)) + OR (a.reliab_distrib_type = 3 AND a.basic_mtbf_regul_succ_rate > 0)) ) - || (b.product_type < 5 AND a.basic_mtbf_regulate > 0)) + || (b.product_type < 5 AND a.basic_mtbf_regulate_tmp > 0)) GROUP BY c.id, c.name ) c ) d - set f.basic_mtbf_regulate = d.basic_mtbf_regulate, - f.repair_mttcr = d.repair_mttcr + set f.basic_mtbf_regulate_tmp = d.basic_mtbf_regulate_tmp, + 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; + 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 </update> <update id="compute2"> UPDATE param_data a, product_model b - SET ai = basic_mtbf_regulate / (basic_mtbf_regulate + repair_mttcr) + SET basic_mtbf_regulate = basic_mtbf_regulate_tmp where b.ship_id = ${shipId} + and (reliab_distrib_type = 1 or reliab_distrib_type is null); + + UPDATE param_data a, product_model b + SET ai = basic_mtbf_regulate_tmp / (basic_mtbf_regulate_tmp + repair_mttcr) + where b.ship_id = ${shipId} + </update> <select id="getAI" resultType="com.zt.life.modules.mainPart.basicInfo.model.ParamData"> @@ -85,7 +107,9 @@ b.ai, b.basic_mtbf_regulate, b.repair_mttcr, - b.basic_mtbf_operating_ratio + b.basic_mtbf_operating_ratio, + b.basic_mtbf_regul_succ_rate, + b.basic_runs_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 -- Gitblit v1.9.1