From cd7b35b1acc7467deac78ba843b5870a22c9c7f6 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期二, 06 八月 2024 08:59:12 +0800 Subject: [PATCH] 修改 --- modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml | 131 +++++++++++++++++++++++-------------------- 1 files changed, 69 insertions(+), 62 deletions(-) diff --git a/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml b/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml index 286fedf..d35bb9e 100644 --- a/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml +++ b/modules/mainPart/src/main/resources/mapper/baseReliability/ParamDataBasicDao.xml @@ -4,72 +4,78 @@ <mapper namespace="com.zt.life.modules.mainPart.baseReliability.dao.ParamDataBasicDao"> <update id="compute"> update param_data f, - ( - SELECT - c.*, - CASE - WHEN WeightedFailure IS NOT NULL - AND WeightedFailure > 0 THEN - 1 / WeightedFailure ELSE 0 - END AS basic_mtbf_regulate, - CASE - WHEN WeightedFailure IS NOT NULL - AND WeightedFailure > 0 THEN - WeightedMTTR / WeightedFailure ELSE 0 - END AS repair_mttcr - FROM - ( - SELECT - c.id, - c.name, - sum( - CASE - WHEN b.product_type < 5 THEN - 1 * 1 / basic_mtbf_regulate - 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 - ELSE 0 END - ) AS WeightedFailure, - sum( - CASE - WHEN b.product_type < 5 THEN - 1 * 1 * a.repair_mttcr / a.basic_mtbf_regulate - 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_mtbf_regul_succ_rate - ELSE 0 - END - ) AS WeightedMttr - FROM - param_data a, - product_model b, - product_model c - WHERE 1 = 1 - and c.ship_id = ${shipId} and c.product_type = ${productType} and c.is_delete = 0 - and b.ship_id = ${shipId} and b.pid = c.id and b.is_delete = 0 - and a.IS_DELETE = 0 and a.product_id = b.id - AND ( (b.product_type = 5 AND a.basic_join_compute = 1 - and (( - a.reliab_distrib_type = 1 - AND a.basic_mtbf_regulate > 0 - ) - OR ( a.reliab_distrib_type = 2 AND a.basic_mtbf_regul_succ_rate > 0 )) - ) - || (b.product_type < 5 AND a.basic_mtbf_regulate > 0 ) ) - GROUP BY c.id,c.name - ) c - )d set f.basic_mtbf_regulate = d.basic_mtbf_regulate, - f.repair_mttcr = d.repair_mttcr + ( + SELECT c.*, + CASE + WHEN WeightedFailure IS NOT NULL + AND WeightedFailure > 0 THEN + 1 / WeightedFailure + ELSE 0 + END AS basic_mtbf_regulate, + CASE + WHEN WeightedFailure IS NOT NULL + AND WeightedFailure > 0 THEN + WeightedMTTR / WeightedFailure + ELSE 0 + END AS repair_mttcr + FROM ( + SELECT c.id, + c.name, + sum( + CASE + WHEN b.product_type < 5 THEN + 1 * 1 / basic_mtbf_regulate + 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 + ELSE 0 END + ) AS WeightedFailure, + sum( + CASE + WHEN b.product_type < 5 THEN + 1 * 1 * a.repair_mttcr / a.basic_mtbf_regulate + 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_mtbf_regul_succ_rate + ELSE 0 + END + ) AS WeightedMttr + FROM param_data a, + product_model b, + product_model c + WHERE 1 = 1 + and c.ship_id = ${shipId} + and c.product_type = ${productType} + and c.is_delete = 0 + and b.ship_id = ${shipId} + and b.pid = c.id + and b.is_delete = 0 + and a.IS_DELETE = 0 + and a.product_id = b.id + AND ((b.product_type = 5 AND a.basic_join_compute = 1 + and (( + a.reliab_distrib_type = 1 + AND a.basic_mtbf_regulate > 0 + ) + OR (a.reliab_distrib_type = 2 AND a.basic_mtbf_regul_succ_rate > 0)) + ) + || (b.product_type < 5 AND a.basic_mtbf_regulate > 0)) + GROUP BY c.id, c.name + ) c + ) d + set f.basic_mtbf_regulate = d.basic_mtbf_regulate, + f.repair_mttcr = d.repair_mttcr where f.product_id = d.id; </update> <update id="compute2"> UPDATE param_data a, product_model b SET ai = basic_mtbf_regulate / (basic_mtbf_regulate + repair_mttcr) - where b.ship_id = ${shipId} + where b.ship_id = ${shipId} </update> <select id="getAI" resultType="com.zt.life.modules.mainPart.basicInfo.model.ParamData"> @@ -83,8 +89,9 @@ 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.ship_id = ${shipId} - or a.id =${shipId} + and a.product_type <> 10 + and a.ship_id = ${shipId} + or a.id = ${shipId} ORDER BY a.product_type, a.sort </select> -- Gitblit v1.9.1