diff --git a/modules/bmw/src/main/resources/mapper/person/PersonComprehensiveMapper.xml b/modules/bmw/src/main/resources/mapper/person/PersonComprehensiveMapper.xml index 5dcfc5f..9037802 100644 --- a/modules/bmw/src/main/resources/mapper/person/PersonComprehensiveMapper.xml +++ b/modules/bmw/src/main/resources/mapper/person/PersonComprehensiveMapper.xml @@ -768,20 +768,28 @@ WHEN bp.pro_status = 3 THEN '停工' WHEN bp.pro_status = 4 THEN '遗留(收尾)' END AS proStatusName, - COUNT(DISTINCT CASE WHEN bweh1.IS_ACTIVE = '1' THEN bweh1.id_number END) AS currentOnSiteNum, - COUNT(DISTINCT CASE WHEN bweh2.IS_ACTIVE = '0' THEN bweh2.id_number END) AS exitedNum, - COUNT(DISTINCT bweh3.id_number) AS totalEntryNum, - MIN(bweh3.ein_time) AS firstEntryTime +-- COUNT(DISTINCT CASE WHEN bweh1.IS_ACTIVE = '1' THEN bweh1.id_number END) AS currentOnSiteNum, +-- COUNT(DISTINCT CASE WHEN bweh2.IS_ACTIVE = '0' THEN bweh2.id_number END) AS exitedNum, +-- COUNT(DISTINCT bweh3.id_number) AS totalEntryNum, + COUNT(DISTINCT CASE WHEN weh.IS_ACTIVE = '1' THEN weh.id_number END) AS currentOnSiteNum, + COUNT(DISTINCT CASE WHEN weh.IS_ACTIVE = '0' THEN weh.id_number END) AS exitedNum, + COUNT(DISTINCT weh.id_number) AS totalEntryNum, + MIN(weh.ein_time) AS firstEntryTime FROM bm_project_general bpg LEFT JOIN bm_project bp ON bp.project_general_id = bpg.id AND bp.is_active = '1' - LEFT JOIN - bm_worker_ein_history bweh1 ON bweh1.project_id = bp.id AND bweh1.IS_ACTIVE = '1' - LEFT JOIN - bm_worker_ein_history bweh2 ON bweh2.project_id = bp.id AND bweh2.IS_ACTIVE = '0' - LEFT JOIN - bm_worker_ein_history bweh3 ON bweh3.project_id = bp.id + LEFT JOIN ( + SELECT project_id, id_number, ein_time, IS_ACTIVE + FROM bm_worker_ein_history + WHERE IS_ACTIVE IN ('0', '1') + ) weh ON weh.project_id = bp.id +-- LEFT JOIN +-- bm_worker_ein_history bweh1 ON bweh1.project_id = bp.id AND bweh1.IS_ACTIVE = '1' +-- LEFT JOIN +-- bm_worker_ein_history bweh2 ON bweh2.project_id = bp.id AND bweh2.IS_ACTIVE = '0' +-- LEFT JOIN +-- bm_worker_ein_history bweh3 ON bweh3.project_id = bp.id WHERE bpg.is_active = '1' AND bp.id is not null @@ -798,7 +806,113 @@