施工管控

This commit is contained in:
cwchen 2024-08-16 10:58:57 +08:00
parent bee89830bc
commit d66f30d91e
7 changed files with 115 additions and 14 deletions

View File

@ -116,6 +116,8 @@ public class BraceletParamsDto {
/**结束时间*/
private String endTime;
private List<String> dataName;
@Data
public static class SpotCheckInfo{
/**人员ID*/

View File

@ -1,8 +1,12 @@
package com.bonus.common.entity.bracelet.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @className:PersonDetailVo
* @author:cwchen
@ -65,6 +69,12 @@ public class PersonDetailVo {
*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private Integer faceStatus;
/**
* 马甲编号
*/
private String mjCode;
/**
* 手环
*/
@ -74,6 +84,11 @@ public class PersonDetailVo {
*/
private SafetyHat safetyHat;
/**
* 告警内容
*/
private List<WarnInfo> warnInfoList;
/**
* 手环
*/
@ -90,7 +105,7 @@ public class PersonDetailVo {
/**
* 电量
*/
private Double elec;
private Double elec = 0D;
/**
* 是否告警
*/
@ -107,10 +122,6 @@ public class PersonDetailVo {
* 血压
*/
private String bloodPressure;
/**
* 马甲编号
*/
private String mjCode;
}
@Data
@ -137,4 +148,17 @@ public class PersonDetailVo {
private String devStatus;
}
@Data
public static class WarnInfo {
/**
* 告警内容
*/
private String warnContent;
/**
* 告警时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date warnTime;
}
}

View File

@ -150,4 +150,16 @@ public class ConsControlController extends BaseController {
public AjaxResult getPersonDetail(BraceletParamsDto dto){
return service.getPersonDetail(dto);
}
/**
* 人员历史轨迹
* @param dto
* @return AjaxResult
* @author cwchen
* @date 2024/8/16 9:48
*/
@GetMapping("getHistoryGj")
public AjaxResult getHistoryGj(BraceletParamsDto dto){
return service.getHistoryGj(dto);
}
}

View File

@ -177,9 +177,18 @@ public interface ConsControlMapper {
/**
* 获取手环的预警信息
* @param dto
* @return List<Map<String,Object>>
* @return List<PersonDetailVo.WarnInfo>
* @author cwchen
* @date 2024/8/15 18:39
*/
List<Map<String, Object>> getWarnInfo(BraceletParamsDto dto);
List<PersonDetailVo.WarnInfo> getWarnInfo(BraceletParamsDto dto);
/**
* 人员历史轨迹
* @param dto
* @return List<Map<String,Object>>
* @author cwchen
* @date 2024/8/16 9:55
*/
List<Map<String, Object>> getHistoryGj(BraceletParamsDto dto);
}

View File

@ -113,4 +113,13 @@ public interface IConsControlService {
* @date 2024/8/15 16:50
*/
AjaxResult getPersonDetail(BraceletParamsDto dto);
/**
* 人员历史轨迹
* @param dto
* @return AjaxResult
* @author cwchen
* @date 2024/8/16 9:48
*/
AjaxResult getHistoryGj(BraceletParamsDto dto);
}

View File

@ -345,15 +345,45 @@ public class ConsControlServiceImpl implements IConsControlService {
// 获取手环的预警信息
dto.setStartTime(DateTimeHelper.getNowDay());
dto.setEndTime(DateTimeHelper.getNowDay());
List<Map<String,Object>> warnInfoList = mapper.getWarnInfo(dto);
dto.setId(vo.getBraceletId());
List<PersonDetailVo.WarnInfo> warnInfoList = mapper.getWarnInfo(dto);
vo.setWarnInfoList(warnInfoList);
dataMap.put("vo", vo);
dataMap.put("warnInfoList", warnInfoList);
} catch (Exception e) {
log.error(e.toString(), e);
}
return AjaxResult.success(dataMap);
}
@Override
public AjaxResult getHistoryGj(BraceletParamsDto dto) {
List<Map<String,Object>> list = new ArrayList<>();
List<Map<String,Object>> dataList = new ArrayList<>();
try {
List<String> dataNameList = new ArrayList<>();
dataNameList.add(BusinessConstants.LON);
dataNameList.add(BusinessConstants.LAT);
dto.setDataName(dataNameList);
if(StringUtils.isEmpty(dto.getStartTime())){
dto.setStartTime(DateTimeHelper.getNowDay());
}
list = mapper.getHistoryGj(dto);
for (Map<String, Object> map : list) {
String value = (String)map.get("value");
String[] valueArr = value.split(",");
if(valueArr.length == 2 && StringUtils.isNotBlank(valueArr[0]) && StringUtils.isNotBlank(valueArr[1])){
Map<String, Object> dataMap = new HashMap<>(2);
dataMap.put("lon",valueArr[0]);
dataMap.put("lat",valueArr[1]);
dataList.add(dataMap);
}
}
} catch (Exception e) {
log.error(e.toString(),e);
}
return AjaxResult.success(dataList);
}
/**
* 班组人员/临时人员 是否超出正常施工范围
*
@ -446,7 +476,7 @@ public class ConsControlServiceImpl implements IConsControlService {
} else if (dataVal != null && dataUnit != null) {
return String.valueOf(dataVal) + String.valueOf(dataUnit);
}
return null;
return "--";
}
/**
@ -459,7 +489,7 @@ public class ConsControlServiceImpl implements IConsControlService {
*/
public Double handleElecValue(Map<String, Object> map) {
Object dataVal = map.get("dataVal");
if (dataVal == null || isNumeric(String.valueOf(dataVal))) {
if (dataVal == null || !isNumeric(String.valueOf(dataVal))) {
return 0D;
} else {
return Double.parseDouble(String.valueOf(dataVal));

View File

@ -369,7 +369,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
tb.face_status AS faceStatus,
tb.id AS braceletId,
sbx.gt_id AS towerId,
tb.sh_code AS shCode
tb.sh_code AS shCode,
IFNULL(tp.mj_code,'--') AS mjCode
FROM tb_people tp
LEFT JOIN tb_bracelet tb ON tp.id = tb.bid_id AND tb.peopel_type = 0
LEFT JOIN tb_sh_box sbx ON tb.box_id=sbx.id AND sbx.del_flag = 0
@ -385,7 +386,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
tb.face_status AS faceStatus,
tb.id AS braceletId,
sbx.gt_id AS towerId,
tb.sh_code AS shCode
tb.sh_code AS shCode,
'--' AS mjCode
FROM tb_ls_user tlu
LEFT JOIN tb_bracelet tb ON tlu.id = tb.bid_id AND tb.peopel_type = 1
LEFT JOIN tb_sh_box sbx ON tb.box_id=sbx.id AND sbx.del_flag = 0
@ -405,7 +407,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE td.dev_type = 'aqm' AND tdl.ly_user = #{id} AND td.del_flag = 0
</select>
<!--获取手环的预警信息-->
<select id="getWarnInfo" resultType="java.util.Map">
<select id="getWarnInfo" resultType="com.bonus.common.entity.bracelet.vo.PersonDetailVo$WarnInfo">
SELECT tw.warn_content AS warnContent,
tw.warn_time AS warnTime
FROM tb_warn tw
@ -414,5 +416,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND DATE_FORMAT(tw.warn_time, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
</if>
</select>
<!--人员历史轨迹-->
<select id="getHistoryGj" resultType="java.util.Map">
SELECT GROUP_CONCAT(data_value) AS value
FROM tb_dev_his tdh
WHERE tdh.dev_id = #{id} AND tdh.dev_type = 0 AND tdh.data_name IN
<foreach collection="dataName" separator="," open="(" close=")" item="item">
#{item}
</foreach>
<if test="startTime!=null and startTime!=''">
AND DATE_FORMAT(tdh.data_time, '%Y-%m-%d') BETWEEN #{startTime} AND #{startTime}
</if>
GROUP BY tdh.data_type
</select>
</mapper>