‘liusuyi’
2023-07-10 55c5941807a52bd1eb4fc08803d2402dd72e60a6
增加门禁报警数据接收入库和引导就近光电
增加门禁报警业务功能
已添加6个文件
已修改4个文件
678 ■■■■■ 文件已修改
ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/controller/ArdAlarmAccessController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/domain/ArdAlarmAccess.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/mapper/ArdAlarmAccessMapper.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/service/IArdAlarmAccessService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/accessAlarm/service/impl/ArdAlarmAccessServiceImpl.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/QueueTaskExecutor.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/java/com/ruoyi/constant/CamPriority.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/alarm/ArdAlarmAccessMapper.xml 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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));
    }
}
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;
}
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);
}
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);
}
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);
    }
}
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());
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;
                    }
                }
            }
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);//巡检
    }
}
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 &lt;= #{alarmTime}
          and view_time is null
    </update>
</mapper>
ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
@@ -195,4 +195,5 @@
          and alarm_time &lt;= #{alarmTime}
          and view_time is null
    </update>
</mapper>