gongchunyi
6 天以前 054381d20e23e30cfb3fe962e00be6a3ded3ee2b
src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -15,6 +15,9 @@
        qi.model,
        ifnull(pm.unit, qi.unit) as unit,
        qi.quantity,
        qi.qualified_quantity,
        qi.unqualified_quantity,
        qi.pass_rate,
        qi.check_company,
        qi.check_result,
        qi.create_time,
@@ -177,10 +180,14 @@
        SELECT base.modelType,
               COALESCE(SUM(qi.quantity), 0)                                                AS totalCount,
               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END), 0) AS completedCount,
               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '合格' THEN qi.quantity ELSE 0 END),
                        0)                                                                  AS qualifiedCount,
               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '不合格' THEN qi.quantity ELSE 0 END),
                        0)                                                                  AS unqualifiedCount,
               COALESCE(SUM(CASE
                                  WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
                                                                          CASE WHEN qi.check_result = '合格' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
                                  ELSE 0 END), 0)                                  AS qualifiedCount,
               COALESCE(SUM(CASE
                                  WHEN qi.inspect_state = 1 THEN IFNULL(qi.unqualified_quantity,
                                                                        CASE WHEN qi.check_result IN ('不合格', '部分合格') THEN IFNULL(qi.quantity, 0) ELSE 0 END)
                                  ELSE 0 END), 0)                                  AS unqualifiedCount,
               IF(COALESCE(SUM(qi.quantity), 0) = 0, 0,
                  ROUND(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END)
@@ -188,7 +195,10 @@
                   )                                                                        AS completionRate,
               IF(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) = 0, 0,
                  ROUND(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '合格' THEN qi.quantity ELSE 0 END)
                  ROUND(SUM(CASE
                                WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
                                                                        CASE WHEN qi.check_result = '合格' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
                                ELSE 0 END)
                            / SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) * 100, 2)
                   )                                                                        AS passRate
@@ -249,10 +259,14 @@
               COALESCE(SUM(qi.quantity), 0)                                                AS totalCount,
               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END), 0) AS completedCount,
               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '合格' THEN qi.quantity ELSE 0 END),
                        0)                                                                  AS qualifiedCount,
               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '不合格' THEN qi.quantity ELSE 0 END),
                        0)                                                                  AS unqualifiedCount,
               COALESCE(SUM(CASE
                                  WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
                                                                          CASE WHEN qi.check_result = '合格' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
                                  ELSE 0 END), 0)                                  AS qualifiedCount,
               COALESCE(SUM(CASE
                                  WHEN qi.inspect_state = 1 THEN IFNULL(qi.unqualified_quantity,
                                                                        CASE WHEN qi.check_result IN ('不合格', '部分合格') THEN IFNULL(qi.quantity, 0) ELSE 0 END)
                                  ELSE 0 END), 0)                                  AS unqualifiedCount,
            /* 完成率 */
               IF(COALESCE(SUM(qi.quantity), 0) = 0, 0,
@@ -261,7 +275,10 @@
            /* 合格率 */
               IF(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) = 0, 0,
                  ROUND(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '合格' THEN qi.quantity ELSE 0 END)
                  ROUND(SUM(CASE
                                WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
                                                                        CASE WHEN qi.check_result = '合格' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
                                ELSE 0 END)
                            / SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) * 100, 2)
                   )                                                                        AS passRate
@@ -306,11 +323,16 @@
               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END), 0) AS completedCount,
               COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '合格' THEN qi.quantity ELSE 0 END),
                        0)                                                                  AS qualifiedCount,
               COALESCE(SUM(CASE
                                  WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
                                                                          CASE WHEN qi.check_result = '合格' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
                                  ELSE 0 END), 0)                                  AS qualifiedCount,
               IF(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) = 0, 0,
                  ROUND(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '合格' THEN qi.quantity ELSE 0 END)
                  ROUND(SUM(CASE
                                WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity,
                                                                        CASE WHEN qi.check_result = '合格' THEN IFNULL(qi.quantity, 0) ELSE 0 END)
                                ELSE 0 END)
                            / SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) * 100, 2)
                   )                                                                        AS passRate