<?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"> <sql id="date_tochar" databaseId="mysql"> DATE_FORMAT(${paramTime},'%Y-%m-%d %H:%i:%s') </sql> <sql id="date_tochar" databaseId="pgsql"> TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') </sql> <sql id="date_tochar" databaseId="oracle"> TO_CHAR(${paramTime},'yyyy-MM-dd HH24:mi:ss') </sql> <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.UPTIME <![CDATA[ >= ]]> TO_CHAR(#{beginTime},'yyyy-MM-dd HH24:mi:ss') </if> <if test="endTime != null and endTime != ''"> AND ar.UPTIME <![CDATA[ <= ]]> TO_CHAR(#{endTime},'yyyy-MM-dd HH24:mi:ss') </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 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.UPTIME <![CDATA[ >= ]]> TO_CHAR(#{beginTime},'yyyy-MM-dd HH24:mi:ss') </if> <if test="endTime != null and endTime != ''"> AND ar.UPTIME <![CDATA[ <= ]]> TO_CHAR(#{endTime},'yyyy-MM-dd HH24:mi:ss') </if> GROUP BY bwi.road </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.UPTIME <![CDATA[ >= ]]> TO_CHAR(#{beginTime},'yyyy-MM-dd HH24:mi:ss') </if> <if test="endTime != null and endTime != ''"> AND ar.UPTIME <![CDATA[ <= ]]> TO_CHAR(#{endTime},'yyyy-MM-dd HH24:mi:ss') </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.UPTIME <![CDATA[ >= ]]> TO_CHAR(#{beginTime},'yyyy-MM-dd HH24:mi:ss') </if> <if test="endTime != null and endTime != ''"> AND ar.UPTIME <![CDATA[ <= ]]> TO_CHAR(#{endTime},'yyyy-MM-dd HH24:mi:ss') </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.UPTIME <![CDATA[ >= ]]> TO_CHAR(#{beginTime},'yyyy-MM-dd HH24:mi:ss') </if> <if test="endTime != null and endTime != ''"> AND ar.UPTIME <![CDATA[ <= ]]> TO_CHAR(#{endTime},'yyyy-MM-dd HH24:mi:ss') </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 alarmTimeDate,count(alarmTimes) AS "count",COUNT(alarmWells) alarmWells from ( SELECT COUNT(*) AS alarmTimes, COUNT(DISTINCT wellCode) AS alarmWells, ( SELECT to_char(alarmTimeDate, 'yyyyMMdd' ) ) alarmTimeDate FROM alarm_now_view where date_part('day',now()-alarmTimeDate) <![CDATA[< ]]> #{alarmDay} GROUP BY alarmTimeDate ) alarmview 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 GROUP BY deptid,device_type,type_name </select> </mapper>