施工管控接口修改
This commit is contained in:
parent
22f1f1d53a
commit
1d124fb598
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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<>();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
/**
|
||||
* 根据杆塔获取班组人员-已绑定手环
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Reference in New Issue