施工管控

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 String endTime;
private List<String> dataName;
@Data @Data
public static class SpotCheckInfo{ public static class SpotCheckInfo{
/**人员ID*/ /**人员ID*/

View File

@ -1,8 +1,12 @@
package com.bonus.common.entity.bracelet.vo; package com.bonus.common.entity.bracelet.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List;
/** /**
* @className:PersonDetailVo * @className:PersonDetailVo
* @author:cwchen * @author:cwchen
@ -65,6 +69,12 @@ public class PersonDetailVo {
*/ */
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private Integer faceStatus; private Integer faceStatus;
/**
* 马甲编号
*/
private String mjCode;
/** /**
* 手环 * 手环
*/ */
@ -74,6 +84,11 @@ public class PersonDetailVo {
*/ */
private SafetyHat safetyHat; 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 bloodPressure;
/**
* 马甲编号
*/
private String mjCode;
} }
@Data @Data
@ -137,4 +148,17 @@ public class PersonDetailVo {
private String devStatus; 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){ public AjaxResult getPersonDetail(BraceletParamsDto dto){
return service.getPersonDetail(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 * @param dto
* @return List<Map<String,Object>> * @return List<PersonDetailVo.WarnInfo>
* @author cwchen * @author cwchen
* @date 2024/8/15 18:39 * @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 * @date 2024/8/15 16:50
*/ */
AjaxResult getPersonDetail(BraceletParamsDto dto); 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.setStartTime(DateTimeHelper.getNowDay());
dto.setEndTime(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("vo", vo);
dataMap.put("warnInfoList", warnInfoList);
} catch (Exception e) { } catch (Exception e) {
log.error(e.toString(), e); log.error(e.toString(), e);
} }
return AjaxResult.success(dataMap); 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) { } else if (dataVal != null && dataUnit != null) {
return String.valueOf(dataVal) + String.valueOf(dataUnit); 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) { public Double handleElecValue(Map<String, Object> map) {
Object dataVal = map.get("dataVal"); Object dataVal = map.get("dataVal");
if (dataVal == null || isNumeric(String.valueOf(dataVal))) { if (dataVal == null || !isNumeric(String.valueOf(dataVal))) {
return 0D; return 0D;
} else { } else {
return Double.parseDouble(String.valueOf(dataVal)); 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.face_status AS faceStatus,
tb.id AS braceletId, tb.id AS braceletId,
sbx.gt_id AS towerId, 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 FROM tb_people tp
LEFT JOIN tb_bracelet tb ON tp.id = tb.bid_id AND tb.peopel_type = 0 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 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.face_status AS faceStatus,
tb.id AS braceletId, tb.id AS braceletId,
sbx.gt_id AS towerId, sbx.gt_id AS towerId,
tb.sh_code AS shCode tb.sh_code AS shCode,
'--' AS mjCode
FROM tb_ls_user tlu FROM tb_ls_user tlu
LEFT JOIN tb_bracelet tb ON tlu.id = tb.bid_id AND tb.peopel_type = 1 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 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 WHERE td.dev_type = 'aqm' AND tdl.ly_user = #{id} AND td.del_flag = 0
</select> </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, SELECT tw.warn_content AS warnContent,
tw.warn_time AS warnTime tw.warn_time AS warnTime
FROM tb_warn tw 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} AND DATE_FORMAT(tw.warn_time, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
</if> </if>
</select> </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> </mapper>