jar
jinlin
2025-03-10 f0aae4b39afbcbb18fb5a0b32e3ca689662c5ca7
src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml
@@ -18,6 +18,10 @@
        b.LEVEL3_NODE_ID ELSE a.id
        END AS level3NodeId,
        c.id as level3NetworkId,
        c.teamgroup_name,
        c.dept_id,
        c.cabin_id,
        c.type,
        c.`NAME` as level3NetworkName,
        a.PROCESS_NAME AS level3NodeName,
        a.REQUIRED_COMPLETION_TIME,
@@ -103,37 +107,38 @@
    <select id="getReport" resultType="com.example.server.progressTrack.Dto.StatistReportsDto">
        select d.*, e.name as teamGroupName
        from (
        select TEAMGROUP_ID,
        count(1) as allNum,
        sum(case when status = 'zcjxz' or status = 'lq' then 1 else 0 end) as jxzNum,
        sum(case when status = 'lq' then 1 else 0 end) as lqNum,
        sum(case when status = 'yq' then 1 else 0 end) as yqNum,
        sum(case when status = 'zcwc' then 1 else 0 end) as zcwcNum,
        sum(case when status = 'cqwc' then 1 else 0 end) as cqwcNum
        from (
        select b.TEAMGROUP_ID,
        CASE
        WHEN b.CURRENT_STATUS = 1
        AND b.REQUIRED_COMPLETION_TIME > b.ACTUAL_COMPLETION THEN
        'cqwc'
        WHEN b.CURRENT_STATUS = 1 THEN
        'zcwc'
        WHEN b.REQUIRED_COMPLETION_TIME &lt; (SELECT datetime('now')) THEN 'yq'
        WHEN b.REQUIRED_COMPLETION_TIME &lt; (SELECT date('now', '-' || c.advent_day || ' days')) THEN 'lq'
        ELSE 'zcjxz'
        END AS status
        from dj_jdgz_network_level3 a,
        dj_jdgz_network_level3_list b,
        dj_jdgz_network_level1 c
        where a.IS_DELETE = 0
        and a.LEVEL1_NETWORK_ID = ${level1NetworkId}
        and a.LEVEL1_NETWORK_ID = c.id
        and b.IS_DELETE = 0
        and b.NETWORK_ID = a.id
        ) c
        group by TEAMGROUP_ID
        ) d,
        dj_sys_teamgroup_class e
                 select TEAMGROUP_ID,
                        count(1)                                                           as allNum,
                        sum(case when status = 'zcjxz' or status = 'lq' then 1 else 0 end) as jxzNum,
                        sum(case when status = 'lq' then 1 else 0 end)                     as lqNum,
                        sum(case when status = 'yq' then 1 else 0 end)                     as yqNum,
                        sum(case when status = 'zcwc' then 1 else 0 end)                   as zcwcNum,
                        sum(case when status = 'cqwc' then 1 else 0 end)                   as cqwcNum
                 from (
                          select a.TEAMGROUP_ID,
                                 CASE
                                     WHEN b.CURRENT_STATUS = 1
                                         AND b.REQUIRED_COMPLETION_TIME > b.ACTUAL_COMPLETION THEN
                                         'cqwc'
                                     WHEN b.CURRENT_STATUS = 1 THEN
                                         'zcwc'
                                     WHEN b.REQUIRED_COMPLETION_TIME &lt; (SELECT datetime('now')) THEN 'yq'
                                     WHEN b.REQUIRED_COMPLETION_TIME &lt;
                                          (SELECT date('now', '-' || c.advent_day || ' days')) THEN 'lq'
                                     ELSE 'zcjxz'
                                     END AS status
                          from dj_jdgz_network_level3 a,
                               dj_jdgz_network_level3_list b,
                               dj_jdgz_network_level1 c
                          where a.IS_DELETE = 0
                            and a.LEVEL1_NETWORK_ID = ${level1NetworkId}
                            and a.LEVEL1_NETWORK_ID = c.id
                            and b.IS_DELETE = 0
                            and b.NETWORK_ID = a.id
                      ) c
                 group by TEAMGROUP_ID
             ) d,
             dj_sys_teamgroup_class e
        where d.TEAMGROUP_ID = e.id
    </select>
    <select id="prompt" resultType="com.example.server.progressTrack.model.DjJdgzTrackRecord">
