<?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.zehong.system.mapper.TDeviceInfoMapper"> <resultMap type="TDeviceInfo" id="TDeviceInfoResult"> <result property="deviceId" column="device_id" /> <result property="deviceName" column="device_name" /> <result property="deviceCode" column="device_code" /> <result property="deviceAddr" column="device_addr" /> <result property="deviceModel" column="device_model" /> <result property="deviceType" column="device_type" /> <result property="beyondEnterpriseId" column="beyond_enterprise_id" /> <result property="beyondEnterpriseName" column="beyond_enterprise_name" /> <result property="longitude" column="longitude" /> <result property="latitude" column="latitude" /> <result property="iconUrl" column="icon_url" /> <result property="linkman" column="linkman" /> <result property="phone" column="phone" /> <result property="installationTime" column="installation_time" /> <result property="inspectionTime" column="inspection_time" /> <result property="createBy" column="create_by" /> <result property="createTime" column="create_time" /> <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> <result property="isDel" column="is_del" /> <result property="remarks" column="remarks" /> </resultMap> <!--关联设备map--> <resultMap type="TDeviceInfoS" id="TDeviceInfoResultS"> <result property="relationDeviceDetailId" column="relation_device_detail_id" /> <result property="relationDeviceId" column="relation_device_id" /> <result property="deviceName" column="device_name" /> <result property="deviceModel" column="device_model" /> <result property="deviceType" column="device_type" /> <result property="iotNo" column="iot_no" /> <result property="detectionMedium" column="detection_medium" /> <result property="remarksn" column="remarks" /> </resultMap> <sql id="selectTDeviceInfoVo"> select a.device_id, a.device_name, a.device_code, a.device_addr, a.device_model, (CASE a.device_type WHEN '1' THEN '阀井' WHEN '2' THEN '调压箱'WHEN '3' THEN '巡检员' WHEN '4' THEN '视频' end) as device_type , a.beyond_enterprise_id, a.longitude, a.latitude, a.icon_url, a.linkman, a.phone, a.installation_time, a.inspection_time, a.create_by, a.create_time, a.update_by, a.update_time, a.is_del, a.remarks ,b.enterprise_name as beyond_enterprise_name from t_device_info a left join t_enterprise_info b on a.beyond_enterprise_id=b.enterprise_id </sql> <select id="selectTDeviceInfoList" parameterType="TDeviceInfo" resultMap="TDeviceInfoResult"> <include refid="selectTDeviceInfoVo"/> <where> a.is_del='0' <if test="beyondEnterpriseId != null and beyondEnterpriseId != -2"> and beyond_enterprise_id = #{beyondEnterpriseId}</if> <if test="deviceName != null and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if> <if test="deviceCode != null and deviceCode != ''"> and device_code = #{deviceCode}</if> <if test="deviceAddr != null and deviceAddr != ''"> and device_addr = #{deviceAddr}</if> </where> order by a.device_id desc </select> <select id="queryBasicInforByNameForBigWindows" resultType="map"> SELECT device_id AS id, device_name AS NAME, CONCAT( '[[', longitude, ', ', latitude, ']]' ) AS coordinates, device_type AS type FROM t_device_info WHERE <if test="name != null and name != ''"> device_name like concat('%', #{name}, '%') AND</if> longitude IS NOT NULL AND latitude IS NOT NULL UNION SELECT site_station_id AS id, site_station_name AS NAME, CONCAT( '[[', longitude, ', ', latitude, ']]' ) AS coordinates, '3' AS type FROM t_site_station_info WHERE <if test="name != null and name != ''"> site_station_name like concat('%', #{name}, '%') AND</if> longitude IS NOT NULL AND latitude IS NOT NULL UNION select t1.userId as id, t1.nickName as NAME, CONCAT( '[[', t1.longitude, ', ', t1.latitude, ']]' ) AS coordinates, CASE t1.userType WHEN '1' THEN '4' WHEN '2' THEN '5' WHEN '3' THEN '6' END AS type from( select a.user_id AS userId, a.detector_id AS detectorId, a.detector_status AS detectorStatus, a.nick_name AS nickName, a.user_type AS userType, a.address AS address, a.longitude AS longitude, a.latitude AS latitude, a.linkman AS linkman, a.phone AS phone, a.email AS email, CASE a.detector_type WHEN '1' THEN '家用探测器' WHEN '2' THEN '工业探测器' END AS detectorType, COUNT(a.detector_id) AS detectorCount, SUM(CASE a.detector_status WHEN '0' THEN 1 ELSE 0 END) AS onLineNum, SUM(CASE a.detector_status WHEN '1' THEN 1 ELSE 0 END) AS offLineNum from(select a1.* , a2.detector_id, a2.detector_type, a2.detector_status FROM t_detector_user a1 LEFT JOIN t_detector_info a2 ON a1.user_id = a2.user_id AND a2.is_del = '0' where a1.is_del = '0' <if test="name != null and name != ''"> and a1.nick_name like concat('%', #{name}, '%')</if> and a1.longitude is not null and a1.latitude is not null) a group by a.user_id,a.detector_type ) t1 left join ( select b.user_id AS userId, COUNT(b.id) AS historyAlarmNum, SUM(CASE b.is_cancel_alarm WHEN '0' THEN 1 ELSE 0 END) AS processingAlarmNum, COUNT(b.id) - SUM(CASE b.is_cancel_alarm WHEN '0' THEN 1 ELSE 0 END) AS cancelAlarmNum from(select b1.id,b1.is_cancel_alarm,b2.* from t_detector_report_data b1 left join t_detector_info b2 on b1.detector_code = b2.detector_code right join t_detector_user b3 on b2.user_id = b3.user_id where b2.is_del = '0' and b3.is_del = '0' ) b group by b.user_id,b.detector_type ) t2 on t2.userId = t1.userId UNION SELECT video_manager_id AS id, video_name AS NAME, CONCAT( '[[', longitude, ', ', latitude, ']]' ) AS coordinates, '7' AS type FROM t_video_manager WHERE <if test="name != null and name != ''"> video_name like concat('%', #{name}, '%') AND</if> longitude IS NOT NULL AND latitude IS NOT NULL UNION SELECT user_id AS id, nick_name AS NAME, CONCAT( '[[', longitude, ', ', latitude, ']]' ) AS coordinates, '8' AS type FROM t_yehuaqi_user WHERE <if test="name != null and name != ''"> nick_name like concat('%', #{name}, '%') AND</if> longitude IS NOT NULL AND latitude IS NOT NULL UNION SELECT pipe_id AS id, pipe_addr AS NAME, coordinates, '9' AS type FROM t_pipe_info WHERE <if test="name != null and name != ''"> pipe_addr like concat('%', #{name}, '%') AND</if> coordinates IS NOT NULL </select> <select id="selectDeviceList" parameterType="TDeviceInfo" resultMap="TDeviceInfoResult"> SELECT * FROM t_device_info WHERE device_name like concat('%', #{deviceName}, '%') </select> <select id="selectTDeviceInfoById" parameterType="Long" resultMap="TDeviceInfoResult"> select device_id, device_name, device_code, device_addr, device_model,device_type, beyond_enterprise_id, beyond_enterprise_name, longitude, latitude, icon_url, linkman, phone, installation_time, inspection_time, create_by, create_time, update_by, update_time, is_del, remarks from t_device_info where device_id = #{deviceId} and is_del='0' </select> <select id="getDeviceInfoAlarmList" resultType="Map"> select a3.device_id as deviceId, a3.device_type as deviceType from t_relation_device_detail_info a1 left join t_detector_info a2 on a1.iot_no = a2.detector_code right join t_device_info a3 on a1.relation_device_id = a3.device_id where a1.is_del = '0' and a2.is_del = '0' and a3.is_del = '0' and a2.detector_status = '2' </select> <insert id="insertTDeviceInfo" parameterType="TDeviceInfo" useGeneratedKeys="true" keyProperty="deviceId"> insert into t_device_info <trim prefix="(" suffix=")" suffixOverrides=","> <if test="deviceName != null">device_name,</if> <if test="deviceCode != null">device_code,</if> <if test="deviceAddr != null">device_addr,</if> <if test="deviceModel != null">device_model,</if> <if test="deviceType != null">device_type,</if> <if test="beyondEnterpriseId != null">beyond_enterprise_id,</if> <if test="beyondEnterpriseName != null">beyond_enterprise_name,</if> <if test="longitude != null">longitude,</if> <if test="latitude != null">latitude,</if> <if test="iconUrl != null">icon_url,</if> <if test="linkman != null">linkman,</if> <if test="phone != null">phone,</if> <if test="installationTime != null">installation_time,</if> <if test="inspectionTime != null">inspection_time,</if> <if test="createBy != null">create_by,</if> <if test="createTime != null">create_time,</if> <if test="updateBy != null">update_by,</if> <if test="updateTime != null">update_time,</if> <if test="isDel != null">is_del,</if> <if test="remarks != null">remarks,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="deviceName != null">#{deviceName},</if> <if test="deviceCode != null">#{deviceCode},</if> <if test="deviceAddr != null">#{deviceAddr},</if> <if test="deviceModel != null">#{deviceModel},</if> <if test="deviceType != null">#{deviceType},</if> <if test="beyondEnterpriseId != null">#{beyondEnterpriseId},</if> <if test="beyondEnterpriseName != null">#{beyondEnterpriseName},</if> <if test="longitude != null">#{longitude},</if> <if test="latitude != null">#{latitude},</if> <if test="iconUrl != null">#{iconUrl},</if> <if test="linkman != null">#{linkman},</if> <if test="phone != null">#{phone},</if> <if test="installationTime != null">#{installationTime},</if> <if test="inspectionTime != null">#{inspectionTime},</if> <if test="createBy != null">#{createBy},</if> <if test="createTime != null">#{createTime},</if> <if test="updateBy != null">#{updateBy},</if> <if test="updateTime != null">#{updateTime},</if> <if test="isDel != null">#{isDel},</if> <if test="remarks != null">#{remarks},</if> </trim> </insert> <update id="updateTDeviceInfo" parameterType="TDeviceInfo"> update t_device_info <trim prefix="SET" suffixOverrides=","> <if test="deviceName != null">device_name = #{deviceName},</if> <if test="deviceCode != null">device_code = #{deviceCode},</if> <if test="deviceAddr != null">device_addr = #{deviceAddr},</if> <if test="deviceModel != null">device_model = #{deviceModel},</if> <if test="deviceType != null">device_type = #{deviceType},</if> <if test="beyondEnterpriseId != null">beyond_enterprise_id = #{beyondEnterpriseId},</if> <if test="beyondEnterpriseName != null">beyond_enterprise_name = #{beyondEnterpriseName},</if> <if test="longitude != null">longitude = #{longitude},</if> <if test="latitude != null">latitude = #{latitude},</if> <if test="iconUrl != null">icon_url = #{iconUrl},</if> <if test="linkman != null">linkman = #{linkman},</if> <if test="phone != null">phone = #{phone},</if> <if test="installationTime != null">installation_time = #{installationTime},</if> <if test="inspectionTime != null">inspection_time = #{inspectionTime},</if> <if test="createBy != null">create_by = #{createBy},</if> <if test="createTime != null">create_time = #{createTime},</if> <if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateTime != null">update_time = #{updateTime},</if> <if test="isDel != null">is_del = #{isDel},</if> <if test="remarks != null">remarks = #{remarks},</if> </trim> where device_id = #{deviceId} </update> <update id="deleteTDeviceInfoById" parameterType="Long"> update t_device_info set is_del='1' where device_id = #{deviceId} </update> <update id="deleteTDeviceInfoByIds" parameterType="String"> update t_device_info set is_del='1' where device_id in <foreach item="deviceId" collection="array" open="(" separator="," close=")"> #{deviceId} </foreach> </update> <insert id="insertDeviceDetailInfo"> INSERT INTO t_relation_device_detail_info (relation_device_id,detection_medium,device_name,device_model,device_type,iot_no,remarks) VALUES (#{relationDeviceId},#{detectionMedium},#{deviceName},#{deviceModel},#{deviceType},#{iotNo},#{remarksn}) </insert> <!--获取设备详细信息列表--> <select id="getdeviceDetailInfo" resultMap="TDeviceInfoResultS"> select relation_device_detail_id,relation_device_id,device_name,device_model,device_type,iot_no,remarks,detection_medium from t_relation_device_detail_info where relation_device_id =#{deviceId} </select> <!--查询无绑定的 关联设备信息--> <select id="selectDetailInfo" resultMap="TDeviceInfoResultS"> select relation_device_detail_id,detection_medium,relation_device_id,device_name,device_model,iot_no,remarks, (CASE device_type WHEN '1' THEN '压力表' WHEN '2' THEN '流量计' WHEN '3' THEN '探测器' end) as device_type from t_relation_device_detail_info where is_del='0' and relation_device_id is null <if test="deviceName != null and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if> <if test="deviceModel != null and deviceModel != ''"> and device_model like concat('%', #{deviceModel}, '%')</if> <if test="iotNo != null and iotNo != ''"> and iot_no like concat('%', #{iotNo}, '%')</if> group by relation_device_detail_id order by relation_device_detail_id desc </select> <!--查询设备已经关联的关联设备--> <select id="selectDetailInfoList" resultMap="TDeviceInfoResultS"> select relation_device_detail_id,detection_medium,relation_device_id,device_name,device_model,iot_no,remarks, (CASE device_type WHEN '1' THEN '压力表' WHEN '2' THEN '流量计' WHEN '3' THEN '探测器' end) as device_type from t_relation_device_detail_info where relation_device_id=#{id} and relation_device_type=#{relationDeviceType} </select> <!--关联设备数据删除接口--> <update id="deleteDetailInfo"> update t_relation_device_detail_info set is_del='1' where relation_device_detail_id in <foreach item="deviceId" collection="array" open="(" separator="," close=")"> #{deviceId} </foreach> </update> <!--关联设备数据删除接口 单条删除--> <update id="deleteDetailinfOS"> update t_relation_device_detail_info set is_del='1' where relation_device_detail_id = #{deviceId} </update> <!--将关联设备信息与设备进行绑定--> <update id="updatetRelationDeviceDetailInfo" parameterType="java.util.List"> update t_relation_device_detail_info set relation_device_id = #{id} ,relation_device_type =#{relationDevicetype} where relation_device_detail_id in <foreach collection="gettDeviceInfoS" item="items" index="key" open="(" separator="," close=")"> #{items.relationDeviceDetailId} </foreach> </update> <!--解绑 设备与关联设备关系--> <update id="deleteDeviceDetailInfo"> update t_relation_device_detail_info set relation_device_id=NULL where relation_device_detail_id=#{deviceId} </update> <select id="selectDeviceNum" resultType="java.util.HashMap"> SELECT SUM(IF(device_type=1,1,0)) AS fajing, SUM(IF(device_type=2,1,0)) AS tiaoya , (SELECT COUNT(video_manager_id) FROM t_video_manager WHERE is_del = 0 and beyond_enterprise_id IN <foreach item="enterpriseId" collection="enterpriseIds" open="(" separator="," close=")"> #{enterpriseId} </foreach> ) AS videoNum, (SELECT COUNT(site_station_id) FROM t_site_station_info WHERE is_del = 0 and beyond_enterprise_id IN <foreach item="enterpriseId" collection="enterpriseIds" open="(" separator="," close=")"> #{enterpriseId} </foreach> ) AS stationNum FROM t_device_info WHERE is_del = 0 and beyond_enterprise_id IN <foreach item="enterpriseId" collection="enterpriseIds" open="(" separator="," close=")"> #{enterpriseId} </foreach> </select> </mapper>