|
@@ -2,19 +2,22 @@ package com.zcxk.facilities.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.github.pagehelper.PageInfo;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import com.google.common.collect.Maps;
|
|
|
import com.zcxk.common.entity.LoginUser;
|
|
|
-import com.zcxk.facilities.dto.ChannelDTO;
|
|
|
+import com.zcxk.facilities.dao.ManufacturerMapper;
|
|
|
+import com.zcxk.facilities.dao.MonitorPointMapper;
|
|
|
+import com.zcxk.facilities.dao.MonitorSceneMapper;
|
|
|
+import com.zcxk.facilities.dto.*;
|
|
|
+import com.zcxk.facilities.entity.*;
|
|
|
import com.zcxk.facilities.uitls.RedisUtil;
|
|
|
import com.zcxk.common.utils.UserUtil;
|
|
|
import com.zcxk.facilities.dao.CameraMapper;
|
|
|
-import com.zcxk.facilities.dto.CameraDTO;
|
|
|
-import com.zcxk.facilities.dto.PanTiltDTO;
|
|
|
-import com.zcxk.facilities.dto.VideoRecorderDTO;
|
|
|
-import com.zcxk.facilities.entity.Camera;
|
|
|
import com.zcxk.facilities.service.CameraService;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.mongodb.core.aggregation.ArrayOperators;
|
|
|
import org.springframework.http.HttpEntity;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
|
import org.springframework.http.MediaType;
|
|
@@ -45,6 +48,12 @@ public class CameraServiceImpl implements CameraService {
|
|
|
@Autowired
|
|
|
private RedisUtil redisUtil;
|
|
|
private String getTokenUrl="https://open.ys7.com/api/lapp/token/get";
|
|
|
+ @Autowired
|
|
|
+ private ManufacturerMapper manufacturerMapper;
|
|
|
+ @Autowired
|
|
|
+ private MonitorSceneMapper monitorSceneMapper;
|
|
|
+ @Autowired
|
|
|
+ private MonitorPointMapper monitorPointMapper;
|
|
|
|
|
|
/**
|
|
|
* 通过ID查询单条数据
|
|
@@ -82,6 +91,7 @@ public class CameraServiceImpl implements CameraService {
|
|
|
public List<Camera> selectList(Camera camera) {
|
|
|
camera.setSiteId(UserUtil.getCurrentUser().getSiteId());
|
|
|
List<Camera> cameras = this.cameraMapper.selectList(camera);
|
|
|
+ transferCamerInfo(cameras);
|
|
|
if(camera.getRefreshFlag()){
|
|
|
Map<String, List<Camera>> detailmap = cameras.stream()
|
|
|
.collect(Collectors.groupingBy(d -> d.getDeviceSerial()));
|
|
@@ -143,22 +153,30 @@ public class CameraServiceImpl implements CameraService {
|
|
|
*/
|
|
|
@Override
|
|
|
public int insert(CameraDTO cameraDTO) {
|
|
|
- List<Camera> cameras = cameraDTO.getCameras();
|
|
|
+ List<CameraSaveInfoDTO> cameras = cameraDTO.getCameras();
|
|
|
LoginUser currentUser = UserUtil.getCurrentUser();
|
|
|
Integer siteId = currentUser.getSiteId();
|
|
|
String username = currentUser.getUsername();
|
|
|
|
|
|
- cameraMapper.unbindCameraRelations(cameraDTO.getPointId(),null);
|
|
|
+ //cameraMapper.unbindCameraRelations(cameraDTO.getPointId(),null);
|
|
|
+ List<Camera>saveCameras=new ArrayList<>();
|
|
|
cameras.forEach(cameraInfo -> {
|
|
|
- BeanUtils.copyProperties(cameraDTO.getVideoRecorderDTO(),cameraInfo);
|
|
|
- cameraInfo.setSiteId(siteId);
|
|
|
- cameraInfo.setCreateBy(username);
|
|
|
- cameraInfo.setDateCreate(new Date());
|
|
|
- cameraInfo.setMonitorPointId(cameraDTO.getPointId());
|
|
|
- cameraInfo.setMonitorSceneId(cameraDTO.getSenceId());
|
|
|
- cameraInfo.setStatus(1);
|
|
|
+ Camera camera=new Camera();
|
|
|
+ BeanUtils.copyProperties(cameraDTO.getVideoRecorderDTO(),camera);
|
|
|
+ BeanUtils.copyProperties(cameraInfo,camera);
|
|
|
+ camera.setSiteId(siteId);
|
|
|
+ camera.setCreateBy(username);
|
|
|
+ camera.setDateCreate(new Date());
|
|
|
+ camera.setMonitorPointId(cameraDTO.getPointId());
|
|
|
+ camera.setMonitorSceneId(cameraDTO.getSenceId());
|
|
|
+ camera.setStatus(1);
|
|
|
+ camera.setVideoStatus(1);
|
|
|
+ camera.setCameraStatus(cameraInfo.getStatus()
|
|
|
+ );
|
|
|
+ saveCameras.add(camera);
|
|
|
});
|
|
|
- syncChannelName(cameras);
|
|
|
+ syncChannelName(saveCameras);
|
|
|
+ cameraDTO.setSaveCameras(saveCameras);
|
|
|
this.cameraMapper.batchInsert(cameraDTO);
|
|
|
return 0;//;
|
|
|
}
|
|
@@ -317,13 +335,50 @@ public class CameraServiceImpl implements CameraService {
|
|
|
|
|
|
cameras= JSONArray.parseArray(info.getString("data"),Camera.class);
|
|
|
}
|
|
|
+ Camera queryCamera=new Camera();
|
|
|
+ queryCamera.setMonitorPointId(videoRecorderDTO.getPointId());
|
|
|
+ List<Camera> selectedCamra = cameraMapper.selectList(queryCamera);
|
|
|
+ Map<String, Integer>map=new HashMap<>();
|
|
|
+ selectedCamra.forEach(c->{
|
|
|
+ map.put(c.getDeviceSerial()+"_"+c.getChannelNo(),1);
|
|
|
+ });
|
|
|
+ cameras= cameras.stream().filter(c->{
|
|
|
+ boolean flag=true;
|
|
|
+ if(map.get(c.getDeviceSerial()+"_"+c.getChannelNo())!=null){
|
|
|
+ flag=false;
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
return cameras;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<Camera> selectPage(Camera camera) {
|
|
|
+ public PageInfo selectPage(Camera camera) {
|
|
|
+ List<Manufacturer> manufacturer = getManufacturer();
|
|
|
+
|
|
|
+ List<Camera> cameras = cameraMapper.selectPage(camera);
|
|
|
+ PageInfo<Camera> pageInfo = new PageInfo(cameras);
|
|
|
+ transferCamerInfo(pageInfo.getList());
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+ private void transferCamerInfo(List<Camera>info){
|
|
|
+ if(info.size()>0){
|
|
|
+ List<Manufacturer> manufacturer = getManufacturer();
|
|
|
+ Map<String,String>transfManufacturer=Maps.newHashMap();
|
|
|
+ manufacturer.forEach(m->{
|
|
|
+ transfManufacturer.put(m.getId()+"",m.getName());
|
|
|
+ });
|
|
|
+ List<Platform> platform = getPlatform();
|
|
|
+ Map<String,String>transfPlatform=Maps.newHashMap();
|
|
|
+ platform.forEach(p ->{
|
|
|
+ transfPlatform.put(p.getId()+"",p.getName());
|
|
|
+ });
|
|
|
+ info.forEach(c->{
|
|
|
+ c.setManufacturer(transfManufacturer.get(c.getManufacturer()));
|
|
|
+ c.setPlatform(transfManufacturer.get(c.getPlatform()));
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
- return cameraMapper.selectPage(camera);
|
|
|
}
|
|
|
|
|
|
private void catureSevice(Camera camera, String captureUrl){
|
|
@@ -376,6 +431,76 @@ public class CameraServiceImpl implements CameraService {
|
|
|
sycnCameraStatus(cameras,detailmap);
|
|
|
sycnDeviceStatus(detailmap);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Manufacturer> getManufacturer() {
|
|
|
+ Manufacturer manufacturer=new Manufacturer();
|
|
|
+ manufacturer.setStatus(1);
|
|
|
+ manufacturer.setType(2);
|
|
|
+ return manufacturerMapper.selectList(manufacturer);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Platform> getPlatform() {
|
|
|
+ List<Platform>platforms=new ArrayList<>();
|
|
|
+ Platform platform=new Platform();
|
|
|
+ platform.setId(1);
|
|
|
+ platform.setName("萤石云");
|
|
|
+ platforms.add(platform);
|
|
|
+ return platforms;
|
|
|
+ }
|
|
|
+ private List<CameraTreeDTO> getTree2(){
|
|
|
+ Camera camera=new Camera();
|
|
|
+ camera.setSiteId(UserUtil.getCurrentUser().getSiteId());
|
|
|
+ List<CameraTreeDTO>treeDTOS=new ArrayList<>();
|
|
|
+ List<Camera> cameras = cameraMapper.selectList(camera);
|
|
|
+
|
|
|
+ return treeDTOS;
|
|
|
+ }
|
|
|
+ @Override
|
|
|
+ public List<CameraTreeDTO> getTree() {
|
|
|
+ MonitorScene monitorScene=new MonitorScene();
|
|
|
+ Integer siteId = UserUtil.getCurrentUser().getSiteId();
|
|
|
+ monitorScene.setSiteId(siteId);
|
|
|
+ List<MonitorScene> monitorScenes = monitorSceneMapper.selectList(monitorScene);
|
|
|
+ MonitorPoint monitorPoint=new MonitorPoint();
|
|
|
+ monitorPoint.setSiteId(siteId);
|
|
|
+ List<MonitorPoint> monitorPoints = monitorPointMapper.selectList(monitorPoint);
|
|
|
+ Camera camera=new Camera();
|
|
|
+ camera.setSiteId(siteId);
|
|
|
+ List<CameraTreeDTO>treeDTOS=new ArrayList<>();
|
|
|
+ List<Camera> cameras = cameraMapper.selectList(camera);
|
|
|
+ Map<Integer, List<MonitorPoint>> pointMap = monitorPoints.stream()
|
|
|
+ .collect(Collectors.groupingBy(d -> d.getMonitorSceneId()));
|
|
|
+ Map<Integer, List<Camera>> cameraMap = cameras.stream()
|
|
|
+ .collect(Collectors.groupingBy(d -> d.getMonitorPointId()));
|
|
|
+ monitorScenes.forEach(monitorSceneDto->{
|
|
|
+ CameraTreeDTO cameraTreeDTO=new CameraTreeDTO();
|
|
|
+ cameraTreeDTO.setName(monitorSceneDto.getMonitorSceneName());
|
|
|
+ cameraTreeDTO.setId(monitorSceneDto.getId());
|
|
|
+ List<MonitorPoint> monitorPointList = pointMap.get(cameraTreeDTO.getId());
|
|
|
+ List<CameraTreeDTO>treeSencond=new ArrayList<>();
|
|
|
+ monitorPointList.forEach(monitorPointInfo ->{
|
|
|
+ CameraTreeDTO sencond=new CameraTreeDTO();
|
|
|
+ sencond.setName(monitorPointInfo.getMonitorPointName());
|
|
|
+ sencond.setId(monitorPointInfo.getId());
|
|
|
+ List<CameraTreeDTO>treeThird=new ArrayList<>();
|
|
|
+ List<Camera> cameras2 = cameraMap.get(monitorPoint.getId());
|
|
|
+ cameras2.forEach(camera1 -> {
|
|
|
+ CameraTreeDTO third=new CameraTreeDTO();
|
|
|
+ third.setName(camera1.getChannelName());
|
|
|
+ third.setId(camera1.getId());
|
|
|
+ treeThird.add(third);
|
|
|
+ });
|
|
|
+ sencond.setChild(treeThird);
|
|
|
+ treeSencond.add(sencond);
|
|
|
+ } );
|
|
|
+ cameraTreeDTO.setChild(treeSencond);
|
|
|
+ treeDTOS.add(cameraTreeDTO);
|
|
|
+ });
|
|
|
+ return treeDTOS;
|
|
|
+ }
|
|
|
+
|
|
|
private void sycnDeviceStatus( Map<String, List<Camera>> detailmap){
|
|
|
Iterator<List<Camera>> iterator = detailmap.values().iterator();
|
|
|
while(iterator.hasNext()){
|