2024-09-30 23:38:35 +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.ics.admin.mapper.MeetingStatsMapper" >
<!-- 会议室统计 第一行 -->
<select id= "roomStats" resultType= "com.ics.admin.vo.MRStatsVo" >
< ![CDATA[
select
count(name) zs ,sum(booking) booking,sum(going) going
from (
select room.name,
case when count(mr.id)>0 then 1 else 0 end as booking,
case when count(case when mr.status=9 then 1 else null end)>0 then 1 else 0 end as going
from ics_meeting_room room left join ics_meeting_reservation mr on room.id=mr.room_id
and room.delete_flag=0 and mr.delete_flag=0 and mr.status>3 and mr.start LIKE CONCAT(#{day}, '%')
group by room.name
) zj
]]>
</select>
<!-- 日历 第二行左 -->
<select id= "calendar" resultType= "com.ics.admin.vo.MRStatsVo" >
< ![CDATA[
select
id,sn,title,DATE_FORMAT(start,'%Y-%m-%d') name,
CONCAT(DATE_FORMAT(start,'%Y-%m-%d %H:%i'), '~',DATE_FORMAT(`end`,'%H:%i')) time,user_org org
from ics_meeting_reservation mr where mr.delete_flag=0 and mr.status>3 and start like CONCAT(#{month}, '%') order by start
]]>
</select>
<!-- 会议状态 第二行右上 -->
<select id= "meetingStats" resultType= "com.ics.admin.vo.MRStatsVo" >
< ![CDATA[
select sum(`wait`) `wait`,sum(going) going,sum(closed) closed from
(select
case when mr.status=7 then 1 else 0 end as `wait`,
case when mr.status=9 then 1 else 0 end as going,
case when mr.status=11 then 1 else 0 end as closed
from ics_meeting_reservation mr where mr.delete_flag=0 and mr.status>=7
) zj
]]>
</select>
<!-- 会议待办 第二行右下 -->
<select id= "meetingAudit" resultType= "com.ics.admin.vo.MRStatsVo" >
< ![CDATA[
select
id,title,CONCAT(DATE_FORMAT(start,'%Y-%m-%d %H:%i'), '~',DATE_FORMAT(`end`,'%H:%i')) `time`,user_org org
from ics_meeting_reservation mr where mr.delete_flag=0 and mr.status=5 order by mr.start limit 10
]]>
</select>
<!-- ====下面为图表======== -->
<!-- 会议室使用排名 -->
<select id= "roomRankStats" resultType= "com.ics.admin.vo.MRStatsVo" >
< ![CDATA[
2025-05-23 15:35:47 +08:00
select room.name name, room.floor floor, room.room_num roomNum, count(mr.id) value
2024-09-30 23:38:35 +08:00
from ics_meeting_room room left join ics_meeting_reservation mr
on room.id=mr.room_id and room.delete_flag=0 and mr.delete_flag=0 and mr.status>7 and mr.start between #{start} and #{end}
2025-05-23 15:35:47 +08:00
GROUP BY room.name, room.floor, room.room_num order by room.floor, room.room_num
2024-09-30 23:38:35 +08:00
]]>
</select>
<!-- 服务情况 -->
<select id= "serveStats" resultType= "com.ics.admin.vo.MRStatsVo" >
< ![CDATA[
2024-10-04 17:49:54 +08:00
select type.dict_label name,count(zj.id) value from sys_dict_data type left join
(select ms.value value,mr.id id
from ics_meeting_serve ms,ics_meeting_reservation mr where ms.rid=mr.id and ms.delete_flag=0 and mr.delete_flag=0 and mr.status>7 and mr.start between #{start} and #{end}
) zj on type.dict_value=zj.value
2025-05-27 20:16:27 +08:00
where type.dict_type='mm_service' and type.status=0 group by type.dict_label order by type.dict_sort
2024-09-30 23:38:35 +08:00
]]>
</select>
<!-- 会议室形式统计 -->
<select id= "roomTypeStats" resultType= "com.ics.admin.vo.MRStatsVo" >
< ![CDATA[
select type.dict_label name,count(jl.id) value from sys_dict_data type left join
(select room.type_id typeid,mr.id from ics_meeting_room room,ics_meeting_reservation mr
where mr.room_id=room.id and room.delete_flag=0 and mr.delete_flag=0
and mr.status>7 and mr.start between #{start} and #{end}) jl
on type.dict_value=jl.typeid
where type.dict_type='mm_type' and type.status=0
2025-05-27 20:16:27 +08:00
group by type.dict_label order by type.dict_sort
2024-09-30 23:38:35 +08:00
]]>
</select>
<!-- 部门开会情况 -->
<select id= "orgMeetingStats" resultType= "com.ics.admin.vo.MRStatsVo" >
< ![CDATA[
select mr.user_org name,count(mr.id) value from ics_meeting_reservation mr
where mr.delete_flag=0 and mr.status>7 and mr.start between #{start} and #{end}
2025-05-23 15:35:47 +08:00
GROUP BY mr.user_org order by value desc limit 20
2024-09-30 23:38:35 +08:00
]]>
</select>
<!-- 开会情况 -->
<select id= "everyDayStats" resultType= "com.ics.admin.vo.MRStatsVo" >
< ![CDATA[
select rq name,count(id) value FROM(
select id,DATE_FORMAT(start,'%m月%d日') rq from ics_meeting_reservation mr where mr.delete_flag=0 and mr.status>7 and mr.start between #{start} and #{end}
) d GROUP BY rq order by rq limit 20
]]>
</select>
</mapper>