ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java
@@ -1,9 +1,12 @@ package com.ruoyi.alarm.globalAlarm.controller; import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmCondition; import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmData; import com.ruoyi.alarm.globalAlarm.service.IGlobalAlarmService; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.domain.AjaxResult; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; @@ -19,7 +22,7 @@ * @Version: 1.0 **/ @RestController @RequestMapping("/ardAlarmLog") @RequestMapping("/ardAlarm") @Api(tags = "æ¥è¦æ°æ®æ±æ»æ¥å£") @Anonymous public class GlobalAlarmController { @@ -27,10 +30,16 @@ @Resource IGlobalAlarmService globalAlarmService; @PostMapping("/selectAlarmLog") @PostMapping("/List") @ApiOperation(value = "æ¥è¦æ¥è¯¢æ¥å£",notes = "è¿éå å«äºæææ¥è¦ç±»åçæ°æ®") public List<Object> selectAlarmLog(@RequestBody GlobalAlarmCondition condition) { List<Object> result = globalAlarmService.selectAlarmLogs(condition); return result; public AjaxResult selectAlarmLog(@RequestBody GlobalAlarmCondition condition) { List<GlobalAlarmData> result = globalAlarmService.selectAlarmLogs(condition); return AjaxResult.success(result); } @PostMapping("/view") @ApiOperation(value = "æ¥çæ¥è¦æ¥å£",notes = "æå®æ¥çæä¸ªæ¥è¦æ°æ®") public AjaxResult viewAlarmLog(@RequestBody GlobalAlarmCondition condition) { Object result = globalAlarmService.updateAlarmViewTime(condition); return AjaxResult.success(result); } } ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GlobalAlarmCondition.java
@@ -1,10 +1,11 @@ package com.ruoyi.alarm.globalAlarm.domain; import com.fasterxml.jackson.annotation.JsonInclude; import com.ruoyi.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** @@ -20,4 +21,5 @@ private static final long serialVersionUID = 1L; @ApiModelProperty(value = "æ¥è¦ç±»å", name = "command", notes = "ç¨æ¥åºåæ¥è¦ç±»åçæ è®°", required = true) Integer command; String id; } ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/domain/GlobalAlarmData.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.ruoyi.alarm.globalAlarm.domain; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.experimental.Accessors; import java.util.Date; /** * @Description: å ¨å±æ¥è¦å®ä½ * @ClassName: GlobalAlarmData * @Author: åèä¹ * @Date: 2023å¹´06æ13æ¥13:20 * @Version: 1.0 **/ @Data @Accessors(chain = true) public class GlobalAlarmData { String id; String name; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date alarmTime; Double longitude; Double latitude; Double altitude; Integer count;//æªè¯»æ° Integer total;//æ»æ° } ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/GlobalAlarmServiceImpl.java
ÎļþÒÑɾ³ý ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/IGlobalAlarmService.java
@@ -1,18 +1,19 @@ package com.ruoyi.alarm.globalAlarm.service; import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmCondition; import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmData; import java.util.List; /** * @ClassName: globalAlarmService * @Description: * @Description: å ¨å±æ¥è¦å¤çä¸å¡æ¥å£ * @Author: Administrator * @Date: 2023å¹´03æ10æ¥ 11:02 * @Version: 1.0 **/ public interface IGlobalAlarmService { public List<Object> selectAlarmLogs(GlobalAlarmCondition condition); public List<GlobalAlarmData> selectAlarmLogs(GlobalAlarmCondition condition); Object updateAlarmViewTime(GlobalAlarmCondition condition); public void receiveAlarm(String topic,String message); } ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,130 @@ package com.ruoyi.alarm.globalAlarm.service.impl; import com.alibaba.fastjson2.JSONObject; import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmCondition; import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmData; import com.ruoyi.alarm.globalAlarm.service.IGlobalAlarmService; import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec; import com.ruoyi.alarm.stealAlarm.mapper.ArdAlarmStealelecMapper; import com.ruoyi.alarm.tubeAlarm.domain.ArdAlarmTube; import com.ruoyi.alarm.tubeAlarm.mapper.ArdAlarmTubeMapper; import com.ruoyi.alarm.tubeAlarm.service.IArdAlarmTubeService; import com.ruoyi.alarmpoints.tube.domain.ArdTubes; import com.ruoyi.alarmpoints.tube.domain.ArdTubesDetails; import com.ruoyi.alarmpoints.tube.mapper.ArdTubesDetailsMapper; import com.ruoyi.alarmpoints.tube.mapper.ArdTubesMapper; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.utils.tube.GeoPoint; import com.ruoyi.utils.tube.TubeTools; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.formula.functions.T; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; import static jdk.nashorn.internal.runtime.regexp.joni.Config.log; /** * @ClassName: globalAlarmServiceImpl * @Description: * @Author: Administrator * @Date: 2023å¹´03æ10æ¥ 11:03 * @Version: 1.0 **/ @Service @Slf4j(topic = "mqtt") public class GlobalAlarmServiceImpl implements IGlobalAlarmService { @Resource ArdAlarmStealelecMapper ardAlarmStealelecMapper; @Resource IArdAlarmTubeService ardAlarmTubeService; @Resource ArdTubesMapper ardTubesMapper; @Resource ArdTubesDetailsMapper ardTubesDetailsMapper; @Resource private ISysConfigService configService; @Override public List<GlobalAlarmData> selectAlarmLogs(GlobalAlarmCondition condition) { String refreshTime = configService.selectConfigByKey("refreshTime"); switch (condition.getCommand()) { case 1001: List<ArdAlarmStealelec> ardAlarmStealelecs = ardAlarmStealelecMapper.selectAllByCommandArdAlarmStealelecList(refreshTime); return ardAlarmStealelecs.stream() .map(ardAlarmStealelec -> { GlobalAlarmData globalAlarmData = new GlobalAlarmData() .setId(ardAlarmStealelec.getId()) .setName(ardAlarmStealelec.getDescribe()) .setAlarmTime(ardAlarmStealelec.getStartTime()) .setLongitude(ardAlarmStealelec.getLongitude()) .setLatitude(ardAlarmStealelec.getLatitude()) .setAltitude(ardAlarmStealelec.getAltitude()) .setCount(ardAlarmStealelec.getCount()) .setTotal(ardAlarmStealelec.getTotal()); return globalAlarmData; }) .collect(Collectors.toList()); default: return null; } } @Override public Object updateAlarmViewTime(GlobalAlarmCondition condition) { SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); switch (condition.getCommand()) { case 1001: String id = condition.getId(); ArdAlarmStealelec ardAlarmStealelec = ardAlarmStealelecMapper.selectByPrimaryKey(id); if(StringUtils.isNotNull(ardAlarmStealelec)) { String describe = ardAlarmStealelec.getDescribe(); String startTime = fmt.format(ardAlarmStealelec.getStartTime()); int i = ardAlarmStealelecMapper.updateViewTimeByDescribe(describe, startTime, DateUtils.getTime()); return ardAlarmStealelec; } default: return null; } } @Override @Async("alarmExecutor") public void receiveAlarm(String topic, String message) { switch (topic) { case "tube": ArdAlarmTube ardAlarmTube = JSONObject.parseObject(message, ArdAlarmTube.class); ardAlarmTube.setId(UUID.randomUUID().toString().replace("-", "")); ArdTubesDetails atd = new ArdTubesDetails(); atd.setReelNumber(ardAlarmTube.getTubeId()); List<ArdTubesDetails> ardTubesDetails = ardTubesDetailsMapper.selectArdTubesDetailsList(atd); if (ardTubesDetails.size() > 0) { String tubeId = ardTubesDetails.get(0).getTubeId(); ArdTubes ardTubes = ardTubesMapper.selectArdTubesById(tubeId); ardAlarmTube.setTubeName(ardTubes.getName()); ardAlarmTube.setColor(ardTubes.getColor()); ardAlarmTube.setPipeDiameter(ardTubes.getPipeDiameter()); ardAlarmTube.setTubeType(ardTubes.getType()); GeoPoint geoPoint = TubeTools.CalculateCoordinates(ardTubesDetails, ardAlarmTube.getPosition()); if (StringUtils.isNotNull(geoPoint)) { ardAlarmTube.setLongitude(geoPoint.getLongitude()); ardAlarmTube.setLatitude(geoPoint.getLatitude()); ardAlarmTube.setAltitude(geoPoint.getAltitude()); } } int i = ardAlarmTubeService.insertArdAlarmTube(ardAlarmTube); if (i > 0) { log.info("å ¥åºæåï¼" + ardAlarmTube.toString()); } break; } } } ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/controller/ardAlarmStealElecController.java
@@ -20,14 +20,5 @@ @Anonymous public class ardAlarmStealElecController { @Resource IStealElecAlarmService IStealElecAlarmService; @GetMapping("/updateViewState") String updateViewState() { String describe = "注é901çX2-10-3E7"; String currentTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); int i = IStealElecAlarmService.updateViewTimeByDescribe(describe, currentTime); return "æ´æ°æå" + i; } } ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/domain/ArdAlarmStealelec.java
@@ -1,5 +1,6 @@ package com.ruoyi.alarm.stealAlarm.domain; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; @@ -45,11 +46,13 @@ * æ¥è¦å¼å§æ¶é´ */ @Excel(name = "æ¥è¦å¼å§æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date startTime; /** * æ¥è¦ç»ææ¶é´ */ @Excel(name = "æ¥è¦ç»ææ¶é´") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; /** @@ -79,11 +82,16 @@ @Excel(name = "纬度") private double latitude; /** * é«å± */ @Excel(name = "é«å±") private double altitude; /** * æ¥è¦æ»æ° */ private String total; private Integer total; /** * æªè¯»æ¥è¦æ°é */ private String count; private Integer count; } ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java
@@ -3,6 +3,8 @@ import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmCondition; import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec; import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; @@ -11,5 +13,6 @@ ArdAlarmStealelec selectByPrimaryKey(String id); List<ArdAlarmStealelec> selectRealByCondition(@Param("refreshTime")String refreshTime,@Param("deptId")Long deptId); List<ArdAlarmStealelec> selectHistoryByCondition(GlobalAlarmCondition condition); int updateViewTimeByDescribe(@Param("describe")String describe,@Param("viewTime")String viewTime); List<ArdAlarmStealelec> selectAllByCommandArdAlarmStealelecList(@Param("refreshTime")String refreshTime); int updateViewTimeByDescribe(@Param("describe")String describe,@Param("alarmTime") String alarmTime,@Param("viewTime") String viewTime); } ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/service/IStealElecAlarmService.java
@@ -2,6 +2,7 @@ import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec; import java.util.Date; import java.util.List; @@ -15,5 +16,5 @@ public interface IStealElecAlarmService { void getAlarmByApi(); List<ArdAlarmStealelec> getRealAlarm(Long deptId); int updateViewTimeByDescribe(String describe,String DirectLE); int updateViewTimeByDescribe(String describe, String alarmTime, String viewTime); } ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/service/impl/IStealElecAlarmServiceImpl.java
@@ -121,7 +121,7 @@ * @ä¿®æ¹äººåå ¶å®ä¿¡æ¯ */ @Override public int updateViewTimeByDescribe(String describe, String viewTime) { return ardAlarmStealelecMapper.updateViewTimeByDescribe(describe, viewTime); public int updateViewTimeByDescribe(String describe, String alarmTime,String viewTime) { return ardAlarmStealelecMapper.updateViewTimeByDescribe(describe,alarmTime, viewTime); } } ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/service/impl/ArdAlarmTubeServiceImpl.java
@@ -4,9 +4,8 @@ import com.ruoyi.alarm.tubeAlarm.mapper.ArdAlarmTubeMapper; import com.ruoyi.alarm.tubeAlarm.service.IArdAlarmTubeService; import com.ruoyi.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; @@ -18,7 +17,7 @@ */ @Service public class ArdAlarmTubeServiceImpl implements IArdAlarmTubeService { @Autowired @Resource private ArdAlarmTubeMapper ardAlarmTubeMapper; /** ard-work/src/main/java/com/ruoyi/device/camera/domain/ArdCameras.java
@@ -152,10 +152,18 @@ */ @Excel(name = "è§åºè§") private Double camFov; /** * æå¤§å¯è§è·ç¦» */ @Excel(name = "æå¤§å¯è§è·ç¦»") private String camMaxVisibleDistance; /** * æå±å¡ID */ private String towerId; /** * ç»å½ID */ ard-work/src/main/java/com/ruoyi/device/hiksdk/controller/SdkController.java
@@ -94,7 +94,7 @@ public @ResponseBody AjaxResult PTZControlWithSpeed(@RequestBody CameraCmd cmd) { cmd.setOperator(SecurityUtils.getUserId()); return toAjax(sdk.PTZControlWithSpeed(cmd)); return toAjax(sdk.pTZControlWithSpeed(cmd)); } ard-work/src/main/java/com/ruoyi/device/hiksdk/service/IHikClientService.java
@@ -29,7 +29,7 @@ boolean isOnLine(CameraCmd cmd); //äºå°æ§å¶ boolean PTZControlWithSpeed(CameraCmd cmd); boolean pTZControlWithSpeed(CameraCmd cmd); //设置èç¦å¼ boolean setFocusPos(CameraCmd cmd); ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -267,7 +267,7 @@ */ @Override @SdkOperate public boolean PTZControlWithSpeed(CameraCmd cmd) { public boolean pTZControlWithSpeed(CameraCmd cmd) { String cameraId = cmd.getCameraId(); boolean enable = cmd.isEnable(); Integer channelNum = cmd.getChannelNum(); ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java
@@ -1,6 +1,6 @@ package com.ruoyi.utils.mqtt; import com.ruoyi.alarm.globalAlarm.service.GlobalAlarmServiceImpl; import com.ruoyi.alarm.globalAlarm.service.impl.GlobalAlarmServiceImpl; import com.ruoyi.common.utils.spring.SpringUtils; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.*; ard-work/src/main/java/com/ruoyi/utils/tube/TubeTools.java
@@ -2,6 +2,9 @@ import com.ruoyi.alarmpoints.tube.domain.ArdTubesDetails; import lombok.extern.slf4j.Slf4j; import org.gavaghan.geodesy.Ellipsoid; import org.gavaghan.geodesy.GeodeticCalculator; import org.gavaghan.geodesy.GlobalCoordinates; import org.springframework.stereotype.Service; import java.util.Collections; import java.util.Comparator; @@ -20,22 +23,22 @@ public class TubeTools { public static void main(String[] args) { // å设ç»å®çä¸ä¸ªåæ ç¹ AãBãC double x1 = 124.939903268; double y1 = 46.684520056; double x2 = 124.94049634327537; double y2 = 46.68442539350505; double x3 = 124.940552075; double y3 = 46.684416498; GeoPoint pointA = new GeoPoint(124.939903268, 46.684520056, 143.3 - 0.73); GeoPoint pointB = new GeoPoint(124.94034787826001, 46.68444909044429, 144.12232823014708); GeoPoint pointC = new GeoPoint(124.940552075, 46.684416498, 144.5 - 0.81); double distance = getDistance(x1, y1, x3, y3); log.debug("æ»è·ç¦»:" + distance); double distance1 = getDistance(x1, y1, x2, y2); log.debug("è·ç¦»èµ·ç¹è·ç¦»:" + distance1); double distance2 = getDistance(x2, y2, x3, y3); log.debug("è·ç¦»ç»ç¹è·ç¦»:" + distance2); double distance = getDistance(pointA, pointC); double diffAC = pointA.getAltitude() - pointC.getAltitude(); log.info("ACæ»è·ç¦»:" + distance + " ACé«åº¦å·®ï¼" + diffAC); double distance1 = getDistance(pointA, pointB); double diffAB = pointA.getAltitude() - pointB.getAltitude(); log.info("ABè·ç¦»:" + distance1 + " ABé«åº¦å·®ï¼" + diffAB); double distance2 = getDistance(pointB, pointC); double diffBC = pointB.getAltitude() - pointC.getAltitude(); log.info("BCè·ç¦»:" + distance2 + " BCé«åº¦å·®ï¼" + diffBC); // è®¡ç®æç double slope1 = (y2 - y1) / (x2 - x1); double slope2 = (y3 - y2) / (x3 - x2); double slope1 = (pointB.getLatitude() - pointA.getLatitude()) / (pointB.getLongitude() - pointA.getLongitude()); double slope2 = (pointC.getLatitude() - pointB.getLatitude()) / (pointC.getLongitude() - pointB.getLongitude()); // 设置æçå·®å¼çéå¼ double threshold = 0.000001; @@ -57,21 +60,19 @@ * @ä¿®æ¹äººåå ¶å®ä¿¡æ¯ */ public static GeoPoint CalculateCoordinates(List<ArdTubesDetails> ardTubesDetails, Integer alarmPointDistance) { try { Comparator<ArdTubesDetails> comparator = Comparator.comparingInt(person -> Integer.parseInt(person.getInflectionPointNumber())); // 使ç¨Collections.sortæ¹æ³è¿è¡æåº Collections.sort(ardTubesDetails, comparator); double x = ardTubesDetails.get(0).getLongitude(); double y = ardTubesDetails.get(0).getLatitude(); GeoPoint point0 = new GeoPoint(ardTubesDetails.get(0).getLongitude(), ardTubesDetails.get(0).getLatitude(), ardTubesDetails.get(0).getAltitude() - ardTubesDetails.get(0).getDepth()); TreeMap<Integer, Double> distanceMap = new TreeMap<>(); TreeMap<Integer, Object> tubeMap = new TreeMap<>(); double distance = 0.0; for (ArdTubesDetails atd : ardTubesDetails) { distance += getDistance(x, y, atd.getLongitude(), atd.getLatitude()); GeoPoint point = new GeoPoint(atd.getLongitude(), atd.getLatitude(), atd.getAltitude() - atd.getDepth()); distance += getDistance(point, point0); distanceMap.put(Integer.parseInt(atd.getInflectionPointNumber()), distance); tubeMap.put(Integer.parseInt(atd.getInflectionPointNumber()), atd); x = atd.getLongitude(); y = atd.getLatitude(); point0 = point; } Integer num = 0; double tempDistance = 0.0; @@ -184,35 +185,19 @@ return angle; } private static final double EARTH_RADIUS = 6378.137; // 6378.137为å°çåå¾(åä½:åç±³) /** * æ ¹æ®ç»çº¬åº¦ï¼è®¡ç®ä¸¤ç¹é´çè·ç¦» * * @param longitude1 第ä¸ä¸ªç¹çç»åº¦ * @param latitude1 第ä¸ä¸ªç¹ç纬度 * @param longitude2 第äºä¸ªç¹çç»åº¦ * @param latitude2 第äºä¸ªç¹ç纬度 * @return è¿åè·ç¦» åä½åç±³ * @param GeoPoint pa 第ä¸ä¸ªç¹ * @param GeoPoint pb 第äºä¸ªç¹ * @return è¿åè·ç¦» åä½ç±³ */ private static double getDistance(double longitude1, double latitude1, double longitude2, double latitude2) { // 纬度 double lat1 = Math.toRadians(latitude1); double lat2 = Math.toRadians(latitude2); // ç»åº¦ double lng1 = Math.toRadians(longitude1); double lng2 = Math.toRadians(longitude2); // 纬度ä¹å·® double a = lat1 - lat2; // ç»åº¦ä¹å·® double b = lng1 - lng2; // 计ç®ä¸¤ç¹è·ç¦»çå ¬å¼ double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2))); // å¼§é¿ä¹å°çåå¾, è¿ååä½: åç±³ s = s * EARTH_RADIUS; //System.out.println("è·ç¦»"+s); return s * 1000; public static GeodeticCalculator geodeticCalculator = new GeodeticCalculator(); public static double getDistance(GeoPoint pa, GeoPoint pb) { GlobalCoordinates source = new GlobalCoordinates(pa.getLatitude(), pa.getLongitude()); GlobalCoordinates target = new GlobalCoordinates(pb.getLatitude(), pb.getLongitude()); double distance = geodeticCalculator.calculateGeodeticCurve(Ellipsoid.WGS84, source, target).getEllipsoidalDistance(); double res = Math.sqrt(Math.pow(pa.getAltitude() - pb.getAltitude(), 2) + Math.pow(distance, 2)); return res; } } ard-work/src/main/resources/mapper/device/ArdCamerasMapper.xml
@@ -30,6 +30,7 @@ <result property="loginId" column="login_id"/> <result property="operatorId" column="operator_id"/> <result property="operatorExpired" column="operator_expired"/> <result property="camMaxVisibleDistance" column="cam_max_visible_distance" /> </resultMap> <sql id="selectArdCamerasVo"> @@ -56,7 +57,8 @@ c.cam_depth, c.cam_fov, c.operator_id, c.operator_expired c.operator_expired, c.cam_max_visible_distance from ard_cameras c left join sys_dept d on d.dept_id = c.dept_id left join sys_user u on u.user_id = c.user_id @@ -89,6 +91,7 @@ <if test="camAspectratio != null ">and c.cam_aspectratio = #{camAspectratio}</if> <if test="camDepth != null ">and c.cam_depth = #{camDepth}</if> <if test="camFov != null ">and c.cam_fov = #{camFov}</if> <if test="camMaxVisibleDistance != null ">and c.cam_max_visible_distance = #{camMaxVisibleDistance}</if> <if test="loginId != null ">and c.login_id = #{loginId}</if> <!-- æ°æ®èå´è¿æ»¤ --> ${params.dataScope} @@ -121,6 +124,7 @@ <if test="camAspectratio != null ">and c.cam_aspectratio = #{camAspectratio}</if> <if test="camDepth != null ">and c.cam_depth = #{camDepth}</if> <if test="camFov != null ">and c.cam_fov = #{camFov}</if> <if test="camMaxVisibleDistance != null ">and c.cam_max_visible_distance = #{camMaxVisibleDistance}</if> <if test="loginId != null ">and c.login_id = #{loginId}</if> </where> </select> @@ -152,6 +156,7 @@ <if test="camAspectratio != null">cam_aspectratio,</if> <if test="camDepth != null">cam_depth,</if> <if test="camFov != null">cam_fov,</if> <if test="camMaxVisibleDistance != null ">cam_max_visible_distance,</if> <if test="loginId != null">login_id,</if> <if test="deptId != null">dept_id,</if> <if test="userId != null">user_id,</if> @@ -181,6 +186,7 @@ <if test="camAspectratio != null">#{camAspectratio},</if> <if test="camDepth != null">#{camDepth},</if> <if test="camFov != null">#{camFov},</if> <if test="camMaxVisibleDistance != null ">#{camMaxVisibleDistance},</if> <if test="loginId != null">#{loginId},</if> <if test="deptId != null">#{deptId},</if> <if test="userId != null">#{userId},</if> @@ -213,6 +219,7 @@ <if test="camAspectratio != null">cam_aspectratio = #{camAspectratio},</if> <if test="camDepth != null">cam_depth = #{camDepth},</if> <if test="camFov != null">cam_fov = #{camFov},</if> <if test="camMaxVisibleDistance != null ">cam_max_visible_distance = #{camMaxVisibleDistance},</if> <if test="loginId != null">login_id = #{loginId},</if> <if test="deptId != null">dept_id = #{deptId},</if> <if test="userId != null">user_id = #{userId},</if> ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml
@@ -40,6 +40,24 @@ </if> </where> </select> <select id="selectAllByCommandArdAlarmStealelecList" resultMap="BaseResultMap"> SELECT T.* FROM ( SELECT aas.ID, aas.DESCRIBE, aas.start_time, aas.longitude, aas.latitude, aas.altitude, ROW_NUMBER() OVER ( PARTITION BY aas.DESCRIBE ORDER BY aas.start_time DESC ) AS rn, COUNT(CASE WHEN aas.view_time IS NULL THEN 1 END) OVER ( PARTITION BY aas.DESCRIBE ) AS COUNT, COUNT ( aas.start_time ) OVER ( PARTITION BY DESCRIBE ) AS total FROM ard_alarm_stealelec aas WHERE aas.start_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE ) ) T WHERE T.rn = 1 </select> <select id="selectRealByCondition" resultMap="BaseResultMap"> SELECT aas.*, A.COUNT, A.total FROM ( @@ -61,10 +79,11 @@ LEFT JOIN ard_alarm_stealelec aas ON A.ID = aas.ID ORDER BY aas.start_time DESC LIMIT 50 </select> <update id="updateViewTimeByDescribe" parameterType="java.lang.String"> <update id="updateViewTimeByDescribe" parameterType="String"> update ard_alarm_stealelec set view_time=#{viewTime} where describe = #{describe} and start_time<=#{alarmTime} and view_time is null </update> <insert id="insert" parameterType="ArdAlarmStealelec">