施工管控接口修改

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; private Integer type;
/**父ID*/ /**父ID*/
private String parentId; private String parentId;
/**手环设备ID*/
private Long devId;
/**杆塔ID*/
private Long gtId;
private List<PersonTreeVo> children = new ArrayList<>(); private List<PersonTreeVo> children = new ArrayList<>();
} }

View File

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

View File

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

View File

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