<?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 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="Integer"> SELECT count(bwi.WELL_CODE),bwi.rode FROM bus_well_info bwi LEFT JOIN bus_device_well bdw ON bdw.well_id=bwi.id LEFT JOIN bus_device bd ON bdw.device_id=bd.id LEFT 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 bwi.rode <if test="isSort != null and endTime != ''"> order by COUNT(*) DESC limitNum </if> </select> <select id="countRoadNumber" resultType="Integer"> SELECT count(bwi.WELL_CODE) FROM bus_well_info bwi LEFT JOIN bus_device_well bdw ON bdw.well_id=bwi.id LEFT JOIN bus_device bd ON bdw.device_id=bd.id WHERE bwi.valid='1' AND bdw.valid='1' </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="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> </mapper>