施工管控接口修改

This commit is contained in:
cwchen 2024-08-23 14:09:07 +08:00
parent 22f1f1d53a
commit 1d124fb598
5 changed files with 238 additions and 138 deletions

View File

@ -0,0 +1,67 @@
package com.bonus.common.entity.bracelet.vo;
import lombok.Data;
/**
* @className:PersonControlVo
* @author:cwchen
* @date:2024-08-23-10:48
* @version:1.0
* @description:人员管控
*/
@Data
public class PersonControlVo {
/**杆塔信息*/
@Data
public static class TowerInfo {
/**杆塔ID*/
private Long id;
/**杆塔名称*/
private String powerName;
/**经度*/
private String lon;
/**纬度*/
private String lat;
/**施工半径*/
private Double distance = 0D;
}
/**施工人员*/
@Data
public static class WorkPersonInfo {
/**人员id*/
private Long id;
/**姓名*/
private String name;
/**手机号*/
private String phone;
/**手环id*/
private Long devId;
/**0 班组人员 1 临时人员*/
private Integer type;
/**经度*/
private String lon;
/**纬度*/
private String lat;
/**是否告警 0 未告警 1.告警*/
private Integer isWarn = 0;
}
/**手环信息*/
@Data
public static class BraceletInfo {
/**手环属性ID*/
private Long id;
/**设备属性名称*/
private String dataName;
/**设备采集值*/
private String dataVal;
/**设备值单位*/
private String dataUnit;
/**级联编码*/
private String dataCode;
/**数据采集时间*/
private String dataTime;
}
}

View File

@ -31,6 +31,10 @@ public class PersonTreeVo {
private Integer type;
/**父ID*/
private String parentId;
/**手环设备ID*/
private Long devId;
/**杆塔ID*/
private Long gtId;
private List<PersonTreeVo> children = new ArrayList<>();
}

View File

