南昌市物联网技防平台-后台
tangzy
2021-04-25 a4ff2b571be305e2641c9dd67797f4102e795ebb
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml
@@ -33,23 +33,15 @@
        <result column="cid" property="cid"/>
        <result column="vaddress" property="vaddress"/>
        <result column="aaddress" property="aaddress"/>
        <result column="uids" property="uids"/>
        <result column="securityArr" property="securityArr"/>
        <result column="securityId" property="securityId"/>
    </resultMap>
    <select id="selectAlarmPage" 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,
        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.channelNumber from sys_alarm a
        LEFT JOIN sys_equipment e on e.deviceNumber=a.deviceNumber
        where 1=1
    <sql id="alarmCondition">
        <if test="alarm.id!=null">
            and a.id = #{alarm.id}
        </if>
        <if test="alarm.jtype!=null">
            and a.jtype like concat('%',#{alarm.jtype},'%')
        </if>
@@ -93,10 +85,123 @@
            <if test="alarm.timeDesc=='小于5分钟'">
                and czTime-alarmTime>0 and czTime-alarmTime &lt;300
            </if>
            <if test="alarm.timeDesc=='0-2'">
                and hour(alarmTime)>=0 and hour(alarmTime) &lt;2
            </if>
            <if test="alarm.timeDesc=='2-4'">
                and hour(alarmTime)>=2 and hour(alarmTime) &lt;4
            </if>
            <if test="alarm.timeDesc=='4-6'">
                and hour(alarmTime)>=4 and hour(alarmTime) &lt;6
            </if>
            <if test="alarm.timeDesc=='6-8'">
                and hour(alarmTime)>=6 and hour(alarmTime) &lt;8
            </if>
            <if test="alarm.timeDesc=='8-10'">
                and hour(alarmTime)>=8 and hour(alarmTime) &lt;10
            </if>
            <if test="alarm.timeDesc=='10-12'">
                and hour(alarmTime)>=10 and hour(alarmTime) &lt;12
            </if>
            <if test="alarm.timeDesc=='12-14'">
                and hour(alarmTime)>=12 and hour(alarmTime) &lt;14
            </if>
            <if test="alarm.timeDesc=='14-16'">
                and hour(alarmTime)>=14 and hour(alarmTime) &lt;16
            </if>
            <if test="alarm.timeDesc=='16-18'">
                and hour(alarmTime)>=16 and hour(alarmTime) &lt;18
            </if>
            <if test="alarm.timeDesc=='18-20'">
                and hour(alarmTime)>=18 and hour(alarmTime) &lt;20
            </if>
            <if test="alarm.timeDesc=='20-22'">
                and hour(alarmTime)>=20 and hour(alarmTime) &lt;22
            </if>
            <if test="alarm.timeDesc=='22-24'">
                and hour(alarmTime)>=22 and hour(alarmTime) &lt;24
            </if>
        </if>
    </sql>
    <sql id="alarmConditionPie">
        <if test="alarm.beginTime!=null and alarm.beginTime!=''">
            and DATE_FORMAT(a.alarmTime,'%Y-%m-%d')&gt;=#{alarm.beginTime}
        </if>
        <if test="alarm.endTime!=null and alarm.endTime!=''">
            and DATE_FORMAT(a.alarmTime,'%Y-%m-%d')&lt;=#{alarm.endTime}
        </if>
        <if test="alarm.timeDesc!=null and alarm.timeDesc!=''">
            <if test="alarm.timeDesc=='30分钟以上'">
                and czTime-alarmTime>1800
            </if>
            <if test="alarm.timeDesc=='10-30分钟'">
                and czTime-alarmTime>600 and czTime-alarmTime &lt;1800
            </if>
            <if test="alarm.timeDesc=='5-10分钟'">
                and czTime-alarmTime>300 and czTime-alarmTime &lt;600
            </if>
            <if test="alarm.timeDesc=='小于5分钟'">
                and czTime-alarmTime>0 and czTime-alarmTime &lt;300
            </if>
            <if test="alarm.timeDesc=='0-2'">
                and hour(alarmTime)>=0 and hour(alarmTime) &lt;2
            </if>
            <if test="alarm.timeDesc=='2-4'">
                and hour(alarmTime)>=2 and hour(alarmTime) &lt;4
            </if>
            <if test="alarm.timeDesc=='4-6'">
                and hour(alarmTime)>=4 and hour(alarmTime) &lt;6
            </if>
            <if test="alarm.timeDesc=='6-8'">
                and hour(alarmTime)>=6 and hour(alarmTime) &lt;8
            </if>
            <if test="alarm.timeDesc=='8-10'">
                and hour(alarmTime)>=8 and hour(alarmTime) &lt;10
            </if>
            <if test="alarm.timeDesc=='10-12'">
                and hour(alarmTime)>=10 and hour(alarmTime) &lt;12
            </if>
            <if test="alarm.timeDesc=='12-14'">
                and hour(alarmTime)>=12 and hour(alarmTime) &lt;14
            </if>
            <if test="alarm.timeDesc=='14-16'">
                and hour(alarmTime)>=14 and hour(alarmTime) &lt;16
            </if>
            <if test="alarm.timeDesc=='16-18'">
                and hour(alarmTime)>=16 and hour(alarmTime) &lt;18
            </if>
            <if test="alarm.timeDesc=='18-20'">
                and hour(alarmTime)>=18 and hour(alarmTime) &lt;20
            </if>
            <if test="alarm.timeDesc=='20-22'">
                and hour(alarmTime)>=20 and hour(alarmTime) &lt;22
            </if>
            <if test="alarm.timeDesc=='22-24'">
                and hour(alarmTime)>=22 and hour(alarmTime) &lt;24
            </if>
        </if>
    </sql>
    <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,
        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 from sys_alarm a
        LEFT JOIN
        sys_equipment e on e.deviceNumber=a.deviceNumber
        where 1=1
        <include refid="alarmCondition"></include>
        and a.waringType IN("紧急求救")
        ORDER BY
        a.jtype ASC,
        a.alarmTime DESC
@@ -267,40 +372,49 @@
    <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.deviceNumber,
        a.region,
        a.district,
        a.alarmId,
        a.LEVEL,
        a.jd,
        a.cid,
        a.wd,
        a.jtype,
        a.rname,
        e.serialNumber,
        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,
        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.channelNumber,
        jfpth.blade_region.`name` as addvnm
        FROM
        sys_alarm a LEFT JOIN sys_equipment e on e.deviceNumber=a.deviceNumber LEFT JOIN jfpth.blade_region on jfpth.blade_region.`code`=a.district where
        DATE_FORMAT(alarmTime,'%Y-%m-%d') &gt;=#{beginTime} and DATE_FORMAT(alarmTime,'%Y-%m-%d') &lt;=#{endTime} and a.waringType NOT IN("系统测试","主机重新上电") ORDER BY alarmTime desc
        sys_alarm a
        LEFT JOIN sys_equipment e
        on
        e.deviceNumber=a.deviceNumber
        LEFT JOIN
        jfpth.blade_region
        on
        jfpth.blade_region.`code`=a.district
        where
        DATE_FORMAT(alarmTime,'%Y-%m-%d') &gt;=#{beginTime}
        and DATE_FORMAT(alarmTime,'%Y-%m-%d') &lt;=#{endTime}
        and a.waringType  IN("紧急求救")
        ORDER BY
        a.jtype ASC,
        a.alarmTime DESC
    </select>
    <update id="updateJtype">
        update sys_alarm SET jtype=#{jtype},bz=#{bz} where id=#{id}
        update sys_alarm SET jtype=#{jtype}
        <if test="bz!=null and bz!=''">
            ,bz=#{bz}
        </if>
        <if test="securityArr!=null and id!=''">
            ,securityArr =#{securityArr}
        </if>
        where id=#{id}
    </update>
    <update id="updatePoliceStatus">
@@ -449,8 +563,123 @@
        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
        FROM
            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.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
        FROM
            sys_alarm a
            LEFT JOIN sys_equipment e ON e.deviceNumber = a.deviceNumber
        WHERE
            securityId =#{alarm.securityId}
    </select>
    <update id="setAlarm">
        update sys_alarm SET securityId=#{alarm.securityId} where id=#{alarm.id}
    </update>
    <update id="updateVaddress">
        update sys_alarm SET vaddress=#{vaddress} where id=#{jid}
        update sys_alarm SET vaddress=#{vaddress},uids=#{uids} where id=#{jid}
    </update>
    <update id="updateAaddress">
        update sys_alarm SET aaddress=#{aaddress} where id=#{jid}
    </update>
@@ -516,4 +745,28 @@
    </select>
    <!--查询符合条件的数据并导出-->
    <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,
        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
        where 1=1
        <include refid="alarmCondition"></include>
        and a.waringType IN("紧急求救")
        ORDER BY
        a.jtype ASC,
        a.alarmTime DESC
    </select>
    <!--获取实时警情图表统计数据-->
    <select id="getAlarmPie" resultType="org.springblade.common.entity.ReportReturnData">
        select if(1=1,"紧急求救",0) type,ifnull(count(*),0) count from sys_alarm
        where waringType="紧急求救"
        <include refid="alarmConditionPie"></include>
    </select>
</mapper>