2024-11-15 14:42:01 +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.changhu.mapper.OpenApiMapper" >
<select id= "getEnterprisesUnit" resultType= "com.changhu.common.pojo.vo.SelectNodeVo" >
select
eu.snow_flake_id as 'value',
eu.name as 'label'
from enterprises_unit eu
left join police_unit pu on eu.police_unit_id = pu.snow_flake_id
where eu.delete_flag = 0
<choose >
<when test= "level==1" >
and eu.province = #{code}
</when>
<when test= "level==2" >
and eu.city = #{code}
</when>
<when test= "level==3" >
and eu.districts = #{code}
</when>
<when test= "level==4" >
and eu.street = #{code}
</when>
<when test= "level==5" >
and pu.code = #{code}
</when>
<otherwise > and eu.snow_flake_id = -1</otherwise>
</choose>
order by eu.create_time desc
</select>
2024-11-25 09:32:39 +08:00
<resultMap id= "ServiceProjectDTOResultMap" type= "com.changhu.pojo.dto.ServiceProjectDTO" >
<result
column="projectManagerInfo"
typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler"
property="projectManagerInfo"/>
<result
column="securityUnitInfo"
typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler"
property="securityUnitInfo" />
<result
column="securityUserList"
typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler"
property="securityUserList" />
</resultMap>
<select id= "getServiceProjectByEnterprisesUnitId" resultMap= "ServiceProjectDTOResultMap" >
SELECT
sp.*,
IF(mpu.snow_flake_id IS NOT NULL,json_object( 'name', mpu.NAME, 'sex', mpu.sex, 'telephone', mpu.telephone, 'idCard', mpu.id_card ),NULL) AS 'projectManagerInfo',
json_object(
'name',su1.name,
'socialCode',su1.social_code,
'businessLicense',su1.business_license,
'legalPersonInfo',su1.legal_person_info,
'address',su1.address,
'nature',su1.nature
) as 'securityUnitInfo',
if(COUNT(su.snow_flake_id)>0,JSON_ARRAYAGG(json_object(
'snowFlakeId',su.snow_flake_id,
'name',su.name,
'telephone',su.telephone,
'workPost',su.work_post,
'sex',su.sex,
'nativePlace',su.native_place,
'idCard',su.id_card,
'dateOfBirth',su.date_of_birth,
'securityNumber',su.security_number,
'homeAddress',su.home_address,
'remark',su.remark,
'createTime',su.create_time
)),JSON_ARRAY()) as 'securityUserList'
FROM
service_project sp
left join security_unit su1 on sp.security_unit_id = su1.snow_flake_id
LEFT JOIN mini_program_user mpu ON sp.project_manager_mini_program_user_id = mpu.snow_flake_id AND mpu.identity = 'project_manager'
left join security_user su on su.service_project_id = sp.snow_flake_id and su.delete_flag = 0
WHERE
sp.delete_flag = 0
AND sp.enterprises_unit_id = #{enterprisesUnitId}
group by sp.snow_flake_id
ORDER BY
sp.create_time DESC
</select>
2024-11-19 16:17:49 +08:00
<resultMap id= "SecurityUnitUseStatisticsDTOResultMap" type= "com.changhu.pojo.dto.SecurityUnitUseStatisticsDTO" >
2024-11-20 16:18:03 +08:00
<result
column="serviceProjectList"
typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler"
property="serviceProjectList"/>
2024-11-19 16:17:49 +08:00
</resultMap>
<select id= "securityUnitUseStatistics" resultMap= "SecurityUnitUseStatisticsDTOResultMap" >
2024-11-20 16:18:03 +08:00
WITH security_user_counts AS (
SELECT
service_project_id,
COUNT(1) AS securityUserTotal,
SUM(IF(security_number != '', 1, 0)) AS haveCardSecurityUserCount
FROM
security_user
WHERE delete_flag = 0
GROUP BY service_project_id )
2024-11-19 16:17:49 +08:00
select
2024-11-20 16:18:03 +08:00
eu.snow_flake_id as 'enterprisesUnitId',
eu.name as 'enterprisesUnitName',
2024-11-21 14:16:22 +08:00
eu.province,
eu.city,
eu.districts,
eu.street,
2024-11-20 16:18:03 +08:00
ad1.name as 'provinceName',
ad2.name as 'cityName',
ad3.name as 'districtsName',
ad4.name as 'streetName',
eu.address as 'address',
2024-11-20 10:29:36 +08:00
pu.snow_flake_id as 'policeUnitId',
2024-11-19 16:17:49 +08:00
pu.name as 'policeUnitName',
2024-11-20 16:18:03 +08:00
json_arrayagg(
json_object(
'snowFlakeId', sp.snow_flake_id,
'name', sp.name,
'type', sp.type,
'twoType', sp.two_type,
'outsourceName', sp.outsource_name,
'isFiling', sp.is_filing,
'idNumber', sp.id_number,
'securityUserTotal', suc.securityUserTotal,
2024-11-20 17:26:04 +08:00
'haveCardSecurityUserCount', suc.haveCardSecurityUserCount,
'securityUnitId',su.snow_flake_id,
'securityUnitName',su.name,
'securityUnitLegalPersonInfo',su.legal_person_info,
'serviceProjectManagerName',mpu.name,
'serviceProjectManagerTelephone',mpu.telephone
2024-11-20 16:18:03 +08:00
)) as 'serviceProjectList'
from
police_unit pu
2024-11-19 16:17:49 +08:00
join enterprises_unit eu on pu.snow_flake_id = eu.police_unit_id and eu.delete_flag = 0
join service_project sp on eu.snow_flake_id = sp.enterprises_unit_id and sp.delete_flag = 0
join security_unit su on sp.security_unit_id = su.snow_flake_id and su.delete_flag = 0
LEFT join mini_program_user mpu on sp.project_manager_mini_program_user_id = mpu.snow_flake_id
2024-11-20 10:40:00 +08:00
left join administrative_division ad1 on eu.province = ad1.code and ad1.delete_flag = 0
left join administrative_division ad2 on eu.city = ad2.code and ad2.delete_flag = 0
left join administrative_division ad3 on eu.districts = ad3.code and ad3.delete_flag = 0
left join administrative_division ad4 on eu.street = ad4.code and ad4.delete_flag = 0
2024-11-20 16:18:03 +08:00
left JOIN security_user_counts suc ON sp.snow_flake_id = suc.service_project_id
where
pu.delete_flag = 0
2024-11-19 16:17:49 +08:00
<choose >
<when test= "level==1" >
and eu.province = #{code}
</when>
<when test= "level==2" >
and eu.city = #{code}
</when>
<when test= "level==3" >
and eu.districts = #{code}
</when>
<when test= "level==4" >
and eu.street = #{code}
</when>
<when test= "level==5" >
and pu.code = #{code}
</when>
<otherwise > and eu.snow_flake_id = -1</otherwise>
</choose>
2024-11-20 16:18:03 +08:00
group by eu.snow_flake_id
order by eu.create_time desc
2024-11-19 16:17:49 +08:00
</select>
2024-11-21 10:55:12 +08:00
<select id= "securityUserRoster"
resultType="com.changhu.pojo.dto.SecurityUserRosterDTO">
2024-11-19 16:17:49 +08:00
select su.snow_flake_id,
su.name,
su.sex,
2024-12-19 14:15:31 +08:00
su.photo,
2024-11-19 16:17:49 +08:00
TIMESTAMPDIFF(YEAR, su.date_of_birth, CURDATE()) AS 'age',
su.id_card,
su.telephone,
eu.name as 'enterprisesUnitName',
suu.name as 'securityUnitName',
su.security_number
2024-11-21 10:55:12 +08:00
from enterprises_unit eu
LEFT JOIN service_project sp ON sp.enterprises_unit_id = eu.snow_flake_id AND sp.delete_flag = 0
JOIN security_user su ON su.service_project_id = sp.snow_flake_id AND su.delete_flag = 0
LEFT JOIN security_unit suu ON su.security_unit_id = suu.snow_flake_id AND suu.delete_flag = 0
2024-11-19 16:17:49 +08:00
where eu.delete_flag = 0
2024-11-21 10:55:12 +08:00
<choose >
<when test= "type==@com.changhu.pojo.params.EnterprisesUnitOrServiceProjectType@ENTERPRISES_UNIT" >
and eu.snow_flake_id = #{id}
</when>
<when test= "type==@com.changhu.pojo.params.EnterprisesUnitOrServiceProjectType@SERVICE_PROJECT" >
and sp.snow_flake_id = #{id}
</when>
<otherwise >
and eu.snow_flake_id = -1
</otherwise>
</choose>
2024-11-19 16:17:49 +08:00
order by su.create_time desc
</select>
2024-12-19 14:15:31 +08:00
<select id= "unitSecurityUserRoster" resultType= "com.changhu.pojo.dto.SecurityUserRosterDTO" >
select su.snow_flake_id,
su.name,
su.sex,
su.photo,
TIMESTAMPDIFF(YEAR, su.date_of_birth, CURDATE()) AS 'age',
su.id_card,
su.telephone,
eu.name as 'enterprisesUnitName',
suu.name as 'securityUnitName',
su.security_number
from enterprises_unit eu
LEFT JOIN service_project sp ON sp.enterprises_unit_id = eu.snow_flake_id AND sp.delete_flag = 0
JOIN security_user su ON su.service_project_id = sp.snow_flake_id AND su.delete_flag = 0
LEFT JOIN security_unit suu ON su.security_unit_id = suu.snow_flake_id AND suu.delete_flag = 0
where eu.delete_flag = 0
<choose >
<when test= "level==1" >
and eu.province = #{code}
</when>
<when test= "level==2" >
and eu.city = #{code}
</when>
<when test= "level==3" >
and eu.districts = #{code}
</when>
<when test= "level==4" >
and eu.street = #{code}
</when>
<when test= "level==5" >
and pu.code = #{code}
</when>
<otherwise > and eu.snow_flake_id = -1</otherwise>
</choose>
order by su.create_time desc
</select>
2024-11-15 14:42:01 +08:00
</mapper>