fix(hidden-evaluation): 修复隐藏评估详情查询和统计功能

main
zhaokai 2026-04-14 17:39:59 +08:00
parent a4fb0250a0
commit 858ebd80e7
4 changed files with 57 additions and 44 deletions

View File

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.hidden.evaluation.command.convertor.HiddenEvaluationDetailCoConvertor; import com.zcloud.hidden.evaluation.command.convertor.HiddenEvaluationDetailCoConvertor;
import com.zcloud.hidden.evaluation.domain.enums.EvaluationResultEnum;
import com.zcloud.hidden.evaluation.dto.HiddenEvaluationDetailCompleteQry; import com.zcloud.hidden.evaluation.dto.HiddenEvaluationDetailCompleteQry;
import com.zcloud.hidden.evaluation.dto.HiddenEvaluationDetailPageQry; import com.zcloud.hidden.evaluation.dto.HiddenEvaluationDetailPageQry;
import com.zcloud.hidden.evaluation.dto.HiddenEvaluationDetailQry; import com.zcloud.hidden.evaluation.dto.HiddenEvaluationDetailQry;
@ -70,6 +71,12 @@ public class HiddenEvaluationDetailQueryExe {
// 无考评详情,返回未考评的列表 // 无考评详情,返回未考评的列表
return hiddenEvaluationDetailCoConvertor.convertConfigsToNotEvaluatedCOs(listByCorpId); return hiddenEvaluationDetailCoConvertor.convertConfigsToNotEvaluatedCOs(listByCorpId);
} }
//如果考评完成,直接返回所有考评列表
if(!EvaluationResultEnum.NOT_EVALUATED.getCode().equals(infoByHiddenId.getEvaluationResult())){
return hiddenEvaluationDetailCoConvertor.converDOsToCOs(allListByHidden);
}
// 提取已考评的用户 ID 集合 // 提取已考评的用户 ID 集合
Set<Long> evaluatedUserIds = allListByHidden.stream() Set<Long> evaluatedUserIds = allListByHidden.stream()
.map(HiddenEvaluationDetailDO::getEvaluationUserId) .map(HiddenEvaluationDetailDO::getEvaluationUserId)

View File

@ -244,11 +244,12 @@
</select> </select>
<select id="corpEvalStatisticsPage" resultType="com.zcloud.hidden.evaluation.persistence.dataobject.CorpEvalStatisticsDO"> <select id="corpEvalStatisticsPage" resultType="com.zcloud.hidden.evaluation.persistence.dataobject.CorpEvalStatisticsDO">
SELECT SELECT ci.id AS corpinfoId,
ci.id AS corpinfoId,
ci.corp_name AS corpinfoName, ci.corp_name AS corpinfoName,
COUNT(DISTINCT CASE WHEN her.evaluation_result != 1 THEN h.id END) AS completeEvaluationHiddenNum, COUNT(DISTINCT CASE WHEN her.evaluation_result != 1 THEN h.id END) AS completeEvaluationHiddenNum,
COUNT(DISTINCT CASE WHEN her.id IS NULL OR her.evaluation_result = 1 THEN h.id END) AS waitEvaluationHiddenNum, COUNT(DISTINCT CASE
WHEN her.id IS NULL OR her.evaluation_result = 1
THEN h.id END) AS waitEvaluationHiddenNum,
COUNT(DISTINCT CASE WHEN hu.corpinfo_id = ci.id THEN h.creator_id END) AS involveRewardPersonNum, COUNT(DISTINCT CASE WHEN hu.corpinfo_id = ci.id THEN h.creator_id END) AS involveRewardPersonNum,
COUNT(DISTINCT CASE WHEN her.exchange_flag = 1 AND hu.corpinfo_id = ci.id THEN h.id END) AS exchangedHiddenNum, COUNT(DISTINCT CASE WHEN her.exchange_flag = 1 AND hu.corpinfo_id = ci.id THEN h.id END) AS exchangedHiddenNum,
COUNT(DISTINCT CASE COUNT(DISTINCT CASE
@ -258,12 +259,16 @@
FROM evaluation_config ec FROM evaluation_config ec
LEFT JOIN department dep ON ec.department_id = dep.id LEFT JOIN department dep ON ec.department_id = dep.id
LEFT JOIN user usr ON ec.user_id = usr.id LEFT JOIN user usr ON ec.user_id = usr.id
WHERE ec.corpinfo_id = ci.id AND ec.delete_enum = 'FALSE' AND ec.evaluation_type = 1) AS safeEvaluationMember, WHERE ec.corpinfo_id = ci.id
AND ec.delete_enum = 'FALSE'
AND ec.evaluation_type = 1) AS safeEvaluationMember,
(SELECT GROUP_CONCAT(DISTINCT CONCAT(dep.name, '-', usr.name)) (SELECT GROUP_CONCAT(DISTINCT CONCAT(dep.name, '-', usr.name))
FROM evaluation_config ec FROM evaluation_config ec
LEFT JOIN department dep ON ec.department_id = dep.id LEFT JOIN department dep ON ec.department_id = dep.id
LEFT JOIN user usr ON ec.user_id = usr.id LEFT JOIN user usr ON ec.user_id = usr.id
WHERE ec.corpinfo_id = ci.id AND ec.delete_enum = 'FALSE' AND ec.evaluation_type = 2) AS envEvaluationMember WHERE ec.corpinfo_id = ci.id
AND ec.delete_enum = 'FALSE'
AND ec.evaluation_type = 2) AS envEvaluationMember
FROM corp_info ci FROM corp_info ci
LEFT JOIN user hu ON hu.corpinfo_id = ci.id LEFT JOIN user hu ON hu.corpinfo_id = ci.id
LEFT JOIN hidden h ON hu.id = h.creator_id AND h.delete_enum = 'FALSE' AND h.state = 301 AND LEFT JOIN hidden h ON hu.id = h.creator_id AND h.delete_enum = 'FALSE' AND h.state = 301 AND

