From 55c5941807a52bd1eb4fc08803d2402dd72e60a6 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Mon, 10 Jul 2023 16:45:48 +0800
Subject: [PATCH] 增加门禁报警数据接收入库和引导就近光电 增加门禁报警业务功能
---
ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/service/IArdAlarmAccessService.java | 62 +++++
ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java | 75 +++++
ard-work/src/main/resources/mapper/alarm/ArdAlarmAccessMapper.xml | 165 +++++++++++++
ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml | 1
ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/domain/ArdAlarmAccess.java | 96 ++++++++
ard-work/src/main/java/com/ruoyi/constant/CamPriority.java | 1
ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/controller/ArdAlarmAccessController.java | 104 ++++++++
ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java | 11
ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/mapper/ArdAlarmAccessMapper.java | 70 +++++
ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/service/impl/ArdAlarmAccessServiceImpl.java | 93 +++++++
10 files changed, 673 insertions(+), 5 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/controller/ArdAlarmAccessController.java b/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/controller/ArdAlarmAccessController.java
new file mode 100644
index 0000000..35294c0
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/controller/ArdAlarmAccessController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.alarm.accessAlarm.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.ruoyi.alarm.accessAlarm.domain.ArdAlarmAccess;
+import com.ruoyi.alarm.accessAlarm.service.IArdAlarmAccessService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 门禁报警Controller
+ *
+ * @author ard
+ * @date 2023-07-10
+ */
+@RestController
+@RequestMapping("/alarm/access")
+public class ArdAlarmAccessController extends BaseController
+{
+ @Autowired
+ private IArdAlarmAccessService ardAlarmAccessService;
+
+ /**
+ * 查询门禁报警列表
+ */
+ @PreAuthorize("@ss.hasPermi('alarm:access:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(ArdAlarmAccess ardAlarmAccess)
+ {
+ startPage();
+ List<ArdAlarmAccess> list = ardAlarmAccessService.selectArdAlarmAccessList(ardAlarmAccess);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出门禁报警列表
+ */
+ @PreAuthorize("@ss.hasPermi('alarm:access:export')")
+ @Log(title = "门禁报警", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ArdAlarmAccess ardAlarmAccess)
+ {
+ List<ArdAlarmAccess> list = ardAlarmAccessService.selectArdAlarmAccessList(ardAlarmAccess);
+ ExcelUtil<ArdAlarmAccess> util = new ExcelUtil<ArdAlarmAccess>(ArdAlarmAccess.class);
+ util.exportExcel(response, list, "门禁报警数据");
+ }
+
+ /**
+ * 获取门禁报警详细信息
+ */
+ @PreAuthorize("@ss.hasPermi('alarm:access:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") String id)
+ {
+ return success(ardAlarmAccessService.selectArdAlarmAccessById(id));
+ }
+
+ /**
+ * 新增门禁报警
+ */
+ @PreAuthorize("@ss.hasPermi('alarm:access:add')")
+ @Log(title = "门禁报警", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody ArdAlarmAccess ardAlarmAccess)
+ {
+ return toAjax(ardAlarmAccessService.insertArdAlarmAccess(ardAlarmAccess));
+ }
+
+ /**
+ * 修改门禁报警
+ */
+ @PreAuthorize("@ss.hasPermi('alarm:access:edit')")
+ @Log(title = "门禁报警", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody ArdAlarmAccess ardAlarmAccess)
+ {
+ return toAjax(ardAlarmAccessService.updateArdAlarmAccess(ardAlarmAccess));
+ }
+
+ /**
+ * 删除门禁报警
+ */
+ @PreAuthorize("@ss.hasPermi('alarm:access:remove')")
+ @Log(title = "门禁报警", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable String[] ids)
+ {
+ return toAjax(ardAlarmAccessService.deleteArdAlarmAccessByIds(ids));
+ }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/domain/ArdAlarmAccess.java b/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/domain/ArdAlarmAccess.java
new file mode 100644
index 0000000..42dd10a
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/domain/ArdAlarmAccess.java
@@ -0,0 +1,96 @@
+package com.ruoyi.alarm.accessAlarm.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 门禁报警对象 ard_alarm_access
+ *
+ * @author ard
+ * @date 2023-07-10
+ */
+@Data
+public class ArdAlarmAccess extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ private String id;
+
+ /** 事件流水号 */
+ @Excel(name = "事件流水号")
+ private String serialNo;
+
+ /** 门禁主机ID */
+ @Excel(name = "门禁主机ID")
+ private String acsId;
+
+ /** 门禁主机名称 */
+ @Excel(name = "门禁主机名称")
+ private String acsName;
+
+ /** 防区类型 */
+ @Excel(name = "防区类型")
+ private String defenseType;
+
+ /** 报警类别 */
+ @Excel(name = "报警类别")
+ private String alarmType;
+
+ /** 报警时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "报警时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date alarmTime;
+
+ /** 门编号 */
+ @Excel(name = "门编号")
+ private Integer doorNo;
+
+ /** 门禁主机经度 */
+ @Excel(name = "门禁主机经度")
+ private Double longitude;
+
+ /** 门禁主机纬度 */
+ @Excel(name = "门禁主机纬度")
+ private Double latitude;
+
+ /** 门禁主机高层 */
+ @Excel(name = "门禁主机高层")
+ private Double altitude;
+
+ /** 事件图片url */
+ @Excel(name = "事件图片url")
+ private String picUrl;
+
+ /** 引导录像url */
+ @Excel(name = "引导录像url")
+ private String recordUrl;
+
+ /** 查看时间 */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "查看时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date viewTime;
+
+ /** 部门ID */
+ @Excel(name = "部门ID")
+ private Integer deptId;
+
+ /** 用户ID */
+ @Excel(name = "用户ID")
+ private String userId;
+
+ /**
+ * 报警总数
+ */
+ private Integer total;
+ /**
+ * 未读报警数量
+ */
+ private Integer count;
+
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/mapper/ArdAlarmAccessMapper.java b/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/mapper/ArdAlarmAccessMapper.java
new file mode 100644
index 0000000..d65aaa9
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/mapper/ArdAlarmAccessMapper.java
@@ -0,0 +1,70 @@
+package com.ruoyi.alarm.accessAlarm.mapper;
+
+import java.util.List;
+import com.ruoyi.alarm.accessAlarm.domain.ArdAlarmAccess;
+import com.ruoyi.alarm.externalAlarm.domain.ArdAlarmExternal;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * 门禁报警Mapper接口
+ *
+ * @author ard
+ * @date 2023-07-10
+ */
+public interface ArdAlarmAccessMapper
+{
+ /**
+ * 查询门禁报警
+ *
+ * @param id 门禁报警主键
+ * @return 门禁报警
+ */
+ public ArdAlarmAccess selectArdAlarmAccessById(String id);
+
+ /**
+ * 查询门禁报警列表
+ *
+ * @param ardAlarmAccess 门禁报警
+ * @return 门禁报警集合
+ */
+ public List<ArdAlarmAccess> selectArdAlarmAccessList(ArdAlarmAccess ardAlarmAccess);
+
+ /**
+ * 新增门禁报警
+ *
+ * @param ardAlarmAccess 门禁报警
+ * @return 结果
+ */
+ public int insertArdAlarmAccess(ArdAlarmAccess ardAlarmAccess);
+
+ /**
+ * 修改门禁报警
+ *
+ * @param ardAlarmAccess 门禁报警
+ * @return 结果
+ */
+ public int updateArdAlarmAccess(ArdAlarmAccess ardAlarmAccess);
+
+ /**
+ * 删除门禁报警
+ *
+ * @param id 门禁报警主键
+ * @return 结果
+ */
+ public int deleteArdAlarmAccessById(String id);
+
+ /**
+ * 批量删除门禁报警
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteArdAlarmAccessByIds(String[] ids);
+
+ int selectCountByAlarmTime(@Param("refreshTime") String refreshTime);
+
+ public List<ArdAlarmAccess> selectListAllByCommand(@Param("refreshTime") String refreshTime);
+
+ public int updateViewTimeByAcsId(@Param("acsId")String acsId,@Param("alarmTime") String alarmTime,@Param("viewTime") String viewTime);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/service/IArdAlarmAccessService.java b/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/service/IArdAlarmAccessService.java
new file mode 100644
index 0000000..597bf97
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/service/IArdAlarmAccessService.java
@@ -0,0 +1,62 @@
+package com.ruoyi.alarm.accessAlarm.service;
+
+import java.util.List;
+import com.ruoyi.alarm.accessAlarm.domain.ArdAlarmAccess;
+
+
+/**
+ * 门禁报警Service接口
+ *
+ * @author ard
+ * @date 2023-07-10
+ */
+public interface IArdAlarmAccessService
+{
+ /**
+ * 查询门禁报警
+ *
+ * @param id 门禁报警主键
+ * @return 门禁报警
+ */
+ public ArdAlarmAccess selectArdAlarmAccessById(String id);
+
+ /**
+ * 查询门禁报警列表
+ *
+ * @param ardAlarmAccess 门禁报警
+ * @return 门禁报警集合
+ */
+ public List<ArdAlarmAccess> selectArdAlarmAccessList(ArdAlarmAccess ardAlarmAccess);
+
+ /**
+ * 新增门禁报警
+ *
+ * @param ardAlarmAccess 门禁报警
+ * @return 结果
+ */
+ public int insertArdAlarmAccess(ArdAlarmAccess ardAlarmAccess);
+
+ /**
+ * 修改门禁报警
+ *
+ * @param ardAlarmAccess 门禁报警
+ * @return 结果
+ */
+ public int updateArdAlarmAccess(ArdAlarmAccess ardAlarmAccess);
+
+ /**
+ * 批量删除门禁报警
+ *
+ * @param ids 需要删除的门禁报警主键集合
+ * @return 结果
+ */
+ public int deleteArdAlarmAccessByIds(String[] ids);
+
+ /**
+ * 删除门禁报警信息
+ *
+ * @param id 门禁报警主键
+ * @return 结果
+ */
+ public int deleteArdAlarmAccessById(String id);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/service/impl/ArdAlarmAccessServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/service/impl/ArdAlarmAccessServiceImpl.java
new file mode 100644
index 0000000..a71c2ae
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/service/impl/ArdAlarmAccessServiceImpl.java
@@ -0,0 +1,93 @@
+package com.ruoyi.alarm.accessAlarm.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.alarm.accessAlarm.domain.ArdAlarmAccess;
+import com.ruoyi.alarm.accessAlarm.mapper.ArdAlarmAccessMapper;
+import com.ruoyi.alarm.accessAlarm.service.IArdAlarmAccessService;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 门禁报警Service业务层处理
+ *
+ * @author ard
+ * @date 2023-07-10
+ */
+@Service
+public class ArdAlarmAccessServiceImpl implements IArdAlarmAccessService {
+ @Autowired
+ private ArdAlarmAccessMapper ardAlarmAccessMapper;
+
+ /**
+ * 查询门禁报警
+ *
+ * @param id 门禁报警主键
+ * @return 门禁报警
+ */
+ @Override
+ public ArdAlarmAccess selectArdAlarmAccessById(String id) {
+ return ardAlarmAccessMapper.selectArdAlarmAccessById(id);
+ }
+
+ /**
+ * 查询门禁报警列表
+ *
+ * @param ardAlarmAccess 门禁报警
+ * @return 门禁报警
+ */
+ @Override
+ public List<ArdAlarmAccess> selectArdAlarmAccessList(ArdAlarmAccess ardAlarmAccess) {
+ return ardAlarmAccessMapper.selectArdAlarmAccessList(ardAlarmAccess);
+ }
+
+ /**
+ * 新增门禁报警
+ *
+ * @param ardAlarmAccess 门禁报警
+ * @return 结果
+ */
+ @Override
+ public int insertArdAlarmAccess(ArdAlarmAccess ardAlarmAccess) {
+ ardAlarmAccess.setUserId(SecurityUtils.getUserId());
+ ardAlarmAccess.setCreateBy(SecurityUtils.getUsername());
+ ardAlarmAccess.setCreateTime(DateUtils.getNowDate());
+ return ardAlarmAccessMapper.insertArdAlarmAccess(ardAlarmAccess);
+ }
+
+ /**
+ * 修改门禁报警
+ *
+ * @param ardAlarmAccess 门禁报警
+ * @return 结果
+ */
+ @Override
+ public int updateArdAlarmAccess(ArdAlarmAccess ardAlarmAccess) {
+ return ardAlarmAccessMapper.updateArdAlarmAccess(ardAlarmAccess);
+ }
+
+ /**
+ * 批量删除门禁报警
+ *
+ * @param ids 需要删除的门禁报警主键
+ * @return 结果
+ */
+ @Override
+ public int deleteArdAlarmAccessByIds(String[] ids) {
+ return ardAlarmAccessMapper.deleteArdAlarmAccessByIds(ids);
+ }
+
+ /**
+ * 删除门禁报警信息
+ *
+ * @param id 门禁报警主键
+ * @return 结果
+ */
+ @Override
+ public int deleteArdAlarmAccessById(String id) {
+ return ardAlarmAccessMapper.deleteArdAlarmAccessById(id);
+ }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
index 9ac6470..b54a8a4 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
@@ -1,6 +1,8 @@
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;
@@ -28,6 +30,8 @@
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;
@@ -59,6 +63,10 @@
@Slf4j(topic = "mqtt")
public class GlobalAlarmServiceImpl implements IGlobalAlarmService {
//region 依赖注入
+ @Resource
+ private ArdEquipExternalMapper ardEquipExternalMapper;
+ @Resource
+ private ArdAlarmAccessMapper ardAlarmAccessMapper;
@Resource
private ArdAlarmExternalMapper ardAlarmExternalMapper;
@Resource
@@ -110,6 +118,8 @@
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);
@@ -197,6 +207,20 @@
.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:
@@ -287,6 +311,13 @@
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);
@@ -336,6 +367,14 @@
String alarmTime = fmt.format(ardAlarmExternal.getAlarmTime());
ardAlarmRadarMapper.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());
@@ -536,10 +575,7 @@
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);
}
@@ -547,6 +583,37 @@
}
//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
+ }
+ //endregion
+ break;
}
} catch (Exception ex) {
log.error("接收报警异常:" + ex.getMessage());
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java
index 2dc815f..48469a8 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java
@@ -1,5 +1,7 @@
package com.ruoyi.alarm.globalAlarm.service.impl;
+import com.ruoyi.alarm.accessAlarm.domain.ArdAlarmAccess;
+import com.ruoyi.alarm.accessAlarm.service.IArdAlarmAccessService;
import com.ruoyi.alarm.externalAlarm.domain.ArdAlarmExternal;
import com.ruoyi.alarm.externalAlarm.service.IArdAlarmExternalService;
import com.ruoyi.alarm.globalAlarm.domain.GuideTask;
@@ -34,7 +36,8 @@
IArdAlarmRadarService ardAlarmRadarService;
@Resource
IArdAlarmExternalService ardAlarmExternalService;
-
+ @Resource
+ IArdAlarmAccessService ardAlarmAccessService;
public void processTask(GuideTask guideTask) {
try {
CameraCmd cmd = new CameraCmd();
@@ -83,6 +86,12 @@
ardAlarmExternal.setRecordUrl(url);
ardAlarmExternalService.updateArdAlarmExternal(ardAlarmExternal);
break;
+ case "sys_access_control":
+ ArdAlarmAccess ardAlarmAccess = new ArdAlarmAccess();
+ ardAlarmAccess.setId(guideTask.getAlarmId());
+ ardAlarmAccess.setRecordUrl(url);
+ ardAlarmAccessService.updateArdAlarmAccess(ardAlarmAccess);
+ break;
}
}
}
diff --git a/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java b/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
index ab0638c..33ee6cc 100644
--- a/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
+++ b/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
@@ -22,6 +22,7 @@
priorityMap.put("sys_tube_leak", 800);//管线泄露报警
priorityMap.put("sys_radar_pumpshutdown", 800);//雷达抽油机停机
priorityMap.put("sys_external", 700);//外联报警
+ priorityMap.put("sys_access_control", 600);//门禁报警
priorityMap.put("sys_patrol_inspect", 1);//巡检
}
}
diff --git a/ard-work/src/main/resources/mapper/alarm/ArdAlarmAccessMapper.xml b/ard-work/src/main/resources/mapper/alarm/ArdAlarmAccessMapper.xml
new file mode 100644
index 0000000..6a56c37
--- /dev/null
+++ b/ard-work/src/main/resources/mapper/alarm/ArdAlarmAccessMapper.xml
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.alarm.accessAlarm.mapper.ArdAlarmAccessMapper">
+
+ <resultMap type="ArdAlarmAccess" id="ArdAlarmAccessResult">
+ <result property="id" column="id" />
+ <result property="serialNo" column="serial_no" />
+ <result property="acsId" column="acs_id" />
+ <result property="acsName" column="acs_name" />
+ <result property="defenseType" column="defense_type" />
+ <result property="alarmType" column="alarm_type" />
+ <result property="alarmTime" column="alarm_time" />
+ <result property="doorNo" column="door_no" />
+ <result property="longitude" column="longitude" />
+ <result property="latitude" column="latitude" />
+ <result property="altitude" column="altitude" />
+ <result property="picUrl" column="pic_url" />
+ <result property="recordUrl" column="record_url" />
+ <result property="viewTime" column="view_time" />
+ <result property="deptId" column="dept_id" />
+ <result property="userId" column="user_id" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ </resultMap>
+
+ <sql id="selectArdAlarmAccessVo">
+ select id, serial_no, acs_id, acs_name, defense_type, alarm_type, alarm_time, door_no, longitude, latitude, altitude, pic_url, record_url, view_time, dept_id, user_id, create_by, create_time from ard_alarm_access
+ </sql>
+
+ <select id="selectArdAlarmAccessList" parameterType="ArdAlarmAccess" resultMap="ArdAlarmAccessResult">
+ <include refid="selectArdAlarmAccessVo"/>
+ <where>
+ </where>
+ </select>
+
+ <select id="selectArdAlarmAccessById" parameterType="String" resultMap="ArdAlarmAccessResult">
+ <include refid="selectArdAlarmAccessVo"/>
+ where id = #{id}
+ </select>
+
+ <insert id="insertArdAlarmAccess" parameterType="ArdAlarmAccess">
+ insert into ard_alarm_access
+ <trim prefix="(" suffix=")" suffixOverrides=",">
+ <if test="id != null">id,</if>
+ <if test="serialNo != null">serial_no,</if>
+ <if test="acsId != null">acs_id,</if>
+ <if test="acsName != null">acs_name,</if>
+ <if test="defenseType != null">defense_type,</if>
+ <if test="alarmType != null">alarm_type,</if>
+ <if test="alarmTime != null">alarm_time,</if>
+ <if test="doorNo != null">door_no,</if>
+ <if test="longitude != null">longitude,</if>
+ <if test="latitude != null">latitude,</if>
+ <if test="altitude != null">altitude,</if>
+ <if test="picUrl != null">pic_url,</if>
+ <if test="recordUrl != null">record_url,</if>
+ <if test="viewTime != null">view_time,</if>
+ <if test="deptId != null">dept_id,</if>
+ <if test="userId != null">user_id,</if>
+ <if test="createBy != null">create_by,</if>
+ <if test="createTime != null">create_time,</if>
+ </trim>
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
+ <if test="id != null">#{id},</if>
+ <if test="serialNo != null">#{serialNo},</if>
+ <if test="acsId != null">#{acsId},</if>
+ <if test="acsName != null">#{acsName},</if>
+ <if test="defenseType != null">#{defenseType},</if>
+ <if test="alarmType != null">#{alarmType},</if>
+ <if test="alarmTime != null">#{alarmTime},</if>
+ <if test="doorNo != null">#{doorNo},</if>
+ <if test="longitude != null">#{longitude},</if>
+ <if test="latitude != null">#{latitude},</if>
+ <if test="altitude != null">#{altitude},</if>
+ <if test="picUrl != null">#{picUrl},</if>
+ <if test="recordUrl != null">#{recordUrl},</if>
+ <if test="viewTime != null">#{viewTime},</if>
+ <if test="deptId != null">#{deptId},</if>
+ <if test="userId != null">#{userId},</if>
+ <if test="createBy != null">#{createBy},</if>
+ <if test="createTime != null">#{createTime},</if>
+ </trim>
+ </insert>
+
+ <update id="updateArdAlarmAccess" parameterType="ArdAlarmAccess">
+ update ard_alarm_access
+ <trim prefix="SET" suffixOverrides=",">
+ <if test="serialNo != null">serial_no = #{serialNo},</if>
+ <if test="acsId != null">acs_id = #{acsId},</if>
+ <if test="acsName != null">acs_name = #{acsName},</if>
+ <if test="defenseType != null">defense_type = #{defenseType},</if>
+ <if test="alarmType != null">alarm_type = #{alarmType},</if>
+ <if test="alarmTime != null">alarm_time = #{alarmTime},</if>
+ <if test="doorNo != null">door_no = #{doorNo},</if>
+ <if test="longitude != null">longitude = #{longitude},</if>
+ <if test="latitude != null">latitude = #{latitude},</if>
+ <if test="altitude != null">altitude = #{altitude},</if>
+ <if test="picUrl != null">pic_url = #{picUrl},</if>
+ <if test="recordUrl != null">record_url = #{recordUrl},</if>
+ <if test="viewTime != null">view_time = #{viewTime},</if>
+ <if test="deptId != null">dept_id = #{deptId},</if>
+ <if test="userId != null">user_id = #{userId},</if>
+ <if test="createBy != null">create_by = #{createBy},</if>
+ <if test="createTime != null">create_time = #{createTime},</if>
+ </trim>
+ where id = #{id}
+ </update>
+
+ <delete id="deleteArdAlarmAccessById" parameterType="String">
+ delete from ard_alarm_access where id = #{id}
+ </delete>
+
+ <delete id="deleteArdAlarmAccessByIds" parameterType="String">
+ delete from ard_alarm_access where id in
+ <foreach item="id" collection="array" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </delete>
+ <select id="selectCountByAlarmTime" resultType="Integer">
+ SELECT COUNT(DISTINCT aaa.acs_id)
+ FROM ard_alarm_access aaa
+ WHERE aaa.alarm_time >= CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE
+ and aaa.view_time is null
+ </select>
+ <select id="selectListAllByCommand" resultMap="ArdAlarmAccessResult">
+ SELECT T.*
+ FROM
+ (
+ SELECT
+ aaa.ID,
+ aaa.acs_id,
+ aaa.acs_name,
+ aaa.serial_no,
+ aaa.defense_type,
+ aaa.door_no,
+ aaa.alarm_type,
+ aaa.alarm_time,
+ aaa.longitude,
+ aaa.latitude,
+ aaa.altitude,
+ aaa.pic_url,
+ aaa.record_url,
+ ROW_NUMBER () OVER ( PARTITION BY aaa.acs_name ORDER BY aaa.alarm_time DESC ) AS rn,
+ COUNT ( CASE WHEN aaa.view_time IS NULL THEN 1 END ) OVER ( PARTITION BY aaa.acs_name ) AS COUNT,
+ COUNT ( aaa.alarm_time ) OVER ( PARTITION BY aaa.acs_name ) AS total
+ FROM
+ ard_alarm_access aaa
+ WHERE
+ aaa.alarm_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE )
+ ORDER BY
+ aaa.alarm_time DESC
+ ) T
+ WHERE
+ T.rn = 1
+ </select>
+ <update id="updateViewTimeByAcsId" parameterType="String">
+ update ard_alarm_access
+ set view_time=#{viewTime}
+ where acs_id = #{acsId}
+ and alarm_time <= #{alarmTime}
+ and view_time is null
+ </update>
+</mapper>
\ No newline at end of file
diff --git a/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml b/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
index d963e3d..88c4ad4 100644
--- a/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
+++ b/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
@@ -195,4 +195,5 @@
and alarm_time <= #{alarmTime}
and view_time is null
</update>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3