SQL 修改

This commit is contained in:
cwchen 2025-08-28 11:19:51 +08:00
parent 885148352b
commit 392c2a51fc
5 changed files with 75 additions and 44 deletions

View File

@ -66,16 +66,16 @@
<select id="list" resultType="com.bonus.bmw.subeva.entity.SubEvaBean" >
SELECT
bsc."id" as id,
bp."NAME" as proName,
bs."sub_name" as subName,
bsc."contract_name" as contractName,
COUNT(bsr."id") AS teamNumber,
td."value" AS evaMonth,
fcpe."eva_grade" AS evaGrade,
fcpe."eva_name" AS evaName,
fcpe."eva_date" AS evaDate,
fcpe."eva_id" as evaId,
fcpe."eva_year" as evaYear
MAX(bp."name") as proName,
MAX(bs."sub_name") as subName,
MAX(bsc."contract_name") as contractName,
COUNT(bsr."id") AS teamNumber,
MAX(td."value") AS evaMonth,
MAX(fcpe."eva_grade") AS evaGrade,
MAX(fcpe."eva_name") AS evaName,
MAX(fcpe."eva_date") AS evaDate,
MAX(fcpe."eva_id") as evaId,
MAX(fcpe."eva_year") as evaYear
FROM
"ynrealname"."bm_sub_contract" bsc
LEFT JOIN "ynrealname"."bm_project" bp on bp."id" = bsc."pro_id" and bp."is_active" = '1'
@ -95,8 +95,7 @@
</if>
GROUP BY
bsc."id", bp."NAME", bs."sub_name", bsc."contract_name", td."value",
fcpe."eva_grade", fcpe."eva_name", fcpe."eva_date", fcpe."eva_id", fcpe."eva_year"
bsc."id"
<if test="offset != null and offset >= 0 and limit != null and limit >= 0">
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY
</if>

View File

@ -3,19 +3,19 @@
<mapper namespace="com.bonus.bmw.subeva.dao.SubProjectDao">
<select id="getList" resultType="com.bonus.bmw.subeva.entity.SubEvaBean">
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>
<select id="getRankList" resultType="com.bonus.bmw.subeva.entity.SubEvaBean">
SELECT
fsp."id" as uuid,
bs."id" as subId,
MAX(fsp."id") as uuid,
MAX(bs."id") as subId,
bs."sub_name" AS subName,
bsc."id" AS cid,
bsc."contract_name",
fsp."eva_month" as evaMonth,
fsp."eva_score",
MAX(bsc."id") AS cid,
MAX(bsc."contract_name") AS contractName,
MAX(fsp."eva_month") as evaMonth,
MAX(fsp."eva_score") AS evaScore,
COUNT(bs."sub_name") as proNum,
SUM(fsp."eva_score") / COUNT(bs."sub_name") as evaScore,
case WHEN ROUND(SUM(fsp."eva_score") / COUNT(bs."sub_name"),2) > 90 then 1

View File

@ -3,26 +3,36 @@
<mapper namespace="com.bonus.bmw.subeva.dao.SubTeamDao">
<insert id="putTeamEvaList">
MERGE INTO "ynrealname"."bm_sub_team_eva" ("level","team_id","user_id")
USING (SELECT #{user.evaLevel} as "level", #{user.teamId} as "team_id", #{userId} as "user_id" FROM DUAL) src
ON ("level" = src."level" AND "team_id" = src."team_id")
MERGE INTO "ynrealname"."bm_sub_team_eva" tgt
USING (
<foreach collection="teamEvaBeanList" item="user" separator=" UNION ALL ">
SELECT #{user.evaLevel} AS "level", #{user.teamId} AS "team_id", #{userId} AS "user_id" FROM DUAL
</foreach>
) src
ON (tgt."team_id" = src."team_id")
WHEN MATCHED THEN
UPDATE SET "user_id" = src."user_id"
UPDATE SET tgt."level" = src."level", tgt."user_id" = src."user_id"
WHEN NOT MATCHED THEN
INSERT ("level","team_id","user_id") VALUES (src."level", src."team_id", src."user_id")
</insert>
<select id="list" resultType="com.bonus.bmw.subeva.entity.SubTeamEvaBean">
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"
<if test="params != null and params != ''">
<if test="params.proId != null and params.proId != ''">
AND bp."id" =#{params.proId}
</if>
<if test="params.subName != null and params.subName != ''">
AND bs."sub_name" LIKE concat('%', #{params.subName}, '%')
</if>
</if>
GROUP BY
bsc."id"
<if test="offset != null and offset >= 0 and limit != null and limit >= 0">
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY
</if>
@ -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'
<if test="params != null and params != ''">
<if test="params.proId != null and params.proId != ''">
AND bp."id" =#{params.proId}
</if>
<if test="params.subName != null and params.subName != ''">
AND bs."sub_name" LIKE concat('%', #{params.subName}, '%')
</if>
</if>
</select>
<select id="getTeamEvaById" resultType="com.bonus.bmw.subeva.entity.SubTeamEvaBean">
SELECT
bsr."id",bsr."v" AS teamId,bst."team_name" AS teamName,bste."level" AS evaLevel,
CONCAT(bw."name",'-',bw."phone") AS corePersonName,su."username" AS userName,bste."create_time" AS conEvaTime
bw."name" || '-' || bw."phone" AS corePersonName,su."username" AS userName,bste."create_time" AS conEvaTime
FROM
"ynrealname"."bm_sub_relation" bsr
LEFT JOIN "ynrealname"."bm_sub_team" bst ON bst."id" = bsr."v"

View File

@ -288,7 +288,7 @@ function exportData(id,proName,subName,contractName,startDate,stopDate) {
time: 2000 //2秒关闭如果不配置默认是3秒
});
window.location.href = ctxPath + "/SubProjectEvaluate/exportExamList?contractName=" + contractName
+ "&proName=" + proName + "&id=" + id + "&subName=" + subName + "&stopDate=" + stopDate + "&exportType=1";
+ "&proName=" + proName + "&id=" + id + "&subName=" + subName + "&stopDate=" + stopDate + "&exportType=1" + "&Authorization=" + token;
}

View File

@ -8,6 +8,7 @@ $(function () {
var layer = layui.layer;
form = layui.form;
laydate = layui.laydate;
getProjectSelect();
form.render();
setTimeout(function () {
init();