From bfc38cacac67f1bf2a5e857865d64cd49dc8175e Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 21 六月 2023 15:53:44 +0800
Subject: [PATCH] 增加通用光电报警接收 增加报警类型配置

---
 ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/mapper/ArdAlarmCameraMapper.java            |   66 ++
 ard-work/src/main/java/com/ruoyi/alarm/config/domain/ArdAlarmTypeConfig.java                   |   81 +++
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java    |   42 +
 ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/controller/ArdAlarmCameraController.java    |  104 ++++
 ard-work/src/main/java/com/ruoyi/alarm/config/service/IArdAlarmTypeConfigService.java          |   78 +++
 ard-work/src/main/java/com/ruoyi/alarm/config/controller/ArdAlarmTypeConfigController.java     |  123 +++++
 ard-work/src/main/java/com/ruoyi/alarm/config/service/impl/ArdAlarmTypeConfigServiceImpl.java  |  131 +++++
 ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/domain/ArdAlarmCamera.java                  |  265 +++++++++++
 ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/controller/ardAlarmStealElecController.java  |    6 
 ard-work/src/main/resources/mapper/alarm/ArdAlarmTypeConfigMapper.xml                          |   78 +++
 ard-work/src/main/java/com/ruoyi/alarm/config/mapper/ArdAlarmTypeConfigMapper.java             |   69 +++
 ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/service/IArdAlarmCameraService.java         |   60 ++
 ard-work/src/main/java/com/ruoyi/constant/CamPriority.java                                     |    3 
 ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/service/impl/ArdAlarmCameraServiceImpl.java |   92 ++++
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java       |    2 
 ard-work/src/main/resources/mapper/alarm/ArdAlarmCameraMapper.xml                              |  157 ++++++
 16 files changed, 1,349 insertions(+), 8 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/controller/ArdAlarmCameraController.java b/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/controller/ArdAlarmCameraController.java