@ -85,11 +85,11 @@ public interface ConsControlMapper {
/**
* 获取杆塔坐标
*
* @return Map<String, Object>
* @return PersonControlVo.TowerInfo
* @author cwchen
* @date 2024/8/9 15:13
*/
Map<String, Object> getTowerInfo(BraceletParamsDto dto);
PersonControlVo.TowerInfo getTowerInfo(BraceletParamsDto dto);
/**
* 获取施工距离
@ -104,23 +104,21 @@ public interface ConsControlMapper {
* 获取绑定手环的施工班组人员临时人员信息
*
* @param dto
* @return List<Map < String, Object>>
* @return List<PersonControlVo.WorkPersonInfo>
* @author cwchen
* @date 2024/8/9 15:23
*/
@MapKey("id")
List<Map<String, Object>> getWorkPersonInfo(BraceletParamsDto dto);
List<PersonControlVo.WorkPersonInfo> getWorkPersonInfo(BraceletParamsDto dto);
/**
* 获取已绑手环的定位信息
*
* @param map
* @return Map<String, Object>
* @param devId
* @return List<PersonControlVo.BraceletInfo>
* @author cwchen
* @date 2024/8/9 16:30
*/
@MapKey("id")
List<Map<String, Object>> getShDeviceInfo(Map<String, Object> map);
List<PersonControlVo.BraceletInfo> getShDeviceInfo(Long devId);
/**
* 根据杆塔获取班组人员-已绑定手环

View File

@ -87,10 +87,10 @@ public class ConsControlServiceImpl implements IConsControlService {
// 设备类型设置为球机
dto.setDevType(BusinessConstants.BALL);
List<WarnInfoVo> warnInfoVoList = mapper.getBallWarnLists(dto);
if(CollectionUtils.isNotEmpty(warnInfoVoList)){
if (CollectionUtils.isNotEmpty(warnInfoVoList)) {
for (int i = 0; i < warnInfoVoList.size(); i++) {
WarnInfoVo warnInfoVo = warnInfoVoList.get(i);
if(StringUtils.isEmpty(warnInfoVo.getBase64Url())){
if (StringUtils.isEmpty(warnInfoVo.getBase64Url())) {
warnInfoVo.setBase64Url("66c68c712350293fa1d6b197");
}
// 前三张违章照片加载图片其余调用加载
@ -119,8 +119,9 @@ public class ConsControlServiceImpl implements IConsControlService {
/**
* 切割数组
*
* @param list
* @return List<List<WarnInfoVo>>
* @return List<List < WarnInfoVo>>
* @author cwchen
* @date 2024/8/22 13:31
*/
@ -183,6 +184,9 @@ public class ConsControlServiceImpl implements IConsControlService {
if (StringUtils.isNotEmpty(valArr[1])) {
vo.setLabel(valArr[0] + "-" + Sm4Utils.decode(valArr[1]));
}
// 判断施工人员是否预警
Integer isWarn = beyondTheScopeOfConstruction(dto, vo.getDevId(), vo.getGtId());
vo.setIsWarn(isWarn);
}
//构建人员树
resultTree = BuildTreeUtil.listInfoToTree(JSONArray.parseArray(JSON.toJSONString(list)), "id", "parentId", "children");
@ -207,7 +211,7 @@ public class ConsControlServiceImpl implements IConsControlService {
}
}
mapData.put("workTeamNum", workTeamList.get(0));
mapData.put("workUserNum", workTeamList.get(1) + workTeamList.get(2));
mapData.put("workPersonNum", workTeamList.get(1));
mapData.put("safetyHatList", safetyHatLists);
} catch (Exception e) {
log.error(e.toString(), e);
@ -215,33 +219,55 @@ public class ConsControlServiceImpl implements IConsControlService {
return AjaxResult.success(mapData);
}
/**
* 班组人员是否超过施工范围
*
* @param devId
* @param gtId
* @return Integer
* @author cwchen
* @date 2024/8/23 13:42
*/
public Integer beyondTheScopeOfConstruction(BraceletParamsDto dto, Long devId, Long gtId) {
// 获取杆塔信息施工距离绑定手环的班组施工人员/临时人员 位置信息
dto.setId(gtId);
PersonControlVo.TowerInfo towerInfo = mapper.getTowerInfo(dto);
String distance = mapper.getDistance();
if (StringUtils.isNotBlank(distance)) {
towerInfo.setDistance(Double.parseDouble(distance));
}
PersonControlVo.WorkPersonInfo workPersonInfo = new PersonControlVo.WorkPersonInfo();
List<PersonControlVo.BraceletInfo> braceletInfoList = mapper.getShDeviceInfo(devId);
workPersonInfo = getLatAndLon(braceletInfoList, workPersonInfo);
Integer isAbnormal = isAbnormal(workPersonInfo, towerInfo);
return isAbnormal;
}
@Override
public AjaxResult getPersonsInfo(BraceletParamsDto dto) {
Map<String, Object> mapData = new HashMap<>();
try {
// 获取杆塔信息施工距离绑定手环的班组施工人员/临时人员 位置信息
Map<String, Object> towerMap = mapper.getTowerInfo(dto);
PersonControlVo.TowerInfo towerInfo = mapper.getTowerInfo(dto);
String distance = mapper.getDistance();
Double distanceValue = 0D;
if (StringUtils.isNotBlank(distance)) {
distanceValue = Double.parseDouble(distance);
towerInfo.setDistance(Double.parseDouble(distance));
}
List<Map<String, Object>> personList = mapper.getWorkPersonInfo(dto);
List<PersonControlVo.WorkPersonInfo> personList = mapper.getWorkPersonInfo(dto);
if (CollectionUtils.isNotEmpty(personList)) {
for (Map<String, Object> map : personList) {
if (map.get("phone") != null) {
map.put("phone", Sm4Utils.decode(String.valueOf(map.get("phone"))));
for (PersonControlVo.WorkPersonInfo workPersonInfo : personList) {
if (StringUtils.isNotBlank(workPersonInfo.getPhone())) {
workPersonInfo.setPhone(Sm4Utils.decode(workPersonInfo.getPhone()));
}
// 获取已绑手环的定位信息
List<Map<String, Object>> shMapDataList = mapper.getShDeviceInfo(map);
map = getLatAndLon(shMapDataList, map);
List<PersonControlVo.BraceletInfo> braceletInfoList = mapper.getShDeviceInfo(workPersonInfo.getDevId());
workPersonInfo = getLatAndLon(braceletInfoList, workPersonInfo);
// 验证施工人员是否超出施工范围
Integer isAbnormal = isAbnormal(distanceValue, map, towerMap);
map.put("isWarn", isAbnormal);
Integer isAbnormal = isAbnormal(workPersonInfo, towerInfo);
workPersonInfo.setIsWarn(isAbnormal);
}
}
mapData.put("towerInfo", towerMap);
mapData.put("distance", distanceValue);
mapData.put("towerInfo", towerInfo);
mapData.put("personList", personList);
} catch (Exception e) {
log.error(e.toString(), e);
@ -368,22 +394,21 @@ public class ConsControlServiceImpl implements IConsControlService {
vo.setHasSafetyHat(true);
vo.setSafetyHat(safetyHat);
}
// 获取施工杆塔信息
dto.setId(vo.getTowerId());
PersonControlVo.TowerInfo towerInfo = mapper.getTowerInfo(dto);
PersonControlVo.WorkPersonInfo workPersonInfo = new PersonControlVo.WorkPersonInfo();
// 获取已绑手环的信息
String distance = mapper.getDistance();
Double distanceValue = 0D;
if (StringUtils.isNotBlank(distance)) {
distanceValue = Double.parseDouble(distance);
towerInfo.setDistance(Double.parseDouble(distance));
}
Map<String, Object> map = new HashMap<>(2);
map.put("devId", vo.getBraceletId());
List<Map<String, Object>> shMapDataList = mapper.getShDeviceInfo(map);
dto.setId(vo.getTowerId());
Map<String, Object> towerMap = mapper.getTowerInfo(dto);
map = getLatAndLon(shMapDataList, map);
List<PersonControlVo.BraceletInfo> braceletInfoList = mapper.getShDeviceInfo(vo.getBraceletId());
workPersonInfo = getLatAndLon(braceletInfoList, workPersonInfo);
// 设置绑定手环基本信息
vo = setBraceletInfo(vo, shMapDataList);
vo = setBraceletInfo(vo, braceletInfoList);
// 验证施工人员是否超出施工范围/人脸是否验证
Integer isAbnormal = isAbnormal(distanceValue, map, towerMap);
Integer isAbnormal = isAbnormal(workPersonInfo, towerInfo);
if (!Objects.equals(isAbnormal, BusinessConstants.NO_WARN) || !Objects.equals(vo.getFaceStatus(), BusinessConstants.PASS)) {
vo.setWarnType("danger");
}
@ -456,23 +481,27 @@ public class ConsControlServiceImpl implements IConsControlService {
/**
* 班组人员/临时人员 是否超出正常施工范围
*
* @param distance
* @param map
* @param workPersonInfo
* @param towerInfo
* @return Integer
* @author cwchen
* @date 2024/8/9 15:56
*/
public Integer isAbnormal(Double distance, Map<String, Object> map, Map<String, Object> towerMap) {
public Integer isAbnormal(PersonControlVo.WorkPersonInfo workPersonInfo, PersonControlVo.TowerInfo towerInfo) {
Integer isWarn = 0;
if (map.get("lon") == null || map.get("lat") == null) {
if (StringUtils.isEmpty(towerInfo.getLon())
|| StringUtils.isEmpty(towerInfo.getLat())
|| StringUtils.isEmpty(workPersonInfo.getLon())
|| StringUtils.isEmpty(workPersonInfo.getLat())
) {
return isWarn;
}
Double lat = Double.parseDouble(String.valueOf(towerMap.get("lat")));
Double lon = Double.parseDouble(String.valueOf(towerMap.get("lon")));
Double sgLat = Double.parseDouble(String.valueOf(map.get("lat")));
Double sgLon = Double.parseDouble(String.valueOf(map.get("lon")));
Double lat = Double.parseDouble(towerInfo.getLon());
Double lon = Double.parseDouble(towerInfo.getLat());
Double sgLat = Double.parseDouble(workPersonInfo.getLon());
Double sgLon = Double.parseDouble(workPersonInfo.getLat());
double len = HaversineUtil.vincentyDistance(sgLat, sgLon, lat, lon);
if (len > distance) {
if (len > towerInfo.getDistance()) {
isWarn = 1;
}
return isWarn;
@ -586,43 +615,52 @@ public class ConsControlServiceImpl implements IConsControlService {
/**
* 赋值手环设备的经纬度
*
* @param shMapDataList
* @param map
* @return Map<String, Object>
* @param braceletInfoList
* @param workPersonInfo
* @return PersonControlVo.WorkPersonInfo
* @author cwchen
* @date 2024/8/9 16:56
*/
public Map<String, Object> getLatAndLon(List<Map<String, Object>> shMapDataList, Map<String, Object> map) {
if (CollectionUtils.isEmpty(shMapDataList)) {
return map;
public PersonControlVo.WorkPersonInfo getLatAndLon(List<PersonControlVo.BraceletInfo> braceletInfoList, PersonControlVo.WorkPersonInfo workPersonInfo) {
if (CollectionUtils.isEmpty(braceletInfoList)) {
return workPersonInfo;
}
for (Map<String, Object> mapData : shMapDataList) {
if (Objects.equals(String.valueOf(mapData.get("dataCode")), BusinessConstants.LAT)) {
map.put("lat", mapData.get("dataVal"));
} else if (Objects.equals(String.valueOf(mapData.get("dataCode")), BusinessConstants.LON)) {
map.put("lon", mapData.get("dataVal"));
for (PersonControlVo.BraceletInfo braceletInfo : braceletInfoList) {
if (Objects.equals(braceletInfo.getDataCode(), BusinessConstants.LON)) {
workPersonInfo.setLon(braceletInfo.getDataVal());
} else if (Objects.equals(braceletInfo.getDataCode(), BusinessConstants.LAT)) {
workPersonInfo.setLat(braceletInfo.getDataVal());
}
}
return map;
return workPersonInfo;
}
public PersonDetailVo setBraceletInfo(PersonDetailVo vo, List<Map<String, Object>> shMapDataList) {
if (CollectionUtils.isEmpty(shMapDataList)) {
/**
* 赋值手环信息
*
* @param vo
* @param braceletInfoList
* @return PersonDetailVo
* @author cwchen
* @date 2024/8/23 13:14
*/
public PersonDetailVo setBraceletInfo(PersonDetailVo vo, List<PersonControlVo.BraceletInfo> braceletInfoList) {
if (CollectionUtils.isEmpty(braceletInfoList)) {
return vo;
}
PersonDetailVo.Bracelet bracelet = new PersonDetailVo.Bracelet();
bracelet.setDevId(vo.getBraceletId());
bracelet.setName(vo.getShCode());
for (Map<String, Object> mapData : shMapDataList) {
if (Objects.equals(String.valueOf(mapData.get("dataCode")), BusinessConstants.DL_CODE)) {
Double value = handleElecValue(mapData);
for (PersonControlVo.BraceletInfo braceletInfo : braceletInfoList) {
if (Objects.equals(braceletInfo.getDataCode(), BusinessConstants.DL_CODE)) {
Double value = handleElecValue(braceletInfo);
bracelet.setElec(value);
} else if (Objects.equals(String.valueOf(mapData.get("dataCode")), BusinessConstants.XL_CODE)) {
bracelet.setHeartRate(handleValue(mapData));
} else if (Objects.equals(String.valueOf(mapData.get("dataCode")), BusinessConstants.XY_CODE)) {
bracelet.setBloodPressure(handleValue(mapData));
} else if (Objects.equals(String.valueOf(mapData.get("dataCode")), BusinessConstants.WD_CODE)) {
bracelet.setTemp(handleValue(mapData));
} else if (Objects.equals(braceletInfo.getDataCode(), BusinessConstants.XL_CODE)) {
bracelet.setHeartRate(handleValue(braceletInfo));
} else if (Objects.equals(braceletInfo.getDataCode(), BusinessConstants.XY_CODE)) {
bracelet.setBloodPressure(handleValue(braceletInfo));
} else if (Objects.equals(braceletInfo.getDataCode(), BusinessConstants.WD_CODE)) {
bracelet.setTemp(handleValue(braceletInfo));
}
}
vo.setBracelet(bracelet);
@ -632,20 +670,20 @@ public class ConsControlServiceImpl implements IConsControlService {
/**
* 血压心率温度赋值
*
* @param map
* @param braceletInfo
* @return String
* @author cwchen
* @date 2024/8/15 18:12
*/
public String handleValue(Map<String, Object> map) {
Object dataVal = map.get("dataVal");
Object dataUnit = map.get("dataUnit");
if (dataVal != null && dataUnit == null) {
return String.valueOf(dataVal);
} else if (dataVal == null && dataUnit != null) {
return "--" + String.valueOf(dataUnit);
} else if (dataVal != null && dataUnit != null) {
return String.valueOf(dataVal) + String.valueOf(dataUnit);
public String handleValue(PersonControlVo.BraceletInfo braceletInfo) {
String dataVal = braceletInfo.getDataVal();
String dataUnit = braceletInfo.getDataUnit();
if (StringUtils.isNotBlank(dataVal) && dataUnit == null) {
return dataVal;
} else if (StringUtils.isBlank(dataVal) && StringUtils.isNotBlank(dataUnit)) {
return "--" + dataUnit;
} else if (StringUtils.isNotBlank(dataVal) && StringUtils.isNotBlank(dataUnit)) {
return dataVal + dataUnit;
}
return "--";
}
@ -653,14 +691,14 @@ public class ConsControlServiceImpl implements IConsControlService {
/**
* 电量赋值
*
* @param map
* @param braceletInfo
* @return String
* @author cwchen
* @date 2024/8/15 18:12
*/
public Double handleElecValue(Map<String, Object> map) {
Object dataVal = map.get("dataVal");
if (dataVal == null || !isNumeric(String.valueOf(dataVal))) {
public Double handleElecValue(PersonControlVo.BraceletInfo braceletInfo) {
String dataVal = braceletInfo.getDataVal();
if (StringUtils.isEmpty(dataVal) || !isNumeric(String.valueOf(dataVal))) {
return 0D;
} else {
return Double.parseDouble(String.valueOf(dataVal));

View File

@ -138,7 +138,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
1 AS level,
0 AS isTeamLeader,
0 AS isWarn,
0 AS type
0 AS type,
0 AS devId,
0 AS gtId
FROM tb_project tp
WHERE tp.del_flag = 0
UNION ALL
@ -149,7 +151,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
2 AS level,
0 AS isTeamLeader,
0 AS isWarn,
0 AS type
0 AS type,
0 AS devId,
0 AS gtId
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
@ -157,16 +161,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
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,
CONCAT('tower','-',tsb.gt_id) AS parentId,
3 AS level,
0 AS isTeamLeader,
0 AS isWarn,
0 AS type
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
0 AS type,
0 AS devId,
0 AS gtId
FROM tb_sh_box tsb
LEFT JOIN t_work_team twt ON tsb.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
WHERE tsb.del_flag = 0 AND tsb.team_id IS NOT NULL
UNION ALL
SELECT tpe.id,
CONCAT(tpe.name,'-',tpe.phone) AS label,
@ -175,13 +180,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 AS level,
IF(twt.team_leader_id = tpe.id,1,0) AS isTeamLeader,
0 AS isWarn,
0 AS type
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
0 AS type,
tb.id AS devId,
tsb.gt_id AS gtId
FROM tb_bracelet tb
LEFT JOIN tb_sh_box tsb ON tb.box_id = tsb.id AND tsb.del_flag = 0
LEFT JOIN tb_people tpe ON tb.bid_id = tpe.id AND tpe.del_flag = 0
LEFT JOIN t_work_team twt ON tpe.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
WHERE tb.peopel_type = 0 AND tb.del_flag = 0 AND tb.bid_id IS NOT NULL
UNION ALL
SELECT tlu.id,
CONCAT(tlu.name,'-',tlu.phone) AS label,
@ -190,13 +197,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 AS level,
0 AS isTeamLeader,
0 AS isWarn,
1 AS type
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
1 AS type,
tb.id AS devId,
tsb.gt_id AS gtId
FROM tb_bracelet tb
LEFT JOIN tb_sh_box tsb ON tb.box_id = tsb.id AND tsb.del_flag = 0
LEFT JOIN tb_ls_user tlu ON tb.bid_id = tlu.id
LEFT JOIN t_work_team twt ON tlu.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 tb.peopel_type = 1 AND tb.del_flag = 0 AND tb.bid_id IS NOT NULL
) a
<where>
<if test="roleCode!='administrators' and roleCode!='depart'">
@ -208,12 +217,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
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
SELECT COUNT(DISTINCT tb.box_id)
FROM tb_bracelet tb
LEFT JOIN tb_sh_box tsb ON tb.box_id = tsb.id AND tsb.del_flag = 0
LEFT JOIN tb_project tp ON tsb.pro_id = tp.id AND tp.del_flag = 0
WHERE tb.bid_id IS NOT NULL AND tb.del_flag = 0 AND tsb.gt_id = #{id}
<if test="roleCode!='administrators' and roleCode!='depart'">
AND tp.depart_id = -1
</if>
@ -223,25 +233,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
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
FROM tb_bracelet tb
LEFT JOIN tb_sh_box tsb ON tb.box_id = tsb.id AND tsb.del_flag = 0
LEFT JOIN tb_project tp ON tsb.pro_id = tp.id AND tp.del_flag = 0
WHERE tb.bid_id IS NOT NULL AND tb.del_flag = 0 AND tsb.gt_id = #{id}
<if test="roleCode!='administrators' and roleCode!='depart'">
AND tp.depart_id = -1
</if>
@ -273,7 +268,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND tp.depart_id IS NOT NULL
</select>
<!--获取杆塔坐标-->
<select id="getTowerInfo" resultType="java.util.Map">
<select id="getTowerInfo" resultType="com.bonus.common.entity.bracelet.vo.PersonControlVo$TowerInfo">
SELECT id,
power_name AS powerName,
lon,
@ -289,21 +284,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LIMIT 1
</select>
<!--获取绑定手环的施工班组人员、临时人员信息-->
<select id="getWorkPersonInfo" resultType="java.util.Map">
<select id="getWorkPersonInfo" resultType="com.bonus.common.entity.bracelet.vo.PersonControlVo$WorkPersonInfo">
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}
FROM tb_bracelet tb
LEFT JOIN tb_people tpe ON tb.bid_id = tpe.id AND tpe.del_flag = 0
WHERE tb.peopel_type = 0 AND tpe.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}
FROM tb_bracelet tb
LEFT JOIN tb_ls_user tls ON tb.bid_id = tls.id
WHERE tb.peopel_type = 1 AND tls.team_id = #{teamId}
</select>
<!--获取已绑手环的信息-->
<select id="getShDeviceInfo" resultType="java.util.Map">
<select id="getShDeviceInfo" resultType="com.bonus.common.entity.bracelet.vo.PersonControlVo$BraceletInfo">
SELECT id ,
data_name AS dataName,
data_val AS dataVal,