<?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.casic.dao.smartwell.SmartwellDataMapper"> <select id="countAlarmType" resultType="Map"> SELECT count(ar.Id) as count,bd.DEVICE_TYPE as "deviceType" FROM bus_device bd LEFT JOIN alarm_records ar ON ar.devcode=bd.DEVCODE WHERE bd.VALID='1' AND ar.status='1' <if test="beginTime != null and beginTime != '' "> AND ar.alarm_time <![CDATA[ >= ]]> TO_TIMESTAMP(${beginTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone </if> <if test="endTime != null and endTime != ''"> AND ar.alarm_time <![CDATA[ <= ]]> TO_TIMESTAMP(${endTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone </if> GROUP BY bd.DEVICE_TYPE </select> <select id="getTypeName" resultType="Map"> SELECT id, type_name AS "typeName" FROM base_device_type </select> <select id="countDeviceByType" resultType="Map"> SELECT count(*) AS count,DEVICE_TYPE AS "deviceType" FROM bus_device bd JOIN BUS_DEVICE_WELL bdw on bdw.device_id=bd.id join bus_well_info bwi on bwi.id=bdw.well_id WHERE bwi.VALID = '1' AND bdw.VALID = '1' AND bd.VALID = '1' and bwi.deptid != 1727306292566474754 GROUP BY DEVICE_TYPE </select> <select id="countAlarmByRoad" resultType="Map"> SELECT count(ar.Id) as "总计", bwi.road AS "道路名称" FROM bus_well_info bwi LEFT JOIN alarm_records ar ON ar.WELL_CODE=bwi.WELL_CODE WHERE bwi.VALID='1' AND bwi.road is not null <if test="beginTime != null and beginTime != '' "> AND ar.alarm_time <![CDATA[ >= ]]> TO_TIMESTAMP(${beginTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone </if> <if test="endTime != null and endTime != ''"> AND ar.alarm_time <![CDATA[ <= ]]> TO_TIMESTAMP(${endTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone </if> GROUP BY bwi.road ORDER BY 总计 DESC </select> <select id="countAlarmDevice" resultType="Integer"> SELECT count(bd.devcode) FROM bus_device bd JOIN bus_device_well bdw ON bdw.device_id=bd.id JOIN bus_well_info bwi ON bwi.id=bdw.well_id JOIN alarm_records ar on bd.devcode=ar.devcode WHERE bwi.valid='1' AND bdw.valid='1' <if test="beginTime != null and beginTime != '' "> AND ar.alarm_time <![CDATA[ >= ]]> TO_TIMESTAMP(${beginTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone </if> <if test="endTime != null and endTime != ''"> AND ar.alarm_time <![CDATA[ <= ]]> TO_TIMESTAMP(${endTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone </if> </select> <select id="countDeviceNumber" resultType="Integer"> SELECT count(bd.DEVCODE) FROM bus_device bd JOIN bus_device_well bdw ON bdw.device_id = bd.id JOIN bus_well_info bwi ON bwi.id = bdw.well_id WHERE bwi.valid = '1' AND bdw.valid = '1' </select> <select id="countAlarmDeviceByDept" resultType="Map"> SELECT count(bd.devcode) as counts,deptId FROM bus_device bd JOIN bus_device_well bdw ON bdw.device_id=bd.id JOIN bus_well_info bwi ON bwi.id=bdw.well_id JOIN alarm_records ar on bd.devcode=ar.devcode WHERE bwi.valid='1' AND bdw.valid='1' <if test="beginTime != null and beginTime != '' "> AND ar.alarm_time <![CDATA[ >= ]]> TO_TIMESTAMP(${beginTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone </if> <if test="endTime != null and endTime != ''"> AND ar.alarm_time <![CDATA[ <= ]]> TO_TIMESTAMP(${endTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone </if> GROUP BY deptId </select> <select id="countDeviceNumberByDept" resultType="Map"> SELECT count(bd.DEVCODE) as counts, deptId FROM bus_device bd JOIN bus_device_well bdw ON bdw.device_id = bd.id JOIN bus_well_info bwi ON bwi.id = bdw.well_id WHERE bwi.valid = '1' AND bdw.valid = '1' GROUP BY deptId </select> <select id="countAlarmRoad" resultType="Map"> SELECT count(bd.devcode) AS count,bwi.road FROM bus_well_info bwi JOIN bus_device_well bdw ON bdw.well_id=bwi.id JOIN bus_device bd ON bdw.device_id=bd.id JOIN (SELECT DISTINCT(devcode),status from alarm_records where status='1') ar ON bd.devcode = ar.devcode WHERE bwi.valid='1' AND bdw.valid='1' AND road is NOT NULL <if test="beginTime != null and beginTime != '' "> AND ar.alarm_time <![CDATA[ >= ]]> TO_TIMESTAMP(${beginTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone </if> <if test="endTime != null and endTime != ''"> AND ar.alarm_time <![CDATA[ <= ]]> TO_TIMESTAMP(${endTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone </if> GROUP BY bwi.road </select> <select id="countRoadNumber" resultType="Map"> SELECT count(bd.DEVCODE) AS count,bwi.road FROM bus_well_info bwi JOIN bus_device_well bdw ON bdw.well_id=bwi.id JOIN bus_device bd ON bdw.device_id=bd.id WHERE bwi.valid='1' AND bdw.valid='1' AND road is NOT NULL GROUP BY bwi.road </select> <select id="getAlarmDevice" resultType="Map"> SELECT deptid, bd.devcode, min(arc.timespan) FROM bus_device bd JOIN bus_device_well bdw ON bdw.device_id = bd.id JOIN bus_well_info bwi ON bwi.id = bdw.well_id JOIN (SELECT CASE status WHEN '1' THEN '0' ELSE round(cast(date_part('epoch', now() - ar.alarm_time) / 60 / 60 as numeric), 1) END AS timespan, ar.devcode from alarm_records ar JOIN (SELECT devcode, max(alarm_time) as alarmtime FROM alarm_records GROUP BY devcode) lar ON lar.alarmtime = ar.alarm_time AND lar.devcode = ar.devcode ) arc ON arc.devcode = bd.devcode WHERE bwi.valid = '1' AND bdw.valid = '1' GROUP BY bd.devcode, arc.timespan, deptid </select> <select id="getNormalDevice" resultType="Map"> SELECT deptid, bd.devcode, round(cast(date_part('epoch', now() - bd.INSTALL_DATE) / 60 / 60 as numeric), 1) as "timeSpan" FROM bus_device bd JOIN bus_device_well bdw ON bdw.device_id = bd.id JOIN bus_well_info bwi ON bwi.id = bdw.well_id WHERE bwi.valid = '1' AND bdw.valid = '1' </select> <select id="getDeptNameList" resultType="Map"> SELECT id, simple_name AS "name" FROM sys_dept </select> <select id="getDeptIds" resultType="Map"> SELECT id, simple_name AS "name", dept_type AS "deptType" FROM sys_dept WHERE pid = #{deptId} </select> <select id="getAlarmDeviceList" resultType="Map"> SELECT bwi.WELL_CODE AS "wellCode", WELL_NAME AS "wellName", DEEP AS deep, bd.DEVCODE AS devcode, bd.device_name AS "deviceName", LNG_GAODE AS "lngGaode", LAT_GAODE AS "latGaode", AREA AS "area", POSITION AS "position", RESPONSIBLE_DEPT AS "responsibleDept", PHOTOS AS photos, WELL_TYPE AS wellType, STAFF AS staff, TEL AS "tel", BFZT AS bfzt, DEPTID as deptid, counts AS "isAlarm", DEVICE_TYPE AS "deviceType" FROM bus_well_info bwi JOIN bus_device_well bdw ON bdw.WELL_ID = bwi.ID JOIN bus_device bd ON bd.ID = bdw.DEVICE_ID LEFT JOIN (SELECT count(*) AS counts, ar.devcode FROM alarm_records ar WHERE ar.STATUS = '1' GROUP BY ar.devcode ) arc ON bd.devcode = arc.devcode WHERE bwi.valid = '1' AND bdw.valid = '1' </select> <select id="jobsByDeptId" resultType="map"> SELECT bwi.deptid AS deptid, COALESCE(SUM(CASE WHEN job_status='0' THEN 1 ELSE 0 END)) AS "beforeGet", COALESCE(SUM(CASE WHEN job_status='1' THEN 1 ELSE 0 END)) AS "beforeConfirm", COALESCE(SUM(CASE WHEN job_status='2' THEN 1 ELSE 0 END)) AS "inHandle", COALESCE(SUM(CASE WHEN job_status='3' THEN 1 ELSE 0 END)) AS "over", COALESCE(SUM(CASE WHEN job_status='4' THEN 1 ELSE 0 END)) AS cancel FROM alarm_job aj INNER JOIN bus_well_info bwi ON aj.WELL_CODE = bwi.WELL_CODE INNER JOIN bus_device bd ON aj.DEVCODE = bd.DEVCODE <where> bwi.VALID = '1' AND bd.VALID = '1' <choose> <when test="beginTime != null and beginTime != '' and endTime != null and endTime != ''"> AND aj.CREATE_TIME <![CDATA[ >= ]]> TO_TIMESTAMP(${beginTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone AND aj.CREATE_TIME <![CDATA[ <=]]> TO_TIMESTAMP(${endTime},'yyyy-MM-dd hh24:mi')::timestamp without time zone </when> <otherwise> AND date_part('day',now()-aj.create_time) <![CDATA[<= ]]> 30 </otherwise> </choose> </where> GROUP BY deptid </select> <select id="countAlarmsByDay" resultType="map"> SELECT COUNT ( 1 ) AS "count", COUNT ( DISTINCT well_code ) AS alarmWells, ( SELECT to_char( alarm_time, 'yyyyMMdd' ) ) alarmTimeDate FROM alarm_records WHERE date_part( 'day', now( ) - alarm_time ) <![CDATA[< ]]> #{alarmDay} GROUP BY alarmTimeDate </select> <select id="getDeviceList" resultType="map"> SELECT count(bd.devcode) AS count,device_type AS "deviceType",deptid FROM BUS_DEVICE bd JOIN BUS_DEVICE_WELL bdw ON bdw.device_id=bd.id JOIN BUS_WELL_INFO bwi ON bdw.well_id=bwi.id join base_device_type bdt on bdt.id=bd.device_type WHERE bwi.VALID = '1' AND bdw.VALID = '1' AND bd.VALID = '1' GROUP BY deptid, device_type, type_name </select> </mapper>