bns_jjsp_service/securityControl-modules/securityControl-decision/target/classes/mapper/MonitorMapper.xml

107 lines
5.4 KiB
XML

<?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.sercurityControl.decision.mapper.MonitorMapper">
<select id="getOnlineTop" resultType="com.sercurityControl.decision.domain.Pie">
select sum(TIMESTAMPDIFF(minute,tu.up_time,IFNULL(tu.down_time,concat(tu.create_day,' 23:59:00')))) as value ,td.puid as name
from t_device td
inner join t_device_updown tu on td.puid = tu.puid
group by td.puid
order by value desc
limit 10
</select>
<select id="getLookTop" resultType="com.sercurityControl.decision.domain.Pie">
select count(ts.id) as value,td.puid as name
from t_class_metting_super ts
inner join t_class_metting tm on tm.class_id = ts.class_id
inner join t_device td on td.puid = tm.puid
where td.state = '1'
group by td.puid
order by value
limit 10
</select>
<select id="getCoverBuild" resultType="com.sercurityControl.decision.domain.Pie">
select org.city_name as VALUE ,IFNULL(a.num,0) as name
from sys_org org
left join (
select count(td.id) as num,tm.org
from t_class_metting tm
inner join t_device td on td.puid = tm.puid
where td.state = '1'
group by tm.org
) a on org.org_id = a.org
order by org.org_id desc
</select>
<select id="getCoverRisk" resultType="com.sercurityControl.decision.domain.Pie">
select round(ifnull(a.num,0) * 100 / sum.num ,0) as value ,sum.job_risk_fc_level_num as name
from
(select count(ti.id) as num ,ti.job_risk_fc_level_num
from t_class_metting tm
inner join t_ticket_info ti on tm.ticket_id = ti.id
inner join t_device td on td.puid = tm.puid
where ti.job_risk_fc_level_num in ('2级','3级','4级','5级')
group by ti.job_risk_fc_level_num
) sum
left join
(select count(distinct td.id) as num ,ti.job_risk_fc_level_num
from t_class_metting tm
inner join t_ticket_info ti on tm.ticket_id = ti.id
inner join t_device td on td.puid = tm.puid and td.state = '1'
where ti.job_risk_fc_level_num in ('2级','3级','4级','5级')
group by ti.job_risk_fc_level_num) a on a.job_risk_fc_level_num = sum.job_risk_fc_level_num
order by sum.job_risk_fc_level_num
</select>
<select id="getQjNum" resultType="java.lang.Integer">
select count(id)
from t_device
<where>
<choose>
<when test="flag == '1'.toString()"> and state = '1' and qj_xh > '30'</when>
<when test="flag == '2'.toString()"> and state = '0'</when>
<otherwise>and state = '1' and qj_xh &lt; '30'</otherwise>
</choose>
</where>
</select>
<select id="getLocation" resultType="com.sercurityControl.decision.domain.MonitorMap$LonLat">
select distinct lon,lat ,ti.job_risk_fc_level_num as risk_grade
from t_class_metting tm
inner join t_ticket_info ti on tm.ticket_id = ti.id
where MONTH(work_day) = MONTH(CURRENT_DATE) and ti.job_risk_fc_level_num in ('2级','3级','4级','5级')
order by ti.job_risk_fc_level_num
</select>
<select id="getDetailList" resultType="com.sercurityControl.decision.domain.MonitorDetail">
select distinct bid_name as project_name,build_unit as build_org_name,ti.job_risk_fc_level_num as risk_grade,
team_name,any_value(work_manager) as work_manager,any_value(work_manager_phone) as work_manager_phone,
any_value(tm.lon) as lon,any_value(tm.lat) as lat,tm.puid,
sum(TIMESTAMPDIFF(minute,tu.up_time,IFNULL(tu.down_time,concat(tu.create_day,' 23:59:00')))) as run_time,
case
when td.state = '0' then '1'
when td.state = '1' and td.qj_xh &lt; '30' then '2'
else '0'
end as gjType,count(ts.id) as look_count
from t_class_metting tm
inner join t_device_updown tu on tm.puid = tu.puid
inner join t_ticket_info ti on ti.id = tm.ticket_id
inner join t_device td on tm.puid = td.puid
left join t_class_metting_super ts on ts.class_id = tm.class_id
where work_manager != 'null' and work_manager_phone != 'null' and MONTH(work_day) = MONTH(CURRENT_DATE)
<choose>
<when test="gjType == '0'.toString()">and td.state = '1' and (td.qj_xh > '30' or td.qj_xh is null)</when>
<when test="gjType == '1'.toString()"> and td.state = '0'</when>
<when test="gjType == '2'.toString()"> and td.state = '1' and td.qj_xh &lt; '30'</when>
</choose>
<if test="buildOrgNo != null and buildOrgNo != ''"> and tm.org = #{buildOrgNo}</if>
<if test="riskGrade != null and riskGrade != ''"> and ti.job_risk_fc_level_num = #{riskGrade}</if>
<if test="projectName != null and projectName != ''"> and tm.bid_name like concat('%',#{projectName},'%')</if>
<if test="teamName != null and teamName != ''"> and tm.team_name like concat('%',#{teamName},'%')</if>
<if test="workManager != null and workManager != ''"> and tm.work_manager like concat('%',#{workManager},'%')</if>
group by bid_name,build_unit,ti.job_risk_fc_level_num,team_name,tm.puid,td.state,td.qj_xh
</select>
</mapper>