diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java index 97ea444..251ac1e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -5,19 +5,20 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.cache.CacheUtil; +import com.casic.missiles.modular.constants.RobotDictConstants; import com.casic.missiles.modular.neutron.dao.PsdMapper; import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; import com.casic.missiles.modular.neutron.dto.PsdDataDTO; import com.casic.missiles.modular.neutron.model.Psd; import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.AlarmRecord; import com.casic.missiles.modular.robot.model.RobotInfo; import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; import com.casic.missiles.modular.robot.model.TaskInfo; -import com.casic.missiles.modular.robot.service.IAlarmRecordService; -import com.casic.missiles.modular.robot.service.IRobotInfoService; -import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; -import com.casic.missiles.modular.robot.service.ITaskInfoService; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; +import com.casic.missiles.modular.robot.service.*; import com.casic.missiles.netty.CacheUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -46,6 +47,8 @@ private IRobotInfoService robotInfoService; @Autowired private IAlarmRecordService iAlarmRecordService; + @Autowired + private IRobotCacheService iRobotCacheService; @Override @@ -129,12 +132,7 @@ long currentTimes = System.currentTimeMillis(); for (TaskInfo taskInfo : taskInfoList) { - if (iAlarmRecordService.getAlarmByTask(taskInfo.getId())) continue; - String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; Long robotId = taskInfo.getRobotId(); - //查询满足每隔5秒平均值不小于13个中子的时间 -// List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); - long count = 0; if (CacheUtils.PSD_DATA_MAP.size() > 0) { Set keys = CacheUtils.PSD_DATA_MAP.keySet(); @@ -150,18 +148,28 @@ } } if (count > 0) { - double psdVal= count*1.000/5; - AlarmRecord alarmRecord = new AlarmRecord(robotId, - new BigDecimal(psdVal), - new Date(), - taskInfo.getId()); - //用这个时间取查询最近的巡检点位 -// RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); -// if (ObjectUtil.isNotEmpty(trajectoryInfo)) { -// alarmRecord.setX(trajectoryInfo.getPostionX()); -// alarmRecord.setY(trajectoryInfo.getPostionY()); -// } - alarmRecordList.add(alarmRecord); + double psdVal = count * 1.000 / 5; + if (psdVal >= 13) { + AlarmRecord alarmRecord = new AlarmRecord(robotId, + new BigDecimal(psdVal), + new Date(), + taskInfo.getId()); + //查询机器人的巡检点位 + PoseMessageResponseDTO poseMessageResponseDTO = iRobotCacheService.readRobotPoint(robotId); + if (ObjectUtil.isNotEmpty(poseMessageResponseDTO)) { + alarmRecord.setX(poseMessageResponseDTO.getX()); + alarmRecord.setY(poseMessageResponseDTO.getY()); + } + //查询栅格数据 + PointNextDTO pointNextDTo = iRobotCacheService.readEstimateGrid(robotId); + if (ObjectUtil.isNotEmpty(pointNextDTo)) { + alarmRecord.setXGrid(new BigDecimal(pointNextDTo.getX())); + alarmRecord.setYGrid(new BigDecimal(pointNextDTo.getY())); + } + alarmRecordList.add(alarmRecord); + } + //写入缓存 + CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId, psdVal); } } if (null != alarmRecordList && alarmRecordList.size() > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java index 97ea444..251ac1e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -5,19 +5,20 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.cache.CacheUtil; +import com.casic.missiles.modular.constants.RobotDictConstants; import com.casic.missiles.modular.neutron.dao.PsdMapper; import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; import com.casic.missiles.modular.neutron.dto.PsdDataDTO; import com.casic.missiles.modular.neutron.model.Psd; import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.AlarmRecord; import com.casic.missiles.modular.robot.model.RobotInfo; import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; import com.casic.missiles.modular.robot.model.TaskInfo; -import com.casic.missiles.modular.robot.service.IAlarmRecordService; -import com.casic.missiles.modular.robot.service.IRobotInfoService; -import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; -import com.casic.missiles.modular.robot.service.ITaskInfoService; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; +import com.casic.missiles.modular.robot.service.*; import com.casic.missiles.netty.CacheUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -46,6 +47,8 @@ private IRobotInfoService robotInfoService; @Autowired private IAlarmRecordService iAlarmRecordService; + @Autowired + private IRobotCacheService iRobotCacheService; @Override @@ -129,12 +132,7 @@ long currentTimes = System.currentTimeMillis(); for (TaskInfo taskInfo : taskInfoList) { - if (iAlarmRecordService.getAlarmByTask(taskInfo.getId())) continue; - String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; Long robotId = taskInfo.getRobotId(); - //查询满足每隔5秒平均值不小于13个中子的时间 -// List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); - long count = 0; if (CacheUtils.PSD_DATA_MAP.size() > 0) { Set keys = CacheUtils.PSD_DATA_MAP.keySet(); @@ -150,18 +148,28 @@ } } if (count > 0) { - double psdVal= count*1.000/5; - AlarmRecord alarmRecord = new AlarmRecord(robotId, - new BigDecimal(psdVal), - new Date(), - taskInfo.getId()); - //用这个时间取查询最近的巡检点位 -// RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); -// if (ObjectUtil.isNotEmpty(trajectoryInfo)) { -// alarmRecord.setX(trajectoryInfo.getPostionX()); -// alarmRecord.setY(trajectoryInfo.getPostionY()); -// } - alarmRecordList.add(alarmRecord); + double psdVal = count * 1.000 / 5; + if (psdVal >= 13) { + AlarmRecord alarmRecord = new AlarmRecord(robotId, + new BigDecimal(psdVal), + new Date(), + taskInfo.getId()); + //查询机器人的巡检点位 + PoseMessageResponseDTO poseMessageResponseDTO = iRobotCacheService.readRobotPoint(robotId); + if (ObjectUtil.isNotEmpty(poseMessageResponseDTO)) { + alarmRecord.setX(poseMessageResponseDTO.getX()); + alarmRecord.setY(poseMessageResponseDTO.getY()); + } + //查询栅格数据 + PointNextDTO pointNextDTo = iRobotCacheService.readEstimateGrid(robotId); + if (ObjectUtil.isNotEmpty(pointNextDTo)) { + alarmRecord.setXGrid(new BigDecimal(pointNextDTo.getX())); + alarmRecord.setYGrid(new BigDecimal(pointNextDTo.getY())); + } + alarmRecordList.add(alarmRecord); + } + //写入缓存 + CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId, psdVal); } } if (null != alarmRecordList && alarmRecordList.size() > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java index 7e3c399..2f8da21 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java @@ -101,4 +101,16 @@ public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(alarmRecordService.getById(id)); } + + /** + * 页面告警显示(单条) + */ + @ApiOperation("页面告警显示(单条)机器人id和任务id必传") + @GetMapping(value = "/listOne") + public ResponseDataDTO listOne(AlarmRecordVO alarmRecordVO) { + QueryWrapper query = alarmRecordVO.genQuery(); + List alarmRecordList = alarmRecordService.list(query); + return ResponseDataDTO.success(alarmRecordList != null && alarmRecordList.size() > 0 ? + alarmRecordList.get(0) : null); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java index 97ea444..251ac1e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -5,19 +5,20 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.cache.CacheUtil; +import com.casic.missiles.modular.constants.RobotDictConstants; import com.casic.missiles.modular.neutron.dao.PsdMapper; import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; import com.casic.missiles.modular.neutron.dto.PsdDataDTO; import com.casic.missiles.modular.neutron.model.Psd; import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.AlarmRecord; import com.casic.missiles.modular.robot.model.RobotInfo; import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; import com.casic.missiles.modular.robot.model.TaskInfo; -import com.casic.missiles.modular.robot.service.IAlarmRecordService; -import com.casic.missiles.modular.robot.service.IRobotInfoService; -import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; -import com.casic.missiles.modular.robot.service.ITaskInfoService; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; +import com.casic.missiles.modular.robot.service.*; import com.casic.missiles.netty.CacheUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -46,6 +47,8 @@ private IRobotInfoService robotInfoService; @Autowired private IAlarmRecordService iAlarmRecordService; + @Autowired + private IRobotCacheService iRobotCacheService; @Override @@ -129,12 +132,7 @@ long currentTimes = System.currentTimeMillis(); for (TaskInfo taskInfo : taskInfoList) { - if (iAlarmRecordService.getAlarmByTask(taskInfo.getId())) continue; - String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; Long robotId = taskInfo.getRobotId(); - //查询满足每隔5秒平均值不小于13个中子的时间 -// List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); - long count = 0; if (CacheUtils.PSD_DATA_MAP.size() > 0) { Set keys = CacheUtils.PSD_DATA_MAP.keySet(); @@ -150,18 +148,28 @@ } } if (count > 0) { - double psdVal= count*1.000/5; - AlarmRecord alarmRecord = new AlarmRecord(robotId, - new BigDecimal(psdVal), - new Date(), - taskInfo.getId()); - //用这个时间取查询最近的巡检点位 -// RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); -// if (ObjectUtil.isNotEmpty(trajectoryInfo)) { -// alarmRecord.setX(trajectoryInfo.getPostionX()); -// alarmRecord.setY(trajectoryInfo.getPostionY()); -// } - alarmRecordList.add(alarmRecord); + double psdVal = count * 1.000 / 5; + if (psdVal >= 13) { + AlarmRecord alarmRecord = new AlarmRecord(robotId, + new BigDecimal(psdVal), + new Date(), + taskInfo.getId()); + //查询机器人的巡检点位 + PoseMessageResponseDTO poseMessageResponseDTO = iRobotCacheService.readRobotPoint(robotId); + if (ObjectUtil.isNotEmpty(poseMessageResponseDTO)) { + alarmRecord.setX(poseMessageResponseDTO.getX()); + alarmRecord.setY(poseMessageResponseDTO.getY()); + } + //查询栅格数据 + PointNextDTO pointNextDTo = iRobotCacheService.readEstimateGrid(robotId); + if (ObjectUtil.isNotEmpty(pointNextDTo)) { + alarmRecord.setXGrid(new BigDecimal(pointNextDTo.getX())); + alarmRecord.setYGrid(new BigDecimal(pointNextDTo.getY())); + } + alarmRecordList.add(alarmRecord); + } + //写入缓存 + CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId, psdVal); } } if (null != alarmRecordList && alarmRecordList.size() > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java index 7e3c399..2f8da21 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java @@ -101,4 +101,16 @@ public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(alarmRecordService.getById(id)); } + + /** + * 页面告警显示(单条) + */ + @ApiOperation("页面告警显示(单条)机器人id和任务id必传") + @GetMapping(value = "/listOne") + public ResponseDataDTO listOne(AlarmRecordVO alarmRecordVO) { + QueryWrapper query = alarmRecordVO.genQuery(); + List alarmRecordList = alarmRecordService.list(query); + return ResponseDataDTO.success(alarmRecordList != null && alarmRecordList.size() > 0 ? + alarmRecordList.get(0) : null); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java index a2dfdcb..55780d1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java @@ -76,6 +76,20 @@ private BigDecimal y; /** + * 栅格坐标x + */ + @ApiModelProperty(value = "监测坐标x", dataType = "BigDecimal") + @TableField("x_grid") + private BigDecimal xGrid; + + /** + * 栅格坐标y + */ + @ApiModelProperty(value = "监测坐标y", dataType = "BigDecimal") + @TableField("y_grid") + private BigDecimal yGrid; + + /** * 告警时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @@ -159,5 +173,6 @@ this.alarmTime = alarmTime; this.taskId = taskId; this.createTime=new Date(); + this.alarmTime=new Date(); } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java index 97ea444..251ac1e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -5,19 +5,20 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.cache.CacheUtil; +import com.casic.missiles.modular.constants.RobotDictConstants; import com.casic.missiles.modular.neutron.dao.PsdMapper; import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; import com.casic.missiles.modular.neutron.dto.PsdDataDTO; import com.casic.missiles.modular.neutron.model.Psd; import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.AlarmRecord; import com.casic.missiles.modular.robot.model.RobotInfo; import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; import com.casic.missiles.modular.robot.model.TaskInfo; -import com.casic.missiles.modular.robot.service.IAlarmRecordService; -import com.casic.missiles.modular.robot.service.IRobotInfoService; -import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; -import com.casic.missiles.modular.robot.service.ITaskInfoService; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; +import com.casic.missiles.modular.robot.service.*; import com.casic.missiles.netty.CacheUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -46,6 +47,8 @@ private IRobotInfoService robotInfoService; @Autowired private IAlarmRecordService iAlarmRecordService; + @Autowired + private IRobotCacheService iRobotCacheService; @Override @@ -129,12 +132,7 @@ long currentTimes = System.currentTimeMillis(); for (TaskInfo taskInfo : taskInfoList) { - if (iAlarmRecordService.getAlarmByTask(taskInfo.getId())) continue; - String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; Long robotId = taskInfo.getRobotId(); - //查询满足每隔5秒平均值不小于13个中子的时间 -// List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); - long count = 0; if (CacheUtils.PSD_DATA_MAP.size() > 0) { Set keys = CacheUtils.PSD_DATA_MAP.keySet(); @@ -150,18 +148,28 @@ } } if (count > 0) { - double psdVal= count*1.000/5; - AlarmRecord alarmRecord = new AlarmRecord(robotId, - new BigDecimal(psdVal), - new Date(), - taskInfo.getId()); - //用这个时间取查询最近的巡检点位 -// RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); -// if (ObjectUtil.isNotEmpty(trajectoryInfo)) { -// alarmRecord.setX(trajectoryInfo.getPostionX()); -// alarmRecord.setY(trajectoryInfo.getPostionY()); -// } - alarmRecordList.add(alarmRecord); + double psdVal = count * 1.000 / 5; + if (psdVal >= 13) { + AlarmRecord alarmRecord = new AlarmRecord(robotId, + new BigDecimal(psdVal), + new Date(), + taskInfo.getId()); + //查询机器人的巡检点位 + PoseMessageResponseDTO poseMessageResponseDTO = iRobotCacheService.readRobotPoint(robotId); + if (ObjectUtil.isNotEmpty(poseMessageResponseDTO)) { + alarmRecord.setX(poseMessageResponseDTO.getX()); + alarmRecord.setY(poseMessageResponseDTO.getY()); + } + //查询栅格数据 + PointNextDTO pointNextDTo = iRobotCacheService.readEstimateGrid(robotId); + if (ObjectUtil.isNotEmpty(pointNextDTo)) { + alarmRecord.setXGrid(new BigDecimal(pointNextDTo.getX())); + alarmRecord.setYGrid(new BigDecimal(pointNextDTo.getY())); + } + alarmRecordList.add(alarmRecord); + } + //写入缓存 + CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId, psdVal); } } if (null != alarmRecordList && alarmRecordList.size() > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java index 7e3c399..2f8da21 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java @@ -101,4 +101,16 @@ public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(alarmRecordService.getById(id)); } + + /** + * 页面告警显示(单条) + */ + @ApiOperation("页面告警显示(单条)机器人id和任务id必传") + @GetMapping(value = "/listOne") + public ResponseDataDTO listOne(AlarmRecordVO alarmRecordVO) { + QueryWrapper query = alarmRecordVO.genQuery(); + List alarmRecordList = alarmRecordService.list(query); + return ResponseDataDTO.success(alarmRecordList != null && alarmRecordList.size() > 0 ? + alarmRecordList.get(0) : null); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java index a2dfdcb..55780d1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java @@ -76,6 +76,20 @@ private BigDecimal y; /** + * 栅格坐标x + */ + @ApiModelProperty(value = "监测坐标x", dataType = "BigDecimal") + @TableField("x_grid") + private BigDecimal xGrid; + + /** + * 栅格坐标y + */ + @ApiModelProperty(value = "监测坐标y", dataType = "BigDecimal") + @TableField("y_grid") + private BigDecimal yGrid; + + /** * 告警时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @@ -159,5 +173,6 @@ this.alarmTime = alarmTime; this.taskId = taskId; this.createTime=new Date(); + this.alarmTime=new Date(); } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java index 73982ee..18e8728 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java @@ -57,7 +57,7 @@ * * @return */ - Integer getNeutronCount(Long robotId); + String getNeutronCount(Long robotId); /** * 任务启动标识 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java index 97ea444..251ac1e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -5,19 +5,20 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.cache.CacheUtil; +import com.casic.missiles.modular.constants.RobotDictConstants; import com.casic.missiles.modular.neutron.dao.PsdMapper; import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; import com.casic.missiles.modular.neutron.dto.PsdDataDTO; import com.casic.missiles.modular.neutron.model.Psd; import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.AlarmRecord; import com.casic.missiles.modular.robot.model.RobotInfo; import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; import com.casic.missiles.modular.robot.model.TaskInfo; -import com.casic.missiles.modular.robot.service.IAlarmRecordService; -import com.casic.missiles.modular.robot.service.IRobotInfoService; -import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; -import com.casic.missiles.modular.robot.service.ITaskInfoService; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; +import com.casic.missiles.modular.robot.service.*; import com.casic.missiles.netty.CacheUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -46,6 +47,8 @@ private IRobotInfoService robotInfoService; @Autowired private IAlarmRecordService iAlarmRecordService; + @Autowired + private IRobotCacheService iRobotCacheService; @Override @@ -129,12 +132,7 @@ long currentTimes = System.currentTimeMillis(); for (TaskInfo taskInfo : taskInfoList) { - if (iAlarmRecordService.getAlarmByTask(taskInfo.getId())) continue; - String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; Long robotId = taskInfo.getRobotId(); - //查询满足每隔5秒平均值不小于13个中子的时间 -// List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); - long count = 0; if (CacheUtils.PSD_DATA_MAP.size() > 0) { Set keys = CacheUtils.PSD_DATA_MAP.keySet(); @@ -150,18 +148,28 @@ } } if (count > 0) { - double psdVal= count*1.000/5; - AlarmRecord alarmRecord = new AlarmRecord(robotId, - new BigDecimal(psdVal), - new Date(), - taskInfo.getId()); - //用这个时间取查询最近的巡检点位 -// RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); -// if (ObjectUtil.isNotEmpty(trajectoryInfo)) { -// alarmRecord.setX(trajectoryInfo.getPostionX()); -// alarmRecord.setY(trajectoryInfo.getPostionY()); -// } - alarmRecordList.add(alarmRecord); + double psdVal = count * 1.000 / 5; + if (psdVal >= 13) { + AlarmRecord alarmRecord = new AlarmRecord(robotId, + new BigDecimal(psdVal), + new Date(), + taskInfo.getId()); + //查询机器人的巡检点位 + PoseMessageResponseDTO poseMessageResponseDTO = iRobotCacheService.readRobotPoint(robotId); + if (ObjectUtil.isNotEmpty(poseMessageResponseDTO)) { + alarmRecord.setX(poseMessageResponseDTO.getX()); + alarmRecord.setY(poseMessageResponseDTO.getY()); + } + //查询栅格数据 + PointNextDTO pointNextDTo = iRobotCacheService.readEstimateGrid(robotId); + if (ObjectUtil.isNotEmpty(pointNextDTo)) { + alarmRecord.setXGrid(new BigDecimal(pointNextDTo.getX())); + alarmRecord.setYGrid(new BigDecimal(pointNextDTo.getY())); + } + alarmRecordList.add(alarmRecord); + } + //写入缓存 + CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId, psdVal); } } if (null != alarmRecordList && alarmRecordList.size() > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java index 7e3c399..2f8da21 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java @@ -101,4 +101,16 @@ public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(alarmRecordService.getById(id)); } + + /** + * 页面告警显示(单条) + */ + @ApiOperation("页面告警显示(单条)机器人id和任务id必传") + @GetMapping(value = "/listOne") + public ResponseDataDTO listOne(AlarmRecordVO alarmRecordVO) { + QueryWrapper query = alarmRecordVO.genQuery(); + List alarmRecordList = alarmRecordService.list(query); + return ResponseDataDTO.success(alarmRecordList != null && alarmRecordList.size() > 0 ? + alarmRecordList.get(0) : null); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java index a2dfdcb..55780d1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java @@ -76,6 +76,20 @@ private BigDecimal y; /** + * 栅格坐标x + */ + @ApiModelProperty(value = "监测坐标x", dataType = "BigDecimal") + @TableField("x_grid") + private BigDecimal xGrid; + + /** + * 栅格坐标y + */ + @ApiModelProperty(value = "监测坐标y", dataType = "BigDecimal") + @TableField("y_grid") + private BigDecimal yGrid; + + /** * 告警时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @@ -159,5 +173,6 @@ this.alarmTime = alarmTime; this.taskId = taskId; this.createTime=new Date(); + this.alarmTime=new Date(); } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java index 73982ee..18e8728 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java @@ -57,7 +57,7 @@ * * @return */ - Integer getNeutronCount(Long robotId); + String getNeutronCount(Long robotId); /** * 任务启动标识 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java index fe543a2..5265a7d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.robot.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.RandomUtil; import com.casic.missiles.core.cache.CacheUtil; import com.casic.missiles.modular.constants.RobotDictConstants; @@ -54,8 +55,8 @@ } @Override - public Integer getNeutronCount(Long robotId) { - return RandomUtil.randomInt(10, 100); + public String getNeutronCount(Long robotId) { + return CacheUtil.get(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId); } @Override diff --git a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java index 97ea444..251ac1e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/neutron/service/impl/PsdServiceImpl.java @@ -5,19 +5,20 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.cache.CacheUtil; +import com.casic.missiles.modular.constants.RobotDictConstants; import com.casic.missiles.modular.neutron.dao.PsdMapper; import com.casic.missiles.modular.neutron.dto.PsdAlarmDTO; import com.casic.missiles.modular.neutron.dto.PsdDataDTO; import com.casic.missiles.modular.neutron.model.Psd; import com.casic.missiles.modular.neutron.service.IPsdService; +import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.AlarmRecord; import com.casic.missiles.modular.robot.model.RobotInfo; import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; import com.casic.missiles.modular.robot.model.TaskInfo; -import com.casic.missiles.modular.robot.service.IAlarmRecordService; -import com.casic.missiles.modular.robot.service.IRobotInfoService; -import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; -import com.casic.missiles.modular.robot.service.ITaskInfoService; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; +import com.casic.missiles.modular.robot.service.*; import com.casic.missiles.netty.CacheUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -46,6 +47,8 @@ private IRobotInfoService robotInfoService; @Autowired private IAlarmRecordService iAlarmRecordService; + @Autowired + private IRobotCacheService iRobotCacheService; @Override @@ -129,12 +132,7 @@ long currentTimes = System.currentTimeMillis(); for (TaskInfo taskInfo : taskInfoList) { - if (iAlarmRecordService.getAlarmByTask(taskInfo.getId())) continue; - String startTime = ObjectUtil.isNotEmpty(taskInfo.getStartTime()) ? DateUtil.formatDateTime(taskInfo.getStartTime()) : taskInfo.getStartTime() + ""; Long robotId = taskInfo.getRobotId(); - //查询满足每隔5秒平均值不小于13个中子的时间 -// List alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); - long count = 0; if (CacheUtils.PSD_DATA_MAP.size() > 0) { Set keys = CacheUtils.PSD_DATA_MAP.keySet(); @@ -150,18 +148,28 @@ } } if (count > 0) { - double psdVal= count*1.000/5; - AlarmRecord alarmRecord = new AlarmRecord(robotId, - new BigDecimal(psdVal), - new Date(), - taskInfo.getId()); - //用这个时间取查询最近的巡检点位 -// RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); -// if (ObjectUtil.isNotEmpty(trajectoryInfo)) { -// alarmRecord.setX(trajectoryInfo.getPostionX()); -// alarmRecord.setY(trajectoryInfo.getPostionY()); -// } - alarmRecordList.add(alarmRecord); + double psdVal = count * 1.000 / 5; + if (psdVal >= 13) { + AlarmRecord alarmRecord = new AlarmRecord(robotId, + new BigDecimal(psdVal), + new Date(), + taskInfo.getId()); + //查询机器人的巡检点位 + PoseMessageResponseDTO poseMessageResponseDTO = iRobotCacheService.readRobotPoint(robotId); + if (ObjectUtil.isNotEmpty(poseMessageResponseDTO)) { + alarmRecord.setX(poseMessageResponseDTO.getX()); + alarmRecord.setY(poseMessageResponseDTO.getY()); + } + //查询栅格数据 + PointNextDTO pointNextDTo = iRobotCacheService.readEstimateGrid(robotId); + if (ObjectUtil.isNotEmpty(pointNextDTo)) { + alarmRecord.setXGrid(new BigDecimal(pointNextDTo.getX())); + alarmRecord.setYGrid(new BigDecimal(pointNextDTo.getY())); + } + alarmRecordList.add(alarmRecord); + } + //写入缓存 + CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId, psdVal); } } if (null != alarmRecordList && alarmRecordList.size() > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java index 7e3c399..2f8da21 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java @@ -101,4 +101,16 @@ public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(alarmRecordService.getById(id)); } + + /** + * 页面告警显示(单条) + */ + @ApiOperation("页面告警显示(单条)机器人id和任务id必传") + @GetMapping(value = "/listOne") + public ResponseDataDTO listOne(AlarmRecordVO alarmRecordVO) { + QueryWrapper query = alarmRecordVO.genQuery(); + List alarmRecordList = alarmRecordService.list(query); + return ResponseDataDTO.success(alarmRecordList != null && alarmRecordList.size() > 0 ? + alarmRecordList.get(0) : null); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java index a2dfdcb..55780d1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java @@ -76,6 +76,20 @@ private BigDecimal y; /** + * 栅格坐标x + */ + @ApiModelProperty(value = "监测坐标x", dataType = "BigDecimal") + @TableField("x_grid") + private BigDecimal xGrid; + + /** + * 栅格坐标y + */ + @ApiModelProperty(value = "监测坐标y", dataType = "BigDecimal") + @TableField("y_grid") + private BigDecimal yGrid; + + /** * 告警时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @@ -159,5 +173,6 @@ this.alarmTime = alarmTime; this.taskId = taskId; this.createTime=new Date(); + this.alarmTime=new Date(); } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java index 73982ee..18e8728 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java @@ -57,7 +57,7 @@ * * @return */ - Integer getNeutronCount(Long robotId); + String getNeutronCount(Long robotId); /** * 任务启动标识 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java index fe543a2..5265a7d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.robot.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.RandomUtil; import com.casic.missiles.core.cache.CacheUtil; import com.casic.missiles.modular.constants.RobotDictConstants; @@ -54,8 +55,8 @@ } @Override - public Integer getNeutronCount(Long robotId) { - return RandomUtil.randomInt(10, 100); + public String getNeutronCount(Long robotId) { + return CacheUtil.get(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId); } @Override diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java index d09a438..0738b6d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java @@ -19,13 +19,13 @@ /** * 机器人主键 */ - @ApiModelProperty(value = "机器人主键", dataType = "Long") + @ApiModelProperty(value = "机器人主键", dataType = "Long",required = true) private Long robotId; /** * 机器人任务ID */ - @ApiModelProperty(value = "机器人任务ID", dataType = "Long") + @ApiModelProperty(value = "机器人任务ID", dataType = "Long",required = true) private Long taskId; @ApiModelProperty(value = "路线ID", dataType = "Long") @@ -62,6 +62,7 @@ query.eq("(a.monitor_val alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); - long count = 0; if (CacheUtils.PSD_DATA_MAP.size() > 0) { Set keys = CacheUtils.PSD_DATA_MAP.keySet(); @@ -150,18 +148,28 @@ } } if (count > 0) { - double psdVal= count*1.000/5; - AlarmRecord alarmRecord = new AlarmRecord(robotId, - new BigDecimal(psdVal), - new Date(), - taskInfo.getId()); - //用这个时间取查询最近的巡检点位 -// RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); -// if (ObjectUtil.isNotEmpty(trajectoryInfo)) { -// alarmRecord.setX(trajectoryInfo.getPostionX()); -// alarmRecord.setY(trajectoryInfo.getPostionY()); -// } - alarmRecordList.add(alarmRecord); + double psdVal = count * 1.000 / 5; + if (psdVal >= 13) { + AlarmRecord alarmRecord = new AlarmRecord(robotId, + new BigDecimal(psdVal), + new Date(), + taskInfo.getId()); + //查询机器人的巡检点位 + PoseMessageResponseDTO poseMessageResponseDTO = iRobotCacheService.readRobotPoint(robotId); + if (ObjectUtil.isNotEmpty(poseMessageResponseDTO)) { + alarmRecord.setX(poseMessageResponseDTO.getX()); + alarmRecord.setY(poseMessageResponseDTO.getY()); + } + //查询栅格数据 + PointNextDTO pointNextDTo = iRobotCacheService.readEstimateGrid(robotId); + if (ObjectUtil.isNotEmpty(pointNextDTo)) { + alarmRecord.setXGrid(new BigDecimal(pointNextDTo.getX())); + alarmRecord.setYGrid(new BigDecimal(pointNextDTo.getY())); + } + alarmRecordList.add(alarmRecord); + } + //写入缓存 + CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId, psdVal); } } if (null != alarmRecordList && alarmRecordList.size() > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java index 7e3c399..2f8da21 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java @@ -101,4 +101,16 @@ public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(alarmRecordService.getById(id)); } + + /** + * 页面告警显示(单条) + */ + @ApiOperation("页面告警显示(单条)机器人id和任务id必传") + @GetMapping(value = "/listOne") + public ResponseDataDTO listOne(AlarmRecordVO alarmRecordVO) { + QueryWrapper query = alarmRecordVO.genQuery(); + List alarmRecordList = alarmRecordService.list(query); + return ResponseDataDTO.success(alarmRecordList != null && alarmRecordList.size() > 0 ? + alarmRecordList.get(0) : null); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java index a2dfdcb..55780d1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java @@ -76,6 +76,20 @@ private BigDecimal y; /** + * 栅格坐标x + */ + @ApiModelProperty(value = "监测坐标x", dataType = "BigDecimal") + @TableField("x_grid") + private BigDecimal xGrid; + + /** + * 栅格坐标y + */ + @ApiModelProperty(value = "监测坐标y", dataType = "BigDecimal") + @TableField("y_grid") + private BigDecimal yGrid; + + /** * 告警时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @@ -159,5 +173,6 @@ this.alarmTime = alarmTime; this.taskId = taskId; this.createTime=new Date(); + this.alarmTime=new Date(); } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java index 73982ee..18e8728 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java @@ -57,7 +57,7 @@ * * @return */ - Integer getNeutronCount(Long robotId); + String getNeutronCount(Long robotId); /** * 任务启动标识 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java index fe543a2..5265a7d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.robot.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.RandomUtil; import com.casic.missiles.core.cache.CacheUtil; import com.casic.missiles.modular.constants.RobotDictConstants; @@ -54,8 +55,8 @@ } @Override - public Integer getNeutronCount(Long robotId) { - return RandomUtil.randomInt(10, 100); + public String getNeutronCount(Long robotId) { + return CacheUtil.get(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId); } @Override diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java index d09a438..0738b6d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java @@ -19,13 +19,13 @@ /** * 机器人主键 */ - @ApiModelProperty(value = "机器人主键", dataType = "Long") + @ApiModelProperty(value = "机器人主键", dataType = "Long",required = true) private Long robotId; /** * 机器人任务ID */ - @ApiModelProperty(value = "机器人任务ID", dataType = "Long") + @ApiModelProperty(value = "机器人任务ID", dataType = "Long",required = true) private Long taskId; @ApiModelProperty(value = "路线ID", dataType = "Long") @@ -62,6 +62,7 @@ query.eq("(a.monitor_val alarmTimeList = this.baseMapper.getPsdAlarm(startTime, robotId); - long count = 0; if (CacheUtils.PSD_DATA_MAP.size() > 0) { Set keys = CacheUtils.PSD_DATA_MAP.keySet(); @@ -150,18 +148,28 @@ } } if (count > 0) { - double psdVal= count*1.000/5; - AlarmRecord alarmRecord = new AlarmRecord(robotId, - new BigDecimal(psdVal), - new Date(), - taskInfo.getId()); - //用这个时间取查询最近的巡检点位 -// RobotTrajectoryInfo trajectoryInfo = trajectoryInfoService.getRobotTrajectoryInfoByTime(alarmTime, robotId); -// if (ObjectUtil.isNotEmpty(trajectoryInfo)) { -// alarmRecord.setX(trajectoryInfo.getPostionX()); -// alarmRecord.setY(trajectoryInfo.getPostionY()); -// } - alarmRecordList.add(alarmRecord); + double psdVal = count * 1.000 / 5; + if (psdVal >= 13) { + AlarmRecord alarmRecord = new AlarmRecord(robotId, + new BigDecimal(psdVal), + new Date(), + taskInfo.getId()); + //查询机器人的巡检点位 + PoseMessageResponseDTO poseMessageResponseDTO = iRobotCacheService.readRobotPoint(robotId); + if (ObjectUtil.isNotEmpty(poseMessageResponseDTO)) { + alarmRecord.setX(poseMessageResponseDTO.getX()); + alarmRecord.setY(poseMessageResponseDTO.getY()); + } + //查询栅格数据 + PointNextDTO pointNextDTo = iRobotCacheService.readEstimateGrid(robotId); + if (ObjectUtil.isNotEmpty(pointNextDTo)) { + alarmRecord.setXGrid(new BigDecimal(pointNextDTo.getX())); + alarmRecord.setYGrid(new BigDecimal(pointNextDTo.getY())); + } + alarmRecordList.add(alarmRecord); + } + //写入缓存 + CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId, psdVal); } } if (null != alarmRecordList && alarmRecordList.size() > 0) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java index 7e3c399..2f8da21 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/controller/AlarmRecordController.java @@ -101,4 +101,16 @@ public ResponseDataDTO detail(String id) { return ResponseDataDTO.success(alarmRecordService.getById(id)); } + + /** + * 页面告警显示(单条) + */ + @ApiOperation("页面告警显示(单条)机器人id和任务id必传") + @GetMapping(value = "/listOne") + public ResponseDataDTO listOne(AlarmRecordVO alarmRecordVO) { + QueryWrapper query = alarmRecordVO.genQuery(); + List alarmRecordList = alarmRecordService.list(query); + return ResponseDataDTO.success(alarmRecordList != null && alarmRecordList.size() > 0 ? + alarmRecordList.get(0) : null); + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java index a2dfdcb..55780d1 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/AlarmRecord.java @@ -76,6 +76,20 @@ private BigDecimal y; /** + * 栅格坐标x + */ + @ApiModelProperty(value = "监测坐标x", dataType = "BigDecimal") + @TableField("x_grid") + private BigDecimal xGrid; + + /** + * 栅格坐标y + */ + @ApiModelProperty(value = "监测坐标y", dataType = "BigDecimal") + @TableField("y_grid") + private BigDecimal yGrid; + + /** * 告警时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @@ -159,5 +173,6 @@ this.alarmTime = alarmTime; this.taskId = taskId; this.createTime=new Date(); + this.alarmTime=new Date(); } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java index 73982ee..18e8728 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java @@ -57,7 +57,7 @@ * * @return */ - Integer getNeutronCount(Long robotId); + String getNeutronCount(Long robotId); /** * 任务启动标识 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java index fe543a2..5265a7d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.modular.robot.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.RandomUtil; import com.casic.missiles.core.cache.CacheUtil; import com.casic.missiles.modular.constants.RobotDictConstants; @@ -54,8 +55,8 @@ } @Override - public Integer getNeutronCount(Long robotId) { - return RandomUtil.randomInt(10, 100); + public String getNeutronCount(Long robotId) { + return CacheUtil.get(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_PSD_DATA_ID + robotId); } @Override diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java index d09a438..0738b6d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/vo/AlarmRecordVO.java @@ -19,13 +19,13 @@ /** * 机器人主键 */ - @ApiModelProperty(value = "机器人主键", dataType = "Long") + @ApiModelProperty(value = "机器人主键", dataType = "Long",required = true) private Long robotId; /** * 机器人任务ID */ - @ApiModelProperty(value = "机器人任务ID", dataType = "Long") + @ApiModelProperty(value = "机器人任务ID", dataType = "Long",required = true) private Long taskId; @ApiModelProperty(value = "路线ID", dataType = "Long") @@ -62,6 +62,7 @@ query.eq("(a.monitor_val