2023-08-10 21:09:49 +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.ruoyi.web.projectInfo.mapper.WxProjectInfoMapper" >
<!-- 查询出人员类型信息 -->
<select id= "getPostIdByUserId" parameterType= "String" resultType= "String" >
SELECT
spu.project_id as projectId
FROM
`sur_project_userinfo` spu
LEFT JOIN sys_user su ON spu.user_id = su.user_id
WHERE
su.user_id =#{userId}
AND su.del_flag = 0
</select>
<!-- 查询组织架构下一层级 -->
<select id= "getDeptSubordinate" parameterType= "map" resultType= "map" >
SELECT
ca.cityId AS id,
ca.cityName AS text
FROM
sur_project spi
LEFT JOIN china_area ca ON spi.projectRegional = ca.id
left join sur_project_userinfo spu on spu.project_id = spi.id
WHERE
spi.isDel = 0
and spu.is_del=0
<if test= "userId != null and userId != ''" > AND spu.user_id =#{userId} </if>
<if test= "provinceId != null and provinceId != ''" > AND ca.provinceId =#{provinceId}</if>
GROUP BY ca.cityId,ca.cityName
</select>
<!-- 查询区级层级 -->
<select id= "getQUDeptSubordinate" parameterType= "map" resultType= "map" >
SELECT
#{id} AS id,
'全部' AS text
UNION ALL
SELECT
ca.id,
ca.areaName AS text
FROM
sur_project spi
LEFT JOIN china_area ca ON spi.projectRegional = ca.id
left join sur_project_userinfo spu on spu.project_id = spi.id
WHERE
spi.isDel = 0
and spu.is_del=0
AND spu.user_id =#{userId}
AND ca.cityId =#{id}
GROUP BY ca.id,ca.areaName
</select>
<!-- 根据组织架构id查询数据 -->
<select id= "getDeptData" parameterType= "String" resultType= "map" >
select
dept_id id,
dept_name text
from
sys_dept
where
1 = 1
AND del_flag = 0
and dept_id=#{deptId}
</select>
<!-- 查询出项目用户公司项目信息 -->
<select id= "getCompanyAndProjectByUserId" parameterType= "String" resultType= "map" >
SELECT
IFNULL(spi.projectCode,'') streamNumber,
spi.longitude,
spi.latitude,
spi.id,
spi.projectName AS projectName,
spi.projectAddress,
sd.dept_name AS companyName,
count(sew.id ) AS projectCount
FROM
sur_project_userinfo spu
LEFT JOIN sur_project spi ON spu.project_id = spi.id
LEFT JOIN sys_dept sd ON spi.deptId = sd.dept_id
LEFT JOIN sur_early_warning sew ON sew.projectId = spi.id
AND sew.createTime BETWEEN str_to_date( DATE_FORMAT( NOW( ), '%Y-%m-%d' ), '%Y-%m-%d %H:%i:%s' )
AND str_to_date( now( ), '%Y-%m-%d %H:%i:%s' )
WHERE
1 = 1
AND spu.user_id =#{userId}
AND spi.isDel = 0
</select>
<!-- 查询所有省级 -->
<select id= "getShengList" parameterType= "map" resultType= "map" >
SELECT
LEFT ( deptId, 12 ) id,
( SELECT dept_name FROM sys_dept WHERE 1 = 1 AND dept_id = LEFT ( deptId, 12 ) ) text
FROM
`sur_project_info`
WHERE
1 = 1
AND isDel = 0
AND companyId IN ( SELECT id FROM sur_company_info WHERE 1 = 1 AND LEFT ( superiorCompany, length(#{superiorCompanyId}) ) =#{superiorCompanyId} )
GROUP BY
LEFT ( deptId, 12 )
</select>
<!-- 根据所选层级或者公司查询登录用户的项目 -->
<select id= "getProjectByDeptIdAndCompanyId" parameterType= "map" resultType= "map" >
SELECT
spi.id AS projectId,
spi.projectName AS projectName,
spi.longitude,
spi.latitude,
spi.projectAddress,
IFNULL( spi.projectCode, '' ) AS streamNumber,
sd.dept_id AS deptId,
sd.dept_name AS companyName,
0 AS projectCount
FROM
sur_project spi
LEFT JOIN china_area ca ON spi.projectRegional = ca.id
LEFT JOIN sys_dept sd ON spi.deptId = sd.dept_id
<!-- 监理单位/总包公司/分包单位 -->
<if test= 'nowRole == "5" or nowRole == "6" or nowRole == "7"' > left join sur_project_unit_info spui on spui.projectId = spi.id</if>
<!-- 普通用户查询项目人员 -->
<if test= 'nowRole == "99"' > left join sur_project_userinfo spu on spu.project_id = spi.id</if>
WHERE
spi.isDel = 0
<!-- 子部门数据 -->
<if test= 'nowRole == "4"' > and spi.deptId = #{nowDeptId}</if>
<!-- 监理单位/总包公司/分包单位查询当前关联数据 -->
<if test= 'nowRole == "5" or nowRole == "6" or nowRole == "7"' > and spui.unitId = #{nowDeptId}</if>
<!-- 普通用户查询项目人员 -->
<if test= 'nowRole == "99"' > and spu.user_id = #{userId} and spu.is_del=0</if>
<!-- 子公司选择 -->
<if test= 'nowRole == "3"' >
<if test= 'deptId != null and deptId != "0"' > AND spi.deptId =#{deptId}</if>
</if>
GROUP BY spi.id
2023-08-14 22:51:52 +08:00
order by spi.projectSort
2023-08-10 21:09:49 +08:00
</select>
<!-- 根据登录账号查询出企业信息 -->
<select id= "getCompanyByUserId" parameterType= "map" resultType= "map" >
SELECT
sci.id,
sci.companyName,
IFNULL(sci.superiorCompany,'') superiorCompanyId
FROM
sur_company_user scu
LEFT JOIN sur_company_info sci ON scu.manager_id = sci.id
WHERE
1 = 1
AND scu.user_Id =#{userId}
and sci.isDel=0
</select>
<!-- 企业人员根据组织架构查询出公司列表 -->
<select id= "getCompanyQY" parameterType= "map" resultType= "map" >
SELECT
case when sci.superiorCompany=#{companyId} THEN '全部' ELSE (SELECT companyName FROM sur_company_info WHERE superiorCompany=SUBSTRING( sci.superiorCompany, 1, #{num} )) END text,
SUBSTRING( sci.superiorCompany, 1, #{num} ) id
FROM
sur_project_info spi
LEFT JOIN sur_company_info sci ON spi.companyId = sci.id
WHERE
1 = 1
AND sci.isDel = 0
AND spi.deptId IN ( SELECT dept_id FROM sys_dept WHERE 1 = 1 AND LEFT ( dept_id, length( #{deptId} ) ) =#{deptId} )
AND LEFT ( superiorCompany, length( #{companyId}) ) =#{companyId}
<if test= "num != null and num != '' and num1 !=null and num1 !=''" >
AND (LENGTH(SUBSTRING( sci.superiorCompany, 1, #{num} )) = #{num} OR LENGTH(sci.superiorCompany) = #{num1} )
</if>
GROUP BY
SUBSTRING( sci.superiorCompany, 1, #{num})
ORDER BY
sci.id
</select>
<!-- 根据公司id查询出公司名称 -->
<select id= "getCompanyInfo" parameterType= "map" resultType= "map" >
select * from sur_company_info where 1=1 and superiorCompany=#{superiorCompany} and isDel=0
</select>
<!-- 监管人员根据组织架构查询出公司列表 -->
<select id= "getCompanyJG" parameterType= "map" resultType= "map" >
SELECT
SUBSTRING( sci.superiorCompany, 1, 4 ) id,
(SELECT companyName FROM sur_company_info WHERE superiorCompany= SUBSTRING( sci.superiorCompany, 1, 4 )) text
FROM
sur_project_info spi
LEFT JOIN sur_company_info sci ON spi.companyId = sci.id
WHERE
1 = 1
AND sci.isDel = 0
AND spi.deptId IN ( SELECT dept_id FROM sys_dept WHERE 1 = 1 AND LEFT ( dept_id, length( #{deptId} ) ) =#{deptId} )
GROUP BY
SUBSTRING( sci.superiorCompany, 1, 4 )
ORDER BY
id
</select>
<!-- 根据总公司层级查询出集团公司列表 -->
<select id= "getCompanySonData" parameterType= "map" resultType= "map" >
SELECT
superiorCompany id,
'全部' text
FROM
sur_company_info
WHERE
1 = 1
AND isDel = 0
AND superiorCompany =#{superiorCompanyId}
UNION
SELECT
superiorCompany id,
companyName text
FROM
`sur_company_info`
WHERE
1 = 1
AND isDel = 0
AND LEFT ( superiorCompany, length( #{superiorCompanyId} ) ) = #{superiorCompanyId}
AND LENGTH( superiorCompany ) = length( #{superiorCompanyId} ) + 4
</select>
<!-- 查询上一级公司 -->
<select id= "getNextLevelCompany" parameterType= "map" resultType= "map" >
SELECT
superiorCompany superiorCompanyId,
companyName text
FROM
sur_company_info
WHERE
1 = 1
AND isDel = 0
AND superiorCompany = LEFT (#{superiorCompanyId}, length( #{superiorCompanyId}) - 4 )
</select>
<!-- 查询项目的经度纬度列表 -->
<select id= "selectProjectPoint" parameterType= "String" resultType= "map" >
SELECT
id projectId,
longitude,
latitude,
projectName
FROM
sur_project
WHERE
deptId = #{deptId}
AND isDel = '0'
</select>
<!-- 查询建设单位下的项目个数 -->
<select id= "selectProjectSize" parameterType= "String" resultType= "Integer" >
SELECT
COUNT(*)
FROM
sur_project
WHERE
deptId = #{deptId}
AND isDel = '0'
</select>
<!-- 查询项目的基本信息 -->
<select id= "selectProjectInfo" parameterType= "map" resultType= "map" >
SELECT
pro.id,
man.companyName engineeringName,
pro.projectName name,
IFNULL(pro.projectAddress,'') projectAddress,
IFNULL(pro.streamNumber,'') streamNumber
FROM
sur_project_info pro
LEFT JOIN sur_company_info man ON pro.companyId = man.id
WHERE
pro.isDel = '0'
<if test= "deptId != null and deptId !=''" > AND companyId = #{deptId}</if>
<if test= "id != null and id !=''" > AND pro.id = #{id}</if>
</select>
<!-- 查询项目的概况信息 -->
<select id= "selectProjectOverview" parameterType= "String" resultType= "map" >
SELECT
spi.id,
IFNULL( spi.projectName, '' ) AS projectName,
IFNULL( spi.simpleName, '' ) AS simpleName,
CONCAT(
IFNULL(sdd1.dict_label, ''),
' ',
IFNULL(sdd2.dict_label, ''),
' ',
IFNULL(sdd3.dict_label, '')
) AS projectType,
IFNULL( CONCAT( ca.provinceName, '-', ca.cityName, '-', ca.areaName ), '' ) AS areaName,
IFNULL( spi.projectAddress, '' ) AS projectAddress,
IFNULL( spi.longitude,'') AS longitude,
IFNULL( spi.latitude,'') AS latitude,
IFNULL( spi.floorArea, '' ) AS totalBuildingArea,
IFNULL( spi.licenceNumber, '' ) AS licenceNumber,
IFNULL( spi.projectApproval, '' ) AS projectApproval,
IFNULL( sdd4.dict_label, '' ) AS projectSchedule,
CONCAT(IFNULL(spi.projectTimeLimit, ''),' 天') AS projectTimeLimit,
IFNULL( spi.projectSummarize, '' ) AS projectSummarize,
'' AS scopeOfWork,
IFNULL( spi.scheduledStartTime, '' ) AS planStartTime,
IFNULL( spi.actualOperatingTime, '' ) AS actualStartTime,
IFNULL( spi.plannedCompletionTime, '' ) AS planCompletedTime,
'' AS totalManHours,
IFNULL( sup2.nick_name, '' ) AS projectPerson,
IFNULL( sup2.phonenumber, '' ) AS projectPhone
FROM
sur_project spi
LEFT JOIN china_area ca ON spi.projectRegional = ca.id
left join sys_dict_data sdd1 on sdd1.dict_type = 'project_category' and sdd1.dict_value = spi.projectType
left join sys_dict_data sdd2 on sdd2.dict_type = 'project_level' and sdd2.dict_value = spi.projiectLevel
left join sys_dict_data sdd3 on sdd3.dict_type = 'project_build_type' and sdd3.dict_value = spi.projectNature
left join sys_dict_data sdd4 on sdd4.dict_type = 'sur_project_xmjd' and sdd4.dict_value = spi.projectSchedule
LEFT JOIN (
SELECT
su.user_id,
su.nick_name,
su.phonenumber
FROM
sur_project_userinfo sup1
LEFT JOIN sys_user su ON sup1.user_id = su.user_id
WHERE
sup1.project_id =#{id}
AND sup1.job_type = '21'
ORDER BY
sup1.create_time DESC
LIMIT 1
) sup2 ON 1 = 1
WHERE
spi.id =#{id}
AND spi.isDel = 0
</select>
<!-- 查询项目的管理概况 -->
<select id= "selectProjectManage" parameterType= "String" resultType= "map" >
SELECT
companyName engineeringName
FROM
sur_company_info man
LEFT JOIN sur_project pro ON man.id = pro.companyId
WHERE
pro.id = #{id}
AND pro.isDel = '0'
</select>
<!-- 模糊查询项目信息 -->
<select id= "getProjectInfoByName" parameterType= "map" resultType= "map" >
SELECT
spi.id projectId,
spi.projectName,
spi.longitude,
spi.latitude,
spi.projectAddress,
IFNULL( spi.projectCode, '' ) streamNumber,
sd.dept_id AS deptId,
sd.dept_name AS companyName,
SUM(CASE WHEN sew.type = 5 THEN 1 ELSE 0 END) AS videoNum,
COUNT( DISTINCT sew.id ) projectCount
FROM
sur_project spi
LEFT JOIN china_area ca ON spi.projectRegional = ca.id
LEFT JOIN sys_dept sd ON spi.deptId = sd.dept_id
LEFT JOIN sur_early_warning sew ON spi.id = sew.projectId
AND DATE( sew.createTime ) = DATE_FORMAT( NOW( ), '%Y-%m-%d' )
WHERE
spi.isDel = 0
<if test= "deptId != null and deptId != ''" >
and deptId IN ( SELECT dept_id FROM sys_dept WHERE 1 = 1 AND LEFT ( dept_id, length( #{deptId}) ) =#{deptId} )
</if>
<if test= "projectId != null and projectId != ''" > and spi.id=#{projectId}</if>
AND spi.projectName LIKE CONCAT( '%', #{projectName}, '%')
AND spi.isDel = 0
GROUP BY spi.id
</select>
<!-- 模糊查询出预警项目 -->
<select id= "getProjectInfoEnviron" parameterType= "map" resultType= "map" >
SELECT
spi.id projectId,
spi.projectName,
spi.projectAddress,
IFNULL(spi.streamNumber,'') streamNumber,
( SELECT companyName FROM sur_company_info WHERE 1 = 1 AND id = spi.companyId ) companyName,
sum( 1 ) projectCount,
sum( CASE WHEN sew.type = 5 THEN 1 ELSE 0 END ) videoNum,
sum( CASE WHEN sew.type = 6 THEN 1 ELSE 0 END ) progressNum
FROM
sur_project_info spi
LEFT JOIN sur_company_info sci ON spi.companyId = sci.id
LEFT JOIN `sur_early_warning` sew ON sew.projectId = spi.id
WHERE
1 = 1
AND spi.isDel = 0
AND sci.isDel = 0
AND sew.createTime BETWEEN str_to_date( #{startTime}, '%Y-%m-%d %H:%i:%s' )
AND str_to_date( #{endTime}, '%Y-%m-%d %H:%i:%s' )
<if test= "projectId != null and projectId !=''" > and spi.id=#{projectId}</if>
<if test= "companyId != null and companyId != '' and ifSonCompany ==1" >
AND spi.companyId in( SELECT id FROM sur_company_info WHERE 1 = 1 AND LEFT ( superiorCompany, length( #{companyId}) ) =#{companyId})
</if>
<if test= "companyId != null and companyId != '' and ifSonCompany ==2" >
AND spi.companyId in( SELECT id FROM sur_company_info WHERE 1 = 1 AND LEFT ( superiorCompany, length( #{companyId}) ) =#{companyId})
</if>
<if test= "companyId != null and companyId != '' and ifSonCompany == 3" >
AND spi.companyId =(SELECT id FROM sur_company_info WHERE 1 = 1 and superiorCompany=#{companyId})
</if>
<if test= "deptId != null and deptId != ''" > AND deptId IN ( SELECT dept_id FROM sys_dept WHERE 1 = 1 AND LEFT ( dept_id, length( #{deptId} ) ) =#{deptId} ) </if>
<if test= "projectId != null and projectId != ''" > and spi.id=#{projectId}</if>
AND spi.projectName LIKE CONCAT( '%', #{projectName}, '%')
GROUP BY
spi.projectName
</select>
<select id= "getChinaProvince" resultType= "map" >
select * from china_city
</select>
<insert id= "addChinaCity" parameterType= "map" >
insert into china_area
(
areaName,
provinceId,
provinceName,
cityId,
cityName,
adcode,
lat,
lng
)values
<foreach item= "item" index= "index" collection= "list" separator= "," >
(
#{item.areaName},
#{item.provinceId},
#{item.provinceName},
#{item.cityId},
#{item.cityName},
#{item.adcode},
#{item.lat},
#{item.lng}
)
</foreach>
</insert>
<!-- 查询项目相关信息 -->
<select id= "getProjectAndChinaData" parameterType= "String" resultType= "map" >
SELECT
ca.provinceId,
ca.provinceName,
ca.cityId,
ca.cityName,
ca.id AS areaId,
ca.areaName,
spi.id AS projectId,
spi.projectName AS projectName,
spi.deptId
FROM
`china_area` ca
LEFT JOIN sur_project spi ON ca.id = spi.projectRegional
WHERE
spi.isDel = 0
AND spi.id =#{projectId}
</select>
<!-- 查询公司信息 -->
<select id= "getDeptInfo" resultType= "map" >
SELECT
sd.dept_id,
sd.dept_name
FROM
sys_dept sd
WHERE
sd.dept_id = 101
</select>
<!-- 查询公司信息 -->
<select id= "getDeptInfoByMap" parameterType= "map" resultType= "map" >
SELECT
sd.dept_id,
sd.dept_name,
sd.type_flag
FROM
sys_user su
LEFT JOIN sys_dept sd ON su.dept_id = sd.dept_id
WHERE
su.del_flag = 0
AND su.user_id =#{userId}
</select>
<!-- 查询公司信息 -->
<select id= "getZGSDeptInfoByMap" parameterType= "map" resultType= "map" >
SELECT
sd.dept_id,
sd.dept_name
FROM
sys_dept sd
WHERE
sd.del_flag = 0
AND sd.com_flag = '1'
</select>
<!-- 查询出省份信息 -->
<select id= "getChinaProvinceList" parameterType= "map" resultType= "map" >
SELECT
ca.provinceId AS id,
ca.provinceName AS text
FROM
sur_project spi
LEFT JOIN china_area ca ON spi.projectRegional = ca.id
left join sur_project_userinfo spu on spu.project_id = spi.id
WHERE
spi.isDel = 0
and spu.is_del=0
and spu.user_id = #{userId}
GROUP BY ca.provinceId,ca.provinceName
</select>
<!-- 获取公司下一层级 -->
<select id= "getDeptIdNext" parameterType= "map" resultType= "map" >
SELECT
#{deptId} AS id,
'全部' AS text
UNION ALL
SELECT
dept_id AS id,
dept_name AS text
FROM
sys_dept
WHERE
del_flag = 0
AND LENGTH( dept_id ) = length( #{deptId}) + 4
</select>
<!-- 获取建设单位 -->
<select id= "getProjectUnitList" parameterType= "String" resultType= "map" >
SELECT
IFNULL( spi.projectName, '' ) AS projectName,
IFNULL( spui.unitType, '' ) AS unitType,
2023-08-15 17:48:24 +08:00
IFNULL( sdd.dict_label,'') AS unitTypeName,
2023-08-10 21:09:49 +08:00
IFNULL( spuii.unit_icon,'') AS unitTypeIcon,
IFNULL( spui.unitName, '' ) AS unitName,
IFNULL( spui.unitPersonName, '' ) AS unitPersonName,
IFNULL( spui.unitPersonPhone, '' ) AS unitPersonPhone
FROM
`sur_project_unit_info` spui
LEFT JOIN sur_project_unit_icon spuii ON spui.unitType = spuii.id
2023-08-15 17:48:24 +08:00
left join sys_dict_data sdd on sdd.dict_type = 'sys_dept_type' and sdd.dict_value = spui.unitType
2023-08-10 21:09:49 +08:00
LEFT JOIN sur_project spi ON spui.projectId = spi.id
WHERE
spui.projectId =#{projectId}
AND spui.del_flag = 0
2023-08-15 17:48:24 +08:00
ORDER BY sdd.dict_sort asc
2023-08-10 21:09:49 +08:00
</select>
<select id= "selectDeptByProjectId" parameterType= "Long" resultType= "map" >
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.com_flag, d.type_flag
from sys_dept d
left join sur_project sp on sp.deptId = d.dept_id
where sp.id = #{projectId}
</select>
<select id= "selectDeptByUserName" parameterType= "String" resultType= "map" >
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.com_flag, d.type_flag
from sys_dept d
left join sys_user u on u.dept_id = d.dept_id
where u.user_name = #{userName}
</select>
</mapper>