View File

@ -10,14 +10,14 @@
left join user u on u.id = heb.operate_user_id left join user u on u.id = heb.operate_user_id
where heb.delete_enum = 'FALSE' where heb.delete_enum = 'FALSE'
and heb.exchange_user_id = #{params.exchangeUserId} and heb.exchange_user_id = #{params.exchangeUserId}
<!-- 兑换开始时间 --> <!-- 兑换开始时间 -->
<if test="params.exchangeStartTime != null and params.exchangeStartTime != ''"> <if test="params.exchangeStartTime != null and params.exchangeStartTime != ''">
AND heb.exchange_time >= #{params.exchangeStartTime} AND heb.exchange_time >= DATE_FORMAT(CONCAT(#{params.exchangeStartTime}, ' 00:00:00'), '%Y-%m-%d %H:%i:%s')
</if> </if>
<!-- 兑换结束时间 --> <!-- 兑换结束时间 -->
<if test="params.exchangeEndTime != null and params.exchangeEndTime != ''"> <if test="params.exchangeEndTime != null and params.exchangeEndTime != ''">
AND heb.exchange_time &lt;= #{params.exchangeEndTime} AND heb.exchange_time &lt; DATE_FORMAT(DATE_ADD(#{params.exchangeEndTime}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%s')
</if> </if>

View File

@ -49,15 +49,16 @@
AND h.hidden_type = #{params.hiddenType} AND h.hidden_type = #{params.hiddenType}
</if> </if>
<!-- 兑换开始时间 --> <!-- 兑换开始时间 -->
<if test="params.exchangeStartTime != null and params.exchangeStartTime != ''"> <if test="params.exchangeStartTime != null and params.exchangeStartTime != ''">
AND her.exchange_time >= #{params.exchangeStartTime} AND her.exchange_time >= DATE_FORMAT(CONCAT(#{params.exchangeStartTime}, ' 00:00:00'), '%Y-%m-%d %H:%i:%s')
</if> </if>
<!-- 兑换结束时间 --> <!-- 兑换结束时间 -->
<if test="params.exchangeEndTime != null and params.exchangeEndTime != ''"> <if test="params.exchangeEndTime != null and params.exchangeEndTime != ''">
AND her.exchange_time &lt;= #{params.exchangeEndTime} AND her.exchange_time &lt; DATE_FORMAT(DATE_ADD(#{params.exchangeEndTime}, INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%s')
</if> </if>
GROUP BY h.hidden_id GROUP BY h.hidden_id
ORDER BY u.sort, u.create_time desc ORDER BY u.sort, u.create_time desc