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