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 <= #{alarmTime} and view_time is null </update> </mapper> ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
@@ -195,4 +195,5 @@ and alarm_time <= #{alarmTime} and view_time is null </update> </mapper>