From 55c5941807a52bd1eb4fc08803d2402dd72e60a6 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期一, 10 七月 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()});//鏈�杩戠浉鏈篒D
+ String nearbyCameraId = getNearbyCamera(guideCoordinate);//鏈�杩戠浉鏈篒D
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);//鏈�杩戠浉鏈篒D
+ 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