From 392c2a51fc942c000939ac7ff5d08c0007dfb528 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Thu, 28 Aug 2025 11:19:51 +0800 Subject: [PATCH] =?UTF-8?q?SQL=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/subeva/SubCorepersonMapper.xml | 23 ++++---- .../mapper/subeva/SubProjectMapper.xml | 36 ++++++------ .../mapper/subeva/SubTeamEvaMapper.xml | 57 ++++++++++++++----- .../SubProjectEvaluateList.js | 2 +- .../SubTeamEvaluate/SubTeamEvaluateList.js | 1 + 5 files changed, 75 insertions(+), 44 deletions(-) diff --git a/modules/bmw/src/main/resources/mapper/subeva/SubCorepersonMapper.xml b/modules/bmw/src/main/resources/mapper/subeva/SubCorepersonMapper.xml index 8133149..b5a228e 100644 --- a/modules/bmw/src/main/resources/mapper/subeva/SubCorepersonMapper.xml +++ b/modules/bmw/src/main/resources/mapper/subeva/SubCorepersonMapper.xml @@ -66,16 +66,16 @@ SELECT - fcpe."id" as uuid, + MAX(fcpe."id") as uuid, bsc."id" as id, - bsc."contract_money" AS contractMoney, - bp."NAME" as proName, - bs."sub_name" as subName, - bsc."contract_name" as contractName, - su."username" AS sitePersonInCharge, - td."value" AS evaMonth, - fcpe."eva_score" AS evaGrade, - fcpe."eva_name" AS evaName, - fcpe."eva_date" AS evaDate, - fcpe."eva_year" as evaYear, - fcpe."eva_id" as evaId + MAX(bsc."contract_money") AS contractMoney, + MAX(bp."name") as proName, + MAX(bs."sub_name") as subName, + MAX(bsc."contract_name") as contractName, + MAX(su."username") AS sitePersonInCharge, + MAX(td."value") AS evaMonth, + MAX(fcpe."eva_score") AS evaGrade, + MAX(fcpe."eva_name") AS evaName, + MAX(fcpe."eva_date") AS evaDate, + MAX(fcpe."eva_year") as evaYear, + MAX(fcpe."eva_id") as evaId FROM "ynrealname"."bm_sub_contract" bsc LEFT JOIN "ynrealname"."bm_project" bp on bp."id" = bsc."pro_id" and bp."is_active" = '1' @@ -119,13 +119,13 @@ SELECT - bsc."id",bsc."pro_id" AS proId,bp."name" AS proName,bs."sub_name" AS subName,bsc."sub_id" AS subId, - bsc."contract_name" AS contractName,bsc."update_time" AS conFinishTime,su."username" AS corePersonName, + bsc."id" AS id, + MAX(bsc."pro_id") AS proId, + MAX(bp."name") AS proName, + MAX(bs."sub_name") AS subName, + MAX(bsc."sub_id") AS subId, + MAX(bsc."contract_name") AS contractName, + MAX(bsc."update_time") AS conFinishTime, + MAX(su."username") AS corePersonName, COUNT(DISTINCT bsr1."id") AS teamNumber, COUNT(DISTINCT bste."team_id") AS evaTeamNumber, - COUNT(DISTINCT CASE WHEN bste."level" = '1' THEN TRUE ELSE NULL END) AS aLevelNumber, - COUNT(DISTINCT CASE WHEN bste."level" = '2' THEN TRUE ELSE NULL END) AS bLevelNumber, - COUNT(DISTINCT CASE WHEN bste."level" = '3' THEN TRUE ELSE NULL END) AS cLevelNumber, - COUNT(DISTINCT CASE WHEN bste."level" = '4' THEN TRUE ELSE NULL END) AS dLevelNumber, - CASE WHEN bste."create_time" IS NULL THEN NULL ELSE bste."create_time" END AS conEvaTime + SUM(CASE WHEN bste."level" = '1' THEN 1 ELSE 0 END) AS aLevelNumber, + SUM(CASE WHEN bste."level" = '2' THEN 1 ELSE 0 END) AS bLevelNumber, + SUM(CASE WHEN bste."level" = '3' THEN 1 ELSE 0 END) AS cLevelNumber, + SUM(CASE WHEN bste."level" = '4' THEN 1 ELSE 0 END) AS dLevelNumber, + CASE WHEN MAX(bste."create_time") IS NULL THEN NULL ELSE MAX(bste."create_time") END AS conEvaTime FROM "ynrealname"."bm_sub_contract" bsc LEFT JOIN "ynrealname"."bm_project" bp ON bsc."pro_id" = bp."id" @@ -32,7 +42,17 @@ LEFT JOIN "ynrealname"."bm_sub_team_eva" bste ON bsr1."v" = bste."team_id" LEFT JOIN "ynrealname"."sys_user" su ON bsr."value" = su."id" WHERE bsc."is_complete" = '1' - GROUP BY bsc."id" + + + AND bp."id" =#{params.proId} + + + AND bs."sub_name" LIKE concat('%', #{params.subName}, '%') + + + + GROUP BY + bsc."id" OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY @@ -43,13 +63,24 @@ count(bsc."id") FROM "ynrealname"."bm_sub_contract" bsc + LEFT JOIN "ynrealname"."bm_project" bp ON bsc."pro_id" = bp."id" + LEFT JOIN "ynrealname"."bm_subcontractor" bs ON bsc."sub_id" = bs."id" WHERE bsc."is_complete" = '1' + + + AND bp."id" =#{params.proId} + + + AND bs."sub_name" LIKE concat('%', #{params.subName}, '%') + + +