Browse Source

深时,深光还原

lyhzzz 1 year ago
parent
commit
020fc59efc

+ 1 - 0
src/main/java/com/fdkankan/manage_jp/httpClient/param/LaserSceneMoveParam.java

@@ -10,4 +10,5 @@ public class LaserSceneMoveParam {
     private String snCode;
     private String toSnCode;
     private Long userId;
+    private String dataSource;
 }

+ 18 - 15
src/main/java/com/fdkankan/manage_jp/httpClient/service/LaserService.java

@@ -1,6 +1,8 @@
 package com.fdkankan.manage_jp.httpClient.service;
+import cn.hutool.core.bean.BeanUtil;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import com.fdkankan.manage_jp.httpClient.param.LaserSceneMoveParam;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import com.google.common.collect.Lists;
 
@@ -234,25 +236,10 @@ public class LaserService {
     }
 
     public void updateStatus(String num,Integer status) {
-        this.updateStatus(num,status,null);
-    }
-    public void updateStatus(String num,Integer status,CameraDetail cameraDetail) {
         try {
             Map<String,Object> params = new HashMap<>();
-            if(cameraDetail != null){
-                Camera camera = cameraService.getById(cameraDetail.getCameraId());
-                if(camera != null){
-                    params.put("snCode", camera.getSnCode());
-                }
-                User user = userService.getById(cameraDetail.getUserId());
-                if(user != null){
-                    params.put("phone", user.getUserName());
-                    params.put("userId", user.getId());
-                }
-            }
             params.put("sceneCode", num);
             params.put("status", status);
-
             Result result = laserClient.saveOrEdit(num, params);
             if(result.getCode() != HttpStatus.OK.value()){
                 log.error("激光场景状态同步失败!");
@@ -337,6 +324,22 @@ public class LaserService {
         return null;
     }
 
+    public void move(String num, String snCode, String toSnCode,Long userId,String newDataSource) {
+        LaserSceneMoveParam param = new LaserSceneMoveParam();
+        param.setSceneCode(num);
+        param.setSnCode(snCode);
+        param.setToSnCode(toSnCode);
+        param.setUserId(userId);
+        param.setDataSource(newDataSource+"_laserData/laserData");
+        if(userId != null){
+            User user = userService.getById(userId);
+            if(user != null){
+                param.setPhone(user.getUserName());
+            }
+        }
+        laserClient.migrate(param);
+    }
+
 
     @Autowired
     private FYunFileServiceInterface fYunFileService;

+ 2 - 1
src/main/java/com/fdkankan/manage_jp/service/IScenePlusService.java

@@ -3,6 +3,7 @@ package com.fdkankan.manage_jp.service;
 import com.fdkankan.manage_jp.entity.CameraDetail;
 import com.fdkankan.manage_jp.entity.ScenePlus;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage_jp.entity.User;
 
 /**
  * <p>
@@ -20,5 +21,5 @@ public interface IScenePlusService extends IService<ScenePlus> {
 
     ScenePlus copyScene(ScenePlus scenePlus);
 
-    void updatePayStatus(String num, String version, Integer sceneSource, Integer payStatus, CameraDetail cameraDetail);
+    void updatePayStatus(String num, String version, Integer sceneSource, Integer payStatus, CameraDetail cameraDetail, User user);
 }

+ 6 - 6
src/main/java/com/fdkankan/manage_jp/service/impl/ScenePlusServiceImpl.java

@@ -117,7 +117,7 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     }
 
     @Override
-    public void updatePayStatus(String num,String version,Integer sceneSource,Integer payStatus,CameraDetail cameraDetail) {
+    public void updatePayStatus(String num,String version,Integer sceneSource,Integer payStatus,CameraDetail cameraDetail,User user) {
         if(version.equals("v3")){
             LambdaUpdateWrapper<ScenePro> wrapper2 = new LambdaUpdateWrapper<>();
             wrapper2.set(ScenePro::getPayStatus,payStatus);
@@ -125,8 +125,8 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
             if(cameraDetail != null){
                 wrapper2.set(ScenePro::getCameraId,cameraDetail.getCameraId());
             }
-            if(cameraDetail != null){
-                wrapper2.set(ScenePro::getUserId,cameraDetail.getUserId());
+            if(user != null){
+                wrapper2.set(ScenePro::getUserId,user.getId());
             }
             sceneProService.update(wrapper2);
             updateOssPayStatus(String.format(OssPath.v3_statusPath,num),payStatus);
@@ -137,15 +137,15 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
             if(cameraDetail != null){
                 wrapper.set(ScenePlus::getCameraId,cameraDetail.getCameraId());
             }
-            if(cameraDetail != null){
-                wrapper.set(ScenePlus::getUserId,cameraDetail.getUserId());
+            if(user != null){
+                wrapper.set(ScenePlus::getUserId,user.getId());
             }
             this.update(wrapper);
             updateOssPayStatus(String.format(OssPath.v4_statusPath,num),payStatus);
         }
 
         if(sceneSource == 4 || sceneSource == 5){
-            laserService.updateStatus(num,payStatus==1?2:3,cameraDetail);
+            laserService.updateStatus(num,payStatus==1?2:3);
         }
 
 

+ 26 - 3
src/main/java/com/fdkankan/manage_jp/service/impl/TmColdStorageServiceImpl.java

@@ -7,6 +7,7 @@ import com.fdkankan.manage_jp.common.PageInfo;
 import com.fdkankan.manage_jp.common.ResultCode;
 import com.fdkankan.manage_jp.entity.*;
 import com.fdkankan.manage_jp.exception.BusinessException;
+import com.fdkankan.manage_jp.httpClient.service.LaserService;
 import com.fdkankan.manage_jp.mapper.ITmColdStorageMapper;
 import com.fdkankan.manage_jp.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -44,6 +45,8 @@ public class TmColdStorageServiceImpl extends ServiceImpl<ITmColdStorageMapper,
     ICameraService cameraService;
     @Autowired
     ICameraDetailService cameraDetailService;
+    @Autowired
+    LaserService laserService;
 
     @Override
     public Object pageList(ColdStorageParam param) {
@@ -121,7 +124,7 @@ public class TmColdStorageServiceImpl extends ServiceImpl<ITmColdStorageMapper,
             coldStorage.setSceneVersion(scenePro == null?"v3":"v4");
             coldStorage.setIsObj(scenePro == null?scenePlusExt.getIsObj():scenePro.getIsObj());
             this.save(coldStorage);
-            scenePlusService.updatePayStatus(num,scenePro == null ?"v4":"v3",scenePro == null?scenePlus.getSceneSource():scenePro.getSceneSource(),-2,null);
+            scenePlusService.updatePayStatus(num,scenePro == null ?"v4":"v3",scenePro == null?scenePlus.getSceneSource():scenePro.getSceneSource(),-2,null,null);
 
         }
 
@@ -131,7 +134,7 @@ public class TmColdStorageServiceImpl extends ServiceImpl<ITmColdStorageMapper,
     @Override
     @Transactional
     public void restore(SceneParam param) {
-        if(param.getNumList().isEmpty() || param.getCameraId() == null){
+        if(param.getNumList().isEmpty() || param.getCameraId() == null || StringUtils.isBlank(param.getUserName())){
             throw new BusinessException(ResultCode.PARAM_ERROR);
         }
         for (String num : param.getNumList()) {
@@ -139,19 +142,39 @@ public class TmColdStorageServiceImpl extends ServiceImpl<ITmColdStorageMapper,
             if(tmColdStorages.isEmpty()){
                 throw new BusinessException(ResultCode.SCENE_NO_COLD_STORAGE);
             }
+            User user = userService.getByUserName(param.getUserName());
+            if(user == null){
+                throw new BusinessException(ResultCode.USER_NOT_EXIST);
+            }
             ScenePlus scenePlus = scenePlusService.getByNum(num);
             ScenePro scenePro = sceneProService.getByNum(num);
             if(scenePlus == null && scenePro == null){
                 throw new BusinessException(ResultCode.SCENE_NOT_EXIT);
             }
             Long cameraId = scenePro == null ? scenePlus.getCameraId() : scenePro.getCameraId();
+            Long userId = scenePro == null ? scenePlus.getUserId() : scenePro.getUserId();
+            Integer sceneSource = scenePro == null ? scenePlus.getSceneSource() : scenePro.getSceneSource();
+
+            if(user.getId().equals(userId) && cameraId.equals(param.getCameraId())){
+                scenePlusService.updatePayStatus(num,scenePro == null ?"v4":"v3",scenePro == null?scenePlus.getSceneSource():scenePro.getSceneSource(),1,null,null);
+                return;
+            }
+            Camera oldCamera = cameraService.getById(cameraId);
+            Camera camera = cameraService.getById(param.getCameraId());
             CameraDetail oldCameraDetail = cameraDetailService.getByCameraId(cameraId);
             CameraDetail cameraDetail = cameraDetailService.getByCameraId(param.getCameraId());
+            if(oldCamera == null || oldCameraDetail == null || camera == null || cameraDetail == null){
+                throw new BusinessException(ResultCode.CAMERA_NOT_EXIST);
+            }
             if(!oldCameraDetail.getType().equals(cameraDetail.getType())){
                 throw new BusinessException(ResultCode.RESTORE_ERROR);
             }
-            scenePlusService.updatePayStatus(num,scenePro == null ?"v4":"v3",scenePro == null?scenePlus.getSceneSource():scenePro.getSceneSource(),1,cameraDetail);
+            scenePlusService.updatePayStatus(num,scenePro == null ?"v4":"v3",scenePro == null?scenePlus.getSceneSource():scenePro.getSceneSource(),1,cameraDetail,user);
             this.removeByIds(tmColdStorages);
+            if(sceneSource == 4 || sceneSource == 5){
+                String dataSource = scenePro == null ? scenePlusExtService.getByPlusId(scenePlus.getId()).getDataSource() : scenePro.getDataSource();
+                laserService.move(num,oldCamera.getSnCode(),camera.getSnCode(),user.getId(),dataSource);
+            }
         }
 
     }