隐患考评调整

main
zhaokai 2026-04-13 16:52:35 +08:00
parent 822acaca7d
commit 571d04a1ad
1 changed files with 72 additions and 54 deletions

View File

@ -245,62 +245,76 @@
<select id="corpEvalStatisticsPage" resultType="com.zcloud.hidden.evaluation.persistence.dataobject.CorpEvalStatisticsDO">
SELECT
ci.id AS corpinfoId,
ci.corp_name AS corpinfoName,
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 h.creator_id ) AS involveRewardPersonNum,
COUNT(DISTINCT CASE WHEN her.exchange_flag = 1 THEN h.id END) AS exchangedHiddenNum,
COUNT(DISTINCT CASE WHEN her.exchange_flag IS NOT NULL and her.evaluation_result=2 and her.exchange_flag = 0 THEN h.id END) AS totalExchangeHiddenNum,
(SELECT GROUP_CONCAT(DISTINCT CONCAT(dep.name, '-', usr.name))
FROM evaluation_config ec
LEFT JOIN department dep ON ec.department_id = dep.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,
(SELECT GROUP_CONCAT(DISTINCT CONCAT(dep.name, '-', usr.name))
FROM evaluation_config ec
LEFT JOIN department dep ON ec.department_id = dep.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
FROM hidden h
LEFT JOIN corp_info ci ON h.corp_id = ci.id AND ci.delete_enum = 'FALSE'
left join evaluation_corp ecorp ON h.corp_id = ecorp.corpinfo_id AND ecorp.delete_enum = 'FALSE'
LEFT JOIN hidden_evaluation_record her ON h.hidden_id = her.hidden_id AND her.delete_enum = 'FALSE'
LEFT JOIN evaluation_config ec ON h.corp_id = ec.corpinfo_id AND ec.delete_enum = 'FALSE'
LEFT JOIN department configDept ON ec.department_id = configDept.id
LEFT JOIN user configUser ON ec.user_id = configUser.id
ci.id AS corpinfoId,
ec.delete_enum,
ci.corp_name AS corpinfoName,
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 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 IS NOT NULL AND her.evaluation_result = 2 AND her.exchange_flag = 0 AND hu.corpinfo_id = ci.id THEN h.id END) AS totalExchangeHiddenNum,
(SELECT GROUP_CONCAT(DISTINCT CONCAT(dep.name, '-', usr.name))
FROM evaluation_config ec
LEFT JOIN department dep ON ec.department_id = dep.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,
(SELECT GROUP_CONCAT(DISTINCT CONCAT(dep.name, '-', usr.name))
FROM evaluation_config ec
LEFT JOIN department dep ON ec.department_id = dep.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
FROM (
-- 主数据源:配置企业 + type=2企业
SELECT DISTINCT
ecorp.corpinfo_id,
ecorp.delete_enum
FROM evaluation_corp ecorp
WHERE ecorp.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 EXISTS (
SELECT 1 FROM evaluation_config ec2
WHERE ec2.corpinfo_id = h.corp_id
AND ec2.delete_enum = 'FALSE'
AND (
(ec2.evaluation_type = 1 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'))
OR
(ec2.evaluation_type = 2 AND h.hidden_type IN ('wshb','hjwr','ws','dq','zs','gf','hjwsjlh','yqfk','wshb-qt'))
)
UNION
SELECT DISTINCT
ci.id AS corpinfo_id,
'FALSE' AS delete_enum
FROM corp_info ci
WHERE ci.delete_enum = 'FALSE'
AND ci.type = 2
AND ci.use_flag = 1
) ec
LEFT JOIN corp_info ci ON ec.corpinfo_id = ci.id AND ci.delete_enum = 'FALSE'
-- 关联考评配置表(用于筛选部门、考评人)
LEFT JOIN evaluation_config ecConfig ON ec.corpinfo_id = ecConfig.corpinfo_id AND ecConfig.delete_enum = 'FALSE'
LEFT JOIN department configDept ON ecConfig.department_id = configDept.id
LEFT JOIN user configUser ON ecConfig.user_id = configUser.id
-- 关联隐患数据
LEFT JOIN hidden h
ON h.corp_id = ec.corpinfo_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 EXISTS (
SELECT 1 FROM evaluation_config ec2
WHERE ec2.corpinfo_id = h.corp_id AND ec2.delete_enum = 'FALSE'
AND (
(ec2.evaluation_type = 1 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'))
OR
(ec2.evaluation_type = 2 AND h.hidden_type IN ('wshb','hjwr','ws','dq','zs','gf','hjwsjlh','yqfk','wshb-qt'))
)
)
LEFT JOIN user hu ON h.creator_id = hu.id
LEFT JOIN hidden_evaluation_record her
ON h.hidden_id = her.hidden_id
AND her.delete_enum = 'FALSE'
WHERE ci.use_flag = 1
<!-- 原有筛选条件:部门 + 考评人姓名 -->
<if test="params.departmentId != null and params.departmentId != ''">
AND configDept.id = #{params.departmentId}
</if>
<if test="params.evaluationUserName != null and params.evaluationUserName != ''">
AND configUser.name LIKE CONCAT('%', #{params.evaluationUserName}, '%')
</if>
GROUP BY ci.id, ci.corp_name
order by CASE WHEN ci.type = 2 THEN 0 ELSE 1 END,
ci.corp_order ASC
GROUP BY ci.id, ci.corp_name, ec.delete_enum
ORDER BY CASE WHEN ci.type = 2 THEN 0 ELSE 1 END, ci.corp_order ASC
</select>
<select id="userEvalStatisticsPage" resultType="com.zcloud.hidden.evaluation.persistence.dataobject.UserEvalStatisticsDO">
@ -316,7 +330,7 @@
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 evaluation_corp ecorp left join hidden h on ecorp.corpinfo_id = h.corp_id
LEFT JOIN user u ON h.creator_id = u.id
inner JOIN user u ON h.creator_id = u.id and u.corpinfo_id= #{params.corpinfoId}
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'
@ -437,10 +451,14 @@
COUNT(DISTINCT CASE WHEN her.evaluation_result IN (2,3) THEN h.id END)
) AS reviewHiddenCount,
COUNT(DISTINCT CASE WHEN her.exchange_flag = 1 THEN h.id END) AS exchangeScoreCount,
COUNT(DISTINCT CASE WHEN her.evaluation_result = 2 AND her.exchange_flag = 0 THEN h.id END) AS unExchangeScoreCount
FROM evaluation_config ec
COUNT(DISTINCT CASE
WHEN her.exchange_flag = 1 AND u.corpinfo_id = ecorp.corpinfo_id
THEN h.id END) AS exchangeScoreCount,
COUNT(DISTINCT CASE
WHEN her.evaluation_result = 2 AND her.exchange_flag = 0 AND u.corpinfo_id = ecorp.corpinfo_id
THEN h.id END) AS unExchangeScoreCount
FROM evaluation_corp ecorp
LEFT JOIN evaluation_config ec on ecorp.corpinfo_id = ec.corpinfo_id AND ecorp.delete_enum = 'FALSE'
LEFT JOIN corp_info ci
ON ec.corpinfo_id = ci.id AND ci.delete_enum = 'FALSE'
LEFT JOIN hidden h