<?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 || b.product_type < 5)
|
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
|
))
|
|
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>
|