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