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

View File

@ -3,19 +3,19 @@
<mapper namespace="com.bonus.bmw.subeva.dao.SubProjectDao"> <mapper namespace="com.bonus.bmw.subeva.dao.SubProjectDao">
<select id="getList" resultType="com.bonus.bmw.subeva.entity.SubEvaBean"> <select id="getList" resultType="com.bonus.bmw.subeva.entity.SubEvaBean">
SELECT SELECT
fcpe."id" as uuid, MAX(fcpe."id") as uuid,
bsc."id" as id, bsc."id" as id,
bsc."contract_money" AS contractMoney, MAX(bsc."contract_money") AS contractMoney,
bp."NAME" as proName, MAX(bp."name") as proName,
bs."sub_name" as subName, MAX(bs."sub_name") as subName,
bsc."contract_name" as contractName, MAX(bsc."contract_name") as contractName,
su."username" AS sitePersonInCharge, MAX(su."username") AS sitePersonInCharge,
td."value" AS evaMonth, MAX(td."value") AS evaMonth,
fcpe."eva_score" AS evaGrade, MAX(fcpe."eva_score") AS evaGrade,
fcpe."eva_name" AS evaName, MAX(fcpe."eva_name") AS evaName,
fcpe."eva_date" AS evaDate, MAX(fcpe."eva_date") AS evaDate,
fcpe."eva_year" as evaYear, MAX(fcpe."eva_year") as evaYear,
fcpe."eva_id" as evaId MAX(fcpe."eva_id") as evaId
FROM FROM
"ynrealname"."bm_sub_contract" bsc "ynrealname"."bm_sub_contract" bsc
LEFT JOIN "ynrealname"."bm_project" bp on bp."id" = bsc."pro_id" and bp."is_active" = '1' LEFT JOIN "ynrealname"."bm_project" bp on bp."id" = bsc."pro_id" and bp."is_active" = '1'
@ -119,13 +119,13 @@
</select> </select>
<select id="getRankList" resultType="com.bonus.bmw.subeva.entity.SubEvaBean"> <select id="getRankList" resultType="com.bonus.bmw.subeva.entity.SubEvaBean">
SELECT SELECT
fsp."id" as uuid, MAX(fsp."id") as uuid,
bs."id" as subId, MAX(bs."id") as subId,
bs."sub_name" AS subName, bs."sub_name" AS subName,
bsc."id" AS cid, MAX(bsc."id") AS cid,
bsc."contract_name", MAX(bsc."contract_name") AS contractName,
fsp."eva_month" as evaMonth, MAX(fsp."eva_month") as evaMonth,
fsp."eva_score", MAX(fsp."eva_score") AS evaScore,
COUNT(bs."sub_name") as proNum, COUNT(bs."sub_name") as proNum,
SUM(fsp."eva_score") / COUNT(bs."sub_name") as evaScore, 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 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"> <mapper namespace="com.bonus.bmw.subeva.dao.SubTeamDao">
<insert id="putTeamEvaList"> <insert id="putTeamEvaList">
MERGE INTO "ynrealname"."bm_sub_team_eva" ("level","team_id","user_id") MERGE INTO "ynrealname"."bm_sub_team_eva" tgt
USING (SELECT #{user.evaLevel} as "level", #{user.teamId} as "team_id", #{userId} as "user_id" FROM DUAL) src USING (
ON ("level" = src."level" AND "team_id" = src."team_id") <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 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 WHEN NOT MATCHED THEN
INSERT ("level","team_id","user_id") VALUES (src."level", src."team_id", src."user_id") INSERT ("level","team_id","user_id") VALUES (src."level", src."team_id", src."user_id")
</insert> </insert>
<select id="list" resultType="com.bonus.bmw.subeva.entity.SubTeamEvaBean"> <select id="list" resultType="com.bonus.bmw.subeva.entity.SubTeamEvaBean">
SELECT SELECT
bsc."id",bsc."pro_id" AS proId,bp."name" AS proName,bs."sub_name" AS subName,bsc."sub_id" AS subId, bsc."id" AS id,
bsc."contract_name" AS contractName,bsc."update_time" AS conFinishTime,su."username" AS corePersonName, 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 bsr1."id") AS teamNumber,
COUNT(DISTINCT bste."team_id") AS evaTeamNumber, COUNT(DISTINCT bste."team_id") AS evaTeamNumber,
COUNT(DISTINCT CASE WHEN bste."level" = '1' THEN TRUE ELSE NULL END) AS aLevelNumber, SUM(CASE WHEN bste."level" = '1' THEN 1 ELSE 0 END) AS aLevelNumber,
COUNT(DISTINCT CASE WHEN bste."level" = '2' THEN TRUE ELSE NULL END) AS bLevelNumber, SUM(CASE WHEN bste."level" = '2' THEN 1 ELSE 0 END) AS bLevelNumber,
COUNT(DISTINCT CASE WHEN bste."level" = '3' THEN TRUE ELSE NULL END) AS cLevelNumber, SUM(CASE WHEN bste."level" = '3' THEN 1 ELSE 0 END) AS cLevelNumber,
COUNT(DISTINCT CASE WHEN bste."level" = '4' THEN TRUE ELSE NULL END) AS dLevelNumber, SUM(CASE WHEN bste."level" = '4' THEN 1 ELSE 0 END) AS dLevelNumber,
CASE WHEN bste."create_time" IS NULL THEN NULL ELSE bste."create_time" END AS conEvaTime CASE WHEN MAX(bste."create_time") IS NULL THEN NULL ELSE MAX(bste."create_time") END AS conEvaTime
FROM FROM
"ynrealname"."bm_sub_contract" bsc "ynrealname"."bm_sub_contract" bsc
LEFT JOIN "ynrealname"."bm_project" bp ON bsc."pro_id" = bp."id" 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"."bm_sub_team_eva" bste ON bsr1."v" = bste."team_id"
LEFT JOIN "ynrealname"."sys_user" su ON bsr."value" = su."id" LEFT JOIN "ynrealname"."sys_user" su ON bsr."value" = su."id"
WHERE bsc."is_complete" = '1' 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"> <if test="offset != null and offset >= 0 and limit != null and limit >= 0">
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY
</if> </if>
@ -43,13 +63,24 @@
count(bsc."id") count(bsc."id")
FROM FROM
"ynrealname"."bm_sub_contract" bsc "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' 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>
<select id="getTeamEvaById" resultType="com.bonus.bmw.subeva.entity.SubTeamEvaBean"> <select id="getTeamEvaById" resultType="com.bonus.bmw.subeva.entity.SubTeamEvaBean">
SELECT SELECT
bsr."id",bsr."v" AS teamId,bst."team_name" AS teamName,bste."level" AS evaLevel, 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 FROM
"ynrealname"."bm_sub_relation" bsr "ynrealname"."bm_sub_relation" bsr
LEFT JOIN "ynrealname"."bm_sub_team" bst ON bst."id" = bsr."v" 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秒 time: 2000 //2秒关闭如果不配置默认是3秒
}); });
window.location.href = ctxPath + "/SubProjectEvaluate/exportExamList?contractName=" + contractName 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; var layer = layui.layer;
form = layui.form; form = layui.form;
laydate = layui.laydate; laydate = layui.laydate;
getProjectSelect();
form.render(); form.render();
setTimeout(function () { setTimeout(function () {
init(); init();