| | |
| | | package com.ruoyi.alarm.globalAlarm.service.impl; |
| | | |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.ruoyi.alarm.accessAlarm.domain.ArdAlarmAccess; |
| | | import com.ruoyi.alarm.accessAlarm.mapper.ArdAlarmAccessMapper; |
| | | import com.ruoyi.alarm.cameraAlarm.domain.ArdAlarmCamera; |
| | | import com.ruoyi.alarm.cameraAlarm.mapper.ArdAlarmCameraMapper; |
| | | import com.ruoyi.alarm.externalAlarm.domain.ArdAlarmExternal; |
| | |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.constant.CamPriority; |
| | | import com.ruoyi.device.external.domain.ArdEquipExternal; |
| | | import com.ruoyi.device.external.mapper.ArdEquipExternalMapper; |
| | | import com.ruoyi.utils.tools.ArdTool; |
| | | import com.ruoyi.utils.tools.GisTool; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | |
| | | @Slf4j(topic = "mqtt") |
| | | public class GlobalAlarmServiceImpl implements IGlobalAlarmService { |
| | | //region 依赖注入 |
| | | @Resource |
| | | private ArdEquipExternalMapper ardEquipExternalMapper; |
| | | @Resource |
| | | private ArdAlarmAccessMapper ardAlarmAccessMapper; |
| | | @Resource |
| | | private ArdAlarmExternalMapper ardAlarmExternalMapper; |
| | | @Resource |
| | |
| | | countMap.put("1007", count1007); |
| | | int count1005 = ardAlarmExternalMapper.selectCountByAlarmTime(refreshTime, "防区报警"); |
| | | countMap.put("1005", count1005); |
| | | int count1006 = ardAlarmAccessMapper.selectCountByAlarmTime(refreshTime); |
| | | countMap.put("1006", count1006); |
| | | int count1014 = ardAlarmTubeMapper.selectCountByAlarmTime(refreshTime); |
| | | countMap.put("1014", count1014); |
| | | map.put("20000", countMap); |
| | |
| | | .setLatitude(ardAlarmExternal.getLatitude()) |
| | | .setCount(ardAlarmExternal.getCount()) |
| | | .setTotal(ardAlarmExternal.getTotal()); |
| | | return globalAlarmData; |
| | | }).collect(Collectors.toList()); |
| | | case 1006: |
| | | List<ArdAlarmAccess> ardAlarmAccesses = ardAlarmAccessMapper.selectListAllByCommand(refreshTime); |
| | | return ardAlarmAccesses.stream() |
| | | .map(ardAlarmAccess -> { |
| | | GlobalAlarmData globalAlarmData = new GlobalAlarmData() |
| | | .setId(ardAlarmAccess.getId()) |
| | | .setName(ardAlarmAccess.getAcsName()) |
| | | .setAlarmTime(ardAlarmAccess.getAlarmTime()) |
| | | .setLongitude(ardAlarmAccess.getLongitude()) |
| | | .setLatitude(ardAlarmAccess.getLatitude()) |
| | | .setCount(ardAlarmAccess.getCount()) |
| | | .setTotal(ardAlarmAccess.getTotal()); |
| | | return globalAlarmData; |
| | | }).collect(Collectors.toList()); |
| | | case 1007: |
| | |
| | | aae.setPageSize(pageSize); |
| | | aae.setAlarmType("防区报警"); |
| | | return ardAlarmExternalMapper.selectArdAlarmExternalList(aae); |
| | | case 1006: |
| | | ArdAlarmAccess aaa = new ArdAlarmAccess(); |
| | | aaa.setParams(params); |
| | | aaa.setPageNum(pageNum); |
| | | aaa.setPageSize(pageSize); |
| | | aaa.setAlarmType("防区报警"); |
| | | return ardAlarmAccessMapper.selectArdAlarmAccessList(aaa); |
| | | case 1014: |
| | | ArdAlarmTube aat = new ArdAlarmTube(); |
| | | aat.setParams(params); |
| | |
| | | ardAlarmStealelecMapper.updateViewTimeByDescribe(describe, startTime, DateUtils.getTime()); |
| | | return ardAlarmStealelec; |
| | | } |
| | | case 1002: |
| | | ArdAlarmCamera ardAlarmCamera = ardAlarmCameraMapper.selectArdAlarmCameraById(condition.getId()); |
| | | if (StringUtils.isNotNull(ardAlarmCamera)) { |
| | | String cameraName = ardAlarmCamera.getCameraName(); |
| | | String alarmTime = fmt.format(ardAlarmCamera.getAlarmTime()); |
| | | ardAlarmCameraMapper.updateViewTimeByCameraName(cameraName, alarmTime, DateUtils.getTime()); |
| | | return ardAlarmCamera; |
| | | } |
| | | case 1003: |
| | | case 1004: |
| | | case 1007: |
| | |
| | | String defenseName = ardAlarmExternal.getDefenseName(); |
| | | String alarmType = ardAlarmExternal.getAlarmType(); |
| | | String alarmTime = fmt.format(ardAlarmExternal.getAlarmTime()); |
| | | ardAlarmRadarMapper.updateViewTimeByCondition(defenseName, alarmType, alarmTime, DateUtils.getTime()); |
| | | ardAlarmExternalMapper.updateViewTimeByCondition(defenseName, alarmType, alarmTime, DateUtils.getTime()); |
| | | return ardAlarmExternal; |
| | | } |
| | | case 1006: |
| | | ArdAlarmAccess ardAlarmAccess = ardAlarmAccessMapper.selectArdAlarmAccessById(condition.getId()); |
| | | if (StringUtils.isNotNull(ardAlarmAccess)) { |
| | | String acsId = ardAlarmAccess.getAcsId(); |
| | | String alarmTime = fmt.format(ardAlarmAccess.getAlarmTime()); |
| | | ardAlarmAccessMapper.updateViewTimeByAcsId(acsId, alarmTime, DateUtils.getTime()); |
| | | return ardAlarmAccess; |
| | | } |
| | | case 1014: |
| | | ArdAlarmTube ardAlarmTube = ardAlarmTubeMapper.selectArdAlarmTubeById(condition.getId()); |
| | |
| | | return; |
| | | } |
| | | double[] guideCoordinate = new double[]{ardAlarmExternal.getLongitude(), ardAlarmExternal.getLatitude()};//引导坐标 |
| | | if (StringUtils.isNull(ardAlarmExternal.getLongitude()) || StringUtils.isNull(ardAlarmExternal.getLatitude())) { |
| | | return; |
| | | } |
| | | String nearbyCameraId = getNearbyCamera(new double[]{ardAlarmExternal.getLongitude(), ardAlarmExternal.getLatitude()});//最近相机ID |
| | | String nearbyCameraId = getNearbyCamera(guideCoordinate);//最近相机ID |
| | | if (StringUtils.isNotEmpty(nearbyCameraId)) { |
| | | messagesEnqueued(nearbyCameraId, ardAlarmExternal.getId(), "sys_external", ardAlarmExternal.getCreateTime(), 1, 1, guideCoordinate); |
| | | } |
| | | //endregion |
| | | } |
| | | //endregion |
| | | break; |
| | | case "accessControl": |
| | | //region 处理门禁报警 |
| | | ArdAlarmAccess ardAlarmAccess = JSONObject.parseObject(message, ArdAlarmAccess.class); |
| | | ardAlarmAccess.setId(IdUtils.simpleUUID()); |
| | | ardAlarmAccess.setCreateTime(new Date());//接收时间 |
| | | //查管理的门禁主机信息 |
| | | String acsId = ardAlarmAccess.getAcsId(); |
| | | ArdEquipExternal ardEquipExternal = ardEquipExternalMapper.selectArdEquipExternalById(acsId); |
| | | if (StringUtils.isNotNull(ardEquipExternal)) { |
| | | ardAlarmAccess.setLongitude(ardEquipExternal.getLongitude()); |
| | | ardAlarmAccess.setLatitude(ardEquipExternal.getLatitude()); |
| | | ardAlarmAccess.setAltitude(ardEquipExternal.getAltitude()); |
| | | ardAlarmAccess.setAcsId(ardEquipExternal.getId()); |
| | | ardAlarmAccess.setAcsName(ardEquipExternal.getName()); |
| | | } |
| | | int aaa = ardAlarmAccessMapper.insertArdAlarmAccess(ardAlarmAccess); |
| | | if (aaa > 0) { |
| | | log.debug("external入库成功:" + ardAlarmAccess); |
| | | //region 引导录像 |
| | | if (StringUtils.isNull(ardAlarmAccess.getLongitude()) || StringUtils.isNull(ardAlarmAccess.getLatitude())) { |
| | | return; |
| | | } |
| | | double[] guideCoordinate = new double[]{ardAlarmAccess.getLongitude(), ardAlarmAccess.getLatitude()};//引导坐标 |
| | | String nearbyCameraId = getNearbyCamera(guideCoordinate);//最近相机ID |
| | | if (StringUtils.isNotEmpty(nearbyCameraId)) { |
| | | messagesEnqueued(nearbyCameraId, ardAlarmAccess.getId(), "sys_access_control", ardAlarmAccess.getCreateTime(), 1, 1, guideCoordinate); |
| | | } |
| | | //endregion |
| | | } |
| | |
| | | return minDistanceCameraId; |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) { |
| | | Comparator<Obj> PriorityDescCom = Comparator.comparingInt(Obj::getPriority).reversed(); |
| | | Comparator<Obj> NumDescCom = Comparator.comparingInt(Obj::getNum).reversed(); |
| | |
| | | log.info("==================================================================="); |
| | | priorityQueue.add(new Obj(999, 5, "2023-07-01 16:00:01")); |
| | | PriorityBlockingQueue queue = new PriorityBlockingQueue<>(priorityQueue); |
| | | while (priorityQueue.size() > 0) { |
| | | Obj task = priorityQueue.poll(); |
| | | while (queue.size() > 0) { |
| | | Obj task = (Obj) queue.poll(); |
| | | log.info("正在排队【priority】" + task.getPriority() + "【num】" + task.getNum() + "【alarmTime】" + task.getAlarmTime()); |
| | | } |
| | | } |