lyhzzz 8 bulan lalu
induk
melakukan
fbe3a71d81

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

@@ -93,6 +93,7 @@ public enum ResultCode  {
     PLATFORM_USER_ADDERROR(60021, "该用户身份为平台管理员,无法更改其平台,如需继续,请联系超级管理员更改平台管理员身份后再试"),
     ID_CARD_EXIT2(60022, "该用户已属其他平台,请更换用户后再试"),
     USER_BAN(60023, "该用户已被禁用,无法添加。"),
+    LASER_VIEW_ERROR(60024, "激光系统访问失败"),
     ;
 
     private Integer code;

+ 43 - 37
src/main/java/com/fdkankan/manage/httpClient/service/LaserService.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.manage.common.CacheUtil;
 import com.fdkankan.manage.common.PageInfo;
 import com.fdkankan.manage.common.Result;
+import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.entity.Camera;
 import com.fdkankan.manage.entity.CameraDetail;
 import com.fdkankan.manage.entity.User;
@@ -123,45 +124,9 @@ public class LaserService {
         return page;
     }
 
-    private LaserSceneParam getLaserSceneParam(SceneParam param) {
-        LaserSceneParam newParam = new LaserSceneParam();
-        if(param.getCompanyId()!= null){ //客户场景
-            List<CameraDetail> cameraDetails = cameraDetailService.getListByCompanyId(param.getCompanyId());
-            param.setSnCodes(this.setSnCodes(cameraDetails));
-            if(param.getSnCodes() == null || param.getSnCodes().size() <=0){
-                return null;
-            }
-        }
-        if(StringUtils.isNotBlank(param.getUserName())){
-            List<CameraDetail> cameraDetails = cameraDetailService.getByUserName(param.getUserName());
-            param.setSnCodes(this.setSnCodes(cameraDetails));
-        }
-        if(StringUtils.isNotBlank(param.getUserName()) && StringUtils.isBlank(param.getSnCode()) &&
-                (param.getSnCodes() == null || param.getSnCodes().size() <=0)){
-            param.setSnCode("phoneEmptySelect");
-        }
 
-        BeanUtils.copyProperties(param,newParam);
-        newParam.setTitle(param.getSceneName());
-        if(param.getType() == 6){
-            newParam.setSceneSource(5);
-        }
-        return newParam;
-    }
 
-    private List<String> setSnCodes(List<CameraDetail> cameraDetails) {
-        if(cameraDetails != null && cameraDetails.size() >0){
-            Set<Long> cameraIds = cameraDetails.stream()
-                    .filter(entity -> entity.getType() == 10 || entity.getType() == 11).map(CameraDetail::getCameraId).collect(Collectors.toSet());
-            if(cameraIds.size() >0){
-                List<Camera> cameraList = cameraService.listByIds(cameraIds);
-                return cameraList.stream().map(Camera::getSnCode).collect(Collectors.toList());
-            }
-        }
-        return null;
-    }
-
-    private Integer toFdStatus(Integer status) {
+    public Integer toFdStatus(Integer status) {
         //深时状态,-1:场景被删 0:计算中 1计算失败 2计算成功 3封存 4生成OBJ中
         switch (status){
             case 0 :
@@ -296,4 +261,45 @@ public class LaserService {
         }
         return null ;
     }
+
+
+    public HashMap<String, JSONObject> list(List<String> sceneNumList,Integer sceneSource) {
+        LaserSceneParam newParam = new LaserSceneParam();
+        newParam.setPageNum(1);
+        newParam.setPageSize(sceneNumList.size());
+        newParam.setSceneCodes(sceneNumList);
+        newParam.setSceneSource(sceneSource);
+        return this.list(newParam);
+    }
+
+    public HashMap<String, JSONObject> list(String sceneName,Integer sceneSource) {
+        LaserSceneParam newParam = new LaserSceneParam();
+        newParam.setPageNum(1);
+        newParam.setPageSize(9999);
+        newParam.setTitle(sceneName);
+        newParam.setSceneSource(sceneSource);
+        return this.list(newParam);
+    }
+
+    public HashMap<String, JSONObject> list(LaserSceneParam newParam) {
+        HashMap<String, JSONObject> map = new HashMap<>();
+        try {
+            FdkkResponse fdkkResponse = laserClient.sceneList(newParam);
+            JSONObject jsonObject = fdkkResponse.getData();
+            if(jsonObject == null){
+                return map;
+            }
+            JSONArray list = jsonObject.getJSONArray("list");
+
+            for (Object o : list) {
+                JSONObject obj = (JSONObject) o;
+                map.put(obj.getString("num"),obj);
+            }
+        }catch (Exception e){
+            log.info("激光系统访问失败:{}",e);
+            throw new BusinessException(ResultCode.LASER_VIEW_ERROR);
+        }
+
+        return map;
+    }
 }

+ 24 - 7
src/main/java/com/fdkankan/manage/service/impl/SceneProServiceImpl.java

@@ -335,24 +335,41 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
             param.setUserIds(userIds);
 
         }
-        Page<SceneVo> page = null;
         Set<Long> userIds = null;
         HashMap<Long,JyUser> userMap = new HashMap<>();
+        HashMap<String, JSONObject>  laserMap = new HashMap<>();
+
+        Page<SceneVo> page  = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
+        List<SceneVo> records = page.getRecords();
+        List<String> numList = records.parallelStream().map(SceneVo::getNum).collect(Collectors.toList());
+
         if(param.getType() == 2 || param.getType() == 6) { //深时点云,深光点云
-            page = laserService.pageList(param);
-        }else {
-            page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
+            if(!numList.isEmpty()){
+                laserMap = laserService.list(numList, param.getType() == 2 ? 4 : 5);
+            }
         }
         userIds = page.getRecords().stream().map(SceneVo::getUserId).collect(Collectors.toSet());
         userMap = jyUserService.getMapByUserIds(userIds);
 
-        List<SceneVo> records = page.getRecords();
-
-        List<String> numList = records.parallelStream().map(SceneVo::getNum).collect(Collectors.toList());
         HashMap<String,SceneCopyLog> map =  copyLogService.getByNewNumList(numList);
 
         for (SceneVo record : page.getRecords()) {
 
+            if(param.getType() == 2 || param.getType() == 6){
+                JSONObject ssObj = laserMap.get(record.getNum());
+                if(ssObj!=null){
+                    record.setSceneName(ssObj.getString("title"));
+                    record.setThumb(ssObj.getString("thumb"));
+                    record.setWebSite(ssObj.getString("webSite"));
+                    record.setViewCount(ssObj.getInteger("viewCount"));
+                    record.setStatus(laserService.toFdStatus(ssObj.getInteger("status")));
+                    record.setAlgorithmTime(ssObj.getString("algorithmTime"));
+                }else if(record.getStatus() != 0){
+                    record.setStatus(-1);
+                    record.setWebSite(null);
+                }
+            }
+
             record.setStatusString(SceneStatusUtil.getStatusString(record));
             if(userMap.get(record.getUserId()) != null){
                 record.setUserName(userMap.get(record.getUserId()).getRyNo());