new file mode 100644
index 0000000..5a52cd8
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/controller/ArdAlarmCameraController.java
@@ -0,0 +1,104 @@
+package com.ruoyi.alarm.cameraAlarm.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import com.ruoyi.alarm.cameraAlarm.domain.ArdAlarmCamera;
+import com.ruoyi.alarm.cameraAlarm.service.IArdAlarmCameraService;
+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-06-21
+ */
+@RestController
+@RequestMapping("/alarm/cameraAlarm")
+public class ArdAlarmCameraController extends BaseController
+{
+    @Autowired
+    private IArdAlarmCameraService ardAlarmCameraService;
+
+    /**
+     * 鏌ヨ閫氱敤鍏夌數鎶ヨ鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:cameraAlarm:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(ArdAlarmCamera ardAlarmCamera)
+    {
+        startPage();
+        List<ArdAlarmCamera> list = ardAlarmCameraService.selectArdAlarmCameraList(ardAlarmCamera);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭閫氱敤鍏夌數鎶ヨ鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:cameraAlarm:export')")
+    @Log(title = "閫氱敤鍏夌數鎶ヨ", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ArdAlarmCamera ardAlarmCamera)
+    {
+        List<ArdAlarmCamera> list = ardAlarmCameraService.selectArdAlarmCameraList(ardAlarmCamera);
+        ExcelUtil<ArdAlarmCamera> util = new ExcelUtil<ArdAlarmCamera>(ArdAlarmCamera.class);
+        util.exportExcel(response, list, "閫氱敤鍏夌數鎶ヨ鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇閫氱敤鍏夌數鎶ヨ璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:cameraAlarm:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(ardAlarmCameraService.selectArdAlarmCameraById(id));
+    }
+
+    /**
+     * 鏂板閫氱敤鍏夌數鎶ヨ
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:cameraAlarm:add')")
+    @Log(title = "閫氱敤鍏夌數鎶ヨ", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ArdAlarmCamera ardAlarmCamera)
+    {
+        return toAjax(ardAlarmCameraService.insertArdAlarmCamera(ardAlarmCamera));
+    }
+
+    /**
+     * 淇敼閫氱敤鍏夌數鎶ヨ
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:cameraAlarm:edit')")
+    @Log(title = "閫氱敤鍏夌數鎶ヨ", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ArdAlarmCamera ardAlarmCamera)
+    {
+        return toAjax(ardAlarmCameraService.updateArdAlarmCamera(ardAlarmCamera));
+    }
+
+    /**
+     * 鍒犻櫎閫氱敤鍏夌數鎶ヨ
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:cameraAlarm:remove')")
+    @Log(title = "閫氱敤鍏夌數鎶ヨ", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        return toAjax(ardAlarmCameraService.deleteArdAlarmCameraByIds(ids));
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/domain/ArdAlarmCamera.java b/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/domain/ArdAlarmCamera.java
new file mode 100644
index 0000000..ae29c08
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/domain/ArdAlarmCamera.java
@@ -0,0 +1,265 @@
+package com.ruoyi.alarm.cameraAlarm.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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_camera
+ * 
+ * @author ard
+ * @date 2023-06-21
+ */
+public class ArdAlarmCamera extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 璁板綍ID */
+    private String id;
+
+    /** 鐩告満id */
+    @Excel(name = "鐩告満id")
+    private String cameraId;
+
+    /** 鐩告満鍚嶇О */
+    @Excel(name = "鐩告満鍚嶇О")
+    private String cameraName;
+
+    /** 鐩告満閫氶亾 */
+    @Excel(name = "鐩告満閫氶亾")
+    private Integer cameraChannel;
+
+    /** 鐩告満绫诲瀷 */
+    @Excel(name = "鐩告満绫诲瀷")
+    private String cameraType;
+
+    /** 鎶ヨ绫诲瀷 */
+    @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 Double longitude;
+
+    /** 绾害 */
+    @Excel(name = "绾害")
+    private Double latitude;
+
+    /** 瑙勫垯id */
+    @Excel(name = "瑙勫垯id")
+    private Integer ruleId;
+
+    /** 鍥剧墖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 String userId;
+
+    /** 閮ㄩ棬ID */
+    @Excel(name = "閮ㄩ棬ID")
+    private Integer deptId;
+
+    /**
+     * 鎶ヨ鎬绘暟
+     */
+    private Integer total;
+    /**
+     * 鏈鎶ヨ鏁伴噺
+     */
+    private Integer count;
+
+
+    public Integer getTotal() {
+        return total;
+    }
+
+    public void setTotal(Integer total) {
+        this.total = total;
+    }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+
+    public void setId(String id)
+    {
+        this.id = id;
+    }
+
+    public String getId() 
+    {
+        return id;
+    }
+    public void setCameraId(String cameraId) 
+    {
+        this.cameraId = cameraId;
+    }
+
+    public String getCameraId() 
+    {
+        return cameraId;
+    }
+    public void setCameraName(String cameraName) 
+    {
+        this.cameraName = cameraName;
+    }
+
+    public String getCameraName() 
+    {
+        return cameraName;
+    }
+    public void setCameraChannel(Integer cameraChannel) 
+    {
+        this.cameraChannel = cameraChannel;
+    }
+
+    public Integer getCameraChannel() 
+    {
+        return cameraChannel;
+    }
+    public void setCameraType(String cameraType) 
+    {
+        this.cameraType = cameraType;
+    }
+
+    public String getCameraType() 
+    {
+        return cameraType;
+    }
+    public void setAlarmType(String alarmType) 
+    {
+        this.alarmType = alarmType;
+    }
+
+    public String getAlarmType() 
+    {
+        return alarmType;
+    }
+    public void setAlarmTime(Date alarmTime) 
+    {
+        this.alarmTime = alarmTime;
+    }
+
+    public Date getAlarmTime() 
+    {
+        return alarmTime;
+    }
+    public void setLongitude(Double longitude) 
+    {
+        this.longitude = longitude;
+    }
+
+    public Double getLongitude() 
+    {
+        return longitude;
+    }
+    public void setLatitude(Double latitude) 
+    {
+        this.latitude = latitude;
+    }
+
+    public Double getLatitude() 
+    {
+        return latitude;
+    }
+    public void setRuleId(Integer ruleId) 
+    {
+        this.ruleId = ruleId;
+    }
+
+    public Integer getRuleId() 
+    {
+        return ruleId;
+    }
+    public void setPicUrl(String picUrl) 
+    {
+        this.picUrl = picUrl;
+    }
+
+    public String getPicUrl() 
+    {
+        return picUrl;
+    }
+    public void setRecordUrl(String recordUrl) 
+    {
+        this.recordUrl = recordUrl;
+    }
+
+    public String getRecordUrl() 
+    {
+        return recordUrl;
+    }
+    public void setViewTime(Date viewTime) 
+    {
+        this.viewTime = viewTime;
+    }
+
+    public Date getViewTime() 
+    {
+        return viewTime;
+    }
+    public void setUserId(String userId) 
+    {
+        this.userId = userId;
+    }
+
+    public String getUserId() 
+    {
+        return userId;
+    }
+    public void setDeptId(Integer deptId) 
+    {
+        this.deptId = deptId;
+    }
+
+    public Integer getDeptId() 
+    {
+        return deptId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("cameraId", getCameraId())
+            .append("cameraName", getCameraName())
+            .append("cameraChannel", getCameraChannel())
+            .append("cameraType", getCameraType())
+            .append("alarmType", getAlarmType())
+            .append("alarmTime", getAlarmTime())
+            .append("longitude", getLongitude())
+            .append("latitude", getLatitude())
+            .append("ruleId", getRuleId())
+            .append("picUrl", getPicUrl())
+            .append("recordUrl", getRecordUrl())
+            .append("viewTime", getViewTime())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("userId", getUserId())
+            .append("deptId", getDeptId())
+            .toString();
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/mapper/ArdAlarmCameraMapper.java b/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/mapper/ArdAlarmCameraMapper.java
new file mode 100644
index 0000000..3fadd7e
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/mapper/ArdAlarmCameraMapper.java
@@ -0,0 +1,66 @@
+package com.ruoyi.alarm.cameraAlarm.mapper;
+
+import java.util.List;
+import com.ruoyi.alarm.cameraAlarm.domain.ArdAlarmCamera;
+import com.ruoyi.alarm.tubeAlarm.domain.ArdAlarmTube;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * 閫氱敤鍏夌數鎶ヨMapper鎺ュ彛
+ * 
+ * @author ard
+ * @date 2023-06-21
+ */
+public interface ArdAlarmCameraMapper 
+{
+    /**
+     * 鏌ヨ閫氱敤鍏夌數鎶ヨ
+     * 
+     * @param id 閫氱敤鍏夌數鎶ヨ涓婚敭
+     * @return 閫氱敤鍏夌數鎶ヨ
+     */
+    public ArdAlarmCamera selectArdAlarmCameraById(String id);
+
+    /**
+     * 鏌ヨ閫氱敤鍏夌數鎶ヨ鍒楄〃
+     * 
+     * @param ardAlarmCamera 閫氱敤鍏夌數鎶ヨ
+     * @return 閫氱敤鍏夌數鎶ヨ闆嗗悎
+     */
+    public List<ArdAlarmCamera> selectArdAlarmCameraList(ArdAlarmCamera ardAlarmCamera);
+
+    /**
+     * 鏂板閫氱敤鍏夌數鎶ヨ
+     * 
+     * @param ardAlarmCamera 閫氱敤鍏夌數鎶ヨ
+     * @return 缁撴灉
+     */
+    public int insertArdAlarmCamera(ArdAlarmCamera ardAlarmCamera);
+
+    /**
+     * 淇敼閫氱敤鍏夌數鎶ヨ
+     * 
+     * @param ardAlarmCamera 閫氱敤鍏夌數鎶ヨ
+     * @return 缁撴灉
+     */
+    public int updateArdAlarmCamera(ArdAlarmCamera ardAlarmCamera);
+
+    /**
+     * 鍒犻櫎閫氱敤鍏夌數鎶ヨ
+     * 
+     * @param id 閫氱敤鍏夌數鎶ヨ涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteArdAlarmCameraById(String id);
+
+    /**
+     * 鎵归噺鍒犻櫎閫氱敤鍏夌數鎶ヨ
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdAlarmCameraByIds(String[] ids);
+
+    public List<ArdAlarmCamera> selectListAllByCommand(@Param("refreshTime")String refreshTime);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/service/IArdAlarmCameraService.java b/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/service/IArdAlarmCameraService.java
new file mode 100644
index 0000000..e636a23
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/service/IArdAlarmCameraService.java
@@ -0,0 +1,60 @@
+package com.ruoyi.alarm.cameraAlarm.service;
+
+import java.util.List;
+import com.ruoyi.alarm.cameraAlarm.domain.ArdAlarmCamera;
+/**
+ * 閫氱敤鍏夌數鎶ヨService鎺ュ彛
+ * 
+ * @author ard
+ * @date 2023-06-21
+ */
+public interface IArdAlarmCameraService 
+{
+    /**
+     * 鏌ヨ閫氱敤鍏夌數鎶ヨ
+     * 
+     * @param id 閫氱敤鍏夌數鎶ヨ涓婚敭
+     * @return 閫氱敤鍏夌數鎶ヨ
+     */
+    public ArdAlarmCamera selectArdAlarmCameraById(String id);
+
+    /**
+     * 鏌ヨ閫氱敤鍏夌數鎶ヨ鍒楄〃
+     * 
+     * @param ardAlarmCamera 閫氱敤鍏夌數鎶ヨ
+     * @return 閫氱敤鍏夌數鎶ヨ闆嗗悎
+     */
+    public List<ArdAlarmCamera> selectArdAlarmCameraList(ArdAlarmCamera ardAlarmCamera);
+
+    /**
+     * 鏂板閫氱敤鍏夌數鎶ヨ
+     * 
+     * @param ardAlarmCamera 閫氱敤鍏夌數鎶ヨ
+     * @return 缁撴灉
+     */
+    public int insertArdAlarmCamera(ArdAlarmCamera ardAlarmCamera);
+
+    /**
+     * 淇敼閫氱敤鍏夌數鎶ヨ
+     * 
+     * @param ardAlarmCamera 閫氱敤鍏夌數鎶ヨ
+     * @return 缁撴灉
+     */
+    public int updateArdAlarmCamera(ArdAlarmCamera ardAlarmCamera);
+
+    /**
+     * 鎵归噺鍒犻櫎閫氱敤鍏夌數鎶ヨ
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑閫氱敤鍏夌數鎶ヨ涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdAlarmCameraByIds(String[] ids);
+
+    /**
+     * 鍒犻櫎閫氱敤鍏夌數鎶ヨ淇℃伅
+     * 
+     * @param id 閫氱敤鍏夌數鎶ヨ涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteArdAlarmCameraById(String id);
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/service/impl/ArdAlarmCameraServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/service/impl/ArdAlarmCameraServiceImpl.java
new file mode 100644
index 0000000..5223ac3
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/cameraAlarm/service/impl/ArdAlarmCameraServiceImpl.java
@@ -0,0 +1,92 @@
+package com.ruoyi.alarm.cameraAlarm.service.impl;
+
+import java.util.List;
+import com.ruoyi.alarm.cameraAlarm.domain.ArdAlarmCamera;
+import com.ruoyi.alarm.cameraAlarm.mapper.ArdAlarmCameraMapper;
+import com.ruoyi.alarm.cameraAlarm.service.IArdAlarmCameraService;
+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-06-21
+ */
+@Service
+public class ArdAlarmCameraServiceImpl implements IArdAlarmCameraService {
+    @Autowired
+    private ArdAlarmCameraMapper ardAlarmCameraMapper;
+
+    /**
+     * 鏌ヨ閫氱敤鍏夌數鎶ヨ
+     *
+     * @param id 閫氱敤鍏夌數鎶ヨ涓婚敭
+     * @return 閫氱敤鍏夌數鎶ヨ
+     */
+    @Override
+    public ArdAlarmCamera selectArdAlarmCameraById(String id) {
+        return ardAlarmCameraMapper.selectArdAlarmCameraById(id);
+    }
+
+    /**
+     * 鏌ヨ閫氱敤鍏夌數鎶ヨ鍒楄〃
+     *
+     * @param ardAlarmCamera 閫氱敤鍏夌數鎶ヨ
+     * @return 閫氱敤鍏夌數鎶ヨ
+     */
+    @Override
+    public List<ArdAlarmCamera> selectArdAlarmCameraList(ArdAlarmCamera ardAlarmCamera) {
+        return ardAlarmCameraMapper.selectArdAlarmCameraList(ardAlarmCamera);
+    }
+
+    /**
+     * 鏂板閫氱敤鍏夌數鎶ヨ
+     *
+     * @param ardAlarmCamera 閫氱敤鍏夌數鎶ヨ
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertArdAlarmCamera(ArdAlarmCamera ardAlarmCamera) {
+                ardAlarmCamera.setCreateBy(SecurityUtils.getUsername());
+                ardAlarmCamera.setCreateTime(DateUtils.getNowDate());
+                ardAlarmCamera.setUserId(SecurityUtils.getUserId());
+            return ardAlarmCameraMapper.insertArdAlarmCamera(ardAlarmCamera);
+    }
+
+    /**
+     * 淇敼閫氱敤鍏夌數鎶ヨ
+     *
+     * @param ardAlarmCamera 閫氱敤鍏夌數鎶ヨ
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateArdAlarmCamera(ArdAlarmCamera ardAlarmCamera) {
+        return ardAlarmCameraMapper.updateArdAlarmCamera(ardAlarmCamera);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎閫氱敤鍏夌數鎶ヨ
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑閫氱敤鍏夌數鎶ヨ涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteArdAlarmCameraByIds(String[] ids) {
+        return ardAlarmCameraMapper.deleteArdAlarmCameraByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎閫氱敤鍏夌數鎶ヨ淇℃伅
+     *
+     * @param id 閫氱敤鍏夌數鎶ヨ涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteArdAlarmCameraById(String id) {
+        return ardAlarmCameraMapper.deleteArdAlarmCameraById(id);
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/config/controller/ArdAlarmTypeConfigController.java b/ard-work/src/main/java/com/ruoyi/alarm/config/controller/ArdAlarmTypeConfigController.java
new file mode 100644
index 0000000..dec9207
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/config/controller/ArdAlarmTypeConfigController.java
@@ -0,0 +1,123 @@
+package com.ruoyi.alarm.config.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.ruoyi.alarm.config.domain.ArdAlarmTypeConfig;
+import com.ruoyi.alarm.config.service.IArdAlarmTypeConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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-06-21
+ */
+@RestController
+@RequestMapping("/alarm/alarmConfig")
+@Api(tags = "鎶ヨ绫诲瀷閰嶇疆")
+public class ArdAlarmTypeConfigController extends BaseController
+{
+    @Autowired
+    private IArdAlarmTypeConfigService ardAlarmTypeConfigService;
+
+    /**
+     * 鏌ヨ鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:alarmConfig:list')")
+    @GetMapping("/list")
+    @ApiOperation("鏌ヨ鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈鍒楄〃")
+    public TableDataInfo list(ArdAlarmTypeConfig ardAlarmTypeConfig)
+    {
+        startPage();
+        List<ArdAlarmTypeConfig> list = ardAlarmTypeConfigService.selectArdAlarmTypeConfigList(ardAlarmTypeConfig);
+        return getDataTable(list);
+    }
+
+    /**
+     * 瀵煎嚭鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:alarmConfig:export')")
+    @Log(title = "鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ArdAlarmTypeConfig ardAlarmTypeConfig)
+    {
+        List<ArdAlarmTypeConfig> list = ardAlarmTypeConfigService.selectArdAlarmTypeConfigList(ardAlarmTypeConfig);
+        ExcelUtil<ArdAlarmTypeConfig> util = new ExcelUtil<ArdAlarmTypeConfig>(ArdAlarmTypeConfig.class);
+        util.exportExcel(response, list, "鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈鏁版嵁");
+    }
+
+    /**
+     * 鑾峰彇鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:alarmConfig:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return success(ardAlarmTypeConfigService.selectArdAlarmTypeConfigById(id));
+    }
+    /**
+     * 鎵归噺鏂板鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:alarmConfig:add')")
+    @Log(title = "鎵归噺閰嶇疆鎶ヨ绫诲瀷", businessType = BusinessType.INSERT)
+    @PostMapping("/batchConfig")
+    @ApiOperation("鎵归噺閰嶇疆鎶ヨ绫诲瀷")
+    public AjaxResult addBatch(@RequestBody List<Integer> commands)
+    {
+        ardAlarmTypeConfigService.deleteArdAlarmTypeConfigByCurrentUserId();
+        return AjaxResult.success(ardAlarmTypeConfigService.insertArdAlarmTypeConfig(commands));
+    }
+
+    /**
+     * 鏂板鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:alarmConfig:add')")
+    @Log(title = "鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ArdAlarmTypeConfig ardAlarmTypeConfig)
+    {
+        return toAjax(ardAlarmTypeConfigService.insertArdAlarmTypeConfig(ardAlarmTypeConfig));
+    }
+
+    /**
+     * 淇敼鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:alarmConfig:edit')")
+    @Log(title = "鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ArdAlarmTypeConfig ardAlarmTypeConfig)
+    {
+        return toAjax(ardAlarmTypeConfigService.updateArdAlarmTypeConfig(ardAlarmTypeConfig));
+    }
+
+    /**
+     * 鍒犻櫎鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     */
+    @PreAuthorize("@ss.hasPermi('alarm:alarmConfig:remove')")
+    @Log(title = "鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        return toAjax(ardAlarmTypeConfigService.deleteArdAlarmTypeConfigByIds(ids));
+    }
+
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/config/domain/ArdAlarmTypeConfig.java b/ard-work/src/main/java/com/ruoyi/alarm/config/domain/ArdAlarmTypeConfig.java
new file mode 100644
index 0000000..da7207f
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/config/domain/ArdAlarmTypeConfig.java
@@ -0,0 +1,81 @@
+package com.ruoyi.alarm.config.domain;
+
+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_type_user
+ * 
+ * @author ard
+ * @date 2023-06-21
+ */
+
+public class ArdAlarmTypeConfig extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 璁板綍ID */
+    private String id;
+
+    /** 鎶ヨ浠g爜 */
+    private Integer command;
+
+    /** 鎶ヨ绫诲瀷 */
+    @Excel(name = "鎶ヨ绫诲瀷")
+    private String alarmType;
+
+    /** 鐢ㄦ埛ID */
+    @Excel(name = "鐢ㄦ埛ID")
+    private String userId;
+
+    public void setId(String id) 
+    {
+        this.id = id;
+    }
+
+    public String getId() 
+    {
+        return id;
+    }
+    public void setCommand(Integer command) 
+    {
+        this.command = command;
+    }
+
+    public Integer getCommand() 
+    {
+        return command;
+    }
+    public void setAlarmType(String alarmType) 
+    {
+        this.alarmType = alarmType;
+    }
+
+    public String getAlarmType() 
+    {
+        return alarmType;
+    }
+    public void setUserId(String userId) 
+    {
+        this.userId = userId;
+    }
+
+    public String getUserId() 
+    {
+        return userId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("command", getCommand())
+            .append("alarmType", getAlarmType())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("userId", getUserId())
+            .toString();
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/config/mapper/ArdAlarmTypeConfigMapper.java b/ard-work/src/main/java/com/ruoyi/alarm/config/mapper/ArdAlarmTypeConfigMapper.java
new file mode 100644
index 0000000..9a89b27
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/config/mapper/ArdAlarmTypeConfigMapper.java
@@ -0,0 +1,69 @@
+package com.ruoyi.alarm.config.mapper;
+
+import java.util.List;
+import com.ruoyi.alarm.config.domain.ArdAlarmTypeConfig;
+
+/**
+ * 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈Mapper鎺ュ彛
+ * 
+ * @author ard
+ * @date 2023-06-21
+ */
+public interface ArdAlarmTypeConfigMapper 
+{
+    /**
+     * 鏌ヨ鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * 
+     * @param id 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈涓婚敭
+     * @return 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     */
+    public ArdAlarmTypeConfig selectArdAlarmTypeConfigById(String id);
+
+    /**
+     * 鏌ヨ鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈鍒楄〃
+     * 
+     * @param ardAlarmTypeConfig 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * @return 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈闆嗗悎
+     */
+    public List<ArdAlarmTypeConfig> selectArdAlarmTypeConfigList(ArdAlarmTypeConfig ardAlarmTypeConfig);
+
+    /**
+     * 鏂板鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * 
+     * @param ardAlarmTypeConfig 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * @return 缁撴灉
+     */
+    public int insertArdAlarmTypeConfig(ArdAlarmTypeConfig ardAlarmTypeConfig);
+
+    /**
+     * 淇敼鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * 
+     * @param ardAlarmTypeConfig 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * @return 缁撴灉
+     */
+    public int updateArdAlarmTypeConfig(ArdAlarmTypeConfig ardAlarmTypeConfig);
+
+    /**
+     * 鍒犻櫎鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * 
+     * @param id 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteArdAlarmTypeConfigById(String id);
+
+    /**
+     * 鎵归噺鍒犻櫎鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdAlarmTypeConfigByIds(String[] ids);
+    /**
+     * 鎵归噺鍒犻櫎鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     *
+     * @param userId 鍏宠仈鐨勭敤鎴穒d
+     * @return 缁撴灉
+     */
+    public int deleteArdAlarmTypeConfigByCurrentUserId(String userId);
+
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/config/service/IArdAlarmTypeConfigService.java b/ard-work/src/main/java/com/ruoyi/alarm/config/service/IArdAlarmTypeConfigService.java
new file mode 100644
index 0000000..501a797
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/config/service/IArdAlarmTypeConfigService.java
@@ -0,0 +1,78 @@
+package com.ruoyi.alarm.config.service;
+
+import java.util.List;
+import com.ruoyi.alarm.config.domain.ArdAlarmTypeConfig;
+
+
+/**
+ * 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈Service鎺ュ彛
+ * 
+ * @author ard
+ * @date 2023-06-21
+ */
+public interface IArdAlarmTypeConfigService 
+{
+    /**
+     * 鏌ヨ鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * 
+     * @param id 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈涓婚敭
+     * @return 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     */
+    public ArdAlarmTypeConfig selectArdAlarmTypeConfigById(String id);
+
+    /**
+     * 鏌ヨ鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈鍒楄〃
+     * 
+     * @param ardAlarmTypeConfig 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * @return 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈闆嗗悎
+     */
+    public List<ArdAlarmTypeConfig> selectArdAlarmTypeConfigList(ArdAlarmTypeConfig ardAlarmTypeConfig);
+
+    /**
+     * 鏂板鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * 
+     * @param ardAlarmTypeConfig 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * @return 缁撴灉
+     */
+    public int insertArdAlarmTypeConfig(ArdAlarmTypeConfig ardAlarmTypeConfig);
+
+    /**
+     * 淇敼鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * 
+     * @param ardAlarmTypeConfig 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * @return 缁撴灉
+     */
+    public int updateArdAlarmTypeConfig(ArdAlarmTypeConfig ardAlarmTypeConfig);
+
+    /**
+     * 鎵归噺鍒犻櫎鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * 
+     * @param ids 闇�瑕佸垹闄ょ殑鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈涓婚敭闆嗗悎
+     * @return 缁撴灉
+     */
+    public int deleteArdAlarmTypeConfigByIds(String[] ids);
+
+    /**
+     * 鍒犻櫎鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈淇℃伅
+     * 
+     * @param id 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈涓婚敭
+     * @return 缁撴灉
+     */
+    public int deleteArdAlarmTypeConfigById(String id);
+
+    /**
+     * 鎵归噺鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     *
+     * @param command 鎶ヨ绫诲瀷鍒楄〃
+     * @return 缁撴灉
+     */
+    public int insertArdAlarmTypeConfig(List<Integer>  command);
+
+    /**
+     * 鎵归噺鍒犻櫎鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     *
+     * @return 缁撴灉
+     */
+    public int deleteArdAlarmTypeConfigByCurrentUserId();
+
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/config/service/impl/ArdAlarmTypeConfigServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/config/service/impl/ArdAlarmTypeConfigServiceImpl.java
new file mode 100644
index 0000000..1679570
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/alarm/config/service/impl/ArdAlarmTypeConfigServiceImpl.java
@@ -0,0 +1,131 @@
+package com.ruoyi.alarm.config.service.impl;
+
+
+
+import com.ruoyi.alarm.config.domain.ArdAlarmTypeConfig;
+import com.ruoyi.alarm.config.mapper.ArdAlarmTypeConfigMapper;
+import com.ruoyi.alarm.config.service.IArdAlarmTypeConfigService;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.system.mapper.SysDictDataMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Objects;
+
+
+/**
+ * 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈Service涓氬姟灞傚鐞�
+ *
+ * @author ard
+ * @date 2023-06-21
+ */
+@Service
+public class ArdAlarmTypeConfigServiceImpl implements IArdAlarmTypeConfigService {
+    @Autowired
+    private ArdAlarmTypeConfigMapper ardAlarmTypeConfigMapper;
+    @Autowired
+    private SysDictDataMapper dictDataMapper;
+    /**
+     * 鏌ヨ鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     *
+     * @param id 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈涓婚敭
+     * @return 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     */
+    @Override
+    public ArdAlarmTypeConfig selectArdAlarmTypeConfigById(String id) {
+        return ardAlarmTypeConfigMapper.selectArdAlarmTypeConfigById(id);
+    }
+
+    /**
+     * 鏌ヨ鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈鍒楄〃
+     *
+     * @param ardAlarmTypeConfig 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * @return 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     */
+    @Override
+    public List<ArdAlarmTypeConfig> selectArdAlarmTypeConfigList(ArdAlarmTypeConfig ardAlarmTypeConfig) {
+        return ardAlarmTypeConfigMapper.selectArdAlarmTypeConfigList(ardAlarmTypeConfig);
+    }
+
+    /**
+     * 鏂板鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     *
+     * @param ardAlarmTypeConfig 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertArdAlarmTypeConfig(ArdAlarmTypeConfig ardAlarmTypeConfig) {
+                ardAlarmTypeConfig.setCreateBy(SecurityUtils.getUsername());
+                ardAlarmTypeConfig.setCreateTime(DateUtils.getNowDate());
+                ardAlarmTypeConfig.setUserId(SecurityUtils.getUserId());
+            return ardAlarmTypeConfigMapper.insertArdAlarmTypeConfig(ardAlarmTypeConfig);
+    }
+
+    /**
+     * 淇敼鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     *
+     * @param ardAlarmTypeConfig 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateArdAlarmTypeConfig(ArdAlarmTypeConfig ardAlarmTypeConfig) {
+        return ardAlarmTypeConfigMapper.updateArdAlarmTypeConfig(ardAlarmTypeConfig);
+    }
+
+    /**
+     * 鎵归噺鍒犻櫎鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     *
+     * @param ids 闇�瑕佸垹闄ょ殑鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteArdAlarmTypeConfigByIds(String[] ids) {
+        return ardAlarmTypeConfigMapper.deleteArdAlarmTypeConfigByIds(ids);
+    }
+
+    /**
+     * 鍒犻櫎鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈淇℃伅
+     *
+     * @param id 鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈涓婚敭
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteArdAlarmTypeConfigById(String id) {
+        return ardAlarmTypeConfigMapper.deleteArdAlarmTypeConfigById(id);
+    }
+    /**
+     * 鎵归噺鎶ヨ绫诲瀷鐢ㄦ埛鍏宠仈
+     *
+     * @param commands 鎶ヨ绫诲瀷鍒楄〃
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertArdAlarmTypeConfig(List<Integer> commands) {
+        int resNum=0;
+        for(Integer command :commands)
+        {
+            ArdAlarmTypeConfig config=new ArdAlarmTypeConfig();
+            config.setId(IdUtils.simpleUUID());
+            config.setCommand(command);
+            List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType("alarm_type");
+            SysDictData sysDictData = dictDatas.stream().filter(s -> Objects.equals(s.getDictValue(), command.toString())).findFirst().orElse(null);
+            config.setAlarmType(sysDictData.getDictLabel());
+            config.setUserId(SecurityUtils.getUserId());
+            config.setCreateTime(DateUtils.getNowDate());
+            int i = ardAlarmTypeConfigMapper.insertArdAlarmTypeConfig(config);
+            if(i>0)
+            {
+                resNum++;
+            }
+        }
+        return resNum;
+    }
+
+    @Override
+    public int deleteArdAlarmTypeConfigByCurrentUserId() {
+        return ardAlarmTypeConfigMapper.deleteArdAlarmTypeConfigByCurrentUserId(SecurityUtils.getUserId());
+    }
+}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java
index 11af8c0..49d56af 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java
@@ -32,7 +32,7 @@
     IGlobalAlarmService globalAlarmService;
 
     @PostMapping("/List")
-    @ApiOperation(value = "鎶ヨ鏌ヨ鎺ュ彛",notes = "杩欓噷鍖呭惈浜嗘墍鏈夋姤璀︾被鍨嬬殑鏁版嵁")
+    @ApiOperation(value = "瀹炴椂鎶ヨ鑱氬悎鎺ュ彛",notes = "鎸夋姤璀﹀埛鏂版椂闂磋仛鍚堟煡璇�")
     @ApiOperationSupport(includeParameters = {"command"},order = 1)
     public AjaxResult selectAlarmLog(@RequestBody GlobalAlarmCondition condition) {
         List<GlobalAlarmData> result = globalAlarmService.selectAlarmLogs(condition);
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 f99f6df..71b98b5 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.cameraAlarm.domain.ArdAlarmCamera;
+import com.ruoyi.alarm.cameraAlarm.mapper.ArdAlarmCameraMapper;
 import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmCondition;
 import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmData;
 import com.ruoyi.alarm.globalAlarm.service.IGlobalAlarmService;
@@ -53,6 +55,8 @@
     @Resource
     ArdAlarmTubeMapper ardAlarmTubeMapper;
     @Resource
+    ArdAlarmCameraMapper ardAlarmCameraMapper;
+    @Resource
     ArdTubesMapper ardTubesMapper;
     @Resource
     ArdAlarmpointsWellMapper ardAlarmpointsWellMapper;
@@ -91,6 +95,21 @@
                                     .setAltitude(ardAlarmStealelec.getAltitude())
                                     .setCount(ardAlarmStealelec.getCount())
                                     .setTotal(ardAlarmStealelec.getTotal());
+                            return globalAlarmData;
+                        })
+                        .collect(Collectors.toList());
+            case 1002:
+                List<ArdAlarmCamera> ardAlarmCameras = ardAlarmCameraMapper.selectListAllByCommand(refreshTime);
+                return ardAlarmCameras.stream()
+                        .map(ardAlarmCamera -> {
+                            GlobalAlarmData globalAlarmData = new GlobalAlarmData()
+                                    .setId(ardAlarmCamera.getId())
+                                    .setName(ardAlarmCamera.getCameraName())
+                                    .setAlarmTime(ardAlarmCamera.getAlarmTime())
+                                    .setLongitude(ardAlarmCamera.getLongitude())
+                                    .setLatitude(ardAlarmCamera.getLatitude())
+                                    .setCount(ardAlarmCamera.getCount())
+                                    .setTotal(ardAlarmCamera.getTotal());
                             return globalAlarmData;
                         })
                         .collect(Collectors.toList());
@@ -232,6 +251,29 @@
                     }
                     //endregion
                     break;
+                case "camera":
+                    //region 澶勭悊閫氱敤鍏夌數鎶ヨ
+                    ArdAlarmCamera ardAlarmCamera = JSONObject.parseObject(message, ArdAlarmCamera.class);
+                    ardAlarmCamera.setId(simpleUUID);
+                    int aac = ardAlarmCameraMapper.insertArdAlarmCamera(ardAlarmCamera);
+                    if (aac > 0) {
+                        log.debug("camera鍏ュ簱鎴愬姛锛�" + ardAlarmCamera);
+                        //寮曞褰曞儚
+                        CameraCmd cmd = new CameraCmd();
+                        cmd.setRecordBucketName("record");
+                        cmd.setRecordObjectName("camera");
+                        cmd.setOperator("sys_camera");
+                        cmd.setExpired(30);
+                        cmd.setTargetPosition(new double[]{ardAlarmCamera.getLongitude(), ardAlarmCamera.getLatitude()});
+                        String url = guideCamera(cmd);
+                        //鏇存柊褰曞儚
+                        if (StringUtils.isNotEmpty(url)) {
+                            ardAlarmCamera.setRecordUrl(url);
+                            ardAlarmCameraMapper.updateArdAlarmCamera(ardAlarmCamera);
+                        }
+                    }
+                    //endregion
+                    break;
             }
         } catch (Exception ex) {
             log.error("鎺ユ敹鎶ヨ寮傚父:" + ex.getMessage());
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/controller/ardAlarmStealElecController.java b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/controller/ardAlarmStealElecController.java
index 4f57655..8f8b641 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/controller/ardAlarmStealElecController.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/controller/ardAlarmStealElecController.java
@@ -1,13 +1,7 @@
 package com.ruoyi.alarm.stealAlarm.controller;
 
-import com.ruoyi.alarm.stealAlarm.service.IStealElecAlarmService;
 import com.ruoyi.common.annotation.Anonymous;
-import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.Date;
 
 /**
  * @ClassName ardAlarmStealElec
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 b8e6d9f..9c96fb2 100644
--- a/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
+++ b/ard-work/src/main/java/com/ruoyi/constant/CamPriority.java
@@ -15,7 +15,8 @@
     static {
         priorityMap.put("sys_radar_fire",999);//闆疯揪闃茬伀鎶ヨ
         priorityMap.put("sys_tube_leak",998);//绠$嚎娉勯湶鎶ヨ
-        priorityMap.put("sys_steal_elec",997);//鐩楃數鎶ヨ
+        priorityMap.put("sys_camera",997);//閫氱敤鍏夌數鎶ヨ
+        priorityMap.put("sys_steal_elec",996);//鐩楃數鎶ヨ
         priorityMap.put("sys_patrol_inspect",1);//宸℃
     }
 }
diff --git a/ard-work/src/main/resources/mapper/alarm/ArdAlarmCameraMapper.xml b/ard-work/src/main/resources/mapper/alarm/ArdAlarmCameraMapper.xml
new file mode 100644
index 0000000..9d29056
--- /dev/null
+++ b/ard-work/src/main/resources/mapper/alarm/ArdAlarmCameraMapper.xml
@@ -0,0 +1,157 @@
+<?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.cameraAlarm.mapper.ArdAlarmCameraMapper">
+    
+    <resultMap type="ArdAlarmCamera" id="ArdAlarmCameraResult">
+        <result property="id"    column="id"    />
+        <result property="cameraId"    column="camera_id"    />
+        <result property="cameraName"    column="camera_name"    />
+        <result property="cameraChannel"    column="camera_channel"    />
+        <result property="cameraType"    column="camera_type"    />
+        <result property="alarmType"    column="alarm_type"    />
+        <result property="alarmTime"    column="alarm_time"    />
+        <result property="longitude"    column="longitude"    />
+        <result property="latitude"    column="latitude"    />
+        <result property="ruleId"    column="rule_id"    />
+        <result property="picUrl"    column="pic_url"    />
+        <result property="recordUrl"    column="record_url"    />
+        <result property="viewTime"    column="view_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="userId"    column="user_id"    />
+        <result property="deptId"    column="dept_id"    />
+    </resultMap>
+
+    <sql id="selectArdAlarmCameraVo">
+        select id, camera_id, camera_name, camera_channel, camera_type, alarm_type, alarm_time, longitude, latitude, rule_id, pic_url, record_url, view_time, create_by, create_time, user_id, dept_id from ard_alarm_camera
+    </sql>
+
+    <select id="selectArdAlarmCameraList" parameterType="ArdAlarmCamera" resultMap="ArdAlarmCameraResult">
+        <include refid="selectArdAlarmCameraVo"/>
+        <where>  
+            <if test="cameraId != null  and cameraId != ''"> and camera_id = #{cameraId}</if>
+            <if test="cameraName != null  and cameraName != ''"> and camera_name like '%'||#{cameraName}||'%'</if>
+            <if test="cameraChannel != null "> and camera_channel = #{cameraChannel}</if>
+            <if test="cameraType != null  and cameraType != ''"> and camera_type = #{cameraType}</if>
+            <if test="alarmType != null  and alarmType != ''"> and alarm_type = #{alarmType}</if>
+            <if test="alarmTime != null "> and alarm_time = #{alarmTime}</if>
+            <if test="longitude != null "> and longitude = #{longitude}</if>
+            <if test="latitude != null "> and latitude = #{latitude}</if>
+            <if test="ruleId != null "> and rule_id = #{ruleId}</if>
+            <if test="picUrl != null  and picUrl != ''"> and pic_url = #{picUrl}</if>
+            <if test="recordUrl != null  and recordUrl != ''"> and record_url = #{recordUrl}</if>
+            <if test="viewTime != null "> and view_time = #{viewTime}</if>
+            <if test="userId != null  and userId != ''"> and user_id = #{userId}</if>
+            <if test="deptId != null "> and dept_id = #{deptId}</if>
+        </where>
+    </select>
+    
+    <select id="selectArdAlarmCameraById" parameterType="String" resultMap="ArdAlarmCameraResult">
+        <include refid="selectArdAlarmCameraVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertArdAlarmCamera" parameterType="ArdAlarmCamera">
+        insert into ard_alarm_camera
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="cameraId != null">camera_id,</if>
+            <if test="cameraName != null">camera_name,</if>
+            <if test="cameraChannel != null">camera_channel,</if>
+            <if test="cameraType != null">camera_type,</if>
+            <if test="alarmType != null">alarm_type,</if>
+            <if test="alarmTime != null">alarm_time,</if>
+            <if test="longitude != null">longitude,</if>
+            <if test="latitude != null">latitude,</if>
+            <if test="ruleId != null">rule_id,</if>
+            <if test="picUrl != null">pic_url,</if>
+            <if test="recordUrl != null">record_url,</if>
+            <if test="viewTime != null">view_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="userId != null">user_id,</if>
+            <if test="deptId != null">dept_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="cameraId != null">#{cameraId},</if>
+            <if test="cameraName != null">#{cameraName},</if>
+            <if test="cameraChannel != null">#{cameraChannel},</if>
+            <if test="cameraType != null">#{cameraType},</if>
+            <if test="alarmType != null">#{alarmType},</if>
+            <if test="alarmTime != null">#{alarmTime},</if>
+            <if test="longitude != null">#{longitude},</if>
+            <if test="latitude != null">#{latitude},</if>
+            <if test="ruleId != null">#{ruleId},</if>
+            <if test="picUrl != null">#{picUrl},</if>
+            <if test="recordUrl != null">#{recordUrl},</if>
+            <if test="viewTime != null">#{viewTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="userId != null">#{userId},</if>
+            <if test="deptId != null">#{deptId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateArdAlarmCamera" parameterType="ArdAlarmCamera">
+        update ard_alarm_camera
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="cameraId != null">camera_id = #{cameraId},</if>
+            <if test="cameraName != null">camera_name = #{cameraName},</if>
+            <if test="cameraChannel != null">camera_channel = #{cameraChannel},</if>
+            <if test="cameraType != null">camera_type = #{cameraType},</if>
+            <if test="alarmType != null">alarm_type = #{alarmType},</if>
+            <if test="alarmTime != null">alarm_time = #{alarmTime},</if>
+            <if test="longitude != null">longitude = #{longitude},</if>
+            <if test="latitude != null">latitude = #{latitude},</if>
+            <if test="ruleId != null">rule_id = #{ruleId},</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="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="deptId != null">dept_id = #{deptId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteArdAlarmCameraById" parameterType="String">
+        delete from ard_alarm_camera where id = #{id}
+    </delete>
+
+    <delete id="deleteArdAlarmCameraByIds" parameterType="String">
+        delete from ard_alarm_camera where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <select id="selectListAllByCommand" resultMap="ArdAlarmCameraResult">
+        SELECT T
+                   .*
+        FROM
+            (
+                SELECT
+                    aac.ID,
+                    aac.camera_id,
+                    aac.camera_name,
+                    aac.alarm_time,
+                    aac.longitude,
+                    aac.latitude,
+                    aac.record_url,
+                    ROW_NUMBER () OVER ( PARTITION BY aac.camera_id ORDER BY aac.alarm_time DESC ) AS rn,
+                        COUNT ( CASE WHEN aac.view_time IS NULL THEN 1 END ) OVER ( PARTITION BY aac.camera_id ) AS COUNT,
+		COUNT ( aac.alarm_time ) OVER ( PARTITION BY camera_id ) AS total
+                FROM
+                    ard_alarm_camera aac
+                WHERE
+                    aac.alarm_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE )
+                ORDER BY
+                    aac.alarm_time DESC
+            ) T
+        WHERE
+            T.rn = 1
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ard-work/src/main/resources/mapper/alarm/ArdAlarmTypeConfigMapper.xml b/ard-work/src/main/resources/mapper/alarm/ArdAlarmTypeConfigMapper.xml
new file mode 100644
index 0000000..3f4b4a1
--- /dev/null
+++ b/ard-work/src/main/resources/mapper/alarm/ArdAlarmTypeConfigMapper.xml
@@ -0,0 +1,78 @@
+<?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.config.mapper.ArdAlarmTypeConfigMapper">
+    
+    <resultMap type="ArdAlarmTypeConfig" id="ArdAlarmTypeConfigResult">
+        <result property="id"    column="id"    />
+        <result property="command"    column="command"    />
+        <result property="alarmType"    column="alarm_type"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="userId"    column="user_id"    />
+    </resultMap>
+
+    <sql id="selectArdAlarmTypeConfigVo">
+        select id, command, alarm_type, create_time, user_id from ard_alarm_type_user
+    </sql>
+
+    <select id="selectArdAlarmTypeConfigList" parameterType="ArdAlarmTypeConfig" resultMap="ArdAlarmTypeConfigResult">
+        <include refid="selectArdAlarmTypeConfigVo"/>
+        <where>  
+            <if test="alarmType != null  and alarmType != ''"> and alarm_type = #{alarmType}</if>
+            <if test="userId != null  and userId != ''"> and user_id = #{userId}</if>
+        </where>
+    </select>
+    
+    <select id="selectArdAlarmTypeConfigById" parameterType="String" resultMap="ArdAlarmTypeConfigResult">
+        <include refid="selectArdAlarmTypeConfigVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertArdAlarmTypeConfig" parameterType="ArdAlarmTypeConfig">
+        insert into ard_alarm_type_user
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="command != null">command,</if>
+            <if test="alarmType != null">alarm_type,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="userId != null">user_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="command != null">#{command},</if>
+            <if test="alarmType != null">#{alarmType},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="userId != null">#{userId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateArdAlarmTypeConfig" parameterType="ArdAlarmTypeConfig">
+        update ard_alarm_type_user
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="command != null">command = #{command},</if>
+            <if test="alarmType != null">alarm_type = #{alarmType},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="userId != null">user_id = #{userId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteArdAlarmTypeConfigById" parameterType="String">
+        delete from ard_alarm_type_user where id = #{id}
+    </delete>
+
+    <delete id="deleteArdAlarmTypeConfigByIds" parameterType="String">
+        delete from ard_alarm_type_user where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <delete id="deleteArdAlarmTypeConfigByCurrentUserId">
+        delete from ard_alarm_type_user where user_id=#{userId}
+    </delete>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3