138 lines
7.6 KiB
XML
138 lines
7.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.changhu.module.management.mapper.ServiceProjectMapper">
|
|
<select id="pager" resultType="com.changhu.module.management.pojo.vo.ServiceProjectPagerVo">
|
|
select
|
|
sp.*,
|
|
JSON_ARRAY(eu.province,eu.city,eu.districts,eu.street) as 'enterprisesUnitAdministrativeDivisionCodes',
|
|
eu.name as 'enterprisesUnitName',
|
|
mpu.name as 'projectManagerMiniProgramUserName',
|
|
msuu.name as 'createUserName'
|
|
from service_project sp
|
|
left join enterprises_unit eu on sp.enterprises_unit_id = eu.snow_flake_id
|
|
left join mini_program_user mpu on sp.project_manager_mini_program_user_id = mpu.snow_flake_id
|
|
left join management_security_unit_user msuu on sp.create_by = msuu.snow_flake_id
|
|
where sp.delete_flag = 0
|
|
and sp.security_unit_id = ${@com.changhu.common.utils.UserUtil@getUnitId()}
|
|
<if test="params.name!=null and params.name!=''">
|
|
and sp.name like concat('%',#{params.name},'%')
|
|
</if>
|
|
<if test="params.type!=null">
|
|
and sp.type = #{params.type.value}
|
|
</if>
|
|
<if test="params.remark!=null and params.remark!=''">
|
|
and sp.remark like concat('%',#{params.remark},'%')
|
|
</if>
|
|
<if test="params.projectManagerMiniProgramUserName!=null and params.projectManagerMiniProgramUserName!=''">
|
|
and mpu.name like concat('%',#{params.projectManagerMiniProgramUserName},'%')
|
|
</if>
|
|
order by sp.create_time desc
|
|
</select>
|
|
<resultMap id="ProjectManageServiceProjectListVoResultMap"
|
|
type="com.changhu.module.miniProgram.pojo.vo.IndexServiceProjectListVo">
|
|
<result
|
|
column="contact_person_info"
|
|
typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler"
|
|
property="contactPersonInfo"/>
|
|
<result
|
|
column="service_project_list"
|
|
typeHandler="com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler"
|
|
property="serviceProjectList"/>
|
|
</resultMap>
|
|
<select id="getServiceProjectList"
|
|
resultMap="ProjectManageServiceProjectListVoResultMap">
|
|
select eu.*,
|
|
ad1.name as 'provinceName',
|
|
ad2.name as 'cityName',
|
|
ad3.name as 'districtsName',
|
|
ad4.name as 'streetName',
|
|
JSON_ARRAYAGG(JSON_OBJECT(
|
|
'snowFlakeId', sp.snow_flake_id,
|
|
'securityUnitId',sp.security_unit_id,
|
|
'name', sp.name,
|
|
'type', sp.type,
|
|
'isRecruitSecurity', sp.is_recruit_security,
|
|
'idNumber', sp.id_number,
|
|
'serviceArea', sp.service_area,
|
|
'buildingTotal', sp.building_total,
|
|
'houseTotal', sp.house_total,
|
|
'staffTotal', sp.staff_total,
|
|
'securityUserTotal', sp.security_user_total,
|
|
'projectManagerMiniProgramUserInfo',JSON_OBJECT(
|
|
'name',mpu.name,
|
|
'telephone',mpu.telephone,
|
|
'idCard',mpu.id_card),
|
|
'remark', sp.remark)) as 'service_project_list'
|
|
from enterprises_unit eu
|
|
join service_project sp on eu.snow_flake_id = sp.enterprises_unit_id and sp.delete_flag = 0
|
|
left join mini_program_user mpu on sp.project_manager_mini_program_user_id = mpu.snow_flake_id and mpu.delete_flag = 0
|
|
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
|
|
where eu.delete_flag = 0
|
|
<choose>
|
|
<when test="policeUnitId!=null">
|
|
and eu.police_unit_id = #{policeUnitId}
|
|
</when>
|
|
<otherwise>
|
|
and sp.project_manager_mini_program_user_id = #{projectManagerMiniProgramUserId}
|
|
</otherwise>
|
|
</choose>
|
|
group by eu.snow_flake_id
|
|
order by any_value(sp.create_time) desc;
|
|
</select>
|
|
<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>
|
|
</mapper>
|