From 6992aaf0587c09f7c511c1afd12e1519d91363d3 Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Thu, 14 Dec 2023 15:38:45 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/cjl' into qa --- screen-api/src/main/resources/mapper/DeviceMapper.xml | 228 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 205 insertions(+), 23 deletions(-) diff --git a/screen-api/src/main/resources/mapper/DeviceMapper.xml b/screen-api/src/main/resources/mapper/DeviceMapper.xml index 493dc7b..959ae30 100644 --- a/screen-api/src/main/resources/mapper/DeviceMapper.xml +++ b/screen-api/src/main/resources/mapper/DeviceMapper.xml @@ -2,28 +2,210 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.moral.api.mapper.DeviceMapper"> - <!-- ������������������������ --> - <resultMap id="BaseResultMap" type="com.moral.api.entity.Device"> - <id column="id" property="id" /> - <result column="name" property="name" /> - <result column="mac" property="mac" /> - <result column="address" property="address" /> - <result column="longitude" property="longitude" /> - <result column="latitude" property="latitude" /> - <result column="state" property="state" /> - <result column="operate_ids" property="operateIds" /> - <result column="monitor_point_id" property="monitorPointId" /> - <result column="organization_id" property="organizationId" /> - <result column="device_version_id" property="deviceVersionId" /> - <result column="profession" property="profession" /> - <result column="tech" property="tech" /> - <result column="detector" property="detector" /> - <result column="purchaser" property="purchaser" /> - <result column="create_time" property="createTime" /> - <result column="update_time" property="updateTime" /> - <result column="install_time" property="installTime" /> - <result column="is_delete" property="isDelete" /> - <result column="extend" property="extend" /> - </resultMap> + <!-- ������������������������ --> + <resultMap id="BaseResultMap" type="com.moral.api.entity.Device"> + <id column="id" property="id"/> + <result column="name" property="name"/> + <result column="mac" property="mac"/> + <result column="address" property="address"/> + <result column="longitude" property="longitude"/> + <result column="latitude" property="latitude"/> + <result column="state" property="state"/> + <result column="operate_ids" property="operateIds"/> + <result column="monitor_point_id" property="monitorPointId"/> + <result column="organization_id" property="organizationId"/> + <result column="guid" property="guid"/> + <result column="device_version_id" property="deviceVersionId"/> + <result column="profession" property="profession"/> + <result column="tech" property="tech"/> + <result column="detector" property="detector"/> + <result column="purchaser" property="purchaser"/> + <result column="create_time" property="createTime"/> + <result column="update_time" property="updateTime"/> + <result column="install_time" property="installTime"/> + <result column="is_delete" property="isDelete"/> + <result column="extend" property="extend"/> + <result column="town_code" property="townCode"/> + <result column="dev_num" property="devNum"/> + </resultMap> + <!--���������������������������--> + <select id="getTrendChartData" resultType="java.util.Map"> + SELECT mac, + DATE_FORMAT(`time`,#{dateFormat}) AS `time`, + `value`->'$.${sensorCode}' AS '${sensorCode}' + FROM history_${timeUnits} + WHERE mac IN + <foreach collection="macs" item="mac" index="index" open="(" close=")" separator=","> + #{mac} + </foreach> + AND DATE_FORMAT(`time`,'%Y-%m-%d %H') <![CDATA[>=]]> #{start} + AND DATE_FORMAT(`time`,'%Y-%m-%d %H') <![CDATA[<]]> #{end} + ORDER BY `time` + </select> + <select id="deviceList" resultType="java.util.Map"> + SELECT + t.latitude as latitude, + t.longitude as longitude, + t.mac as mac, + t.state,(hf.value ->> #{type} )+0 as ${sensorCode} + FROM + device t + inner JOIN monitor_point p on p.id = t.monitor_point_id and p.is_delete = 0 + and p.organization_id in ( + SELECT id FROM ( + SELECT id, parent_id, name FROM organization WHERE id = #{organizationId} + UNION ALL + SELECT i.id, i.parent_id, i.name + FROM organization i + INNER JOIN ( + SELECT * FROM ( + SELECT id, parent_id, name FROM organization WHERE id = #{organizationId} + UNION ALL + SELECT id, parent_id, name FROM organization WHERE parent_id = #{organizationId} + ) t1 + ) t2 ON i.parent_id = t2.id + where i.is_delete = 0 + ) t3 + ) + <if test="region != null"> + and p.${region} = #{regionCode} + </if> + <if test="endHourlyTime !=null and endHourlyTime != ''"> + left join history_hourly_${times} hf on hf.time =#{endHourlyTime} and t.mac = hf.mac + </if> + <if test="endHourlyTime ==null"> + left join history_five_minutely_${times} hf on hf.time = (select max(time) from history_five_minutely_${times} LIMIT 1 + ) and t.mac = hf.mac + </if> + + + WHERE + t.state <![CDATA[ <> ]]> '0' and t.is_delete = 0 + order by t.id desc + </select> + + <select id="deviceIdList" resultType="java.lang.Integer"> + SELECT + t.id + FROM + device t + INNER JOIN monitor_point p ON p.id = t.monitor_point_id + AND p.is_delete = 0 + AND p.organization_id IN ( + SELECT + id + FROM + ( + SELECT + id, + parent_id, + NAME + FROM + organization + WHERE + id = #{organizationId} UNION ALL + SELECT + i.id, + i.parent_id, + i.NAME + FROM + organization i + INNER JOIN ( + SELECT + * + FROM + ( + SELECT + id, + parent_id, + NAME + FROM + organization + WHERE + id = #{organizationId} UNION ALL + SELECT + id, + parent_id, + NAME + FROM + organization + WHERE + parent_id = #{organizationId} + ) t1 + ) t2 ON i.parent_id = t2.id + WHERE + i.is_delete = 0 + ) t3 + ) + WHERE + t.is_delete = 0 + </select> + + <select id="deviceOrgIdList" resultType="java.lang.Integer"> + SELECT + id + FROM + ( + SELECT + id, + parent_id, + NAME + FROM + organization + WHERE + id = #{organizationId} UNION ALL + SELECT + i.id, + i.parent_id, + i.NAME + FROM + organization i + INNER JOIN ( + SELECT + * + FROM + ( + SELECT + id, + parent_id, + NAME + FROM + organization + WHERE + id = #{organizationId} UNION ALL + SELECT + id, + parent_id, + NAME + FROM + organization + WHERE + parent_id = #{organizationId} + ) t1 + ) t2 ON i.parent_id = t2.id + WHERE + i.is_delete = 0 + ) t3 + </select> + <select id="deviceMacs" resultType="java.lang.String"> + select mac from device where organization_id = #{organizationId} order by id desc + + </select> + + <select id="getDevices" resultType="com.moral.api.pojo.vo.device.AppDeviceVo"> + SELECT d.id,d.`name`,d.mac,d.special_type FROM device as d + where 1=1 + <if test="organizationId !=null"> + AND organization_id = #{organizationId} + </if> + and mac LIKE "%"#{mac}"%" or `name` like "%"#{mac}"%" AND is_delete = 0 + union + SELECT sd.id,sd.`name`,sd.mac,sd.special_type FROM special_device as sd + WHERE 1=1 + <if test="organizationId !=null"> + AND organization_id = #{organizationId} + </if> + and mac LIKE "%"#{mac}"%" AND is_delete = 0 + </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0