修复思想品德加分问题

This commit is contained in:
zhy
2025-09-13 22:38:42 +08:00
parent 7b66a16a40
commit a0c41f5520
8 changed files with 226 additions and 3 deletions

View File

@@ -177,4 +177,72 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join cph_iam as b on a.iam_id = b.id
where b.audit_status not in (6,12)
</select>
<select id="checkIamList" resultType="CheckIam">
-- 先将两个查询结果作为子查询,再进行比较
SELECT
q2.stu_year_id,
q2.stu_no,
q2.iam_score AS q2_score,
q1.iam_score AS q1_score,
-- 标记差异类型
CASE
WHEN q1.iam_score IS NULL THEN '加分记录表中不存在'
ELSE '分数不相等'
END AS diff_type
FROM
(
-- 第二个查询作为子查询q2
SELECT
b.stu_year_id,
c.stu_no,
SUM(b.iam_score) AS iam_score
FROM
cph_audit_details AS a
LEFT JOIN cph_iam AS b ON a.project_id = b.id
LEFT JOIN view_stu_info AS c ON b.to_add = c.stu_id
WHERE
a.status_code = 6
GROUP BY
b.stu_year_id,
c.stu_no
) AS q2
LEFT JOIN (
-- 第一个查询作为子查询q1
SELECT
a.stu_year_id,
a.stu_no,
SUM(record_score) AS iam_score
FROM
srs_add_record AS a
GROUP BY
a.stu_year_id,
a.stu_no
) AS q1 ON q2.stu_year_id = q1.stu_year_id
AND q2.stu_no = q1.stu_no
WHERE
-- 条件要么q1中不存在要么分数不相等
q1.iam_score IS NULL
OR q2.iam_score != q1.iam_score;
</select>
<select id="listCheckAudit" parameterType="CheckIam" resultType="CphAuditDetails">
SELECT
a.*,b.iam_score,b.audit_status,c.stu_no,b.stu_year_id
FROM
cph_audit_details AS a
LEFT JOIN cph_iam AS b ON a.project_id = b.id
LEFT JOIN view_stu_info AS c ON b.to_add = c.stu_id
WHERE
a.status_code = 6
and c.stu_no = #{stuNo}
and b.stu_year_id = #{stuYearId}
</select>
<select id="ListCheckRecord" parameterType="CheckIam" resultType="SrsAddRecord">
select a.*,b.rule_name
from srs_add_record as a
left join cph_rules as b on a.rule_id = b.rule_id
where stu_no = #{stuNo} and stu_year_id = #{stuYearId};
</select>
</mapper>