Merge remote-tracking branch 'origin/main'

This commit is contained in:
2025-12-24 09:14:53 +08:00
62 changed files with 1795 additions and 436 deletions

View File

@@ -245,17 +245,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join cph_rules as b on a.rule_id = b.rule_id
where stu_no = #{stuNo} and stu_year_id = #{stuYearId};
</select>
<select id="getcphiamByOne" resultType="com.srs.comprehensive.domain.CphAuditDetails" parameterType="String">
select c.rule_name as rule_name, g.stu_year_name as stu_year_name,a.iam_score as operate_score
from cph_iam as a
left join srs_student as b on a.to_add = b.stu_id
left join cph_rules as c on a.rule_id = c.rule_id
left join srs_class as d on b.class_id = d.class_id
left join srs_majors as e on d.major_id = e.major_id
left join sys_dept as f on e.college_id = f.dept_id
left join srs_stu_year as g on a.stu_year_id = g.id
left join cph_audit_details as h on a.id = h.project_id
where b.stu_no = #{stuNo} and audit_status=6
ORDER BY a.create_time desc
</select>
</mapper>

View File

@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.srs.comprehensive.mapper.SrsCqScoreMapper">
<resultMap type="SrsCqScore" id="SrsCqScoreResult">
<result property="id" column="id"/>
<result property="stuNo" column="stu_no"/>
@@ -37,7 +37,7 @@
m.major_name,
c.class_name,
stu_year_name
from srs_cq_score cq
left join srs_student s
on s.stu_no = cq.stu_no
@@ -46,7 +46,7 @@
left JOIN srs_majors m ON c.major_id = m.major_id
left JOIN sys_dept d ON m.college_id = d.dept_id
left JOIN srs_stu_year sy ON cq.stu_year_id = sy.id
</sql>
<select id="getComprehensiveSummary" parameterType="int" statementType="CALLABLE" resultType="java.util.Map">
{CALL test2(#{id, mode=IN})}
@@ -82,8 +82,32 @@
) as t1
where t1.stu_no = #{stuNo}
</select>
<select id="getOwn2" resultType="com.srs.comprehensive.domain.Vo.CphOwnScore">
select t1.stu_year_id,t1.stu_year_name,t1.total_score,t1.iam_score,t1.sport_score,
t1.ce_score,t1.stu_score,t1.classtwo_score,t1.class_rank,t1.major_rank
from (
select a.stu_year_id,b.stu_year_name,
a.cph_score as total_score,
a.iam_score as iam_score,
a.sport_score as sport_score,
a.ce_score as ce_score,
a.stu_score as stu_score,
a.classtwo_score as classtwo_score,
a.stu_no,
RANK() OVER(PARTITION BY a.class_id,a.stu_year_id,c.grade_id ORDER BY a.cph_score DESC ) as class_rank,
RANK() OVER(PARTITION BY a.major_id,a.stu_year_id,c.grade_id ORDER BY a.cph_score DESC ) as major_rank
from cph_total_score as a
left join srs_stu_year as b on a.stu_year_id = b.id
left join srs_class as c on a.class_code = c.class_code
left join srs_student as e on a.stu_no = e.stu_no
left join srs_majors as d on c.major_id = d.major_id
ORDER BY a.stu_year_id,a.stu_no
) as t1
where t1.stu_no = #{stuNo} order by stu_year_name desc limit 3
</select>
<select id="selectSrsCqScoreList" parameterType="CphSearch" resultMap="SrsCqScoreResult">
<include refid="selectSrsCqScoreVo"/>
<where>
@@ -145,7 +169,7 @@
select '分数&lt;60' as `name`, count(*) as`value` from cph_total_score as a
where a.cph_score &lt; 60 and a.stu_year_id = #{stuYearId}
</select>
<select id="selectSrsCqScoreById" parameterType="Long" resultMap="SrsCqScoreResult">
<include refid="selectSrsCqScoreVo"/>
where cq.id = #{id}
@@ -355,9 +379,6 @@
</select>
<insert id="insertSrsCqScore" parameterType="SrsCqScore">
insert into srs_cq_score
<trim prefix="(" suffix=")" suffixOverrides=",">
@@ -383,7 +404,7 @@
<if test="delFlag != null">#{delFlag},</if>
</trim>
</insert>
<update id="updateSrsCqScore" parameterType="SrsCqScore">
update srs_cq_score
<trim prefix="SET" suffixOverrides=",">
@@ -398,20 +419,20 @@
</trim>
where id = #{id}
</update>
<delete id="deleteSrsCqScoreById" parameterType="Long">
delete
from srs_cq_score
where id = #{id}
</delete>
<delete id="deleteSrsCqScoreByIds" parameterType="String">
delete from srs_cq_score where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="getScoreDistribution" resultType="java.util.Map">
select s.stu_id, s.stu_no, s.name, s.class_id,
COALESCE(ts.score, 0) + COALESCE(ci.score, 0) + COALESCE(st.score, 0) + COALESCE(cs.score, 0) +
@@ -470,7 +491,7 @@
<if test="majorId != null">and sm.major_id = #{majorId}</if>
</where>
</select>
<select id="selectPerson"
resultType="com.srs.comprehensive.domain.Vo.SrsCeScoreClassDeptGradeMajorsStudentStuYear">
SELECT
@@ -539,5 +560,21 @@
AND stu_year_id=#{stuYearId}
</select>
</mapper>
<select id="getcphiamByOne" resultType="com.srs.comprehensive.domain.CphAuditDetails" parameterType="String">
select c.rule_name as rule_name, g.stu_year_name as stu_year_name,a.iam_score as operate_score
from cph_iam as a
left join srs_student as b on a.to_add = b.stu_id
left join cph_rules as c on a.rule_id = c.rule_id
left join srs_class as d on b.class_id = d.class_id
left join srs_majors as e on d.major_id = e.major_id
left join sys_dept as f on e.college_id = f.dept_id
left join srs_stu_year as g on a.stu_year_id = g.id
left join cph_audit_details as h on a.id = h.project_id
where b.stu_no = #{stuNo} and audit_status=6
ORDER BY a.create_time desc
</select>
<select id="getStuData" resultType="com.srs.comprehensive.domain.SrsCqScore" parameterType="String">
select a.*,b.stu_year_name from cph_total_score as a left join srs_stu_year as b on a.stu_year_id = b.id
where stu_no=#{stuNo} order by b.stu_year_name desc limit 3
</select>
</mapper>

View File

@@ -710,34 +710,69 @@
order by quantity desc limit 4
</select>
<select id="getCountbyCity" resultType="java.util.Map">
select *
from (select (case
when b.id_card = 4501 then '南宁市'
when b.id_card = 4502 then '柳州市'
when b.id_card = 4503 then '桂林市'
when b.id_card = 4504 then '梧州市'
when b.id_card = 4505 then '北海市'
when b.id_card = 4506 then '防城港市'
when b.id_card = 4507 then '钦州市'
when b.id_card = 4508 then '贵港市'
when b.id_card = 4509 then '玉林市'
when b.id_card = 4510 then '百色市'
when b.id_card = 4511 then '州市'
when b.id_card = 4512 then '河池市'
when b.id_card = 4513 then '来宾市'
when b.id_card = 4514 then '崇左市'
end) as city,
SELECT
city,
SUM(total_count) AS total_count, -- 合并外省总人数
SUM(male_count) AS male_count, -- 合并外省男生数
SUM(female_count) AS female_count,-- 合并外省女生数
-- 若需显示身份证前缀,外省统一标为“外省”,广西保留原前缀(可选)
CASE WHEN city = '外省' THEN '外省' ELSE GROUP_CONCAT(DISTINCT 身份证前缀 SEPARATOR ',') END AS 身份证前缀
FROM (
SELECT
CASE
-- 广西地市精准匹配
WHEN b.id_card = '4501' THEN '南宁市'
WHEN b.id_card = '4502' THEN '州市'
WHEN b.id_card = '4503' THEN '桂林市'
WHEN b.id_card = '4504' THEN '梧州市'
WHEN b.id_card = '4505' THEN '北海市'
WHEN b.id_card = '4506' THEN '防城港市'
WHEN b.id_card = '4507' THEN '钦州市'
WHEN b.id_card = '4508' THEN '贵港市'
WHEN b.id_card = '4509' THEN '玉林市'
WHEN b.id_card = '4510' THEN '百色市'
WHEN b.id_card = '4511' THEN '贺州市'
WHEN b.id_card = '4512' THEN '河池市'
WHEN b.id_card = '4513' THEN '来宾市'
WHEN b.id_card = '4514' THEN '崇左市'
-- 广西其他编码兜底
WHEN b.id_card LIKE '45%' THEN '广西-其他地区'
-- 所有非广西编码统一标为“外省”
ELSE '外省'
END AS city,
total_count,
male_count,
female_count
from (select left (AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4) as id_card, count (1) as total_count, sum (case when gender='男' then 1 else 0 end) as male_count, sum (case when gender='女' then 1 else 0 end) as female_count
from srs_student d left join srs_class e
on d.class_id=e.class_id
left join srs_grade f on f.grade_id=e.grade_id
where f.grade_status in (1, 3)
GROUP BY left (AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4)) b) c
where c.city is not null;
female_count,
b.id_card AS 身份证前缀
FROM (
SELECT
t.id_card,
COUNT(1) AS total_count,
SUM(CASE WHEN COALESCE(gender, '') = '男' THEN 1 ELSE 0 END) AS male_count,
SUM(CASE WHEN COALESCE(gender, '') = '女' THEN 1 ELSE 0 END) AS female_count
FROM (
SELECT
-- 处理解密NULL的情况转为空字符串
COALESCE(LEFT(AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4), '') AS id_card,
gender
FROM srs_student d
LEFT JOIN srs_class e ON d.class_id = e.class_id
LEFT JOIN srs_grade f ON f.grade_id = e.grade_id
WHERE f.grade_status IN (1, 3)
) t
GROUP BY t.id_card
) b
) c
-- 按 city 分组:广西各地市单独分组,外省合并为一组
GROUP BY city
-- 可选:排序(广西地市在前,外省在后)
ORDER BY
CASE
WHEN city = '外省' THEN 2
WHEN city = '广西-其他地区' THEN 1
ELSE 0
END,
city;
</select>
<select id="getSchoolCountbyGrade" resultType="java.util.Map">
select c.grade_code, count(1) as number
@@ -762,33 +797,49 @@
and gender is not null
</select>
<select id="getNotSchoolTotalCount" resultType="java.util.Map">
select sum(total_count) as number
from (select (case
when b.id_card = 4501 then '南宁市'
when b.id_card = 4502 then '柳州市'
when b.id_card = 4503 then '桂林市'
when b.id_card = 4504 then '州市'
when b.id_card = 4505 then '北海市'
when b.id_card = 4506 then '防城港市'
when b.id_card = 4507 then '钦州市'
when b.id_card = 4508 then '贵港市'
when b.id_card = 4509 then '玉林市'
when b.id_card = 4510 then '百色市'
when b.id_card = 4511 then '贺州市'
when b.id_card = 4512 then '河池市'
when b.id_card = 4513 then '来宾市'
when b.id_card = 4514 then '崇左市'
end) as city,
SELECT SUM(total_count) AS number
FROM (
SELECT
CASE
WHEN b.id_card = 4501 THEN '南宁市'
WHEN b.id_card = 4502 THEN '州市'
WHEN b.id_card = 4503 THEN '桂林市'
WHEN b.id_card = 4504 THEN '梧州市'
WHEN b.id_card = 4505 THEN '北海市'
WHEN b.id_card = 4506 THEN '防城港市'
WHEN b.id_card = 4507 THEN '钦州市'
WHEN b.id_card = 4508 THEN '贵港市'
WHEN b.id_card = 4509 THEN '玉林市'
WHEN b.id_card = 4510 THEN '百色市'
WHEN b.id_card = 4511 THEN '贺州市'
WHEN b.id_card = 4512 THEN '河池市'
WHEN b.id_card = 4513 THEN '来宾市'
WHEN b.id_card = 4514 THEN '崇左市'
END AS city,
total_count,
male_count,
female_count
from (select left (AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4) as id_card, count (1) as total_count, sum (case when gender='男' then 1 else 0 end) as male_count, sum (case when gender='女' then 1 else 0 end) as female_count
from srs_student d left join srs_class e
on d.class_id=e.class_id
left join srs_grade f on f.grade_id=e.grade_id
where f.grade_status in (1, 3)
GROUP BY left (AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4)) b) c
where c.city is null
FROM (
-- 优化先解密别名避免GROUP BY重复计算解密逻辑
SELECT
t.id_card,
COUNT(1) AS total_count, -- 关键COUNT与括号无空格
SUM(CASE WHEN gender = '男' THEN 1 ELSE 0 END) AS male_count,
SUM(CASE WHEN gender = '女' THEN 1 ELSE 0 END) AS female_count
FROM (
SELECT
LEFT(AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4) AS id_card, -- 关键LEFT与括号无空格
gender
FROM srs_student d
LEFT JOIN srs_class e ON d.class_id = e.class_id
LEFT JOIN srs_grade f ON f.grade_id = e.grade_id
WHERE f.grade_status IN (1, 3)
) t
GROUP BY t.id_card -- 直接用别名,避免重复解密
) b
) c
WHERE c.city IS NULL;
</select>
<select id="getMajorsCount" resultType="java.util.Map">
select d.dept_name as deptName,

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.srs.comprehensive.mapper.SyncDataMapper">
<select id="getEmployEEInfoList" resultType="java.util.Map">
SELECT TBA.GH as zgh,TBA.XM as xm,CASE
WHEN XBDM = 1 THEN '男'
WHEN XBDM = 2 THEN '女'
ELSE '未知' -- 可选添加默认值避免NULL
END as xb,TBD.BMMC as ksmc,TBD.BMMC as yxmc,TBD.BMBH as ksh,TBA.ZGDQZTDM as zgzt from from_gxsdxyxxzx_teacher TBA LEFT JOIN from_gxsdxyxxzx_xzbm TBD ON TBA.SZBMBH=TBD.BMBH
WHERE TBA.ZGLBDM LIKE '1%'
</select>
</mapper>