zcloud_gbs_iotalarm/web-infrastructure/src/main/resources/mapper/DeviceRegionMapper.xml

64 lines
2.6 KiB
XML

<?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.zcloud.persistence.mapper.DeviceRegionMapper">
<select id="listPage" resultType="com.zcloud.persistence.dataobject.DeviceRegionDO">
SELECT
rc.id,
rc.region_config_id AS regionConfigId,
fr.id AS fireRegionId,
fr.fire_region_name AS fireRegionName,
fr.fire_region_code AS fireRegionCode,
fr.department_id AS departmentId,
d.name AS departmentName,
rc.manager_id AS managerId,
u.name AS managerName,
rc.status,
rc.remarks,
rc.create_id AS createId,
rc.create_name AS createName,
rc.create_time AS createTime,
rc.update_id AS updateId,
rc.update_name AS updateName,
rc.update_time AS updateTime,
rc.tenant_id AS tenantId,
rc.org_id AS orgId,
IFNULL(bindRel.bindSensorCount, 0) AS bindSensorCount
FROM `jjb-saas-zcloud-fire-check`.fire_region fr
LEFT JOIN iot_alarm_region_config rc ON rc.fire_region_id = fr.id AND rc.delete_enum = 'FALSE'
LEFT JOIN department d ON fr.department_id = d.id AND d.delete_enum = 'FALSE'
LEFT JOIN user u ON rc.manager_id = u.id AND u.delete_enum = 'FALSE'
LEFT JOIN (
SELECT fire_region_id, COUNT(1) AS bindSensorCount
FROM iot_alarm_region_sensor_rel
WHERE delete_enum = 'FALSE'
GROUP BY fire_region_id
) bindRel ON bindRel.fire_region_id = fr.id
<where>
fr.delete_enum = 'FALSE'
AND fr.state = 0
<if test="params.tenantId != null">
AND fr.corpinfo_id = #{params.tenantId}
</if>
<if test="params.fireRegionCode != null and params.fireRegionCode != ''">
AND fr.fire_region_code LIKE CONCAT('%', #{params.fireRegionCode}, '%')
</if>
<if test="params.fireRegionId != null">
AND fr.id = #{params.fireRegionId}
</if>
<if test="params.departmentId != null">
AND fr.department_id = #{params.departmentId}
</if>
<if test="params.managerId != null">
AND rc.manager_id = #{params.managerId}
</if>
<if test="params.status != null">
AND rc.status = #{params.status}
</if>
</where>
ORDER BY fr.create_time DESC
</select>
</mapper>