Files
zhxg_java/srs-stureg/src/main/resources/mapper/stureg/SrsStuRegCountMapper.xml

246 lines
12 KiB
XML
Raw Normal View History

2025-07-28 15:14:11 +08:00
<?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.stureg.mapper.SrsStuRegCountMapper">
<resultMap id="ExistKsh" type="SrsStuReg">
<result property="KSH" column="KSH"/>
</resultMap>
<resultMap type="SrsStuReg" id="SrsStuRegResult">
<result property="id" column="id"/>
<result property="XSXM" column="XSXM"/>
<result property="KSH" column="KSH"/>
<result property="SFZH" column="SFZH"/>
<result property="SJH" column="SJH"/>
<result property="XB" column="XB"/>
<result property="ZZMM" column="ZZMM"/>
<result property="MZ" column="MZ"/>
<result property="XH" column="XH"/>
<result property="XY" column="XY"/>
<result property="XYDM" column="XYDM"/>
<result property="ZY" column="ZY"/>
<result property="ZYDM" column="ZYDM"/>
<result property="BJ" column="BJ"/>
<result property="BJDM" column="BJDM"/>
<result property="lastSchool" column="last_school"/>
<result property="lastSchoolAddr" column="last_school_addr"/>
<result property="famName" column="fam_name"/>
<result property="famRelation" column="fam_relation"/>
<result property="famPhone" column="fam_phone"/>
<result property="famNowAddr" column="fam_now_addr"/>
<result property="sfzAddr" column="sfz_addr"/>
<result property="regStatus" column="reg_status"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="delFlag" column="del_flag"/>
<result property="isChangePwd" column="is_change_pwd"/>
<result property="dorm" column="dorm"/>
<result property="isLoan" column="is_loan"/>
<result property="isDirection" column="is_direction"/>
<result property="loanNo" column="loan_no"/>
<result property="deptId" column="dept_id" />
<result property="majorId" column="major_id" />
<result property="classId" column="class_id" />
</resultMap>
<sql id="selectSrsStuRegVo">
select a.*,
case c.room_no is NULL
when true then "无"
else concat(c.park_name,' ',c.building_name,' ',c.room_no) end as dorm
from srs_stu_reg as a
left join dms_new_reg as b on a.KSH = b.ksh
left join view_dorm_info as c on b.dormitory_id = c.id
</sql>
<!--查询全部-->
<select id="selectTable" resultType="java.util.HashMap">
select *
from ${tableName}
</select>
<!--查询条数-->
<select id="selectTableCount" resultType="int">
select count(1)
from ${tableName}
</select>
<select id="countDept" resultType="Map">
select dept_name,
b.xydm,
case when total is null then 0 else total end as total,
case when xytotal is null then 0 else xytotal end as xytotal,
case when jftotal is null then 0 else jftotal end as jftotal
from (select dept_name, dept_code from sys_dept where parent_id = 1014 and dept_name like '%学院%') a
left join (select xydm, (select count(1) from srs_stu_reg) as total, count(1) as xytotal
from srs_stu_reg
group by xydm) b on a.dept_code = b.xydm
left join (select xydm, count(1) as jftotal
from srs_stu_reg
where reg_status = 1
group by xydm) c on b.xydm = c.xydm
</select>
<select id="countArea" resultType="DataScreen" parameterType="SrsStuReg">
SELECT
COUNT(ksh) AS `value`,
CASE
WHEN a.sfz_addr LIKE '%北京%' THEN '北京'
WHEN a.sfz_addr LIKE '%天津%' THEN '天津'
WHEN a.sfz_addr LIKE '%河北%' THEN '河北'
WHEN a.sfz_addr LIKE '%山西%' THEN '山西'
WHEN a.sfz_addr LIKE '%内蒙古%' THEN '内蒙古'
WHEN a.sfz_addr LIKE '%辽宁%' THEN '辽宁'
WHEN a.sfz_addr LIKE '%吉林%' THEN '吉林'
WHEN a.sfz_addr LIKE '%黑龙江%' THEN '黑龙江'
WHEN a.sfz_addr LIKE '%上海%' THEN '上海'
WHEN a.sfz_addr LIKE '%江苏%' THEN '江苏'
WHEN a.sfz_addr LIKE '%浙江%' THEN '浙江'
WHEN a.sfz_addr LIKE '%安徽%' THEN '安徽'
WHEN a.sfz_addr LIKE '%福建%' THEN '福建'
WHEN a.sfz_addr LIKE '%江西%' THEN '江西'
WHEN a.sfz_addr LIKE '%山东%' THEN '山东'
WHEN a.sfz_addr LIKE '%河南%' THEN '河南'
WHEN a.sfz_addr LIKE '%湖北%' THEN '湖北'
WHEN a.sfz_addr LIKE '%湖南%' THEN '湖南'
WHEN a.sfz_addr LIKE '%广东%' THEN '广东'
WHEN a.sfz_addr LIKE '%广西%' THEN '广西'
WHEN a.sfz_addr LIKE '%海南%' THEN '海南'
WHEN a.sfz_addr LIKE '%重庆%' THEN '重庆'
WHEN a.sfz_addr LIKE '%四川%' THEN '四川'
WHEN a.sfz_addr LIKE '%贵州%' THEN '贵州'
WHEN a.sfz_addr LIKE '%云南%' THEN '云南'
WHEN a.sfz_addr LIKE '%西藏%' THEN '西藏'
WHEN a.sfz_addr LIKE '%陕西%' THEN '陕西'
WHEN a.sfz_addr LIKE '%甘肃%' THEN '甘肃'
WHEN a.sfz_addr LIKE '%青海%' THEN '青海'
WHEN a.sfz_addr LIKE '%宁夏%' THEN '宁夏'
WHEN a.sfz_addr LIKE '%新疆%' THEN '新疆'
ELSE '其他'
END AS `name`
FROM
srs_stu_reg AS a
where reg_status = 1
GROUP BY
CASE
WHEN a.sfz_addr LIKE '%北京%' THEN '北京'
WHEN a.sfz_addr LIKE '%天津%' THEN '天津'
WHEN a.sfz_addr LIKE '%河北%' THEN '河北'
WHEN a.sfz_addr LIKE '%山西%' THEN '山西'
WHEN a.sfz_addr LIKE '%内蒙古%' THEN '内蒙古'
WHEN a.sfz_addr LIKE '%辽宁%' THEN '辽宁'
WHEN a.sfz_addr LIKE '%吉林%' THEN '吉林'
WHEN a.sfz_addr LIKE '%黑龙江%' THEN '黑龙江'
WHEN a.sfz_addr LIKE '%上海%' THEN '上海'
WHEN a.sfz_addr LIKE '%江苏%' THEN '江苏'
WHEN a.sfz_addr LIKE '%浙江%' THEN '浙江'
WHEN a.sfz_addr LIKE '%安徽%' THEN '安徽'
WHEN a.sfz_addr LIKE '%福建%' THEN '福建'
WHEN a.sfz_addr LIKE '%江西%' THEN '江西'
WHEN a.sfz_addr LIKE '%山东%' THEN '山东'
WHEN a.sfz_addr LIKE '%河南%' THEN '河南'
WHEN a.sfz_addr LIKE '%湖北%' THEN '湖北'
WHEN a.sfz_addr LIKE '%湖南%' THEN '湖南'
WHEN a.sfz_addr LIKE '%广东%' THEN '广东'
WHEN a.sfz_addr LIKE '%广西%' THEN '广西'
WHEN a.sfz_addr LIKE '%海南%' THEN '海南'
WHEN a.sfz_addr LIKE '%重庆%' THEN '重庆'
WHEN a.sfz_addr LIKE '%四川%' THEN '四川'
WHEN a.sfz_addr LIKE '%贵州%' THEN '贵州'
WHEN a.sfz_addr LIKE '%云南%' THEN '云南'
WHEN a.sfz_addr LIKE '%西藏%' THEN '西藏'
WHEN a.sfz_addr LIKE '%陕西%' THEN '陕西'
WHEN a.sfz_addr LIKE '%甘肃%' THEN '甘肃'
WHEN a.sfz_addr LIKE '%青海%' THEN '青海'
WHEN a.sfz_addr LIKE '%宁夏%' THEN '宁夏'
WHEN a.sfz_addr LIKE '%新疆%' THEN '新疆'
ELSE '其他'
END
</select>
<select id="countMajorTop10" resultType="Map">
select major_name,
a.major_code,
case when total is null then 0 else total end as total,
case when zytotal is null then 0 else zytotal end as zytotal,
case when jftotal is null then 0 else jftotal end as jftotal
from (select major_name, major_code from srs_majors) a
left join (select ZY, (select count(1) from srs_stu_reg) as total, count(1) as zytotal
from srs_stu_reg
group by ZY) b on a.major_name = b.ZY
left join (select ZY, count(1) as jftotal
from srs_stu_reg
where reg_status = 1
group by ZY) c on b.ZY = c.ZY
ORDER BY jftotal desc
LIMIT 0,10
</select>
<select id="countNowAt" resultType="Map">
select (select count(ksh)
from srs_stu_reg) as need_at,
(select count(ksh)
from srs_stu_reg as a
where a.reg_status = '1') as now_at
</select>
<select id="countGender" resultType="DataScreen">
select count(ksh) as `value`, a.XB as `name`
from srs_stu_reg as a
GROUP BY a.XB
</select>
<select id="countHour" resultType="Map">
SELECT HOUR(update_time) AS hours,count(1) as bdtotal
from srs_stu_todo as a
WHERE `status` = '1' and DATE(update_time) = CURDATE() and task_code='ZXJF'
GROUP BY hours
order by hours
</select>
<select id="countClass" resultType="Map">
select a.major_code,cl.class_name,b.BJDM,
case when total is null then 0 else total end as total,
case when bjtotal is null then 0 else bjtotal end as bjtotal,
case when jftotal is null then 0 else jftotal end as jftotal
from (select BJDM,(select count(1) from srs_stu_reg) as total,count(1) as bjtotal
from srs_stu_reg group by BJDM ) b
left join (select class_name,class_code,major_id from srs_class) as cl on cl.class_code=b.BJDM
left join (select major_id,major_name,major_code from srs_majors) a on cl.major_id=a.major_id
left join ( select BJDM,count(1) as jftotal from srs_stu_reg where reg_status=1
group by BJDM ) c on cl.class_code=c.BJDM
ORDER BY jftotal desc
</select>
<select id="selectCountByRegStatus" resultType="java.lang.Integer">
select count(*)
from srs_stu_reg
where reg_status = #{regStatus}
</select>
<select id="atStationCount" resultType="Map">
select case when tools_type=1 then '飞机'
when tools_type=2 then '火车'
when tools_type=4 then '自驾'
when tools_type=5 then '巴士' else '巴士' end as tooltype,count(1) as totalnum
from srs_at_station where create_time>CURDATE()-INTERVAL 90 DAY
group by tools_type
</select>
<select id="atStationByCampusCount" resultType="Map">
select case when tools_type=1 then '飞机'
when tools_type=2 then '火车'
when tools_type=4 then '自驾'
when tools_type=5 then '巴士' else '巴士' end as tooltype,count(1) as totalnum,xq
from (
select s.tools_type,case when r.xy='经济管理学院' then '长堽校区'
when r.xy='信息工程学院' then '长堽校区' else '里建校区' end as xq
from srs_at_station s inner join srs_stu_reg r on s.ksh=r.ksh where s.create_time>CURDATE()-INTERVAL 90 DAY ) t
2025-10-16 09:53:44 +08:00
group by tools_type,xq order by xq,count(1) desc
2025-07-28 15:14:11 +08:00
</select>
</mapper>