| | |
| | | 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 |
| | |
| | | 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_regulate_tmp |
| | | WHEN a.reliab_distrib_type = 3 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 |
| | | 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 |
| | | 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_mtbf_regul_succ_rate |
| | | ELSE 0 |
| | |
| | | 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, |
| | | 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"> |
| | |
| | | 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 |