2024-09-03 22:09:21 +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.ruoyi.project.oil.mapper.ThDeviceReportMapper">
|
|
|
|
|
<resultMap id="BaseResultMap" type="com.ruoyi.project.oil.domain.monitor.ThDeviceReport">
|
2024-09-03 22:41:34 +08:00
|
|
|
|
<id property="id" column="id" jdbcType="BIGINT"/>
|
|
|
|
|
<result property="sn" column="sn" jdbcType="VARCHAR"/>
|
|
|
|
|
<result property="reportTime" column="report_time" jdbcType="TIMESTAMP"/>
|
2024-10-16 22:06:17 +08:00
|
|
|
|
<result property="dw" column="dw" jdbcType="VARCHAR"/>
|
|
|
|
|
<result property="jcjd" column="JCJD" jdbcType="INTEGER"/>
|
|
|
|
|
|
2024-09-03 22:41:34 +08:00
|
|
|
|
<result property="ds" column="ds" jdbcType="VARCHAR"/>
|
|
|
|
|
<result property="dbz" column="dbz" jdbcType="VARCHAR"/>
|
|
|
|
|
<result property="gbz" column="gbz" jdbcType="VARCHAR"/>
|
2024-09-03 22:09:21 +08:00
|
|
|
|
</resultMap>
|
|
|
|
|
|
|
|
|
|
<sql id="Base_Column_List">
|
2024-09-03 22:41:34 +08:00
|
|
|
|
SELECT d.id,
|
|
|
|
|
d.sn,
|
|
|
|
|
d.report_time,
|
2024-10-16 22:06:17 +08:00
|
|
|
|
d.SBZT,
|
|
|
|
|
d.lc,
|
|
|
|
|
d.dw,
|
|
|
|
|
d.zt,
|
2024-09-03 22:41:34 +08:00
|
|
|
|
d.ds,
|
|
|
|
|
d.dbz,
|
|
|
|
|
d.gbz
|
|
|
|
|
FROM th_device_report d
|
2024-09-03 22:09:21 +08:00
|
|
|
|
</sql>
|
|
|
|
|
<select id="selectDeviceReport" parameterType="com.ruoyi.project.oil.domain.monitor.ThDeviceReport" resultMap="BaseResultMap">
|
|
|
|
|
<include refid="Base_Column_List"/>
|
|
|
|
|
WHERE 1=1
|
|
|
|
|
<if test="sn != null and sn != ''">
|
|
|
|
|
AND d.sn = #{sn}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="params.beginTime != null and params.beginTime != ''">
|
|
|
|
|
AND d.report_time >= TO_DATE(#{params.beginTime}, 'YYYY-MM-DD HH24:MI:SS')
|
|
|
|
|
</if>
|
|
|
|
|
<if test="params.endTime != null and params.endTime != ''">
|
|
|
|
|
AND d.report_time <= TO_DATE(#{params.endTime}, 'YYYY-MM-DD HH24:MI:SS')
|
|
|
|
|
</if>
|
|
|
|
|
ORDER BY d.report_time ASC
|
|
|
|
|
</select>
|
2024-09-03 22:41:34 +08:00
|
|
|
|
|
2024-09-03 22:09:21 +08:00
|
|
|
|
<select id="selectAvgDsByMonth" parameterType="map" resultType="map">
|
2024-09-04 23:15:56 +08:00
|
|
|
|
SELECT TO_CHAR(d.report_time, 'YYYY-MM') AS month,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.ds)), 8) AS avg_ds
|
|
|
|
|
FROM th_device_report d
|
|
|
|
|
WHERE d.sn IN (SELECT d.sn
|
|
|
|
|
FROM th_device d
|
|
|
|
|
LEFT JOIN sys_dept p ON d.dept_id = p.dept_id
|
|
|
|
|
WHERE d.dept_id IN (SELECT dept_id
|
|
|
|
|
FROM sys_dept START WITH dept_id = #{deptId}
|
|
|
|
|
CONNECT BY PRIOR dept_id = parent_id))
|
|
|
|
|
AND d.report_time >= TO_DATE(#{startMonth}, 'YYYY-MM')
|
|
|
|
|
AND d.report_time <= ADD_MONTHS(TO_DATE(#{endMonth}, 'YYYY-MM'), 1)
|
|
|
|
|
GROUP BY TO_CHAR(d.report_time, 'YYYY-MM')
|
|
|
|
|
ORDER BY month
|
2024-09-03 22:09:21 +08:00
|
|
|
|
</select>
|
2024-09-03 22:41:34 +08:00
|
|
|
|
|
|
|
|
|
<select id="selectDeviceAvgByMonth" parameterType="map" resultType="map">
|
|
|
|
|
SELECT d.sn,
|
2024-09-04 23:15:56 +08:00
|
|
|
|
td.name,
|
|
|
|
|
td.address,
|
|
|
|
|
td.longitude,
|
|
|
|
|
td.latitude,
|
|
|
|
|
p.dept_name,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.ds)), 8) AS avg_ds,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.dbz)), 8) AS avg_dbz,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.gbz)), 8) AS avg_gbz
|
2024-09-03 22:41:34 +08:00
|
|
|
|
FROM th_device_report d
|
2024-09-04 23:15:56 +08:00
|
|
|
|
LEFT JOIN th_device td ON d.sn = td.sn
|
|
|
|
|
LEFT JOIN sys_dept p ON td.dept_id = p.dept_id
|
|
|
|
|
WHERE td.dept_id IN (SELECT dept_id FROM sys_dept WHERE dept_id = #{deptId} OR parent_id = #{deptId})
|
|
|
|
|
AND d.report_time >= TO_DATE(#{startMonth}, 'YYYY-MM')
|
|
|
|
|
AND d.report_time <= ADD_MONTHS(TO_DATE(#{endMonth}, 'YYYY-MM'), 1)
|
2024-09-03 22:41:34 +08:00
|
|
|
|
GROUP BY d.sn, p.dept_name, td.name, td.address, td.longitude, td.latitude
|
|
|
|
|
ORDER BY p.dept_name
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="selectDeptAvgByMonth" parameterType="map" resultType="map">
|
|
|
|
|
SELECT p.dept_name,
|
2024-09-04 23:15:56 +08:00
|
|
|
|
ROUND(AVG(TO_NUMBER(d.ds)), 8) AS avg_ds,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.dbz)), 8) AS avg_dbz,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.gbz)), 8) AS avg_gbz
|
2024-09-03 22:41:34 +08:00
|
|
|
|
FROM th_device_report d
|
2024-09-04 23:15:56 +08:00
|
|
|
|
LEFT JOIN th_device td ON d.sn = td.sn
|
|
|
|
|
LEFT JOIN sys_dept p ON td.dept_id = p.dept_id
|
|
|
|
|
WHERE td.dept_id IN
|
|
|
|
|
(SELECT dept_id FROM sys_dept WHERE dept_id = #{deptId} OR parent_id = #{deptId})
|
|
|
|
|
AND TO_CHAR(d.report_time, 'YYYY-MM') = #{month}
|
2024-09-03 22:41:34 +08:00
|
|
|
|
GROUP BY p.dept_name
|
|
|
|
|
ORDER BY p.dept_name
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="selectAllAvgByMonth" parameterType="map" resultType="map">
|
2024-09-04 23:15:56 +08:00
|
|
|
|
SELECT TO_CHAR(d.report_time, 'YYYY-MM') AS month,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.ds)), 8) AS avg_ds,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.dbz)), 8) AS avg_dbz,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.gbz)), 8) AS avg_gbz
|
|
|
|
|
FROM th_device_report d
|
|
|
|
|
WHERE d.sn IN (SELECT td.sn
|
|
|
|
|
FROM th_device td
|
|
|
|
|
LEFT JOIN sys_dept p ON td.dept_id = p.dept_id
|
|
|
|
|
WHERE td.dept_id IN (SELECT dept_id FROM sys_dept WHERE dept_id = #{deptId} OR parent_id = #{deptId}))
|
|
|
|
|
AND TO_CHAR(d.report_time, 'YYYY-MM') = #{month}
|
|
|
|
|
GROUP BY TO_CHAR(d.report_time, 'YYYY-MM')
|
2024-09-03 22:41:34 +08:00
|
|
|
|
</select>
|
2024-09-12 16:50:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<select id="monthReportDataOverview" parameterType="map" resultType="map">
|
|
|
|
|
SELECT TO_CHAR(d.report_time, 'YYYY-MM') AS month,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.ds)), 8) AS avg_ds,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.dbz)), 8) AS avg_dbz,
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.gbz)), 8) AS avg_gbz
|
|
|
|
|
FROM th_device_report d
|
|
|
|
|
WHERE d.sn IN (SELECT d.sn
|
|
|
|
|
FROM th_device d
|
|
|
|
|
LEFT JOIN sys_dept p ON d.dept_id = p.dept_id
|
|
|
|
|
WHERE d.dept_id IN (SELECT dept_id
|
|
|
|
|
FROM sys_dept START WITH dept_id = #{deptId}
|
|
|
|
|
CONNECT BY PRIOR dept_id = parent_id))
|
|
|
|
|
AND TO_CHAR(d.report_time, 'YYYY-MM') = #{month}
|
|
|
|
|
GROUP BY TO_CHAR(d.report_time, 'YYYY-MM')
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="monthReportDataOverviewDeviceDs" parameterType="map" resultType="map">
|
|
|
|
|
SELECT d.sn,
|
|
|
|
|
p.dept_name,
|
|
|
|
|
pp.dept_name as "gang_qu",
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.ds)), 8) AS avg_ds
|
|
|
|
|
FROM th_device_report d
|
|
|
|
|
LEFT JOIN th_device td ON d.sn = td.sn
|
|
|
|
|
LEFT JOIN sys_dept p ON td.dept_id = p.dept_id
|
|
|
|
|
LEFT JOIN sys_dept pp ON p.parent_id = pp.dept_id
|
|
|
|
|
WHERE d.sn IN (SELECT d.sn
|
|
|
|
|
FROM th_device d
|
|
|
|
|
LEFT JOIN sys_dept p ON d.dept_id = p.dept_id
|
|
|
|
|
WHERE d.dept_id IN (SELECT dept_id
|
|
|
|
|
FROM sys_dept START WITH dept_id = #{deptId}
|
|
|
|
|
CONNECT BY PRIOR dept_id = parent_id))
|
|
|
|
|
AND TO_CHAR(d.report_time, 'YYYY-MM') = #{month}
|
|
|
|
|
GROUP BY d.sn, p.dept_name, pp.dept_name
|
|
|
|
|
ORDER BY pp.dept_name, p.dept_name
|
|
|
|
|
</select>
|
2024-09-13 19:20:40 +08:00
|
|
|
|
|
|
|
|
|
<select id="dailyReportDataOverview" parameterType="map" resultType="map">
|
|
|
|
|
SELECT TO_CHAR(d.report_time, 'YYYY-MM-DD') AS day,
|
|
|
|
|
d.sn,
|
|
|
|
|
p.dept_name as "p",
|
|
|
|
|
pp.dept_name as "pp",
|
|
|
|
|
ppp.dept_name as "ppp",
|
|
|
|
|
ROUND(AVG(TO_NUMBER(d.ds)), 8) AS avg_ds
|
|
|
|
|
FROM th_device_report d
|
|
|
|
|
LEFT JOIN th_device td ON d.sn = td.sn
|
|
|
|
|
LEFT JOIN sys_dept p ON td.dept_id = p.dept_id
|
|
|
|
|
LEFT JOIN sys_dept pp ON p.parent_id = pp.dept_id
|
|
|
|
|
LEFT JOIN sys_dept ppp ON pp.parent_id = ppp.dept_id
|
|
|
|
|
WHERE d.sn IN (SELECT d.sn FROM th_device d)
|
|
|
|
|
AND TO_CHAR(d.report_time, 'YYYY-MM-DD') = #{day}
|
|
|
|
|
GROUP BY TO_CHAR(d.report_time, 'YYYY-MM-DD'), ppp.dept_name, pp.dept_name, p.dept_name, d.sn
|
|
|
|
|
ORDER BY ppp.dept_name, pp.dept_name, p.dept_name
|
|
|
|
|
</select>
|
2024-10-11 21:16:39 +08:00
|
|
|
|
<!-- 选择日期范围内 某个部门id下的所有子部门的所有设备的报警每日数量;统计(d.zt = '一级报警' OR d.zt = '二级报警')的alarm_count, 统计当天全部的数量count -->
|
|
|
|
|
<select id="selectAlarmCountByDeptIdAndDateRange" parameterType="map" resultType="map">
|
|
|
|
|
SELECT TO_CHAR(d.report_time, 'YYYY-MM-DD') AS day,
|
|
|
|
|
COUNT(CASE WHEN d.zt = '一级报警' OR d.zt = '二级报警' THEN 1 END) AS alarm_count,
|
|
|
|
|
COUNT(1) AS count
|
|
|
|
|
FROM th_device_report d
|
|
|
|
|
LEFT JOIN th_device td ON d.sn = td.sn
|
|
|
|
|
LEFT JOIN sys_dept p ON td.dept_id = p.dept_id
|
|
|
|
|
WHERE d.sn IN (SELECT d.sn
|
|
|
|
|
FROM th_device d
|
|
|
|
|
LEFT JOIN sys_dept p ON d.dept_id = p.dept_id
|
|
|
|
|
WHERE d.dept_id IN (SELECT dept_id
|
|
|
|
|
FROM sys_dept START WITH dept_id = #{deptId}
|
|
|
|
|
CONNECT BY PRIOR dept_id = parent_id))
|
|
|
|
|
AND d.report_time >= TO_DATE(#{beginDate}, 'YYYY-MM-DD')
|
|
|
|
|
AND d.report_time <= TO_DATE(#{endDate}, 'YYYY-MM-DD')
|
|
|
|
|
GROUP BY TO_CHAR(d.report_time, 'YYYY-MM-DD')
|
|
|
|
|
ORDER BY day
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 选择日期范围内 某个部门id下的所有子部门的所有设备的报警数量 降序排列 -->
|
|
|
|
|
<select id="selectAlarmCountByDeptIdAndDateRangeDesc" parameterType="map" resultType="map">
|
|
|
|
|
SELECT d.sn,
|
|
|
|
|
COUNT(d.id) AS count,
|
|
|
|
|
p.dept_name as "p",
|
|
|
|
|
pp.dept_name as "pp",
|
|
|
|
|
ppp.dept_name as "ppp",
|
|
|
|
|
td.address,
|
|
|
|
|
td.name,
|
|
|
|
|
d.zt
|
|
|
|
|
|
|
|
|
|
FROM th_device_report d
|
|
|
|
|
LEFT JOIN th_device td ON d.sn = td.sn
|
|
|
|
|
LEFT JOIN sys_dept p ON td.dept_id = p.dept_id
|
|
|
|
|
LEFT JOIN sys_dept pp ON p.parent_id = pp.dept_id
|
|
|
|
|
LEFT JOIN sys_dept ppp ON pp.parent_id = ppp.dept_id
|
|
|
|
|
WHERE d.sn IN (SELECT d.sn
|
|
|
|
|
FROM th_device d
|
|
|
|
|
LEFT JOIN sys_dept p ON d.dept_id = p.dept_id
|
|
|
|
|
WHERE d.dept_id IN (SELECT dept_id
|
|
|
|
|
FROM sys_dept START WITH dept_id = #{deptId}
|
|
|
|
|
CONNECT BY PRIOR dept_id = parent_id))
|
|
|
|
|
AND d.report_time >= TO_DATE(#{beginDate}, 'YYYY-MM-DD')
|
|
|
|
|
AND d.report_time <= TO_DATE(#{endDate}, 'YYYY-MM-DD')
|
|
|
|
|
AND (d.zt = '一级报警' OR d.zt = '二级报警')
|
|
|
|
|
GROUP BY d.sn, p.dept_name, pp.dept_name, ppp.dept_name, td.address, td.name, d.zt
|
|
|
|
|
ORDER BY count DESC
|
|
|
|
|
</select>
|
2024-09-03 22:09:21 +08:00
|
|
|
|
</mapper>
|