Przeglądaj źródła

场景迁移到协作相机,自动添加协作信息

lyhzzz 2 lat temu
rodzic
commit
c20a97ccdb

+ 1 - 0
src/main/java/com/fdkankan/manage/common/RedisKeyUtil.java

@@ -8,6 +8,7 @@ public class RedisKeyUtil {
     public static final String loginNum= "manage:login:userName:%s:ip:%s";
 
     public static final String loginToken= "manage:login:token:%s";
+    public static final String SCENE_COOPERATION_NUM_USERID = "scene:cooperation:num:userId";
 
 
 }

+ 3 - 0
src/main/java/com/fdkankan/manage/service/ISceneResourceCameraService.java

@@ -1,5 +1,6 @@
 package com.fdkankan.manage.service;
 
+import com.fdkankan.manage.entity.CameraDetail;
 import com.fdkankan.manage.entity.SceneResourceCamera;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -14,4 +15,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface ISceneResourceCameraService extends IService<SceneResourceCamera> {
 
     void unbindCamera(Long cameraId);
+
+    void setCooperationUser(CameraDetail cameraDetail, String num);
 }

+ 6 - 2
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -83,6 +83,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     ISceneBuildProcessLogService sceneBuildProcessLogService;
     @Autowired
     ISceneMoveLogService sceneMoveLogService;
+    @Autowired
+    ISceneResourceCameraService sceneResourceCameraService;
 
 
     @Override
@@ -425,8 +427,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         cameraDetail.setUsedSpace(newUseSpace);
         cameraDetailService.updateById(cameraDetail);
 
-
-
         if(scenePro!=null){
             LambdaUpdateWrapper<ScenePro> wrapper = new LambdaUpdateWrapper<>();
             wrapper.eq(ScenePro::getId,scenePro.getId());
@@ -448,6 +448,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             this.updateOssStatus(String.format(OssPath.v4_statusPath,scenePlus.getNum()),0,"status");
             folderSceneService.delBySceneId(scenePlus.getId());
         }
+        //协作相机
+        if(cameraDetail.getCooperationUser() != null){
+            sceneResourceCameraService.setCooperationUser(cameraDetail,param.getNum());
+        }
         if(cameraDetail.getType() == 10){       //深时场景
             laserService.move(param.getNum(),oldCamera.getSnCode(),camera.getSnCode(),cameraDetail.getUserId());
         }

+ 65 - 0
src/main/java/com/fdkankan/manage/service/impl/SceneResourceCameraServiceImpl.java

@@ -1,12 +1,28 @@
 package com.fdkankan.manage.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.common.RedisKeyUtil;
+import com.fdkankan.manage.entity.CameraDetail;
+import com.fdkankan.manage.entity.SceneCooperation;
 import com.fdkankan.manage.entity.SceneResourceCamera;
+import com.fdkankan.manage.entity.SceneResourceCooperation;
+import com.fdkankan.manage.httpClient.service.LaserService;
 import com.fdkankan.manage.mapper.ISceneResourceCameraMapper;
+import com.fdkankan.manage.service.ISceneCooperationService;
 import com.fdkankan.manage.service.ISceneResourceCameraService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.service.ISceneResourceCooperationService;
+import com.fdkankan.manage.util.Dateutils;
+import com.fdkankan.redis.util.RedisUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.WeakHashMap;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  * 场景资源和相机关联表 服务实现类
@@ -18,10 +34,59 @@ import org.springframework.stereotype.Service;
 @Service
 public class SceneResourceCameraServiceImpl extends ServiceImpl<ISceneResourceCameraMapper, SceneResourceCamera> implements ISceneResourceCameraService {
 
+    @Autowired
+    ISceneCooperationService sceneCooperationService;
+    @Autowired
+    ISceneResourceCooperationService sceneResourceCooperationService;
+    @Autowired
+    RedisUtil redisUtil;
+    @Autowired
+    LaserService laserService;
+
     @Override
     public void unbindCamera(Long cameraId) {
         LambdaQueryWrapper<SceneResourceCamera> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(SceneResourceCamera::getCameraId,cameraId);
         this.remove(wrapper);
     }
+
+    @Override
+    public void setCooperationUser(CameraDetail cameraDetail, String num) {
+        List<SceneResourceCamera> list = this.getByCameraId(cameraDetail.getCameraId());
+        if(list.size() >0){
+            List<Long> resourceIdList = list.stream().map(SceneResourceCamera::getSceneResourceId).collect(Collectors.toList());
+            if(resourceIdList.size() >0){
+                SceneCooperation sceneCooperationEntity = new SceneCooperation();
+                sceneCooperationEntity.setUserId(cameraDetail.getCooperationUser());
+                sceneCooperationEntity.setSceneNum(num);
+                sceneCooperationEntity.setRecStatus("A");
+                sceneCooperationEntity.setCreateTime(Dateutils.getDate(new Date()));
+                sceneCooperationEntity.setUpdateTime(Dateutils.getDate(new Date()));
+                sceneCooperationService.save(sceneCooperationEntity);
+                redisUtil.hset(RedisKeyUtil.SCENE_COOPERATION_NUM_USERID, sceneCooperationEntity.getSceneNum(), sceneCooperationEntity.getUserId() + "");
+
+
+                List<SceneResourceCooperation> resourceCooperationList = new ArrayList<>();
+                for (Long resourceId : resourceIdList) {
+                    SceneResourceCooperation sceneResourceCooperation = new SceneResourceCooperation();
+                    sceneResourceCooperation.setSceneResourceId(resourceId);
+                    sceneResourceCooperation.setSceneCooperationId(sceneCooperationEntity.getId());
+                    sceneResourceCooperation.setRecStatus("A");
+                    sceneResourceCooperation.setCreateTime(Dateutils.getDate(new Date()));
+                    sceneResourceCooperation.setUpdateTime(Dateutils.getDate(new Date()));
+                    resourceCooperationList.add(sceneResourceCooperation);
+                }
+                if(resourceCooperationList.size() >0){
+                    sceneResourceCooperationService.saveBatch(resourceCooperationList,10000);
+                }
+            }
+        }
+
+    }
+
+    private List<SceneResourceCamera> getByCameraId(Long cameraId) {
+        LambdaQueryWrapper<SceneResourceCamera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SceneResourceCamera::getCameraId,cameraId);
+        return this.list(wrapper);
+    }
 }

+ 1 - 1
src/main/resources/bootstrap.yml

@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: test
+    active: dev
 logging:
   config: classpath:logback-spring.xml
 mybatis-plus: