2026-03-19 18:00:55 +08:00
|
|
|
<?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.primeport.persistence.mapper.ClosedAreaMapper">
|
|
|
|
|
|
|
|
|
|
<select id="getCountByHgAuthArea" resultType="com.zcloud.primeport.persistence.dataobject.ClosedAreaDO">
|
|
|
|
|
SELECT
|
2026-03-20 16:30:58 +08:00
|
|
|
dic.dict_label hg_auth_area_name,
|
|
|
|
|
dic.dict_value hg_auth_area,
|
2026-03-19 18:00:55 +08:00
|
|
|
IFNULL(tmp.totalChildAreasCount,0) total_area_count,
|
|
|
|
|
IFNULL(tmp.totalCorpCount,0) total_corp_count
|
|
|
|
|
FROM
|
|
|
|
|
`jjb-saas-config`.`conf_dict_tree` dic
|
|
|
|
|
LEFT JOIN (
|
|
|
|
|
SELECT
|
|
|
|
|
ca.hg_auth_area,
|
|
|
|
|
COUNT( ca.id ) totalChildAreasCount,
|
|
|
|
|
COUNT( DISTINCT ca.jurisdictional_corp_id ) totalCorpCount
|
|
|
|
|
FROM
|
|
|
|
|
`closed_area` ca
|
|
|
|
|
WHERE
|
|
|
|
|
ca.delete_enum = 'FALSE'
|
|
|
|
|
GROUP BY
|
|
|
|
|
ca.hg_auth_area) tmp on CONVERT(tmp.hg_auth_area USING utf8mb4) = CONVERT( dic.dict_value USING utf8mb4)
|
|
|
|
|
WHERE
|
|
|
|
|
dic.parent_id = ( SELECT id FROM `jjb-saas-config`.`conf_dict_tree` dicp WHERE dicp.dict_value = 'HG_AUTH_AREA' AND dicp.delete_enum = 'FALSE' )
|
|
|
|
|
AND dic.delete_enum = 'FALSE'
|
2026-04-29 18:12:08 +08:00
|
|
|
AND dic.dict_value != 'QHD_GQ_DXGQ'
|
2026-03-19 18:00:55 +08:00
|
|
|
ORDER BY dic.id
|
|
|
|
|
</select>
|
|
|
|
|
<select id="listPage" resultType="com.zcloud.primeport.persistence.dataobject.ClosedAreaDO">
|
|
|
|
|
SELECT
|
|
|
|
|
c.*,
|
|
|
|
|
CASE
|
|
|
|
|
WHEN COUNT( child.id ) > 0 THEN
|
|
|
|
|
1 ELSE 2
|
|
|
|
|
END AS has_child
|
|
|
|
|
FROM
|
|
|
|
|
closed_area c
|
|
|
|
|
LEFT JOIN closed_area child ON c.id = child.parent_id
|
|
|
|
|
AND child.delete_enum = 'FALSE'
|
|
|
|
|
WHERE
|
|
|
|
|
c.delete_enum = 'FALSE'
|
2026-03-20 16:14:27 +08:00
|
|
|
<if test="params.parentId != null">
|
|
|
|
|
AND c.parent_id = #{params.parentId}
|
2026-03-19 18:00:55 +08:00
|
|
|
</if>
|
2026-07-03 15:01:43 +08:00
|
|
|
<if test="params.closedArea != null">
|
|
|
|
|
AND c.hg_auth_area = #{params.closedArea}
|
|
|
|
|
</if>
|
2026-03-20 16:35:50 +08:00
|
|
|
<if test="params.hgAuthArea != null and params.hgAuthArea != ''">
|
|
|
|
|
AND C.hg_auth_area = #{params.hgAuthArea}
|
|
|
|
|
</if>
|
2026-03-20 16:14:27 +08:00
|
|
|
<if test="params.closedAreaName != null and params.closedAreaName != ''">
|
|
|
|
|
AND C.closed_area_name LIKE CONCAT('%', #{params.closedAreaName}, '%')
|
2026-03-19 18:00:55 +08:00
|
|
|
</if>
|
2026-08-13 14:07:08 +08:00
|
|
|
<if test="params.corpinfoId != null">
|
|
|
|
|
AND c.jurisdictional_corp_id = #{params.corpinfoId}
|
|
|
|
|
</if>
|
2026-03-19 18:00:55 +08:00
|
|
|
GROUP BY
|
|
|
|
|
c.id
|
|
|
|
|
ORDER BY
|
|
|
|
|
c.id
|
|
|
|
|
</select>
|
2026-07-02 08:47:43 +08:00
|
|
|
|
|
|
|
|
<select id="listCount" resultType="com.zcloud.primeport.persistence.dataobject.ClosedAreaCountDO">
|
|
|
|
|
SELECT
|
|
|
|
|
c.*,
|
|
|
|
|
CASE WHEN child_cnt > 0 THEN 1 ELSE 2 END AS has_child,
|
|
|
|
|
IFNULL(person_cnt, 0) AS person_count,
|
|
|
|
|
IFNULL(car_cnt, 0) AS car_count
|
|
|
|
|
FROM
|
|
|
|
|
closed_area c
|
|
|
|
|
LEFT JOIN (
|
|
|
|
|
SELECT parent_id, COUNT(id) child_cnt
|
|
|
|
|
FROM closed_area
|
|
|
|
|
WHERE delete_enum = 'FALSE'
|
|
|
|
|
GROUP BY parent_id
|
|
|
|
|
) child ON c.id = child.parent_id
|
|
|
|
|
-- 人员申请数量预统计
|
|
|
|
|
LEFT JOIN (
|
|
|
|
|
SELECT closed_area_id, COUNT(DISTINCT id) person_cnt
|
|
|
|
|
FROM closed_area_person_apply
|
|
|
|
|
WHERE delete_enum = 'FALSE'
|
|
|
|
|
GROUP BY closed_area_id
|
|
|
|
|
) cpa ON c.id = cpa.closed_area_id
|
|
|
|
|
-- 车辆申请数量预统计
|
|
|
|
|
LEFT JOIN (
|
|
|
|
|
SELECT closed_area_id, COUNT(DISTINCT id) car_cnt
|
|
|
|
|
FROM closed_area_car_apply
|
|
|
|
|
WHERE delete_enum = 'FALSE'
|
|
|
|
|
GROUP BY closed_area_id
|
|
|
|
|
) cca ON c.id = cca.closed_area_id
|
|
|
|
|
WHERE
|
|
|
|
|
c.delete_enum = 'FALSE'
|
|
|
|
|
<if test="params.corpId != null">
|
|
|
|
|
AND c.tenant_id = #{params.corpId}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="params.parentId != null">
|
|
|
|
|
AND c.parent_id = #{params.parentId}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="params.closedAreaName != null and params.closedAreaName != ''">
|
|
|
|
|
AND C.closed_area_name LIKE CONCAT('%', #{params.closedAreaName}, '%')
|
|
|
|
|
</if>
|
|
|
|
|
GROUP BY
|
|
|
|
|
c.id
|
|
|
|
|
ORDER BY
|
|
|
|
|
c.id
|
|
|
|
|
</select>
|
|
|
|
|
|
2026-07-27 09:45:38 +08:00
|
|
|
<select id="corpStat" resultType="com.zcloud.primeport.persistence.dataobject.ClosedAreaCorpStatDO">
|
|
|
|
|
SELECT
|
|
|
|
|
IFNULL(COUNT(DISTINCT ca.id), 0) AS closed_area_count,
|
|
|
|
|
IFNULL(COUNT(DISTINCT CASE WHEN mp.passage_type = 'HGKM_MKMJ_PASSAGE_TYPE_CAR' THEN mp.id END), 0) AS car_passage_count,
|
|
|
|
|
IFNULL(COUNT(DISTINCT CASE WHEN mp.passage_type = 'HGKM_MKMJ_PASSAGE_TYPE_CAR_R' THEN mp.id END), 0) AS person_passage_count
|
|
|
|
|
FROM closed_area ca
|
|
|
|
|
LEFT JOIN mkmj m ON ca.id = m.closed_area_id AND m.delete_enum = 'FALSE'
|
|
|
|
|
LEFT JOIN mkmj_passage mp ON m.id = mp.mkmj_id AND mp.delete_enum = 'FALSE'
|
|
|
|
|
WHERE ca.delete_enum = 'FALSE'
|
|
|
|
|
<if test="params.corpinfoId != null">
|
|
|
|
|
AND ca.jurisdictional_corp_id = #{params.corpinfoId}
|
|
|
|
|
</if>
|
|
|
|
|
</select>
|
|
|
|
|
|
2026-08-19 16:55:53 +08:00
|
|
|
<!-- 封闭区域人员进出记录(含子区域递归查询) -->
|
|
|
|
|
<sql id="personInOutBaseQuery">
|
|
|
|
|
WITH RECURSIVE area_tree AS (
|
|
|
|
|
SELECT id FROM closed_area WHERE id = #{params.closedAreaId} AND delete_enum = 'FALSE'
|
|
|
|
|
UNION ALL
|
|
|
|
|
SELECT ca.id FROM closed_area ca INNER JOIN area_tree at ON ca.parent_id = at.id WHERE ca.delete_enum = 'FALSE'
|
|
|
|
|
)
|
|
|
|
|
SELECT har.*
|
|
|
|
|
FROM hk_access_record har
|
|
|
|
|
INNER JOIN mkmj_gate mg ON har.door_index_code = mg.hk_index_code AND mg.delete_enum = 'FALSE'
|
|
|
|
|
INNER JOIN mkmj m ON mg.mkmj_id = m.id AND m.delete_enum = 'FALSE'
|
|
|
|
|
INNER JOIN area_tree at ON m.closed_area_id = at.id
|
|
|
|
|
WHERE har.delete_enum = 'FALSE'
|
|
|
|
|
<if test="params.personName != null and params.personName != ''">
|
|
|
|
|
AND har.person_name LIKE CONCAT('%', #{params.personName}, '%')
|
|
|
|
|
</if>
|
|
|
|
|
<if test="params.startTime != null and params.startTime != ''">
|
|
|
|
|
AND har.event_time >= CONCAT(#{params.startTime}, ' 00:00:00')
|
|
|
|
|
</if>
|
|
|
|
|
<if test="params.endTime != null and params.endTime != ''">
|
|
|
|
|
AND har.event_time <= CONCAT(#{params.endTime}, ' 23:59:59')
|
|
|
|
|
</if>
|
|
|
|
|
</sql>
|
|
|
|
|
|
|
|
|
|
<select id="listPersonInOutRecord" resultType="com.zcloud.primeport.persistence.dataobject.HkAccessRecordDO">
|
|
|
|
|
<include refid="personInOutBaseQuery"/>
|
|
|
|
|
ORDER BY har.event_time DESC
|
|
|
|
|
<if test="params.pageSize != null">
|
|
|
|
|
LIMIT #{params.offset}, #{params.pageSize}
|
|
|
|
|
</if>
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="countPersonInOutRecord" resultType="long">
|
|
|
|
|
SELECT COUNT(1)
|
|
|
|
|
FROM (
|
|
|
|
|
<include refid="personInOutBaseQuery"/>
|
|
|
|
|
) tmp
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 封闭区域车辆进出记录(含子区域递归查询) -->
|
|
|
|
|
<sql id="vehicleInOutBaseQuery">
|
|
|
|
|
WITH RECURSIVE area_tree AS (
|
|
|
|
|
SELECT id FROM closed_area WHERE id = #{params.closedAreaId} AND delete_enum = 'FALSE'
|
|
|
|
|
UNION ALL
|
|
|
|
|
SELECT ca.id FROM closed_area ca INNER JOIN area_tree at ON ca.parent_id = at.id WHERE ca.delete_enum = 'FALSE'
|
|
|
|
|
)
|
|
|
|
|
SELECT hvar.*
|
|
|
|
|
FROM hk_vehicle_access_record hvar
|
|
|
|
|
INNER JOIN mkmj_gate mg ON hvar.lane_index_code = mg.hk_index_code AND mg.delete_enum = 'FALSE'
|
|
|
|
|
INNER JOIN mkmj m ON mg.mkmj_id = m.id AND m.delete_enum = 'FALSE'
|
|
|
|
|
INNER JOIN area_tree at ON m.closed_area_id = at.id
|
|
|
|
|
WHERE hvar.delete_enum = 'FALSE'
|
|
|
|
|
<if test="params.vehiclePlateNumber != null and params.vehiclePlateNumber != ''">
|
|
|
|
|
AND hvar.plate_no LIKE CONCAT('%', #{params.vehiclePlateNumber}, '%')
|
|
|
|
|
</if>
|
|
|
|
|
<if test="params.arrivalStartTime != null and params.arrivalStartTime != ''">
|
|
|
|
|
AND hvar.event_time >= CONCAT(#{params.arrivalStartTime}, ' 00:00:00')
|
|
|
|
|
</if>
|
|
|
|
|
<if test="params.arrivalEndTime != null and params.arrivalEndTime != ''">
|
|
|
|
|
AND hvar.event_time <= CONCAT(#{params.arrivalEndTime}, ' 23:59:59')
|
|
|
|
|
</if>
|
|
|
|
|
<if test="params.departureStartTime != null and params.departureStartTime != ''">
|
|
|
|
|
AND hvar.event_time >= CONCAT(#{params.departureStartTime}, ' 00:00:00')
|
|
|
|
|
</if>
|
|
|
|
|
<if test="params.departureEndTime != null and params.departureEndTime != ''">
|
|
|
|
|
AND hvar.event_time <= CONCAT(#{params.departureEndTime}, ' 23:59:59')
|
|
|
|
|
</if>
|
|
|
|
|
</sql>
|
|
|
|
|
|
|
|
|
|
<select id="listVehicleInOutRecord" resultType="com.zcloud.primeport.persistence.dataobject.HkVehicleAccessRecordDO">
|
|
|
|
|
<include refid="vehicleInOutBaseQuery"/>
|
|
|
|
|
ORDER BY hvar.event_time DESC
|
|
|
|
|
<if test="params.pageSize != null">
|
|
|
|
|
LIMIT #{params.offset}, #{params.pageSize}
|
|
|
|
|
</if>
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="countVehicleInOutRecord" resultType="long">
|
|
|
|
|
SELECT COUNT(1)
|
|
|
|
|
FROM (
|
|
|
|
|
<include refid="vehicleInOutBaseQuery"/>
|
|
|
|
|
) tmp
|
|
|
|
|
</select>
|
|
|
|
|
|
2026-03-19 18:00:55 +08:00
|
|
|
</mapper>
|
|
|
|
|
|