南昌市物联网技防平台-后台
zengh
2021-07-27 f3e1ec804ee6c86be99fdc1fd378d4fa467bb7b7
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml
@@ -36,11 +36,37 @@
        <result column="uids" property="uids"/>
        <result column="securityArr" property="securityArr"/>
        <result column="securityId" property="securityId"/>
        <result column="baname" property="baname"/>
        <result column="baid" property="baid"/>
        <result column="deviceName" property="deviceName"/>
        <result column="baphone" property="baphone"/>
        <result column="manufacturers" property="manufacturers"/>
        <result column="alarmlb" property="alarmlb"/>
        <result column="alarmbs" property="alarmbs"/>
    </resultMap>
    <!-- 通用查询映射结果 -->
    <resultMap id="alarmonline" type="org.springblade.jfpt.alarm.vo.AlarmVO">
        <id column="alarmPeople" property="alarmPeople"/>
        <result column="alarmId" property="alarmId"/>
        <result column="phoneNumber" property="phoneNumber"/>
    </resultMap>
    <!-- 通用查询映射结果 -->
    <resultMap id="userResultMap" type="org.springblade.system.user.entity.User">
        <result column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="phone" property="phone"/>
        <result column="online_status" property="online_status"/>
        <result column="work_status" property="work_status"/>
    </resultMap>
    <sql id="alarmCondition">
        <if test="alarm.id!=null">
            and a.id = #{alarm.id}
        </if>
        <if test="alarm.alarmbs!=null">
            and a.alarmbs = #{alarm.alarmbs}
        </if>
        <if test="alarm.jtype!=null">
            and a.jtype like concat('%',#{alarm.jtype},'%')
@@ -52,27 +78,27 @@
            and a.galarmPeople like concat('%',#{alarm.galarmPeople},'%')
        </if>
        <if test="alarm.district!=null">
            and a.district like concat('%',#{alarm.district},'%')
            and e.district like concat('%',#{alarm.district},'%')
        </if>
        <if test="alarm.province!=null">
            and a.province like concat('%',#{alarm.province},'%')
            and e.province like concat('%',#{alarm.province},'%')
        </if>
        <if test="alarm.city!=null">
            and a.city like concat('%',#{alarm.city},'%')
            and e.city like concat('%',#{alarm.city},'%')
        </if>
        <if test="alarm.level!=null">
            and a.level like concat('%',#{alarm.level},'%')
        </if>
        <if test="alarm.waringType!=null">
        <if test="alarm.waringType!=null and alarm.waringType!='undefined'">
            and a.waringType like concat('%',#{alarm.waringType},'%')
        </if>
        <if test="alarm.beginTime!=null and alarm.beginTime!=''">
        <if test="alarm.beginTime!=null and alarm.beginTime!='' and alarm.beginTime!='undefined'">
            and a.alarmTime&gt;=#{alarm.beginTime}
        </if>
        <if test="alarm.endTime!=null and alarm.endTime!=''">
        <if test="alarm.endTime!=null and alarm.endTime!='' and alarm.endTime!='undefined'">
            and a.alarmTime&lt;=#{alarm.endTime}
        </if>
        <if test="alarm.timeDesc!=null and alarm.timeDesc!=''">
        <if test="alarm.timeDesc!=null and alarm.timeDesc!='' and alarm.timeDesc!='undefined'">
            <if test="alarm.timeDesc=='30分钟以上'">
                and czTime-alarmTime>1800
            </if>
@@ -186,19 +212,25 @@
    <select id="selectAlarmPage" resultMap="alarmResultMap">
        select
        a.id,a.alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.content,a.waringType,a.bz,
        a.deviceNumber,a.region,a.district,a.vaddress,a.aaddress,
        a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,a.province,a.city,a.cid,
        a.securityArr,a.securityId,
        a.deviceNumber,a.region,e.district,a.vaddress,a.aaddress,
        a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,e.province,e.city,a.cid,
        a.securityArr,a.securityId,a.alarmlb,a.alarmbs,
        e.serialNumber,e.oneContacts,e.ThreeContacts,e.twoContacts,e.onePhone,e.twoPhone,e.ThreePhone,
        e.stype,
        e.oneId,
        e.twoId,
        e.threeId,
        e.deptId,
        e.manufacturers,
        e.street as place,
        e.channelNumber from sys_alarm a
        e.channelNumber,
        u.name as baname,
        u.id as baid,
        u.phone as baphone
        from sys_alarm a
        LEFT JOIN
        sys_equipment e on e.deviceNumber=a.deviceNumber
        LEFT JOIN jfpth.blade_user u ON u.id = a.securityId
        where 1=1
        <include refid="alarmCondition"></include>
        and a.waringType IN("紧急求救")
@@ -207,9 +239,194 @@
        a.alarmTime DESC
    </select>
    <select id="selectazPage" resultMap="alarmResultMap">
        SELECT
        *
        FROM
            sys_alarm
        WHERE
            1 = 1
            <if test="alarm.district!=null">
                and district like concat('%',#{alarm.district},'%')
            </if>
            <if test="alarm.province!=null">
                and province like concat('%',#{alarm.province},'%')
            </if>
            <if test="alarm.city!=null">
                and city like concat('%',#{alarm.city},'%')
            </if>
            <if test="alarm.alarmPeople!=null">
                and alarmPeople like concat('%',#{alarm.alarmPeople},'%')
            </if>
            <if test="alarm.jtype!=null">
                and jtype = #{alarm.jtype}
            </if>
            AND waringType IN ( "安装任务" )
        ORDER BY
            jtype ASC,
            alarmTime DESC
    </select>
    <select id="getChartData" resultType="java.util.Map">
        SELECT
            COUNT( * ) AS value,
            "未安装" as name
        FROM
            sys_alarm
        WHERE
            1 = 1
        <if test="beginTime!=null and beginTime!=''">
            and alarmTime&gt;=#{beginTime}
        </if>
        <if test="endTime!=null and endTime!=''">
            and alarmTime&lt;=#{endTime}
        </if>
            AND jtype = 0
            AND waringType IN ( "安装任务" ) UNION ALL
        SELECT
            COUNT( * ) AS value,
            "已安装" as name
        FROM
            sys_alarm
        WHERE
            1 = 1
        <if test="beginTime!=null and beginTime!=''">
            and alarmTime&gt;=#{beginTime}
        </if>
        <if test="endTime!=null and endTime!=''">
            and alarmTime&lt;=#{endTime}
        </if>
            AND jtype = 2
            AND waringType IN ( "安装任务" )
    </select>
    <select id="getChartDataAlarm" resultType="java.util.Map">
        SELECT
            COUNT( * ) AS
        value
            ,
            "未处理" AS name
        FROM
            sys_alarm
        WHERE
            1 = 1
        <if test="beginTime!=null and beginTime!=''">
            and alarmTime&gt;=#{beginTime}
        </if>
        <if test="endTime!=null and endTime!=''">
            and alarmTime&lt;=#{endTime}
        </if>
            AND jtype = 0
            AND waringType IN ( "紧急求救" ) UNION ALL
        SELECT
            COUNT( * ) AS
        value
            ,
            "处理中" AS name
        FROM
            sys_alarm
        WHERE
            1 = 1
        <if test="beginTime!=null and beginTime!=''">
            and alarmTime&gt;=#{beginTime}
        </if>
        <if test="endTime!=null and endTime!=''">
            and alarmTime&lt;=#{endTime}
        </if>
            AND jtype = 1
            AND waringType IN ( "紧急求救" )
            UNION ALL
        SELECT
            COUNT( * ) AS
        value
            ,
            "已处理" AS name
        FROM
            sys_alarm
        WHERE
            1 = 1
        <if test="beginTime!=null and beginTime!=''">
            and alarmTime&gt;=#{beginTime}
        </if>
        <if test="endTime!=null and endTime!=''">
            and alarmTime&lt;=#{endTime}
        </if>
            AND jtype = 2
            AND waringType IN ( "紧急求救" )
    </select>
    <select id="getChartDataAlarmBs" resultType="java.util.Map">
        SELECT
            COUNT( * ) AS
        value
            ,
            "一般警情" AS name
        FROM
            sys_alarm
        WHERE
            1 = 1
        <if test="beginTime!=null and beginTime!=''">
            and alarmTime&gt;=#{beginTime}
        </if>
        <if test="endTime!=null and endTime!=''">
            and alarmTime&lt;=#{endTime}
        </if>
            AND alarmbs = 0
            AND waringType IN ( "紧急求救" ) UNION ALL
        SELECT
            COUNT( * ) AS
        value
            ,
            "误报警情" AS name
        FROM
            sys_alarm
        WHERE
            1 = 1
        <if test="beginTime!=null and beginTime!=''">
            and alarmTime&gt;=#{beginTime}
        </if>
        <if test="endTime!=null and endTime!=''">
            and alarmTime&lt;=#{endTime}
        </if>
            AND alarmbs = 1
            AND waringType IN ( "紧急求救" )
            UNION ALL
        SELECT
            COUNT( * ) AS
        value
            ,
            "严重警情" AS name
        FROM
            sys_alarm
        WHERE
            1 = 1
        <if test="beginTime!=null and beginTime!=''">
            and alarmTime&gt;=#{beginTime}
        </if>
        <if test="endTime!=null and endTime!=''">
            and alarmTime&lt;=#{endTime}
        </if>
            AND alarmbs = 2
            AND waringType IN ( "紧急求救" )
    </select>
    <select id="listAll" resultMap="alarmResultMap">
       select a.id,a.alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.place,a.content,a.waringType,
        a.deviceNumber,a.region,a.district, a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,a.province,a.city,a.cid,a.vaddress
        a.deviceNumber,a.region,e.district, a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,e.province,e.city,a.cid,a.vaddress
         from sys_alarm a LEFT JOIN sys_equipment e on e.deviceNumber=a.deviceNumber
    </select>
@@ -229,7 +446,7 @@
        a.deviceNumber,
        a.vaddress,
        a.region,
        a.district,
        e.district,
        a.alarmId,
        a.czTime,
        a.bz,
@@ -317,9 +534,9 @@
        a.waringType,
        a.deviceNumber,
        a.region,
        a.district,
        a.province,
        a.city,
        e.district,
        e.province,
        e.city,
        a.alarmId,
        a.rname,
        a.LEVEL,
@@ -373,15 +590,17 @@
    <select id="selectListSe" resultMap="alarmResultMap">
        SELECT
        a.id,a.alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.place,a.content,a.waringType,a.bz,
        a.deviceNumber,a.region,a.district,a.vaddress,a.aaddress,
        a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,a.province,a.city,a.cid,
        a.id,a.alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.place,a.content,"一键求助" as waringType,a.bz,
        a.deviceNumber,a.region,e.district,a.vaddress,a.aaddress,
        a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,e.province,e.city,a.cid,
        e.serialNumber,e.oneContacts,e.ThreeContacts,e.twoContacts,e.onePhone,e.twoPhone,e.ThreePhone,
        e.stype,
        e.oneId,
        e.twoId,
        e.threeId,
        e.deptId,
        a.alarmlb,
        e.manufacturers,
        e.channelNumber,
        jfpth.blade_region.`name` as addvnm
        FROM
@@ -410,8 +629,12 @@
            ,bz=#{bz}
        </if>
        <if test="securityArr!=null and id!=''">
        <if test="securityArr!=null and securityArr!=''">
            ,securityArr =#{securityArr}
        </if>
        <if test="bs!=null and bs!=''">
            ,alarmbs =#{bs}
        </if>
        where id=#{id}
@@ -513,16 +736,17 @@
    </select>
    <select id="queryPolice" resultType="java.util.HashMap">
    <select id="queryPolice" resultMap="userResultMap">
        SELECT * FROM jfpth.blade_user WHERE is_deleted != '1' and role_id ="1372092102682521602"
    </select>
    <select id="queryPoliceTime" resultType="java.util.HashMap">
    <select id="queryPoliceTime" resultMap="alarmonline">
        SELECT
        a.alarmPeople,
        a.alarmId,
        a.phoneNumber,
        max( a.jjTime ) AS jjTime
        FROM
        sys_alarm a
@@ -537,7 +761,8 @@
        </if>
        GROUP BY
        a.alarmPeople,
        a.alarmId
        a.alarmId,
        a.phoneNumber
        ORDER BY
        jjTime
        LIMIT 1
@@ -563,110 +788,58 @@
        AND role_id = "1370562810882502657"
    </select>
    <select id="getAlarm" resultType="java.util.HashMap">
        SELECT
            a.id,
            a.alarmType,
            a.alarmPeople,
            a.alarmTime,
            a.galarmPeople,
            a.sex,
            a.phoneNumber,
            a.content,
            a.waringType,
            a.bz,
            a.deviceNumber,
            a.region,
            a.district,
            a.vaddress,
            a.aaddress,
            a.alarmId,
            a.LEVEL,
            e.jd,
            e.wd,
            a.jtype,
            a.rname,
            a.jjTime,
            a.province,
            a.city,
            a.cid,
            e.serialNumber,
            e.oneContacts,
            e.ThreeContacts,
            e.twoContacts,
            e.onePhone,
            e.twoPhone,
            e.ThreePhone,
            e.stype,
            e.oneId,
            e.twoId,
            e.threeId,
            e.deptId,
            e.street AS place,
            e.channelNumber
    <select id="getAlarm" resultMap="alarmResultMap">
        select
        a.id,a.alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.content,a.waringType,a.bz,
        a.deviceNumber,a.region,e.district,a.vaddress,a.aaddress,
        a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,e.province,e.city,a.cid,
        a.securityArr,a.securityId,
        e.serialNumber,e.oneContacts,e.ThreeContacts,e.twoContacts,e.onePhone,e.twoPhone,e.ThreePhone,
        e.stype,
        e.oneId,
        e.twoId,
        e.deviceName,
        e.threeId,
        e.deptId,
        e.street as place,
        e.channelNumber
        FROM
            sys_alarm a
            LEFT JOIN sys_equipment e ON e.deviceNumber = a.deviceNumber
        sys_alarm a
        LEFT JOIN sys_equipment e ON e.deviceNumber = a.deviceNumber
        WHERE
            <if test="alarm.securityArr!=null and alarm.securityArr!=''">
                securityId IS NULL
                AND securityArr LIKE concat('%',#{alarm.securityArr},'%')
            </if>
        <if test="alarm.securityArr!=null and alarm.securityArr!=''">
            securityId = "" or securityId IS NULL
            AND securityArr LIKE concat('%',#{alarm.securityArr},'%')
        </if>
            <if test="alarm.id!=null and alarm.id!=''">
                a.id = #{alarm.id}
            </if>
        <if test="alarm.id!=null and alarm.id!=''">
            a.id = #{alarm.id}
        </if>
    </select>
    <select id="getAlarming" resultType="java.util.HashMap">
        SELECT
            a.id,
            a.alarmType,
            a.alarmPeople,
            a.alarmTime,
            a.galarmPeople,
            a.sex,
            a.phoneNumber,
            a.content,
            a.waringType,
            a.bz,
            a.deviceNumber,
            a.region,
            a.district,
            a.vaddress,
            a.aaddress,
            a.alarmId,
            a.LEVEL,
            e.jd,
            e.wd,
            a.jtype,
            a.rname,
            a.jjTime,
            a.province,
            a.city,
            a.cid,
            e.serialNumber,
            e.oneContacts,
            e.ThreeContacts,
            e.twoContacts,
            e.onePhone,
            e.twoPhone,
            e.ThreePhone,
            e.stype,
            e.oneId,
            e.twoId,
            e.threeId,
            e.deptId,
            e.street AS place,
            e.channelNumber
    <select id="getAlarming" resultMap="alarmResultMap">
        select
        a.id,a.alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.content,a.waringType,a.bz,
        a.deviceNumber,a.region,e.district,a.vaddress,a.aaddress,
        a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,e.province,e.city,a.cid,
        a.securityArr,a.securityId,
        e.serialNumber,e.oneContacts,e.ThreeContacts,e.twoContacts,e.onePhone,e.twoPhone,e.ThreePhone,
        e.stype,
        e.oneId,
        e.twoId,
        e.threeId,
        e.deviceName,
        e.deptId,
        e.street as place,
        e.channelNumber
        FROM
            sys_alarm a
            LEFT JOIN sys_equipment e ON e.deviceNumber = a.deviceNumber
        WHERE
            securityId =#{alarm.securityId}
            securityId =#{alarm.securityId} and jtype != 2
    </select>
@@ -675,7 +848,7 @@
    </update>
    <update id="updateVaddress">
        update sys_alarm SET vaddress=#{vaddress},uids=#{uids} where id=#{jid}
        update sys_alarm SET vaddress=#{vaddress} where id=#{jid}
    </update>
    <update id="updateAaddress">
@@ -720,6 +893,7 @@
        ) b
        on
        a.days = b.datetime
        order by days
    </select>
@@ -748,9 +922,10 @@
    <!--查询符合条件的数据并导出-->
    <select id="exportAlarm" resultType="org.springblade.common.entity.AlarmExcel">
        select
        a.id,a.alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.place,a.content,a.waringType,a.bz,
        a.deviceNumber,a.region,a.district,a.vaddress,a.aaddress,
        a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,a.province,a.city,
        a.id, "一键求助" as
        alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.place,a.content,a.waringType,a.bz,
        a.deviceNumber,a.region,e.district,a.vaddress,a.aaddress,
        a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,e.province,e.city,
        e.serialNumber,e.oneContacts,e.ThreeContacts,e.twoContacts,e.onePhone,e.twoPhone,e.ThreePhone
        from sys_alarm a
        LEFT JOIN sys_equipment e on e.deviceNumber=a.deviceNumber
@@ -764,9 +939,16 @@
    <!--获取实时警情图表统计数据-->
    <select id="getAlarmPie" resultType="org.springblade.common.entity.ReportReturnData">
        select if(1=1,"紧急求救",0) type,ifnull(count(*),0) count from sys_alarm
        select if(1=1,"一键求助",0) type,ifnull(count(*),0) count from sys_alarm
        where waringType="紧急求救"
        <include refid="alarmConditionPie"></include>
    </select>
    <!--查询未处理及处理中的警情总数量-->
    <select id="selectEqCount" resultType="Integer">
        SELECT ifnull(count(*),0) count  FROM `sys_alarm`
        where deviceNumber = #{deviceNumber}
        and jtype!=2
    </select>
</mapper>