jinlin
2025-03-21 77d58298d00c11ade8862ca8acb0fdef5a45322e
src/main/resources/mapper/progressTrack/DjJdgzNetworkLevel3Dao.xml
@@ -125,6 +125,60 @@
            and b.name LIKE '%${name}%'
        </if>
    </select>
    <select id="getStatist" resultType="com.example.server.progressTrack.Dto.StatistProductDto">
        SELECT
            a.id,
            CASE WHEN a.pid = 0 THEN a.NAME ELSE '    ' || a.NAME END AS name,
            CASE WHEN a.pid = 0 THEN '' || a.id ELSE '' || a.pid || a.SORT END AS sort,
            COUNT(DISTINCT CASE WHEN fvp.process_name = '设备拆卸出舱' THEN b.id END) AS cxsl,
            COUNT(DISTINCT CASE WHEN fvp.process_name = '设备分交' THEN b.id END) AS fjsl,
            COUNT(DISTINCT CASE WHEN fvp.process_name = '拆检鉴定' THEN b.id END) AS jdsl,
            COUNT(DISTINCT CASE WHEN fvp.process_name = '设备返厂' THEN b.id END) AS fcsl,
            COUNT(DISTINCT CASE WHEN fvp.process_name = '回装' THEN b.id END) AS hzsl,
            COUNT(DISTINCT CASE WHEN all_complete.network_id IS NOT NULL THEN b.id END) AS wcsl
        FROM
            dj_sys_teamgroup_class a
            left JOIN
            dj_jdgz_network_level3 b ON a.id = b.TEAMGROUP_ID OR a.id = b.DEPT_ID
            LEFT JOIN dj_jdgz_network_level1 d on d.ID = b.LEVEL1_NETWORK_ID
                LEFT JOIN (
                SELECT
                    network_id,
                    process_name
                FROM (
                         SELECT
                             c.network_id,
                             c.process_name,
                             c.CURRENT_STATUS,
                             ROW_NUMBER() OVER (
                                 PARTITION BY c.network_id
                                 ORDER BY c.sort
                                 ) AS rn
                         FROM
                             dj_jdgz_network_level3_list c
                         WHERE
                             (c.CURRENT_STATUS = 0 OR c.CURRENT_STATUS IS NULL) and c.is_delete = 0
                     ) AS ranked_processes
                WHERE
                    ranked_processes.rn = 1
            ) AS fvp ON b.id = fvp.network_id
                LEFT JOIN (
                SELECT
                    network_id
                FROM
                    dj_jdgz_network_level3_list
                GROUP BY
                    network_id
                HAVING
                    COUNT(CASE WHEN CURRENT_STATUS = 1 THEN 1 END) = COUNT(*)
            ) AS all_complete ON b.id = all_complete.network_id
        WHERE
            a.AREA = 'hld' AND a.IS_DELETE = 0 and d.ship_id = ${level1Id} and d.is_delete =0 and b.is_delete =0
        GROUP BY
            a.id, a.name
        ORDER BY
            sort;
    </select>
</mapper>