@@ -144,7 +149,7 @@
        e.PROCESS_NAME AS level1NodeName,
        f.project_name,
        g.week_no,
        h.name as teamGroupName
        b.TEAMGROUP_NAME
        FROM
        `dj_jdgz_network_level3_list` a
        LEFT JOIN dj_jdgz_network_level3 b ON b.id = a.NETWORK_ID
@@ -342,5 +347,87 @@
        from dj_jdgz_track_record
        where LEVEL3_NODE_ID = ${level3NodeId}
    </select>
    <select id="getListByImport" resultType="com.example.server.progressTrack.model.DjJdgzTrackRecord">
        SELECT
        c.id,
        c.`NAME` as level3NetworkName,
        CASE
        WHEN
        b.GENERAL_REPAIR_UNIT IS NOT NULL THEN b.GENERAL_REPAIR_UNIT else
        c.GENERAL_REPAIR_UNIT
        END as GENERAL_REPAIR_UNIT,
        CASE
        WHEN
        b.GENERAL_REPAIR_UNIT_DIRECTOR IS NOT NULL THEN b.GENERAL_REPAIR_UNIT_DIRECTOR else
        c.GENERAL_REPAIR_UNIT_DIRECTOR
        END as GENERAL_REPAIR_UNIT_DIRECTOR,
        CASE
        WHEN
        b.GENERAL_REPAIR_UNIT_CONTACT IS NOT NULL THEN
        b.GENERAL_REPAIR_UNIT_CONTACT else
        c.GENERAL_REPAIR_UNIT_CONTACT
        END as GENERAL_REPAIR_UNIT_CONTACT,
        CASE
        WHEN
        b.REPAIR_UNIT IS NOT NULL THEN b.REPAIR_UNIT else
        c.REPAIR_UNIT
        END as REPAIR_UNIT,
        CASE
        WHEN
        b.REPAIR_UNIT_DIRECTOR IS NOT NULL THEN b.REPAIR_UNIT_DIRECTOR else
        c.REPAIR_UNIT_DIRECTOR
        END as REPAIR_UNIT_DIRECTOR,
        CASE
        WHEN
        b.REPAIR_UNIT_CONTACT IS NOT NULL THEN
        b.REPAIR_UNIT_CONTACT else
        c.REPAIR_UNIT_CONTACT
        END as REPAIR_UNIT_CONTACT,
        b.track_person,
        b.track_person_unit,
        b.track_person_contact,
        b.tracked_person,
        b.tracked_person_unit,
        b.tracked_person_contact
        FROM
        dj_jdgz_network_level3_list a
        LEFT JOIN (
        SELECT *
        FROM dj_jdgz_track_record
        WHERE (LEVEL3_NODE_ID, update_date) IN (
        SELECT LEVEL3_NODE_ID, MAX(update_date)
        FROM dj_jdgz_track_record
        GROUP BY LEVEL3_NODE_ID
        )
        ) b ON b.LEVEL3_NODE_ID = a.id
        LEFT JOIN dj_jdgz_network_level3 c ON c.id = a.NETWORK_ID
        LEFT JOIN dj_jdgz_network_level2_list d ON d.id = c.LEVEL2_NODE_ID
        LEFT JOIN dj_jdgz_network_level2 e ON e.id = d.NETWORK_ID
        LEFT JOIN dj_jdgz_network_level1_list f ON f.id = e.LEVEL1_NODE_ID
        LEFT JOIN dj_jdgz_network_level1 g ON g.id = c.LEVEL1_NETWORK_ID
        WHERE
        a.IS_DELETE = 0
        and a.network_id != 10000
        <if test="selectedIds!=null and selectedIds!=''">
            AND c.TEAMGROUP_ID in (${selectedIds})
        </if>
        and (b.CURRENT_STATUS IS null OR b.CURRENT_STATUS = 0)
        AND c.IS_DELETE = 0
        AND d.IS_DELETE = 0
        AND e.IS_DELETE = 0
        AND f.IS_DELETE = 0
        AND g.IS_DELETE = 0
        AND g.id = ${level1Id}
        <if test="level2Id!=null">
            AND e.id = ${level2Id}
        </if>
        <if test="level2NodeId!=null">
            AND d.id = ${level2NodeId}
        </if>
        GROUP BY
        c.id
        ORDER BY
        a.REQUIRED_COMPLETION_TIME
    </select>
</mapper>