From 38711db39a9eed79752c0ffcdf8c35d4505c84a9 Mon Sep 17 00:00:00 2001 From: lishiwei <3230787218@qq.com> Date: Tue, 9 Jun 2026 17:33:28 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E7=94=A8=E6=88=B7=E8=80=83=E6=A0=B8?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=E5=88=86?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E7=B1=BB=E7=8E=AF=E4=BF=9D=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clientobject/UserEvalStatisticsCO.java | 2 + .../dataobject/UserEvalStatisticsDO.java | 2 + .../HiddenEvaluationRecordRepositoryImpl.java | 2 + .../mapper/HiddenEvaluationRecordMapper.xml | 172 ++++++++++++++---- 4 files changed, 140 insertions(+), 38 deletions(-) diff --git a/web-client/src/main/java/com/zcloud/hidden/evaluation/dto/clientobject/UserEvalStatisticsCO.java b/web-client/src/main/java/com/zcloud/hidden/evaluation/dto/clientobject/UserEvalStatisticsCO.java index e71dbdd..022d918 100644 --- a/web-client/src/main/java/com/zcloud/hidden/evaluation/dto/clientobject/UserEvalStatisticsCO.java +++ b/web-client/src/main/java/com/zcloud/hidden/evaluation/dto/clientobject/UserEvalStatisticsCO.java @@ -29,6 +29,8 @@ public class UserEvalStatisticsCO implements Serializable { private String departmentName; @ApiModelProperty(value = "岗位") private String postName; + @ApiModelProperty(value = "考评类型,1:安全类,2:环保类") + private String evaluationType; @ApiModelProperty(value = "奖励总得分") private Integer totalScore; @ApiModelProperty(value = "已兑换分数") diff --git a/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/dataobject/UserEvalStatisticsDO.java b/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/dataobject/UserEvalStatisticsDO.java index cdeff4e..6ac8071 100644 --- a/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/dataobject/UserEvalStatisticsDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/dataobject/UserEvalStatisticsDO.java @@ -29,6 +29,8 @@ public class UserEvalStatisticsDO implements Serializable { private String departmentName; @ApiModelProperty(value = "岗位") private String postName; + @ApiModelProperty(value = "考评类型,1:安全类,2:环保类") + private String evaluationType; @ApiModelProperty(value = "奖励总得分") private Integer totalScore; @ApiModelProperty(value = "已兑换分数") diff --git a/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/impl/HiddenEvaluationRecordRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/impl/HiddenEvaluationRecordRepositoryImpl.java index 4a6c6d8..a37e125 100644 --- a/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/impl/HiddenEvaluationRecordRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/hidden/evaluation/persistence/repository/impl/HiddenEvaluationRecordRepositoryImpl.java @@ -84,6 +84,8 @@ public class HiddenEvaluationRecordRepositoryImpl extends BaseRepositoryImpl) iPage).setOptimizeCountSql(false); IPage result = hiddenEvaluationRecordMapper.userEvalStatisticsPage(iPage, params,menuPerms); return PageHelper.pageToResponse(result, result.getRecords()); } diff --git a/web-infrastructure/src/main/resources/mapper/HiddenEvaluationRecordMapper.xml b/web-infrastructure/src/main/resources/mapper/HiddenEvaluationRecordMapper.xml index 2ea5dae..45629ba 100644 --- a/web-infrastructure/src/main/resources/mapper/HiddenEvaluationRecordMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/HiddenEvaluationRecordMapper.xml @@ -4,6 +4,39 @@ + + SELECT DISTINCT + u_inner.id AS userId, + u_inner.username AS userName, + u_inner.name, + u_inner.department_id AS departmentId, + u_inner.corpinfo_id AS corpinfoId, + d_inner.name AS departmentName, + p_inner.post_name AS postName + FROM hidden h_inner + INNER JOIN user u_inner ON h_inner.creator_id = u_inner.id + LEFT JOIN department d_inner ON u_inner.department_id = d_inner.id + LEFT JOIN post p_inner ON u_inner.post_id = p_inner.id + WHERE h_inner.delete_enum = 'FALSE' + AND h_inner.state = 301 + AND ((h_inner.source IN (4,5) AND h_inner.final_check = 1) OR h_inner.source NOT IN (4,5)) + + AND u_inner.corpinfo_id = #{params.corpinfoId} + + + AND d_inner.id = #{params.departmentId} + + + AND u_inner.name LIKE CONCAT('%', #{params.userName}, '%') + + + AND u_inner.id IN + + #{item} + + + + SELECT - ci.corp_name as corpinfoName, - h.creator_id as userId, + ci.corp_name AS corpinfoName, + u.id AS userId, u.username AS userName, - u.name AS name, - u.department_id as departmentId, + u.name, + u.department_id AS departmentId, d.name AS departmentName, p.post_name AS postName, - COUNT(DISTINCT CASE WHEN her.evaluation_result =2 THEN h.id END) AS totalScore, + 1 AS evaluationType, + COUNT(DISTINCT CASE WHEN her.evaluation_result = 2 THEN h.id END) AS totalScore, COUNT(DISTINCT CASE WHEN her.exchange_flag = 1 THEN h.id END) AS exchangedScore, - COUNT(DISTINCT CASE WHEN her.exchange_flag = 0 and her.evaluation_result=2 THEN h.id END) AS notExchangedScore - FROM hidden h left join evaluation_corp ecorp on ecorp.corpinfo_id = h.corp_id - inner JOIN user u ON h.creator_id = u.id - LEFT JOIN department d ON u.department_id = d.id - left join post p ON u.post_id = p.id - left join corp_info ci ON h.corp_id = ci.id AND ci.delete_enum = 'FALSE' - LEFT JOIN hidden_evaluation_record her ON h.hidden_id = her.hidden_id AND her.delete_enum = 'FALSE' - WHERE h.delete_enum = 'FALSE' - AND h.state = 301 - AND ( - (h.source IN (4,5) AND h.final_check = 1) - OR h.source NOT IN (4,5) - ) - - AND u.corpinfo_id= #{params.corpinfoId} - - - AND d.id = #{params.departmentId} - - - AND u.name LIKE CONCAT('%', #{params.userName}, '%') - + COUNT(DISTINCT CASE WHEN her.exchange_flag = 0 AND her.evaluation_result = 2 THEN h.id END) AS notExchangedScore + FROM user u + LEFT JOIN department d ON u.department_id = d.id + LEFT JOIN post p ON u.post_id = p.id + LEFT JOIN corp_info ci ON u.corpinfo_id = ci.id AND ci.delete_enum = 'FALSE' + LEFT JOIN hidden h ON h.creator_id = u.id + AND h.delete_enum = 'FALSE' + AND h.state = 301 + AND ((h.source IN (4,5) AND h.final_check = 1) OR h.source NOT IN (4,5)) + AND h.hidden_type IN ('aqyh','rdbaqys','wzcz','wzzh','grfhyp','wdbaqzt','jxsb','hcl','dqsb','gsj','aqbhzz','ss','xf','tzsb','hjdbaqys','zmjdgyxbj','aqbzbs','gkkd','zykjxzzl','eltq','gldqx','wzdhzdlsbdw','wfacs','jypx','aqyh-qt') + LEFT JOIN hidden_evaluation_record her ON h.hidden_id = her.hidden_id + AND her.evaluation_type = 1 + AND her.delete_enum = 'FALSE' + WHERE u.delete_enum = 'FALSE' + AND EXISTS ( + SELECT 1 FROM hidden h_exist + WHERE h_exist.creator_id = u.id + AND h_exist.delete_enum = 'FALSE' + AND h_exist.state = 301 + AND ((h_exist.source IN (4,5) AND h_exist.final_check = 1) OR h_exist.source NOT IN (4,5)) + ) + + AND u.corpinfo_id = #{params.corpinfoId} + + + AND d.id = #{params.departmentId} + + + AND u.name LIKE CONCAT('%', #{params.userName}, '%') + + + AND u.id IN + + #{item} + + + GROUP BY u.id, u.username, u.name, u.department_id, d.name, p.post_name, ci.corp_name - - and h.creator_id in - - #{item} - - - GROUP BY h.creator_id - ORDER BY u.sort ,u.create_time desc + UNION ALL + + SELECT + ci.corp_name AS corpinfoName, + u.id AS userId, + u.username AS userName, + u.name, + u.department_id AS departmentId, + d.name AS departmentName, + p.post_name AS postName, + 2 AS evaluationType, + COUNT(DISTINCT CASE WHEN her.evaluation_result = 2 THEN h.id END) AS totalScore, + COUNT(DISTINCT CASE WHEN her.exchange_flag = 1 THEN h.id END) AS exchangedScore, + COUNT(DISTINCT CASE WHEN her.exchange_flag = 0 AND her.evaluation_result = 2 THEN h.id END) AS notExchangedScore + FROM user u + LEFT JOIN department d ON u.department_id = d.id + LEFT JOIN post p ON u.post_id = p.id + LEFT JOIN corp_info ci ON u.corpinfo_id = ci.id AND ci.delete_enum = 'FALSE' + LEFT JOIN hidden h ON h.creator_id = u.id + AND h.delete_enum = 'FALSE' + AND h.state = 301 + AND ((h.source IN (4,5) AND h.final_check = 1) OR h.source NOT IN (4,5)) + AND h.hidden_type IN ('wshb','hjwr','ws','dq','zs','gf','hjwsjlh','yqfk','wshb-qt') + LEFT JOIN hidden_evaluation_record her ON h.hidden_id = her.hidden_id + AND her.evaluation_type = 2 + AND her.delete_enum = 'FALSE' + WHERE u.delete_enum = 'FALSE' + AND EXISTS ( + SELECT 1 FROM hidden h_exist + WHERE h_exist.creator_id = u.id + AND h_exist.delete_enum = 'FALSE' + AND h_exist.state = 301 + AND ((h_exist.source IN (4,5) AND h_exist.final_check = 1) OR h_exist.source NOT IN (4,5)) + ) + + AND u.corpinfo_id = #{params.corpinfoId} + + + AND d.id = #{params.departmentId} + + + AND u.name LIKE CONCAT('%', #{params.userName}, '%') + + + AND u.id IN + + #{item} + + + GROUP BY u.id, u.username, u.name, u.department_id, d.name, p.post_name, ci.corp_name + + ORDER BY userId ASC