lyhzzz 1 год назад
Родитель
Сommit
daf84272c9

+ 3 - 0
src/main/java/com/fdkankan/ucenter/common/constants/ResultCode.java

@@ -44,4 +44,7 @@ public class ResultCode {
 
 
     public static final int FAILURE_CODE_400016  = 400016 ;
     public static final int FAILURE_CODE_400016  = 400016 ;
     public static final String FAILURE_MSG_400016 = "生成失败" ;
     public static final String FAILURE_MSG_400016 = "生成失败" ;
+
+    public static final int FAILURE_CODE_400017  = 400017 ;
+    public static final String FAILURE_MSG_400017 = "相机不存在" ;
 }
 }

+ 10 - 0
src/main/java/com/fdkankan/ucenter/controller/inner/InnerController.java

@@ -8,6 +8,8 @@ import com.fdkankan.ucenter.common.BaseController;
 import com.fdkankan.ucenter.common.Result;
 import com.fdkankan.ucenter.common.Result;
 import com.fdkankan.ucenter.service.IInnerService;
 import com.fdkankan.ucenter.service.IInnerService;
 import com.fdkankan.ucenter.vo.request.CameraDetailParam;
 import com.fdkankan.ucenter.vo.request.CameraDetailParam;
+import com.fdkankan.ucenter.vo.request.CameraParam;
+import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.CameraVo;
 import com.fdkankan.ucenter.vo.response.CameraVo;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -105,4 +107,12 @@ public class InnerController extends BaseController {
         }
         }
         return Result.success(innerService.getCameraDetail(snCode));
         return Result.success(innerService.getCameraDetail(snCode));
     }
     }
+
+    @PostMapping(value = "/getSceneBySnCode")
+    public Result getSceneSnCode( @RequestBody SceneParam param) {
+        if(StringUtils.isBlank(param.getSnCode())){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        return Result.success(innerService.getSceneBySnCode(param));
+    }
 }
 }

+ 3 - 0
src/main/java/com/fdkankan/ucenter/service/IInnerService.java

@@ -1,6 +1,7 @@
 package com.fdkankan.ucenter.service;
 package com.fdkankan.ucenter.service;
 
 
 import com.fdkankan.ucenter.common.Result;
 import com.fdkankan.ucenter.common.Result;
