lj-zhgd-ht/bonus-modules/bonus-bracelet/src/main/resources/mapper/bracelet/ConsControlMapper.xml

278 lines
11 KiB
XML
Raw Normal View History

2024-08-08 10:00:56 +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.bonus.bracelet.mapper.ConsControlMapper">
2024-08-08 20:09:29 +08:00
<!--获取球机设备列表 项目部权限-->
2024-08-08 17:09:51 +08:00
<select id="getBallDeviceLists" resultType="com.bonus.common.entity.bracelet.vo.BallTreeVo">
SELECT * FROM (
SELECT tp.id,
tp.pro_name AS label,
'0' AS devCode,
'0' AS devIndex,
0 AS parentId,
2024-08-08 20:09:29 +08:00
tp.depart_id AS departId,
0 AS devStatus,
tp.create_time AS orderTime
2024-08-08 17:09:51 +08:00
FROM tb_project tp
WHERE tp.del_flag = 0
UNION ALL
SELECT
tdu.id,
CONCAT(tpe.name,'-',tpe.phone) AS label,
td.dev_code AS devCode,
2024-08-08 17:44:40 +08:00
IFNULL(td.dev_index,0) AS devIndex,
2024-08-08 17:09:51 +08:00
tdu.pro_id AS parentId,
2024-08-08 20:09:29 +08:00
tp.depart_id AS departId,
IFNULL(td.dev_status,0) AS devStatus,
tdub.ly_time AS orderTime
2024-08-08 17:09:51 +08:00
FROM tb_dev_use tdu
LEFT JOIN tb_dev_use_bid tdub ON tdu.id = tdub.id
LEFT JOIN tb_project tp ON tp.id = tdu.pro_id AND tp.del_flag = 0
LEFT JOIN tb_device td ON tdub.dev_id = td.id AND td.del_flag = 0
LEFT JOIN tb_dev_ly tdl ON tdub.dev_id = tdl.dev_id
LEFT JOIN tb_people tpe ON tpe.id = tdl.ly_user AND tpe.del_flag = 0
WHERE tdub.dev_type = 'ball' AND tdu.del_flag = 0 AND tdub.gh_time IS NULL
) a
<where>
<if test="roleCode!='administrators' and roleCode!='depart'">
a.id = -1
</if>
<if test="roleCode=='depart'">
2024-08-08 20:09:29 +08:00
AND a.departId = #{departId}
2024-08-08 17:09:51 +08:00
</if>
2024-08-09 14:34:06 +08:00
AND a.departId IS NOT NULL
2024-08-08 17:09:51 +08:00
</where>
2024-08-08 20:09:29 +08:00
ORDER BY a.orderTime DESC
</select>
<!--获取球机违章识别内容-获取最新的30条-->
<select id="getBallWarnLists" resultType="com.bonus.common.entity.bracelet.vo.WarnInfoVo">
SELECT tw.warn_content AS warnContent,
tw.warn_time AS warnTime,
td.dev_name AS devName,
sfs.file_path AS base64Url,
2024-08-09 10:14:09 +08:00
tpe.name,
sdd.dict_label AS devTypeName,
tp.depart_id AS departId
2024-08-08 20:09:29 +08:00
FROM tb_warn tw
LEFT JOIN tb_project tp ON tp.id = tw.pro_id AND tp.del_flag = 0
LEFT JOIN tb_device td ON tw.dev_id = td.id AND td.del_flag = 0
LEFT JOIN sys_file_source sfs ON tw.id = sfs.source_id AND sfs.source_type = 8 AND sfs.del_flag = 0
LEFT JOIN tb_people tpe ON tpe.id = tw.user_id AND tpe.del_flag = 0
2024-08-09 10:14:09 +08:00
LEFT JOIN sys_dict_data sdd ON td.dev_type = sdd.dict_value AND sdd.dict_type = 'sys_device_type'
2024-08-08 20:09:29 +08:00
<where>
<if test="roleCode!='administrators' and roleCode!='depart'">
2024-08-09 10:14:09 +08:00
tp.depart_id = -1
2024-08-08 20:09:29 +08:00
</if>
<if test="roleCode=='depart'">
2024-08-09 10:14:09 +08:00
AND tp.depart_id = #{departId}
2024-08-08 20:09:29 +08:00
</if>
2024-08-09 10:14:09 +08:00
AND tp.depart_id IS NOT NULL
2024-08-08 20:09:29 +08:00
AND tw.warn_type = 2
</where>
ORDER BY tw.create_time DESC
2024-08-09 10:14:09 +08:00
</select>
<!--预警信息-->
<select id="getWarnLists" resultType="com.bonus.common.entity.bracelet.vo.WarnInfoVo">
SELECT tw.warn_content AS warnContent,
tw.warn_time AS warnTime,
td.dev_name AS devName,
sdd.dict_label AS devTypeName,
tp.depart_id AS departId
FROM tb_warn tw
LEFT JOIN tb_project tp ON tp.id = tw.pro_id AND tp.del_flag = 0
LEFT JOIN tb_device td ON tw.dev_id = td.id AND td.del_flag = 0
LEFT JOIN sys_dict_data sdd ON td.dev_type = sdd.dict_value AND sdd.dict_type = 'sys_device_type'
<where>
<if test="roleCode!='administrators' and roleCode!='depart'">
tp.depart_id = -1
</if>
<if test="roleCode=='depart'">
AND tp.depart_id = #{departId}
</if>
AND tp.depart_id IS NOT NULL
</where>
ORDER BY tw.create_time DESC
2024-08-08 17:09:51 +08:00
</select>
2024-08-09 14:34:06 +08:00
<!--人员管控-人员树-->
<select id="getPersonsTree" resultType="com.bonus.common.entity.bracelet.vo.PersonTreeVo">
SELECT * FROM (
SELECT tp.id,
tp.pro_name AS label,
tp.depart_id AS departId,
0 AS parentId,
1 AS level,
0 AS isTeamLeader,
0 AS isWarn
FROM tb_project tp
WHERE tp.del_flag = 0
UNION ALL
SELECT CONCAT('tower','-',tpp.id),
tpp.power_name AS label,
tp.depart_id AS departId,
tpp.pro_id AS parentId,
2 AS level,
0 AS isTeamLeader,
0 AS isWarn
FROM tb_project_power tpp
LEFT JOIN tb_project tp ON tpp.pro_id = tp.id AND tp.del_flag = 0
WHERE tpp.del_flag = 0
UNION ALL
SELECT CONCAT('team','-',twt.team_id) AS id,
twt.team_name AS label,
tp.depart_id AS departId,
CONCAT('tower','-',tdu.gt_id) AS parentId,
3 AS level,
0 AS isTeamLeader,
0 AS isWarn
FROM tb_dev_use tdu
LEFT JOIN tb_dev_use_bid tdub ON tdu.id = tdub.id
LEFT JOIN t_work_team twt ON tdu.team_id = twt.team_id AND twt.del_flag = 0
LEFT JOIN tb_project tp ON twt.pro_id = tp.id AND tp.del_flag = 0
WHERE tdub.dev_type = 'shx' AND tdub.gh_time IS NULL
UNION ALL
SELECT tpe.id,
CONCAT(tpe.name,'-',tpe.phone) AS label,
tp.depart_id AS departId,
CONCAT('team','-',tpe.team_id) AS parentId,
4 AS level,
IF(twt.team_leader_id = tpe.id,1,0) AS isTeamLeader,
0 AS isWarn
FROM tb_dev_use tdu
LEFT JOIN tb_dev_use_bid tdub ON tdu.id = tdub.id
LEFT JOIN t_work_team twt ON tdu.team_id = twt.team_id AND twt.del_flag = 0
LEFT JOIN tb_people tpe ON twt.team_id = tpe.team_id AND tpe.del_flag = 0
LEFT JOIN tb_project tp ON twt.pro_id = tp.id AND tp.del_flag = 0
WHERE tdub.dev_type = 'shx' AND tdub.gh_time IS NULL
UNION ALL
SELECT tlu.id,
CONCAT(tlu.name,'-',tlu.phone) AS label,
tp.depart_id AS departId,
CONCAT('team','-',tlu.team_id) AS parentId,
4 AS level,
0 AS isTeamLeader,
0 AS isWarn
FROM tb_dev_use tdu
LEFT JOIN tb_dev_use_bid tdub ON tdu.id = tdub.id
LEFT JOIN t_work_team twt ON tdu.team_id = twt.team_id AND twt.del_flag = 0
LEFT JOIN tb_ls_user tlu ON twt.team_id = tlu.team_id
LEFT JOIN tb_project tp ON twt.pro_id = tp.id AND tp.del_flag = 0
WHERE tdub.dev_type = 'shx' AND tdub.gh_time IS NULL
) a
<where>
<if test="roleCode!='administrators' and roleCode!='depart'">
a.departId = -1
</if>
<if test="roleCode=='depart'">
AND a.departId = #{departId}
</if>
AND a.departId IS NOT NULL
</where>
</select>
<!--获取今日施工班组/班组施工人数/临时人员施工数量-->
<select id="getWorkNum" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM t_work_team twt
LEFT JOIN tb_project tp ON twt.pro_id = tp.id AND tp.del_flag = 0
WHERE twt.team_status = 1 AND twt.del_flag = 0
<if test="roleCode!='administrators' and roleCode!='depart'">
AND tp.depart_id = -1
</if>
<if test="roleCode=='depart'">
AND tp.depart_id = #{departId}
</if>
AND tp.depart_id IS NOT NULL
UNION ALL
SELECT COUNT(*)
FROM t_work_team twt
LEFT JOIN tb_project tp ON twt.pro_id = tp.id AND tp.del_flag = 0
LEFT JOIN tb_people tpe ON twt.team_id = tpe.team_id AND tpe.del_flag = 0
INNER JOIN tb_bracelet tb ON tpe.id = tb.bid_id AND tb.del_flag = 0 AND tb.peopel_type = 0
WHERE twt.team_status = 1 AND twt.del_flag = 0
<if test="roleCode!='administrators' and roleCode!='depart'">
AND tp.depart_id = -1
</if>
<if test="roleCode=='depart'">
AND tp.depart_id = #{departId}
</if>
AND tp.depart_id IS NOT NULL
UNION ALL
SELECT COUNT(*)
FROM t_work_team twt
LEFT JOIN tb_project tp ON twt.pro_id = tp.id AND tp.del_flag = 0
LEFT JOIN tb_ls_user tls ON twt.team_id = tls.team_id
INNER JOIN tb_bracelet tb ON tls.id = tb.bid_id AND tb.del_flag = 0 AND tb.peopel_type = 1
WHERE twt.team_status = 1 AND twt.del_flag = 0
<if test="roleCode!='administrators' and roleCode!='depart'">
AND tp.depart_id = -1
</if>
<if test="roleCode=='depart'">
AND tp.depart_id = #{departId}
</if>
AND tp.depart_id IS NOT NULL
</select>
<!--安全帽绑定信息-->
<select id="getSafetyHatInfo" resultType="java.util.Map">
SELECT td.id,
tpe.name,
tpe.phone,
td.dev_name AS devName,
td.dev_code AS devCode,
td.dev_index AS devIndex,
td.dev_status AS devStatus
FROM tb_device td
LEFT JOIN tb_dev_ly tdl ON td.id = tdl.dev_id
LEFT JOIN tb_project tp ON tdl.pro_id = tp.id AND tp.del_flag = 0
LEFT JOIN tb_people tpe ON tdl.ly_user = tpe.id AND tpe.del_flag = 0
WHERE td.dev_type = 'aqm' AND tdl.ly_user IS NOT NULL
<if test="roleCode!='administrators' and roleCode!='depart'">
AND tp.depart_id = -1
</if>
<if test="roleCode=='depart'">
AND tp.depart_id = #{departId}
</if>
AND tp.depart_id IS NOT NULL
</select>
2024-08-09 18:38:44 +08:00
<!--获取杆塔坐标-->
<select id="getTowerInfo" resultType="java.util.Map">
SELECT id,
power_name AS powerName,
lon,
lat
FROM tb_project_power
WHERE id = #{id}
</select>
<!--获取施工距离-->
<select id="getDistance" resultType="java.lang.String">
SELECT dict_value
FROM sys_dict_data
WHERE dict_type = 'sys_sg_distance'
LIMIT 1
</select>
<!--获取绑定手环的施工班组人员、临时人员信息-->
<select id="getWorkPersonInfo" resultType="java.util.Map">
SELECT tpe.id,tpe.name,tpe.phone,tb.id AS devId,0 AS type
FROM t_work_team twt
LEFT JOIN tb_people tpe ON twt.team_id = tpe.team_id AND tpe.del_flag = 0
INNER JOIN tb_bracelet tb ON tpe.id = tb.bid_id AND tb.del_flag = 0 AND tb.peopel_type = 0
WHERE twt.team_id = #{teamId}
UNION ALL
SELECT tls.id,tls.name,tls.phone,tb.id AS devId,1 AS type
FROM t_work_team twt
LEFT JOIN tb_ls_user tls ON twt.team_id = tls.team_id
INNER JOIN tb_bracelet tb ON tls.id = tb.bid_id AND tb.del_flag = 0 AND tb.peopel_type = 1
WHERE twt.team_id = #{teamId}
</select>
<!--获取已绑手环的信息-->
<select id="getShDeviceInfo" resultType="java.util.Map">
SELECT id ,
data_name AS dataName,
data_val AS dataVal,
data_unit AS dataUnit,
data_code AS dataCode,
data_time AS dataTime
FROM tb_dev_details
WHERE dev_id=#{devId}
</select>
2024-08-08 10:00:56 +08:00
</mapper>