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 &lt; 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 &lt; 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 &lt; 5 AND a.basic_mtbf_regulate > 0))
+                             || (b.product_type &lt; 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