+import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.LaserSceneInfoVo;
 import com.fdkankan.ucenter.vo.response.LaserSceneInfoVo;
 
 
 /**
 /**
@@ -26,4 +27,6 @@ public interface IInnerService {
     LaserSceneInfoVo getSceneInfo(String num);
     LaserSceneInfoVo getSceneInfo(String num);
 
 
     Object getCameraDetail(String snCode);
     Object getCameraDetail(String snCode);
+
+    Object getSceneBySnCode(SceneParam param);
 }
 }

+ 74 - 0
src/main/java/com/fdkankan/ucenter/service/impl/InnerServiceImpl.java

@@ -2,6 +2,7 @@ package com.fdkankan.ucenter.service.impl;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.JwtUtil;
 import com.fdkankan.common.util.JwtUtil;
@@ -14,6 +15,8 @@ import com.fdkankan.ucenter.common.constants.ResultCode;
 import com.fdkankan.ucenter.constant.LoginConstant;
 import com.fdkankan.ucenter.constant.LoginConstant;
 import com.fdkankan.ucenter.entity.*;
 import com.fdkankan.ucenter.entity.*;
 import com.fdkankan.ucenter.service.*;
 import com.fdkankan.ucenter.service.*;
+import com.fdkankan.ucenter.vo.RelicsSceneInitQueueDTO;
+import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.LaserSceneInfoVo;
 import com.fdkankan.ucenter.vo.response.LaserSceneInfoVo;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.ObjectUtils;
@@ -21,7 +24,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.io.File;
 import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Objects;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -214,4 +221,71 @@ public class InnerServiceImpl implements IInnerService {
         }
         }
         return cameraDetailService.getByCameraId(camera.getId());
         return cameraDetailService.getByCameraId(camera.getId());
     }
     }
+
+    @Override
+    public Object getSceneBySnCode(SceneParam param) {
+        Camera camera = cameraService.getBySnCode(param.getSnCode());
+        if(camera == null ){
+            throw new BusinessException(ResultCode.FAILURE_CODE_400017,ResultCode.FAILURE_MSG_400017);
+        }
+        CameraDetail cameraDetail = cameraDetailService.getByCameraId(camera.getId());
+        if(cameraDetail == null ){
+            throw new BusinessException(ResultCode.FAILURE_CODE_400017,ResultCode.FAILURE_MSG_400017);
+        }
+        LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePlus::getCameraId,camera.getId());
+        if(param.getSceneSource() != null){
+            wrapper.eq(ScenePlus::getSceneSource,param.getSceneSource());
+        }
+        List<ScenePlus> list = scenePlusService.list(wrapper);
+        if(list.isEmpty()){
+            return new ArrayList<>();
+        }
+        List<Long> plusIds = list.stream().map(ScenePlus::getId).collect(Collectors.toList());
+        List<Long> userIds = list.stream().map(ScenePlus::getUserId).collect(Collectors.toList());
+
+        LambdaQueryWrapper<ScenePlusExt> wrapper1 = new LambdaQueryWrapper<>();
+        wrapper1.in(ScenePlusExt::getPlusId,plusIds);
+        if(param.getLocation() != null){
+            wrapper1.eq(ScenePlusExt::getLocation,param.getLocation());
+        }
+        HashMap<Long,ScenePlus> map = new HashMap<>();
+        HashMap<Long, User> userMap = userService.getByIds(userIds);
+
+        list.forEach(e ->map.put(e.getId(),e) );
+        List<ScenePlusExt> extList = scenePlusExtService.list(wrapper1);
+
+        List<RelicsSceneInitQueueDTO> voList = new ArrayList<>(extList.size());
+        for (ScenePlusExt scenePlusExt : extList) {
+            ScenePlus scenePlus = map.get(scenePlusExt.getPlusId());
+            if(scenePlus == null){
+                continue;
+            }
+            User user = userMap.get(scenePlus.getUserId());
+            RelicsSceneInitQueueDTO dto = getRelicsSceneInitQueueDTO(param, scenePlusExt, scenePlus,user);
+            voList.add(dto);
+        }
+        return voList;
+    }
+
+    private  RelicsSceneInitQueueDTO getRelicsSceneInitQueueDTO(SceneParam param, ScenePlusExt scenePlusExt, ScenePlus scenePlus,User user) {
+        RelicsSceneInitQueueDTO dto = new RelicsSceneInitQueueDTO();
+        dto.setSceneCode(scenePlus.getNum());
+        dto.setLocation(scenePlusExt.getLocation());
+        dto.setSceneSource(scenePlus.getSceneSource());
+        dto.setAlgorithmTime(scenePlusExt.getAlgorithmTime());
+        dto.setCreateTime(scenePlus.getCreateTime());
+        if(user!=null){
+            dto.setPhoneNum(user.getUserName());
+        }
+        dto.setUserId(scenePlus.getUserId());
+        dto.setSnCode(param.getSnCode());
+        dto.setStatus(scenePlus.getSceneStatus());
+        if(scenePlus.getSceneStatus() ==-2){
+            dto.setStatus(1);
+        }
+        dto.setSceneName(scenePlus.getTitle());
+        dto.setShootCount(scenePlusExt.getShootCount());
+        return dto;
+    }
 }
 }

+ 43 - 0
src/main/java/com/fdkankan/ucenter/vo/RelicsSceneInitQueueDTO.java

@@ -0,0 +1,43 @@
+package com.fdkankan.ucenter.vo;
+
+import lombok.Data;
+
+@Data
+public class RelicsSceneInitQueueDTO {
+    private String sceneCode;
+
+//    @ApiModelProperty(value = "判断是否为slam场景,深光和深时 以前的场景都是4" +
+//            "typedef enum SceneLocation {\n" +
+//            "    Scene_Location_Slam  = 0, //slam\n" +
+//            "    Scene_Location_SFM 1 ,   //sfm\n" +
+//            "    Scene_Location_SFMAI  2,     //SFM + AI\n" +
+//            "    Scene_Location_MutiFloor 3 ,    //多楼层\n" +
+//            "    Scene_Location_PointCloud 4,    //点云\n" +
+//            "    Scene_Location_SLAMPoint 5,    //slam实时拍\n" +
+//            "    Scene_Location_SLAMPointAndSFMAI  6   //slam实时拍+站点\n" +
+//            "} SceneLocation;")
+    private Integer location;
+
+    //@ApiModelProperty(value = "场景来源:相机拍摄10以内表示,1表示八目,2双目,3转台,4 激光 5深光  其他来源10以上,11:一键换装,12:123看房,13文通虚拟场景")
+    private Integer sceneSource;
+
+    //@ApiModelProperty(value = "计算完成时间")
+    private String algorithmTime;
+
+    //@ApiModelProperty(value = "创建时间")
+    private String createTime;
+
+    private String phoneNum;
+
+    private Long userId;
+
+    private String snCode;
+
+    //0-计算中 1-计算成功  -1-计算失败
+    private int status;
+
+    private String sceneName;
+
+    //@ApiModelProperty(value = "点位数量")
+    private Integer shootCount;
+}

+ 1 - 0
src/main/java/com/fdkankan/ucenter/vo/request/SceneParam.java

@@ -36,4 +36,5 @@ public class SceneParam extends RequestBase {
 
 
     private String searchKey;
     private String searchKey;
     private Integer cameraId;
     private Integer cameraId;
+    private Integer location;
 }
 }