From a9be2e0bfbd8e716207fc467e2699d9caec76a7c Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期三, 07 十二月 2022 17:44:38 +0800
Subject: [PATCH] feat: 实时视频Api fix: 事件Api 视频点位api 视频巡查api
---
ycl-platform/src/main/java/com/ycl/controller/cockpit/enforcementEvents/EnforcementEventsController.java | 22 +-
ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java | 1
ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/AIIotVO.java | 21 --
ycl-platform/src/main/java/com/ycl/service/caseHandler/IBaseCaseService.java | 18 +
ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/VideoVO.java | 26 ++
ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml | 78 ++++++-
ycl-platform/src/main/java/com/ycl/util/VideoUtil.java | 99 +++++++++++
ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java | 96 +---------
ycl-platform/src/main/java/com/ycl/vo/cockpit/enforcementEvents/EnforcementEventsVO.java | 21 --
ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java | 42 ++--
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java | 31 +++
ycl-platform/src/main/java/com/ycl/mapper/caseHandler/BaseCaseMapper.java | 12 +
ycl-platform/src/main/java/com/ycl/vo/cockpit/enforcementEvents/EventVO.java | 20 ++
13 files changed, 309 insertions(+), 178 deletions(-)
diff --git a/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java b/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java
index 1393455..05d97ea 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/cockpit/aiIot/AIIotController.java
@@ -1,16 +1,18 @@
package com.ycl.controller.cockpit.aiIot;
import com.ycl.api.CommonResult;
+import com.ycl.service.video.impl.IVideoPointService;
import com.ycl.util.CheckApiUtil;
+import com.ycl.util.VideoUtil;
import com.ycl.vo.cockpit.CockpitVO;
import com.ycl.vo.cockpit.aiIot.AIIotVO;
+import com.ycl.vo.cockpit.aiIot.VideoVO;
import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@@ -18,6 +20,7 @@
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
/**
* @author Lyq
@@ -31,6 +34,11 @@
@Resource
private CheckApiUtil checkApiUtil;
+
+ @Autowired
+ private IVideoPointService iVideoPointService;
+ @Autowired
+ private VideoUtil videoUtil;
@ApiOperation(value = "鐩戞祴鏁版嵁")
@GetMapping("/detection")
@@ -47,23 +55,19 @@
@ApiOperation(value = "瀹炴椂瑙嗛鐩戞帶")
@GetMapping("/video")
- public CommonResult<List<AIIotVO.VideoVO>> video(@Validated CockpitVO params) {
- checkApiUtil.cockpit(params);
- List<AIIotVO.VideoVO> videoVOS = new ArrayList<>();
- AIIotVO.VideoVO a = null;
- for (int i = 0; i < 4; i++) {
- a = new AIIotVO.VideoVO();
- a.setLongitude("32.11");
- a.setLatitude("106.111");
- a.setName("璁惧涓�");
- a.setResourceId("012");
- a.setBrand("澶у崕");
- a.setModel("鐞冩満");
- a.setIp("10.23.14.2");
- a.setUrl("http://10.23.14.2:12001");
- videoVOS.add(a);
- }
- return CommonResult.success(videoVOS);
+ public CommonResult video(@Validated CockpitVO params) {
+ //checkApiUtil.cockpit(params);
+ return CommonResult.success(iVideoPointService.list().stream().map(item -> {
+ VideoVO videoVO = new VideoVO();
+ videoVO.setName(item.getName());
+ videoVO.setBrand(item.getEquipmentBrand());
+ videoVO.setModel(item.getEquipmentModel());
+ videoVO.setIp(item.getEquipmentIp());
+ videoVO.setLatitude(item.getLatitude().toString());
+ videoVO.setLongitude(item.getLongitude().toString());
+ videoVO.setUrl(videoUtil.getVideo(item.getPlatResourceId(), "HLS", 0));
+ return videoVO;
+ }).collect(Collectors.toList()));
}
@ApiOperation(value = "AI绠楁硶鏁堣兘")
diff --git a/ycl-platform/src/main/java/com/ycl/controller/cockpit/enforcementEvents/EnforcementEventsController.java b/ycl-platform/src/main/java/com/ycl/controller/cockpit/enforcementEvents/EnforcementEventsController.java
index dd28236..4d17945 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/cockpit/enforcementEvents/EnforcementEventsController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/cockpit/enforcementEvents/EnforcementEventsController.java
@@ -1,11 +1,13 @@
package com.ycl.controller.cockpit.enforcementEvents;
import com.ycl.api.CommonResult;
+import com.ycl.service.caseHandler.IBaseCaseService;
import com.ycl.util.CheckApiUtil;
import com.ycl.vo.cockpit.CockpitVO;
import com.ycl.vo.cockpit.enforcementEvents.EnforcementEventsVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -30,6 +32,9 @@
public class EnforcementEventsController {
@Resource
private CheckApiUtil checkApiUtil;
+
+ @Autowired
+ IBaseCaseService iBaseCaseService;
@ApiOperation(value = "鎵ф硶浜嬩欢缁熻")
@GetMapping("/statistics")
@@ -137,18 +142,11 @@
public CommonResult<EnforcementEventsVO.InfoVO> info(@Validated CockpitVO params) {
checkApiUtil.cockpit(params);
EnforcementEventsVO.InfoVO infoVO = new EnforcementEventsVO.InfoVO();
- EnforcementEventsVO.EventVO eventVO = new EnforcementEventsVO.EventVO();
- infoVO.setToday(5);
- infoVO.setWeek(10);
- infoVO.setDispatch(20);
- infoVO.setIdentification(20);
- eventVO.setDescription("浜嬩欢鎻忚堪");
- eventVO.setAddress("浜嬪彂鍦板潃");
- eventVO.setAlarmTime("2022-10-15 16:12:13");
- eventVO.setPoint("1鍙风偣浣�");
- eventVO.setPicture("http://12.2.23.4/xx.png");
- eventVO.setSource("AI璇嗗埆");
- infoVO.setEvent(eventVO);
+ infoVO.setToday(iBaseCaseService.dayCount());
+ infoVO.setWeek(iBaseCaseService.weekCount());
+ infoVO.setDispatch(iBaseCaseService.dispatchCount());
+ infoVO.setIdentification(iBaseCaseService.alCount());
+ infoVO.setEvent(iBaseCaseService.selectEventList(params.getBeginTime(),params.getEndTime()));
return CommonResult.success(infoVO);
}
diff --git a/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java b/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java
index a583190..dadc1fb 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java
@@ -1,29 +1,17 @@
package com.ycl.controller.platformApi;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.ycl.api.CommonResult;
-import com.ycl.dto.v1.Req.FirstReq;
-import com.ycl.dto.v1.Req.SecondReq;
-import com.ycl.dto.v1.Res.FirstRes;
import com.ycl.dto.video.AlarmParam;
import com.ycl.enums.common.ResultCode;
import com.ycl.service.video.IVideoAlarmReportService;
-import com.ycl.utils.MD5Util;
+import com.ycl.util.VideoUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.*;
-import org.springframework.http.client.ClientHttpResponse;
-import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import org.springframework.web.client.DefaultResponseErrorHandler;
-import org.springframework.web.client.RestTemplate;
-
-import java.net.URI;
/**
* @author admin
@@ -33,19 +21,11 @@
@RequestMapping("/API")
public class AlarmController {
- @Value("${videoPoint.url}")
- private String url;
-
- @Value("${videoPoint.userName}")
- private String userName;
-
- @Value("${videoPoint.passWord}")
- private String passWord;
-
- @Value("${videoPoint.ip}")
- private String ip;
private IVideoAlarmReportService videoAlarmReportService;
+
+ @Autowired
+ private VideoUtil videoUtil;
@Autowired
public void setVideoAlarmReportService(IVideoAlarmReportService videoAlarmReportService) {
@@ -59,77 +39,19 @@
return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage());
}
- @GetMapping("/Video/{code}/{subType}")
+ @GetMapping("/video")
@ApiOperation(value = "璁惧鑾峰彇鐩戞帶鍦板潃")
@SneakyThrows
- public CommonResult getMonitorAddress(@PathVariable String code, @PathVariable Integer subType,
+ public CommonResult getMonitorAddress(@RequestParam String code,
+ @RequestParam(required = false) Integer subType,
@RequestParam(required = false) String scheme) {
- String clientType = "winpc";
- String reqUrl = "/videoService/accounts/authorize";
- String deviceUrl = "/videoService/devicesManager/devices";
if (subType == null) {
subType = 1;
}
- if (!StringUtils.isNotBlank(scheme)) {
+ if (StringUtils.isBlank(scheme)) {
scheme = "RTSP";
}
- String monitorUrl = "/videoService/realmonitor/uri?subType=" + subType + "&scheme=" + scheme + "&channelId=";
-
- RestTemplate restTemplate = new RestTemplate();
- restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
- @Override
- public boolean hasError(HttpStatus status) {
- return super.hasError(status);
- }
-
- @Override
- public void handleError(URI url, HttpMethod method, ClientHttpResponse response) {
-
- }
- });
- SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
- simpleClientHttpRequestFactory.setOutputStreaming(false);
- restTemplate.setRequestFactory(simpleClientHttpRequestFactory);
-
- //璇锋眰澶�
- HttpHeaders httpHeaders = new HttpHeaders();
- httpHeaders.setContentType(MediaType.APPLICATION_JSON);
-
- //绗竴娆℃潈闄愯姹備綋
- FirstReq firstReq = new FirstReq();
- firstReq.setIpAddress(ip);
- firstReq.setUserName(userName);
- firstReq.setClientType(clientType);
- ObjectMapper objectMapper = new ObjectMapper();
-
- HttpEntity<String> firstEntity = new HttpEntity<>(objectMapper.writeValueAsString(firstReq), httpHeaders);
- ResponseEntity<String> responseEntity = restTemplate.postForEntity(url + reqUrl, firstEntity, String.class);
-
- FirstRes firstRes = objectMapper.readValue(responseEntity.getBody(), FirstRes.class);
-
- String signature = MD5Util.md5Encrypt(passWord);
- signature = MD5Util.md5Encrypt(userName + signature);
- signature = MD5Util.md5Encrypt(signature);
- signature = MD5Util.md5Encrypt(userName + ":" + firstRes.getRealm() + ":" + signature);
- signature = MD5Util.md5Encrypt(signature + ":" + firstRes.getRandomKey());
-
- SecondReq secondReq = new SecondReq();
- secondReq.setIpAddress(ip);
- secondReq.setEncryptType(firstRes.getEncryptType());
- secondReq.setSignature(signature);
- secondReq.setRandomKey(firstRes.getRandomKey());
- secondReq.setClientType(clientType);
- secondReq.setUserName(userName);
-
- HttpEntity<String> secondEntity = new HttpEntity<>(objectMapper.writeValueAsString(secondReq), httpHeaders);
- ResponseEntity<String> secondResEntity = restTemplate.postForEntity(url + reqUrl, secondEntity, String.class);
- HttpHeaders deviceHeaders = new HttpHeaders();
- deviceHeaders.add("X-Subject-Token", objectMapper.readTree(secondResEntity.getBody()).get("token").textValue());
- HttpEntity<Object> deviceEntity = new HttpEntity<>(deviceHeaders);
- ResponseEntity<String> exchange = restTemplate.exchange(url + deviceUrl + "/" + code, HttpMethod.GET, deviceEntity, String.class);
- String channelId = objectMapper.readTree(objectMapper.readTree(objectMapper.readTree(exchange.getBody()).get("encoderUnit").toString()).get("channels").get(0).toString()).get("channelId").textValue();
- ResponseEntity<String> monitorReq = restTemplate.exchange(url + monitorUrl + channelId, HttpMethod.GET, deviceEntity, String.class);
- return CommonResult.successApi(objectMapper.readTree(monitorReq.getBody()).get("url"));
+ return CommonResult.successApi(videoUtil.getVideo(code, scheme, subType));
}
}
\ No newline at end of file
diff --git a/ycl-platform/src/main/java/com/ycl/mapper/caseHandler/BaseCaseMapper.java b/ycl-platform/src/main/java/com/ycl/mapper/caseHandler/BaseCaseMapper.java
index b632ddc..55d88db 100644
--- a/ycl-platform/src/main/java/com/ycl/mapper/caseHandler/BaseCaseMapper.java
+++ b/ycl-platform/src/main/java/com/ycl/mapper/caseHandler/BaseCaseMapper.java
@@ -10,6 +10,8 @@
import com.ycl.vo.casePool.CasePoolIllegalBuildingVO;
import com.ycl.vo.casePool.CasePoolViolationVO;
import com.ycl.vo.casePool.QueryForViolationVO;
+import com.ycl.vo.cockpit.enforcementEvents.EnforcementEventsVO;
+import com.ycl.vo.cockpit.enforcementEvents.EventVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -37,4 +39,14 @@
List<QueryForViolationVO> selectViolationPage(QueryForViolationParam queryForViolationParam);
Page<BaseCaseVO> selectVideoInspection(Page<Object> objectPage);
+
+ Integer dayCount();
+
+ Integer weekCount();
+
+ Integer dispatchCount();
+
+ List<EventVO> selectEventList(String beginTime, String endTime);
+
+ Integer alCount();
}
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/IBaseCaseService.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/IBaseCaseService.java
index eabbc0d..027167c 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/IBaseCaseService.java
+++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/IBaseCaseService.java
@@ -9,6 +9,7 @@
import com.ycl.entity.caseHandler.BaseCaseDetail;
import com.ycl.vo.casePool.BaseCaseVO;
import com.ycl.vo.casePool.QueryForViolationVO;
+import com.ycl.vo.cockpit.enforcementEvents.EventVO;
import java.util.ArrayList;
import java.util.List;
@@ -37,9 +38,10 @@
Page listIllegalBuilding(Page page, Integer state, Integer resource);
- Boolean saveViolationCase(ViolationParam violationParam,Long id);
+ Boolean saveViolationCase(ViolationParam violationParam, Long id);
Boolean saveIllegalBuildingCase(IllegalBuildingParam illegalBuildingParam, Long id);
+
/**
* 鍚屾妗堜欢杩涘害
*
@@ -54,7 +56,7 @@
ArrayList<String> listCaseImages(Integer id, Integer type);
- void endCase(Long caseId, String result,String opinion);
+ void endCase(Long caseId, String result, String opinion);
Page<BaseCase> selectPage(Page<BaseCase> setSize, String number, Integer streetId, Integer categories, String startTime, String endTime, String site);
@@ -64,7 +66,17 @@
Page<BaseCaseVO> selectVideoInspection(Integer current);
- Map<String,Object> selectCount();
+ Map<String, Object> selectCount();
Boolean updateCase(ViolationParam violationParam);
+
+ Integer dayCount();
+
+ Integer weekCount();
+
+ Integer dispatchCount();
+
+ Integer alCount();
+
+ List<EventVO> selectEventList(String beginTime, String endTime);
}
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
index d52648f..24cce4a 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
@@ -31,6 +31,8 @@
import com.ycl.service.caseHandler.IViolationsService;
import com.ycl.service.video.IVideoAlarmReportService;
import com.ycl.vo.casePool.*;
+import com.ycl.vo.cockpit.enforcementEvents.EnforcementEventsVO;
+import com.ycl.vo.cockpit.enforcementEvents.EventVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -414,7 +416,11 @@
public Map<String, Object> selectCount() {
HashMap<String, Object> map = new HashMap<>();
Long review = baseCaseMapper.selectCount(new LambdaQueryWrapper<BaseCase>().eq(BaseCase::getState, 1));
+ Long register = baseCaseMapper.selectCount(new LambdaQueryWrapper<BaseCase>().in(BaseCase::getState, 2,6));
+ Long study = baseCaseMapper.selectCount(new LambdaQueryWrapper<BaseCase>().eq(BaseCase::getState, 3));
map.put("review", review);
+ map.put("register",register);
+ map.put("study",study);
return map;
}
@@ -442,4 +448,29 @@
}
return violationsMapper.insert(violations) == 1 ? true : false;
}
+
+ @Override
+ public Integer dayCount() {
+ return baseCaseMapper.dayCount();
+ }
+
+ @Override
+ public Integer weekCount() {
+ return baseCaseMapper.weekCount();
+ }
+
+ @Override
+ public Integer dispatchCount() {
+ return baseCaseMapper.dispatchCount();
+ }
+
+ @Override
+ public Integer alCount() {
+ return baseCaseMapper.alCount();
+ }
+
+ @Override
+ public List<EventVO> selectEventList(String beginTime, String endTime) {
+ return baseCaseMapper.selectEventList(beginTime,endTime);
+ }
}
\ No newline at end of file
diff --git a/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java b/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java
new file mode 100644
index 0000000..00fdbb1
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java
@@ -0,0 +1,99 @@
+package com.ycl.util;
+
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ycl.api.CommonResult;
+import com.ycl.dto.v1.Req.FirstReq;
+import com.ycl.dto.v1.Req.SecondReq;
+import com.ycl.dto.v1.Res.FirstRes;
+import com.ycl.utils.MD5Util;
+import lombok.SneakyThrows;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.*;
+import org.springframework.http.client.ClientHttpResponse;
+import org.springframework.http.client.SimpleClientHttpRequestFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.DefaultResponseErrorHandler;
+import org.springframework.web.client.RestTemplate;
+
+import java.net.URI;
+
+@Component
+public class VideoUtil {
+
+ @Value("${videoPoint.url}")
+ private String url;
+
+ @Value("${videoPoint.userName}")
+ private String userName;
+
+ @Value("${videoPoint.passWord}")
+ private String passWord;
+
+ @Value("${videoPoint.ip}")
+ private String ip;
+
+ @SneakyThrows
+ public String getVideo(String code, String scheme,Integer subType) {
+ String clientType = "winpc";
+ String reqUrl = "/videoService/accounts/authorize";
+ String deviceUrl = "/videoService/devicesManager/devices";
+ String monitorUrl = "/videoService/realmonitor/uri?subType=" + subType + "&scheme=" + scheme + "&channelId=";
+
+ RestTemplate restTemplate = new RestTemplate();
+ restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
+ @Override
+ public boolean hasError(HttpStatus status) {
+ return super.hasError(status);
+ }
+
+ @Override
+ public void handleError(URI url, HttpMethod method, ClientHttpResponse response) {
+
+ }
+ });
+ SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
+ simpleClientHttpRequestFactory.setOutputStreaming(false);
+ restTemplate.setRequestFactory(simpleClientHttpRequestFactory);
+
+ //璇锋眰澶�
+ HttpHeaders httpHeaders = new HttpHeaders();
+ httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+
+ //绗竴娆℃潈闄愯姹備綋
+ FirstReq firstReq = new FirstReq();
+ firstReq.setIpAddress(ip);
+ firstReq.setUserName(userName);
+ firstReq.setClientType(clientType);
+ ObjectMapper objectMapper = new ObjectMapper();
+
+ HttpEntity<String> firstEntity = new HttpEntity<>(objectMapper.writeValueAsString(firstReq), httpHeaders);
+ ResponseEntity<String> responseEntity = restTemplate.postForEntity(url + reqUrl, firstEntity, String.class);
+
+ FirstRes firstRes = objectMapper.readValue(responseEntity.getBody(), FirstRes.class);
+
+ String signature = MD5Util.md5Encrypt(passWord);
+ signature = MD5Util.md5Encrypt(userName + signature);
+ signature = MD5Util.md5Encrypt(signature);
+ signature = MD5Util.md5Encrypt(userName + ":" + firstRes.getRealm() + ":" + signature);
+ signature = MD5Util.md5Encrypt(signature + ":" + firstRes.getRandomKey());
+
+ SecondReq secondReq = new SecondReq();
+ secondReq.setIpAddress(ip);
+ secondReq.setEncryptType(firstRes.getEncryptType());
+ secondReq.setSignature(signature);
+ secondReq.setRandomKey(firstRes.getRandomKey());
+ secondReq.setClientType(clientType);
+ secondReq.setUserName(userName);
+
+ HttpEntity<String> secondEntity = new HttpEntity<>(objectMapper.writeValueAsString(secondReq), httpHeaders);
+ ResponseEntity<String> secondResEntity = restTemplate.postForEntity(url + reqUrl, secondEntity, String.class);
+ HttpHeaders deviceHeaders = new HttpHeaders();
+ deviceHeaders.add("X-Subject-Token", objectMapper.readTree(secondResEntity.getBody()).get("token").textValue());
+ HttpEntity<Object> deviceEntity = new HttpEntity<>(deviceHeaders);
+ ResponseEntity<String> exchange = restTemplate.exchange(url + deviceUrl + "/" + code, HttpMethod.GET, deviceEntity, String.class);
+ String channelId = objectMapper.readTree(objectMapper.readTree(objectMapper.readTree(exchange.getBody()).get("encoderUnit").toString()).get("channels").get(0).toString()).get("channelId").textValue();
+ ResponseEntity<String> monitorReq = restTemplate.exchange(url + monitorUrl + channelId, HttpMethod.GET, deviceEntity, String.class);
+ return objectMapper.readTree(monitorReq.getBody()).get("url").textValue();
+ }
+}
diff --git a/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java b/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java
index fac6560..bab317b 100644
--- a/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java
+++ b/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java
@@ -7,6 +7,7 @@
@Data
public class BaseCaseVO {
+ private Integer baseId;
private String code;
private String name;
private String urlAddress;
diff --git a/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/AIIotVO.java b/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/AIIotVO.java
index c4fb549..38ff11f 100644
--- a/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/AIIotVO.java
+++ b/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/AIIotVO.java
@@ -30,26 +30,7 @@
private Integer slagCar;
}
- @ApiModel(description = "瀹炴椂鐩戞帶")
- @Data
- public static class VideoVO {
- @ApiModelProperty(value = "鐐逛綅缁忓害")
- private String longitude;
- @ApiModelProperty(value = "鐐逛綅绾害")
- private String latitude;
- @ApiModelProperty(value = "鐐逛綅鍚嶇О")
- private String name;
- @ApiModelProperty(value = "璁惧鍞竴缂栫爜")
- private String resourceId;
- @ApiModelProperty(value = "璁惧鍝佺墝")
- private String brand;
- @ApiModelProperty(value = "璁惧鍨嬪彿")
- private String model;
- @ApiModelProperty(value = "璁惧IP鍦板潃")
- private String ip;
- @ApiModelProperty(value = "URL鍦板潃")
- private String url;
- }
+
@ApiModel(description = "AI绠楁硶鏁堣兘")
@Data
diff --git a/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/VideoVO.java b/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/VideoVO.java
new file mode 100644
index 0000000..f6b15e7
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/vo/cockpit/aiIot/VideoVO.java
@@ -0,0 +1,26 @@
+package com.ycl.vo.cockpit.aiIot;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "瀹炴椂鐩戞帶")
+public class VideoVO {
+ @ApiModelProperty(value = "鐐逛綅缁忓害")
+ private String longitude;
+ @ApiModelProperty(value = "鐐逛綅绾害")
+ private String latitude;
+ @ApiModelProperty(value = "鐐逛綅鍚嶇О")
+ private String name;
+ @ApiModelProperty(value = "璁惧鍞竴缂栫爜")
+ private String resourceId;
+ @ApiModelProperty(value = "璁惧鍝佺墝")
+ private String brand;
+ @ApiModelProperty(value = "璁惧鍨嬪彿")
+ private String model;
+ @ApiModelProperty(value = "璁惧IP鍦板潃")
+ private String ip;
+ @ApiModelProperty(value = "URL鍦板潃")
+ private String url;
+}
diff --git a/ycl-platform/src/main/java/com/ycl/vo/cockpit/enforcementEvents/EnforcementEventsVO.java b/ycl-platform/src/main/java/com/ycl/vo/cockpit/enforcementEvents/EnforcementEventsVO.java
index 314d9b4..12198c3 100644
--- a/ycl-platform/src/main/java/com/ycl/vo/cockpit/enforcementEvents/EnforcementEventsVO.java
+++ b/ycl-platform/src/main/java/com/ycl/vo/cockpit/enforcementEvents/EnforcementEventsVO.java
@@ -83,25 +83,6 @@
@ApiModelProperty(value = "AI璇嗗埆鐨勪簨浠舵�绘暟")
private Integer identification;
@ApiModelProperty(value = "鍏蜂綋浜嬩欢鐨勬暟鎹俊鎭�")
- private EnforcementEventsVO.EventVO event;
+ private List<EventVO> event;
}
-
- @Data
- @ApiModel(description = "鍏蜂綋浜嬩欢鐨勬暟鎹俊鎭�")
- public static class EventVO {
- @ApiModelProperty(value = "浜嬩欢鎻忚堪")
- private String description;
- @ApiModelProperty(value = "浜嬪彂鍦扮偣")
- private String address;
- @ApiModelProperty(value = "鍙戠敓鏃堕棿")
- private String alarmTime;
- @ApiModelProperty(value = "鍏宠仈鎽勫儚鐐逛綅")
- private String point;
- @ApiModelProperty(value = "鐩戞帶鐢婚潰")
- private String picture;
- @ApiModelProperty(value = "鏉ユ簮")
- private String source;
- }
-
-
}
diff --git a/ycl-platform/src/main/java/com/ycl/vo/cockpit/enforcementEvents/EventVO.java b/ycl-platform/src/main/java/com/ycl/vo/cockpit/enforcementEvents/EventVO.java
new file mode 100644
index 0000000..e474676
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/vo/cockpit/enforcementEvents/EventVO.java
@@ -0,0 +1,20 @@
+package com.ycl.vo.cockpit.enforcementEvents;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class EventVO {
+ @ApiModelProperty(value = "浜嬩欢鎻忚堪")
+ private String description;
+ @ApiModelProperty(value = "浜嬪彂鍦扮偣")
+ private String address;
+ @ApiModelProperty(value = "鍙戠敓鏃堕棿")
+ private String alarmTime;
+ @ApiModelProperty(value = "鍏宠仈鎽勫儚鐐逛綅")
+ private String point;
+ @ApiModelProperty(value = "鐩戞帶鐢婚潰")
+ private String picture;
+ @ApiModelProperty(value = "鏉ユ簮")
+ private String source;
+}
diff --git a/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml b/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml
index 66c00ae..bfe9750 100644
--- a/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml
+++ b/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml
@@ -229,26 +229,70 @@
</select>
<select id="selectVideoInspection" resultType="com.ycl.vo.casePool.BaseCaseVO">
+ SELECT t1.id as baseId,
+ t1.`code`,
+ t3.`name`,
+ t3.url_address,
+ t3.longitude,
+ t3.latitude,
+ t4.pic_data,
+ t5.`name` as grade,
+ t6.`name` as street,
+ t7.`name` as community,
+ t1.alarm_time as alarmTime
+ FROM ums_base_case t1
+ LEFT JOIN ums_violations t2 ON t1.id = t2.id
+ LEFT JOIN ums_video_point t3 on t2.video_point_id = t3.id
+ LEFT JOIN ums_video_alarm_report t4 on t4.id = t2.video_alarm_report_id
+ LEFT JOIN ums_data_dictionary t5 on t5.id = t2.grade_id
+ LEFT JOIN ums_sccg_region t6 on t6.id = t1.street_id
+ LEFT JOIN ums_sccg_region t7 on t7.id = t1.community_id
+ WHERE t1.state = 1
+ group by t1.id
+ </select>
+
+ <select id="dayCount" resultType="java.lang.Integer">
+ select count(1)
+ from ums_base_case
+ where to_days(create_time) = TO_DAYS(now());
+ </select>
+ <select id="weekCount" resultType="java.lang.Integer">
+ select count(1)
+ from ums_base_case
+ WHERE YEARWEEK(date_format(create_time, '%Y-%m-%d')) = YEARWEEK(now());;
+ </select>
+ <select id="dispatchCount" resultType="java.lang.Integer">
+ select count(1)
+ FROM
+ ums_base_case t1
+ LEFT JOIN ums_dispose_record t2 ON t1.id = t2.base_case_id
+ WHERE
+ t2.workflow_config_step_id =1
+ </select>
+ <select id="alCount" resultType="java.lang.Integer">
+ select count(1)
+ FROM
+ ums_base_case WHERE event_source=1;
+ </select>
+ <select id="selectEventList" resultType="com.ycl.vo.cockpit.enforcementEvents.EventVO">
SELECT
- t1.`code`,
- t3.`name`,
- t3.url_address,
- t3.longitude,
- t3.latitude,
- t4.pic_data,
- t5.`name` as grade,
- t6.`name` as street,
- t7.`name` as community,
- t1.alarm_time as alarmTime
+ t1.alarm_time,
+ ( CASE WHEN t1.event_source = 1 THEN "瑙嗛宸℃煡" WHEN t1.event_source = 2 THEN "浜哄伐涓婃姤" ELSE "鍏朵粬" END ) AS source,
+ t1.site AS address,
+ t2.description,
+ t3.`name` AS point,
+ t4.pic_data AS picture
FROM
ums_base_case t1
LEFT JOIN ums_violations t2 ON t1.id = t2.id
- LEFT JOIN ums_video_point t3 on t2.video_point_id=t3.id
- LEFT JOIN ums_video_alarm_report t4 on t4.id=t2.video_alarm_report_id
- LEFT JOIN ums_data_dictionary t5 on t5.id=t2.grade_id
- LEFT JOIN ums_data_dictionary t6 on t6.id=t1.street_id
- LEFT JOIN ums_data_dictionary t7 on t7.id=t1.community_id
- WHERE t1.state=1
- group by t1.id
+ LEFT JOIN ums_video_point t3 ON t3.id = t2.video_point_id
+ LEFT JOIN ums_video_alarm_report t4 ON t4.id = t2.video_alarm_report_id
+ <where>
+ <if test="beginTime !=''and beginTime!=null and endTime!=''and endTime!=null">
+ t1.create_time BETWEEN #{beginTime}
+ AND #{endTime}
+ </if>
+ </where>
+
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0