| <?xml version="1.0" encoding="UTF-8"?> | 
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | 
|   | 
| <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 | 
|         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} | 
|     </update> | 
|   | 
|     <select id="getAI" resultType="com.zt.life.modules.mainPart.basicInfo.model.ParamData"> | 
|         SELECT a.NAME, | 
|                a.id, | 
|                a.pid, | 
|                b.ai, | 
|                b.basic_mtbf_regulate, | 
|                b.repair_mttcr, | 
|                b.basic_mtbf_operating_ratio | 
|         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} | 
|         ORDER BY a.product_type, a.sort | 
|     </select> | 
|   | 
| </mapper> |