diff --git a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml index df25e1a..132296c 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml @@ -665,7 +665,14 @@ SELECT - p.id AS projectId, - p.project_name AS projectName, - p.corpinfo_name AS corpinfoName, - COALESCE(sei_stat.inspectCount, 0) AS inspectCount, - COALESCE(hidden_stat.hiddenCount, 0) AS hiddenCount, - COALESCE(penalty_stat.penaltyAmount, 0) AS penaltyAmount - FROM project_approval_flow paf - LEFT JOIN project p ON paf.project_id = p.id - LEFT JOIN corp_info cp ON p.corpinfo_id = cp.id - LEFT JOIN ( + progress.projectId, + progress.projectName, + progress.corpinfoName, + progress.inspectCount, + progress.hiddenCount, + progress.penaltyAmount + FROM ( SELECT - k.project_id, - COUNT(DISTINCT sei.id) AS inspectCount - FROM key_project k - INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id - AND sei.delete_enum = 'FALSE' - AND sei.status != 0 - WHERE k.delete_enum = 'FALSE' - GROUP BY k.project_id - ) sei_stat ON sei_stat.project_id = p.id - LEFT JOIN ( + p.id AS projectId, + p.project_name AS projectName, + p.corpinfo_name AS corpinfoName, + COALESCE(sei_stat.inspectCount, 0) AS inspectCount, + COALESCE(hidden_stat.hiddenCount, 0) AS hiddenCount, + COALESCE(penalty_stat.penaltyAmount, 0) AS penaltyAmount, + p.initiation_time AS sortTime + FROM project_approval_flow paf + LEFT JOIN project p ON paf.project_id = p.id + LEFT JOIN corp_info cp ON p.corpinfo_id = cp.id + LEFT JOIN ( + SELECT + k.project_id, + COUNT(DISTINCT sei.id) AS inspectCount + FROM key_project k + INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id + AND sei.delete_enum = 'FALSE' + AND sei.status != 0 + WHERE k.delete_enum = 'FALSE' + GROUP BY k.project_id + ) sei_stat ON sei_stat.project_id = p.id + LEFT JOIN ( + SELECT + k.project_id, + COUNT(DISTINCT h.id) AS hiddenCount + FROM key_project k + INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id + AND sei.delete_enum = 'FALSE' + AND sei.status != 0 + INNER JOIN hidden h ON h.foreign_key = sei.inspection_id + AND h.delete_enum = 'FALSE' + WHERE k.delete_enum = 'FALSE' + GROUP BY k.project_id + ) hidden_stat ON hidden_stat.project_id = p.id + LEFT JOIN ( + SELECT + k.project_id, + SUM(COALESCE(hp.penalty_amount, 0)) AS penaltyAmount + FROM key_project k + INNER JOIN hidden_penalty hp ON hp.key_project_id = k.key_project_id + AND hp.delete_enum = 'FALSE' + WHERE k.delete_enum = 'FALSE' + GROUP BY k.project_id + ) penalty_stat ON penalty_stat.project_id = p.id + WHERE paf.delete_enum = 'FALSE' + AND paf.audit_type = 2 + AND p.delete_enum = 'FALSE' + AND p.project_status = 4 + + AND paf.corpinfo_id = #{corpinfoId} + + + AND cp.port_area = #{portArea} + + GROUP BY p.id + + UNION ALL + SELECT - k.project_id, - COUNT(DISTINCT h.id) AS hiddenCount - FROM key_project k - INNER JOIN safety_environmental_inspection sei ON sei.key_project_id = k.key_project_id - AND sei.delete_enum = 'FALSE' - AND sei.status != 0 - INNER JOIN hidden h ON h.foreign_key = sei.inspection_id - AND h.delete_enum = 'FALSE' - WHERE k.delete_enum = 'FALSE' - GROUP BY k.project_id - ) hidden_stat ON hidden_stat.project_id = p.id - LEFT JOIN ( - SELECT - k.project_id, - SUM(COALESCE(hp.penalty_amount, 0)) AS penaltyAmount - FROM key_project k - INNER JOIN hidden_penalty hp ON hp.key_project_id = k.key_project_id - AND hp.delete_enum = 'FALSE' - WHERE k.delete_enum = 'FALSE' - GROUP BY k.project_id - ) penalty_stat ON penalty_stat.project_id = p.id - WHERE paf.delete_enum = 'FALSE' - AND paf.audit_type = 2 - AND p.delete_enum = 'FALSE' - AND p.project_status = 4 - - AND paf.corpinfo_id = #{corpinfoId} - - - AND cp.port_area = #{portArea} - - GROUP BY p.id - - ORDER BY p.initiation_time DESC + NULL AS projectId, + kp.project_name AS projectName, + xgfci.corp_name AS corpinfoName, + COALESCE(sei_stat.inspectCount, 0) AS inspectCount, + COALESCE(hidden_stat.hiddenCount, 0) AS hiddenCount, + COALESCE(penalty_stat.penaltyAmount, 0) AS penaltyAmount, + kp.create_time AS sortTime + FROM key_project kp + LEFT JOIN corp_info cp ON kp.jurisdiction_corpinfo_id = cp.id + LEFT JOIN corp_info xgfci ON kp.xgf_corpinfo_id = xgfci.id + LEFT JOIN ( + SELECT + sei.key_project_id, + COUNT(DISTINCT sei.id) AS inspectCount + FROM safety_environmental_inspection sei + WHERE sei.delete_enum = 'FALSE' + AND sei.status != 0 + GROUP BY sei.key_project_id + ) sei_stat ON sei_stat.key_project_id = kp.key_project_id + LEFT JOIN ( + SELECT + sei.key_project_id, + COUNT(DISTINCT h.id) AS hiddenCount + FROM safety_environmental_inspection sei + INNER JOIN hidden h ON h.foreign_key = sei.inspection_id + AND h.delete_enum = 'FALSE' + WHERE sei.delete_enum = 'FALSE' + AND sei.status != 0 + GROUP BY sei.key_project_id + ) hidden_stat ON hidden_stat.key_project_id = kp.key_project_id + LEFT JOIN ( + SELECT + hp.key_project_id, + SUM(COALESCE(hp.penalty_amount, 0)) AS penaltyAmount + FROM hidden_penalty hp + WHERE hp.delete_enum = 'FALSE' + GROUP BY hp.key_project_id + ) penalty_stat ON penalty_stat.key_project_id = kp.key_project_id + WHERE kp.delete_enum = 'FALSE' + AND kp.project_work_flag = 0 + AND (kp.project_id IS NULL OR kp.project_id = '') + AND NOT EXISTS ( + SELECT 1 + FROM key_project kp_latest + WHERE kp_latest.delete_enum = 'FALSE' + AND kp_latest.key_project_id = kp.key_project_id + AND kp_latest.id > kp.id + ) + + AND kp.jurisdiction_corpinfo_id = #{corpinfoId} + + + AND cp.port_area = #{portArea} + + GROUP BY kp.key_project_id + ) progress + ORDER BY progress.sortTime DESC