lyhzzz il y a 1 semaine
Parent
commit
3a73c68153
84 fichiers modifiés avec 1787 ajouts et 322 suppressions
  1. 3 3
      src/main/java/com/fdkankan/fusion/common/FilePath.java
  2. 1 1
      src/main/java/com/fdkankan/fusion/common/OssPath.java
  3. 5 1
      src/main/java/com/fdkankan/fusion/common/ResultCode.java
  4. 21 0
      src/main/java/com/fdkankan/fusion/common/util/CameraUtil.java
  5. 0 7
      src/main/java/com/fdkankan/fusion/common/util/DateUtils.java
  6. 1 1
      src/main/java/com/fdkankan/fusion/common/util/FileWriterUtil.java
  7. 3 3
      src/main/java/com/fdkankan/fusion/common/util/LocalToOssUtil.java
  8. 51 0
      src/main/java/com/fdkankan/fusion/common/util/NumTypeUtils.java
  9. 6 7
      src/main/java/com/fdkankan/fusion/common/util/ShellCmd.java
  10. 5 4
      src/main/java/com/fdkankan/fusion/config/CacheUtil.java
  11. 55 0
      src/main/java/com/fdkankan/fusion/controller/CaseAnimationController.java
  12. 12 4
      src/main/java/com/fdkankan/fusion/controller/CaseController.java
  13. 113 10
      src/main/java/com/fdkankan/fusion/controller/CaseFusionController.java
  14. 92 0
      src/main/java/com/fdkankan/fusion/controller/CaseOverviewController.java
  15. 6 3
      src/main/java/com/fdkankan/fusion/controller/CasePathController.java
  16. 4 4
      src/main/java/com/fdkankan/fusion/controller/CaseSettingsController.java
  17. 74 0
      src/main/java/com/fdkankan/fusion/controller/CaseTabulationController.java
  18. 2 2
      src/main/java/com/fdkankan/fusion/controller/CaseTagController.java
  19. 5 15
      src/main/java/com/fdkankan/fusion/controller/FusionGuideController.java
  20. 2 9
      src/main/java/com/fdkankan/fusion/controller/FusionGuidePathController.java
  21. 22 7
      src/main/java/com/fdkankan/fusion/controller/HotIconController.java
  22. 77 0
      src/main/java/com/fdkankan/fusion/controller/MapConfigController.java
  23. 4 4
      src/main/java/com/fdkankan/fusion/down/CaseDownService.java
  24. 87 0
      src/main/java/com/fdkankan/fusion/entity/CaseAnimation.java
  25. 91 0
      src/main/java/com/fdkankan/fusion/entity/CaseOverview.java
  26. 3 0
      src/main/java/com/fdkankan/fusion/entity/CasePath.java
  27. 14 8
      src/main/java/com/fdkankan/fusion/entity/CaseSettings.java
  28. 94 0
      src/main/java/com/fdkankan/fusion/entity/CaseTabulation.java
  29. 16 6
      src/main/java/com/fdkankan/fusion/entity/CaseTag.java
  30. 13 0
      src/main/java/com/fdkankan/fusion/entity/FusionGuide.java
  31. 2 0
      src/main/java/com/fdkankan/fusion/entity/FusionGuidePath.java
  32. 12 0
      src/main/java/com/fdkankan/fusion/entity/HotIcon.java
  33. 64 0
      src/main/java/com/fdkankan/fusion/entity/MapConfig.java
  34. 3 0
      src/main/java/com/fdkankan/fusion/entity/Model.java
  35. 10 1
      src/main/java/com/fdkankan/fusion/entity/ScenePlus.java
  36. 1 1
      src/main/java/com/fdkankan/fusion/entity/jsonEntity/Transform.java
  37. 1 5
      src/main/java/com/fdkankan/fusion/httpClient/address/LaserAddressSource.java
  38. 19 0
      src/main/java/com/fdkankan/fusion/mapper/ICaseAnimationMapper.java
  39. 18 0
      src/main/java/com/fdkankan/fusion/mapper/ICaseOverviewMapper.java
  40. 19 0
      src/main/java/com/fdkankan/fusion/mapper/ICaseTabulationMapper.java
  41. 19 0
      src/main/java/com/fdkankan/fusion/mapper/IMapConfigMapper.java
  42. 2 2
      src/main/java/com/fdkankan/fusion/mq/consumer/OsgbToB3dmConsumer.java
  43. 10 0
      src/main/java/com/fdkankan/fusion/request/CaseOverviewParam.java
  44. 5 0
      src/main/java/com/fdkankan/fusion/request/FusionParam.java
  45. 9 0
      src/main/java/com/fdkankan/fusion/request/MapParam.java
  46. 11 0
      src/main/java/com/fdkankan/fusion/response/CaseFusionVo.java
  47. 10 0
      src/main/java/com/fdkankan/fusion/response/MapVo.java
  48. 31 1
      src/main/java/com/fdkankan/fusion/response/SceneVo.java
  49. 20 0
      src/main/java/com/fdkankan/fusion/service/ICaseAnimationService.java
  50. 29 0
      src/main/java/com/fdkankan/fusion/service/ICaseOverviewService.java
  51. 2 0
      src/main/java/com/fdkankan/fusion/service/ICasePathService.java
  52. 1 1
      src/main/java/com/fdkankan/fusion/service/ICaseSettingsService.java
  53. 28 0
      src/main/java/com/fdkankan/fusion/service/ICaseTabulationService.java
  54. 2 3
      src/main/java/com/fdkankan/fusion/service/ICaseTagService.java
  55. 2 0
      src/main/java/com/fdkankan/fusion/service/IFusionGuideService.java
  56. 5 1
      src/main/java/com/fdkankan/fusion/service/IFusionNumService.java
  57. 3 1
      src/main/java/com/fdkankan/fusion/service/IHotIconService.java
  58. 20 0
      src/main/java/com/fdkankan/fusion/service/IMapConfigService.java
  59. 1 1
      src/main/java/com/fdkankan/fusion/service/IModelService.java
  60. 4 0
      src/main/java/com/fdkankan/fusion/service/IScenePlusExtService.java
  61. 29 0
      src/main/java/com/fdkankan/fusion/service/impl/CaseAnimationServiceImpl.java
  62. 6 121
      src/main/java/com/fdkankan/fusion/service/impl/CaseNumServiceImpl.java
  63. 84 0
      src/main/java/com/fdkankan/fusion/service/impl/CaseOverviewServiceImpl.java
  64. 7 0
      src/main/java/com/fdkankan/fusion/service/impl/CasePathServiceImpl.java
  65. 25 3
      src/main/java/com/fdkankan/fusion/service/impl/CaseSettingsServiceImpl.java
  66. 84 0
      src/main/java/com/fdkankan/fusion/service/impl/CaseTabulationServiceImpl.java
  67. 5 11
      src/main/java/com/fdkankan/fusion/service/impl/CaseTagServiceImpl.java
  68. 3 3
      src/main/java/com/fdkankan/fusion/service/impl/CommonUploadServiceImpl.java
  69. 2 2
      src/main/java/com/fdkankan/fusion/service/impl/CopyCaseService.java
  70. 17 2
      src/main/java/com/fdkankan/fusion/service/impl/FusionGuideServiceImpl.java
  71. 53 28
      src/main/java/com/fdkankan/fusion/service/impl/FusionNumServiceImpl.java
  72. 36 3
      src/main/java/com/fdkankan/fusion/service/impl/HotIconServiceImpl.java
  73. 31 0
      src/main/java/com/fdkankan/fusion/service/impl/MapConfigServiceImpl.java
  74. 87 6
      src/main/java/com/fdkankan/fusion/service/impl/ModelServiceImpl.java
  75. 0 4
      src/main/java/com/fdkankan/fusion/service/impl/SceneCommonService.java
  76. 23 0
      src/main/java/com/fdkankan/fusion/service/impl/ScenePlusExtServiceImpl.java
  77. 1 1
      src/main/java/com/fdkankan/fusion/service/impl/TmProjectServiceImpl.java
  78. 12 21
      src/main/java/com/fdkankan/fusion/task/InitService.java
  79. 16 0
      src/main/java/com/fdkankan/fusion/task/SettingEntity.java
  80. 1 1
      src/main/resources/application.yml
  81. 5 0
      src/main/resources/mapper/fusion/CaseOverviewMapper.xml
  82. 5 0
      src/main/resources/mapper/fusion/CaseTabulationMapper.xml
  83. 5 0
      src/main/resources/mapper/fusion/ICaseAnimationMapper.xml
  84. 5 0
      src/main/resources/mapper/fusion/IMapConfigMapper.xml

+ 3 - 3
src/main/java/com/fdkankan/fusion/common/FilePath.java

@@ -4,9 +4,9 @@ import com.fdkankan.fusion.config.CacheUtil;
 
 
 public class FilePath {
 public class FilePath {
 
 
-    public final static String LOCAL_BASE_PATH = CacheUtil.basePath;
-    public final static String MNTPATH = CacheUtil.basePath;
-    public final static String MNT_BASE_PATH = CacheUtil.basePath;
+    public final static String LOCAL_BASE_PATH = CacheUtil.settingEntity.getProfilePath();
+    public final static String MNTPATH = CacheUtil.settingEntity.getProfilePath();
+    public final static String MNT_BASE_PATH = CacheUtil.settingEntity.getProfilePath();
     public final static String OBJ_OSS_PATH = "scene_view_data/%s";
     public final static String OBJ_OSS_PATH = "scene_view_data/%s";
     public final static String VIDEO_OSS_PATH = "fusion/%s/video/%s";
     public final static String VIDEO_OSS_PATH = "fusion/%s/video/%s";
     public final static String File_OSS_PATH = "fusion/%s/file/%s";
     public final static String File_OSS_PATH = "fusion/%s/file/%s";

+ 1 - 1
src/main/java/com/fdkankan/fusion/common/OssPath.java

@@ -4,7 +4,7 @@ import com.fdkankan.fusion.config.CacheUtil;
 
 
 public class OssPath {
 public class OssPath {
 
 
-    public final static String localPath = CacheUtil.basePath;
+    public final static String localPath = CacheUtil.settingEntity.getProfilePath();
     public final static String MANAGE_FILE_PATH = "fusion/media-library/file/%s";
     public final static String MANAGE_FILE_PATH = "fusion/media-library/file/%s";
     public final static String MANAGE_MODEL_FILE_PATH = "fusion/media-library/model/%s";
     public final static String MANAGE_MODEL_FILE_PATH = "fusion/media-library/model/%s";
 
 

+ 5 - 1
src/main/java/com/fdkankan/fusion/common/ResultCode.java

@@ -89,7 +89,11 @@ public enum ResultCode {
     SPACE_ERROR(8035, "获取磁盘空间失败"),
     SPACE_ERROR(8035, "获取磁盘空间失败"),
     USE_SPACE_ERROR(8036, "磁盘空间不足"),
     USE_SPACE_ERROR(8036, "磁盘空间不足"),
     SCENE_DOWN_ERROR(8037, "场景下载失败"),
     SCENE_DOWN_ERROR(8037, "场景下载失败"),
-    CASE_DOWN_ERROR(8038, "场景计算中/计算失败,无法打包。");
+    CASE_DOWN_ERROR(8038, "场景计算中/计算失败,无法打包。"),
+
+    RECORD_NOT_EXIST(8039,"记录不存在" )
+
+    ;
 
 
 
 
 
 

+ 21 - 0
src/main/java/com/fdkankan/fusion/common/util/CameraUtil.java

@@ -10,4 +10,25 @@ public class CameraUtil {
             default: return "八目";
             default: return "八目";
         }
         }
     }
     }
+
+
+    /**
+     * 现勘一号             SS
+     * 现勘二号             SG
+     * 现勘三号             KJ
+     * 现勘补拍仪           YZL
+     * 四维看看
+     */
+    public static String getSourceName(Integer type) {
+        switch (type){
+            case 1: return "现勘三号/Mesh";
+            case 2: return "现勘一号/点云";
+            case 4: return "现勘一号/Mesh";
+            case 5: return "现勘二号/点云";
+            case 6: return "现勘二号/Mesh";
+            case 7: return "现勘补拍仪";
+            case 3: return "媒体库";
+            default: return "四维看看/Mesh";
+        }
+    }
 }
 }

+ 0 - 7
src/main/java/com/fdkankan/fusion/common/util/DateUtils.java

@@ -96,11 +96,4 @@ public class DateUtils {
         long timeMillis = System.currentTimeMillis();
         long timeMillis = System.currentTimeMillis();
         return format + "_" + timeMillis + "_";
         return format + "_" + timeMillis + "_";
     }
     }
-
-    public static void main(String[] args) {
-        String timeKey = DateUtils.dateStr();
-
-        System.out.println(timeKey);
-    }
-
 }
 }

+ 1 - 1
src/main/java/com/fdkankan/fusion/common/util/FileWriterUtil.java

@@ -123,7 +123,7 @@ public class FileWriterUtil {
 
 
 
 
     public static void checkSpace(Long fileSize, Double i) {
     public static void checkSpace(Long fileSize, Double i) {
-        Path path = Paths.get(CacheUtil.basePath);
+        Path path = Paths.get(CacheUtil.settingEntity.getProfilePath());
         try {
         try {
             FileStore store = Files.getFileStore(path);
             FileStore store = Files.getFileStore(path);
             long canUseSpace = store.getTotalSpace() - store.getUsableSpace();
             long canUseSpace = store.getTotalSpace() - store.getUsableSpace();

+ 3 - 3
src/main/java/com/fdkankan/fusion/common/util/LocalToOssUtil.java

@@ -31,7 +31,7 @@ public class LocalToOssUtil {
         if(p.isAbsolute()){
         if(p.isAbsolute()){
             return filePath;
             return filePath;
         }
         }
-        return CacheUtil.basePath.concat(bucket).concat(File.separator).concat(filePath);
+        return CacheUtil.settingEntity.getProfilePath().concat(bucket).concat(File.separator).concat(filePath);
 
 
     }
     }
 
 
@@ -40,7 +40,7 @@ public class LocalToOssUtil {
         if(p.isAbsolute()){
         if(p.isAbsolute()){
             return filePath;
             return filePath;
         }
         }
-        return CacheUtil.basePath.concat(bucket).concat(File.separator).concat(filePath);
+        return CacheUtil.settingEntity.getProfilePath().concat(bucket).concat(File.separator).concat(filePath);
 
 
     }
     }
 
 
@@ -104,7 +104,7 @@ public class LocalToOssUtil {
 
 
     public List<String> listKeysFromAli(String sourcePath) {
     public List<String> listKeysFromAli(String sourcePath) {
         return FileUtil.loopFiles(getOssPath(bucket, sourcePath)).stream()
         return FileUtil.loopFiles(getOssPath(bucket, sourcePath)).stream()
-                .map(f -> f.getAbsolutePath().replace(CacheUtil.basePath.concat(bucket).concat(File.separator), ""))
+                .map(f -> f.getAbsolutePath().replace(CacheUtil.settingEntity.getProfilePath().concat(bucket).concat(File.separator), ""))
                 .collect(Collectors.toList());
                 .collect(Collectors.toList());
     }
     }
 
 

+ 51 - 0
src/main/java/com/fdkankan/fusion/common/util/NumTypeUtils.java

@@ -0,0 +1,51 @@
+package com.fdkankan.fusion.common.util;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class NumTypeUtils {
+
+    public static Boolean isLaser(Integer type){
+        switch (type){
+            case 0:
+            case 1:
+            case 3:
+            case 4:
+            case 6:
+                return false;
+            case 2:
+            case 5:
+                return true;
+        }
+        return false;
+    }
+
+
+    public static List<Integer> getTypeBySceneSource(Integer sceneSource, String three) {
+        switch (sceneSource){
+            case 3 : return  Arrays.asList(1);
+            case 4 : return  Arrays.asList(2,4);
+            case 5 : return  Arrays.asList(5,6);
+            default:
+                if(StringUtils.isNotBlank(three) && "yzl".equals(three)){
+                    return Arrays.asList(7);
+                }
+                return Arrays.asList(0);
+        }
+    }
+
+    public static Integer getMeshTypeBySceneSource(Integer sceneSource,Integer isObj, String three) {
+        switch (sceneSource){
+            case 3 : return  1;
+            case 4 : return  isObj ==1 ? 4 :2;
+            case 5 : return   isObj ==1 ? 6 :5;
+            default:
+                if(StringUtils.isNotBlank(three) && "yzl".equals(three)){
+                    return 7;
+                }
+                return 0;
+        }
+    }
+}

+ 6 - 7
src/main/java/com/fdkankan/fusion/common/util/ShellCmd.java

@@ -14,18 +14,17 @@ public class ShellCmd {
 	public static final String FYUN_UPLOAD = "bash /opt/ossutil/fyun-upload.sh %s %s /%s %s %s";
 	public static final String FYUN_UPLOAD = "bash /opt/ossutil/fyun-upload.sh %s %s /%s %s %s";
 	public static final String FYUN_DOWN = "bash /opt/ossutil/fyun-download.sh %s /%s %s %s %s";
 	public static final String FYUN_DOWN = "bash /opt/ossutil/fyun-download.sh %s /%s %s %s %s";
 
 
-	public static String base_cmd = CacheUtil.installPath + File.separator +"CGAII" +File.separator ;
 
 
 	//7za.exe  x -y  xxx.zip
 	//7za.exe  x -y  xxx.zip
-	public static String unzip_cmd = base_cmd + "7z"+File.separator+ "7za.exe  x -y -p %s -o%s" ;
+	public static String unzip_cmd = CacheUtil.settingEntity.getBinPath()+ File.separator + "7z"+File.separator+ "7za.exe  x -y -p %s -o%s" ;
 
 
-	public static String obj2glb_cmd =base_cmd + "obj2gltf.exe -i %s -o %s";
+	public static String obj2glb_cmd =CacheUtil.settingEntity.getBinPath()+ File.separator + "obj2gltf.exe -i %s -o %s";
 
 
-	public  static String LAS_TO_BIN = base_cmd +"PotreeConverter.bat %s %s ''";
+	public  static String LAS_TO_BIN = CacheUtil.settingEntity.getBinPath()+ File.separator +"PotreeConverter.bat %s %s ''";
 
 
-	public static  String osgbTob3dmCmd = base_cmd +"3dtile"+File.separator  + "3dtile.exe -f osgb -i " +
+	public static  String osgbTob3dmCmd = CacheUtil.settingEntity.getBinPath()+ File.separator +"3dtile"+File.separator  + "3dtile.exe -f osgb -i " +
 			"%s -o %s";
 			"%s -o %s";
-	public static  String osgbTob3dmCmd2 = base_cmd +"3dtile"+File.separator  + "ConvertApp.exe  -f OSGB -m false -i " +
+	public static  String osgbTob3dmCmd2 = CacheUtil.settingEntity.getBinPath()+ File.separator +"3dtile"+File.separator  + "ConvertApp.exe  -f OSGB -m false -i " +
 			"%s -o %s";
 			"%s -o %s";
-	public static  String ffmpegCmd = base_cmd   + "ffmpeg.exe ";
+	public static  String ffmpegCmd = CacheUtil.settingEntity.getBinPath()+ File.separator   + "ffmpeg.exe ";
 }
 }

+ 5 - 4
src/main/java/com/fdkankan/fusion/config/CacheUtil.java

@@ -1,16 +1,17 @@
 package com.fdkankan.fusion.config;
 package com.fdkankan.fusion.config;
 
 
+import com.fdkankan.fusion.task.SettingEntity;
+import org.apache.xmlbeans.impl.xb.xsdschema.Public;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
 
 
 import java.io.File;
 import java.io.File;
 
 
 public class CacheUtil {
 public class CacheUtil {
+
+    public static SettingEntity settingEntity;
     public static String uploadType;
     public static String uploadType;
 
 
-    public static String basePath;
     public static String mapping;
     public static String mapping;
-    public static String installPath;
-
-    public static Boolean ga = false;
+    public static String settingPath;
 
 
 }
 }

+ 55 - 0
src/main/java/com/fdkankan/fusion/controller/CaseAnimationController.java

@@ -0,0 +1,55 @@
+package com.fdkankan.fusion.controller;
+
+
+import com.fdkankan.fusion.common.ResultCode;
+import com.fdkankan.fusion.common.ResultData;
+import com.fdkankan.fusion.entity.CaseAnimation;
+import com.fdkankan.fusion.exception.BusinessException;
+import com.fdkankan.fusion.request.CaseParam;
+import com.fdkankan.fusion.service.ICaseAnimationService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2025-03-26
+ */
+@RestController
+@RequestMapping("/caseAnimation")
+public class CaseAnimationController {
+
+    @Autowired
+    ICaseAnimationService caseAnimationService;
+
+
+    @GetMapping("/list")
+    public ResultData allList(@RequestParam(required = false) Integer fusionId){
+        if(fusionId == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        return ResultData.ok(caseAnimationService.getListByFusionId(fusionId));
+    }
+
+    @PostMapping("/addOrUpdate")
+    public ResultData addOrUpdate(@RequestBody CaseAnimation caseAnimation){
+        if(caseAnimation.getFusionId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        caseAnimationService.saveOrUpdate(caseAnimation);
+        return ResultData.ok(caseAnimation);
+    }
+
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody CaseAnimation caseAnimation){
+        if(caseAnimation.getId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        caseAnimationService.removeById(caseAnimation.getId());
+        return ResultData.ok();
+    }
+}
+

+ 12 - 4
src/main/java/com/fdkankan/fusion/controller/CaseController.java

@@ -3,6 +3,8 @@ package com.fdkankan.fusion.controller;
 
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.fusion.common.PageInfo;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.entity.CaseNumEntity;
 import com.fdkankan.fusion.entity.CaseNumEntity;
 import com.fdkankan.fusion.entity.ScenePlus;
 import com.fdkankan.fusion.entity.ScenePlus;
@@ -12,10 +14,7 @@ import com.fdkankan.fusion.common.ResultData;
 import com.fdkankan.fusion.entity.CaseEntity;
 import com.fdkankan.fusion.entity.CaseEntity;
 import com.fdkankan.fusion.request.CaseParam;
 import com.fdkankan.fusion.request.CaseParam;
 import com.fdkankan.fusion.response.CaseVo;
 import com.fdkankan.fusion.response.CaseVo;
-import com.fdkankan.fusion.service.ICaseNumService;
-import com.fdkankan.fusion.service.ICaseService;
-import com.fdkankan.fusion.service.IScenePlusService;
-import com.fdkankan.fusion.service.ITmProjectService;
+import com.fdkankan.fusion.service.*;
 import com.fdkankan.fusion.service.impl.CopyCaseService;
 import com.fdkankan.fusion.service.impl.CopyCaseService;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +38,8 @@ public class CaseController extends BaseController{
     @Autowired
     @Autowired
     CopyCaseService copyCaseService;
     CopyCaseService copyCaseService;
     @Autowired
     @Autowired
+    ICaseFusionService caseFusionService;
+    @Autowired
     ICaseNumService caseNumService;
     ICaseNumService caseNumService;
     @Autowired
     @Autowired
     IScenePlusService scenePlusService;
     IScenePlusService scenePlusService;
@@ -48,6 +49,13 @@ public class CaseController extends BaseController{
         return ResultData.ok(caseService.pageList(param));
         return ResultData.ok(caseService.pageList(param));
     }
     }
 
 
+    @PostMapping("/sceneListPost")
+    public ResultData sceneListPost(@RequestBody CaseParam param ){
+        Page<ScenePlus> page = scenePlusService.page(new Page<>(param.getPageNum(),param.getPageSize()));
+        return ResultData.ok(PageInfo.PageInfo(page));
+
+    }
+
     /**
     /**
      * 案件关联场景数据
      * 案件关联场景数据
      */
      */

+ 113 - 10
src/main/java/com/fdkankan/fusion/controller/CaseFusionController.java

@@ -1,23 +1,27 @@
 package com.fdkankan.fusion.controller;
 package com.fdkankan.fusion.controller;
 
 
 
 
+import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.ResultData;
 import com.fdkankan.fusion.common.ResultData;
-import com.fdkankan.fusion.entity.CaseFusion;
-import com.fdkankan.fusion.entity.FusionNum;
+import com.fdkankan.fusion.common.util.CameraUtil;
+import com.fdkankan.fusion.entity.*;
+import com.fdkankan.fusion.entity.jsonEntity.Transform;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.request.FusionParam;
 import com.fdkankan.fusion.request.FusionParam;
-import com.fdkankan.fusion.service.ICaseFusionService;
-import com.fdkankan.fusion.service.ICaseTagPointService;
-import com.fdkankan.fusion.service.IFusionMeterService;
-import com.fdkankan.fusion.service.IFusionNumService;
+import com.fdkankan.fusion.response.FusionNumVo;
+import com.fdkankan.fusion.response.SceneVo;
+import com.fdkankan.fusion.service.*;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -39,17 +43,58 @@ public class CaseFusionController extends BaseController{
     IFusionMeterService fusionMeterService;
     IFusionMeterService fusionMeterService;
     @Autowired
     @Autowired
     ICaseTagPointService caseTagPointService;
     ICaseTagPointService caseTagPointService;
-
+    @Autowired
+    IModelService modelService;
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    IScenePlusExtService scenePlusExtService;
     @GetMapping("/list")
     @GetMapping("/list")
-    public ResultData allList(@RequestParam(required = false) Integer caseId){
-        return ResultData.ok(fusionNumService.getListByCaseId(caseId,null));
+    public ResultData allList(@RequestParam(required = false) Integer fusionId){
+        return ResultData.ok(getSceneListVo(fusionId));
+    }
+
+    @GetMapping("/info")
+    public ResultData info(@RequestParam(required = false) Integer fusionId){
+        CaseFusion caseFusion = caseFusionService.getById(fusionId);
+        if(caseFusion == null){
+            throw new BusinessException(ResultCode.RECORD_NOT_EXIST);
+        }
+        return ResultData.ok(caseFusion);
     }
     }
 
 
     @PostMapping("/add")
     @PostMapping("/add")
     public ResultData add(@RequestBody FusionParam param){
     public ResultData add(@RequestBody FusionParam param){
-        return ResultData.ok(fusionNumService.add(param));
+        if( param.getFusionId() == null ){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        if((param.getIsObj() == null || StringUtils.isBlank(param.getNum())) && param.getUploadId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        ScenePlus scenePlus = scenePlusService.getByNum(param.getNum());
+        ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
+        scenePlus.setScenePlusExt(scenePlusExt);
+        return ResultData.ok(fusionNumService.add(param,scenePlus,param.getIsObj()));
+    }
+
+    @PostMapping("/updateInfo")
+    public ResultData updateInfo(@RequestBody CaseFusion caseFusion){
+        if(caseFusion.getFusionId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        caseFusion.setUpdateTime(null);
+        caseFusionService.updateById(caseFusion);
+        return ResultData.ok();
     }
     }
 
 
+    @PostMapping("/delFusion")
+    public ResultData delFusion(@RequestBody CaseFusion caseFusion){
+        if(caseFusion.getFusionId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        caseFusionService.removeById(caseFusion.getFusionId());
+        return ResultData.ok();
+    }
     /**
     /**
      * 修改模型相关信息
      * 修改模型相关信息
      */
      */
@@ -67,5 +112,63 @@ public class CaseFusionController extends BaseController{
         fusionNumService.deleteById(param.getFusionNumId());
         fusionNumService.deleteById(param.getFusionNumId());
         return ResultData.ok();
         return ResultData.ok();
     }
     }
+
+
+    private List<FusionNumVo> getSceneListVo(Integer fusionId) {
+        List<FusionNumVo> sceneVos = new ArrayList<>();
+        List<FusionNum> fusionNumList = fusionNumService.getByFusionId(fusionId);
+
+        List<Integer> modelIds = fusionNumList.stream().map(FusionNum::getModelId).collect(Collectors.toList());
+        List<Model> listByModelIds = modelService.getListByModelIds(modelIds);
+        HashMap<Integer,Model> modelMap = new HashMap<>();
+        listByModelIds.stream().forEach(e -> modelMap.put(e.getModelId(),e));
+
+
+        List<String> numList = listByModelIds.stream().filter(e -> e.getNum() != null).map(Model::getNum).collect(Collectors.toList());
+        List<ScenePlus> scenePlusList = scenePlusService.getByNumList(numList);
+        HashMap<String,ScenePlus> map = new HashMap<>();
+        scenePlusList.stream().forEach(e -> map.put(e.getNum(),e));
+
+        List<Long> plusIds = scenePlusList.stream().map(ScenePlus::getId).collect(Collectors.toList());
+        List<ScenePlusExt> extList = scenePlusExtService.getByPlusIds(plusIds);
+        HashMap<Long,ScenePlusExt> mapext = new HashMap<>();
+        extList.stream().forEach(e -> mapext.put(e.getPlusId(),e));
+
+
+        for (FusionNum fusionNum : fusionNumList) {
+            Transform transform = JSONObject.parseObject(fusionNum.getTransform(),Transform.class);
+            FusionNumVo vo = new FusionNumVo();
+            vo.setTransform(transform);
+            BeanUtils.copyProperties(fusionNum,vo);
+            SceneVo sceneVo = new SceneVo();
+            Model model = modelMap.get(fusionNum.getModelId());
+            if(model != null){
+                BeanUtils.copyProperties(model,sceneVo);
+                if(model.getNum() != null ){
+                    ScenePlus scenePlus = map.get(model.getNum());
+                    if(scenePlus != null){
+                        BeanUtils.copyProperties(scenePlus,sceneVo);
+                        sceneVo.setStatus(scenePlus.getSceneStatus() == -2 ? 2:scenePlus.getSceneStatus());
+                        sceneVo.setName(scenePlus.getTitle());
+                        sceneVo.setSceneName(scenePlus.getTitle());
+                        sceneVo.setCreateTime(scenePlus.getCreateTime());
+                        ScenePlusExt scenePlusExt = mapext.get(scenePlus.getId());
+                        if(scenePlusExt != null){
+                            sceneVo.setRtkLocation(scenePlusExt.getRtkLocation());
+                            sceneVo.setOrientation(scenePlusExt.getOrientation());
+                        }
+                    }
+                }else {
+                    sceneVo.setStatus(2);
+                }
+                sceneVo.setSourceName(CameraUtil.getSourceName(model.getType()));
+            }
+            vo.setSceneData(sceneVo);
+            sceneVos.add(vo);
+        }
+
+        return sceneVos;
+    }
+
 }
 }
 
 

+ 92 - 0
src/main/java/com/fdkankan/fusion/controller/CaseOverviewController.java

@@ -0,0 +1,92 @@
+package com.fdkankan.fusion.controller;
+
+
+import cn.hutool.core.date.DateUtil;
+import com.fdkankan.fusion.common.ResultCode;
+import com.fdkankan.fusion.common.ResultData;
+import com.fdkankan.fusion.entity.CaseEntity;
+import com.fdkankan.fusion.entity.CaseOverview;
+import com.fdkankan.fusion.entity.CaseTabulation;
+import com.fdkankan.fusion.exception.BusinessException;
+import com.fdkankan.fusion.request.CaseOverviewParam;
+import com.fdkankan.fusion.service.ICaseOverviewService;
+import com.fdkankan.fusion.service.ICaseService;
+import com.fdkankan.fusion.service.ICaseTabulationService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2025-05-13
+ */
+@RestController
+@RequestMapping("/caseOverview")
+public class CaseOverviewController extends BaseController{
+
+    @Autowired
+    ICaseOverviewService caseOverviewService;
+    @Autowired
+    ICaseService caseService;
+    @Autowired
+    ICaseTabulationService caseTabulationService;
+
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody CaseOverviewParam param) {
+
+        return ResultData.ok(caseOverviewService.pageList(param));
+    }
+
+    @GetMapping("/info")
+    public ResultData info(@RequestParam(required = false) Integer overviewId,
+                           @RequestParam(required = false) String num,
+                           @RequestParam(required = false, defaultValue = "0") Integer subGroup) {
+        CaseOverview caseOverview = null;
+        if (overviewId != null) {
+             caseOverview = caseOverviewService.getById(overviewId);
+        }
+        if (StringUtils.isNotBlank(num)) {
+            caseOverview = caseOverviewService.getByNumAndSubGroup(num, subGroup);
+        }
+        return ResultData.ok(caseOverview);
+    }
+
+    @PostMapping("/addOrUpdate")
+    public ResultData addOrUpdate(@RequestBody CaseOverview caseOverview) {
+        CaseTabulation caseTabulation = new CaseTabulation();
+        if(StringUtils.isNotBlank(caseOverview.getNum()) && caseOverview.getSubGroup() == null){
+            caseOverview.setSubGroup(0);
+        }
+        if(caseOverview.getId() ==null && StringUtils.isBlank(caseOverview.getTitle())){
+            Long no = caseOverviewService.count();
+            String title = "平面图"+ DateUtil.format(new Date(),"yyyyMMdd")+"_"+no +1;
+            caseOverview.setTitle(title);
+        }
+        caseOverviewService.saveOrUpdate(caseOverview);
+        if (caseOverview.getCaseTabulation() != null) {
+            caseTabulation = caseOverview.getCaseTabulation();
+        }
+        caseTabulation.setListCover(caseOverview.getListCover());
+        caseTabulation.setOverviewId(caseOverview.getId());
+        caseTabulation.setCaseId(caseOverview.getCaseId());
+        caseTabulation.setTitle(caseOverview.getTitle());
+        caseTabulationService.addOrUpdate(caseTabulation);
+
+        return ResultData.ok(caseOverview);
+    }
+
+    @PostMapping("/del")
+    public ResultData del(@RequestBody CaseOverview caseOverview) {
+        caseOverviewService.removeById(caseOverview.getId());
+        return ResultData.ok();
+    }
+
+}
+

+ 6 - 3
src/main/java/com/fdkankan/fusion/controller/CasePathController.java

@@ -27,15 +27,18 @@ public class CasePathController {
 
 
 
 
     @GetMapping("/info")
     @GetMapping("/info")
-    public ResultData info(@RequestParam(required = false) Integer caseId){
-        if(caseId == null){
+    public ResultData info(@RequestParam(required = false) Integer fusionId){
+        if(fusionId == null){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
-        return ResultData.ok(casePathService.getByCaseId(caseId));
+        return ResultData.ok(casePathService.getByFusionId(fusionId));
     }
     }
 
 
     @PostMapping("/saveOrUpdate")
     @PostMapping("/saveOrUpdate")
     public ResultData saveOrUpdate(@RequestBody CasePath casePath){
     public ResultData saveOrUpdate(@RequestBody CasePath casePath){
+        if(casePath.getFusionId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
         casePathService.saveOrUpdate(casePath);
         casePathService.saveOrUpdate(casePath);
         return ResultData.ok(casePath);
         return ResultData.ok(casePath);
     }
     }

+ 4 - 4
src/main/java/com/fdkankan/fusion/controller/CaseSettingsController.java

@@ -29,11 +29,11 @@ public class CaseSettingsController {
     ICaseSettingsService caseSettingsService;
     ICaseSettingsService caseSettingsService;
 
 
     @GetMapping("/info")
     @GetMapping("/info")
-    public ResultData info(@RequestParam(required = false) Integer caseId){
-        if(caseId == null){
+    public ResultData info(@RequestParam(required = false) Integer fusionId){
+        if(fusionId == null){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
-        return ResultData.ok(caseSettingsService.getByCaseId(caseId));
+        return ResultData.ok(caseSettingsService.getByFusionId(fusionId));
     }
     }
 
 
 
 
@@ -43,7 +43,7 @@ public class CaseSettingsController {
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
         if(caseSettings.getSettingsId() == null ){
         if(caseSettings.getSettingsId() == null ){
-            List<CaseSettings> list = caseSettingsService.getByCaseId(caseSettings.getCaseId());
+            List<CaseSettings> list = caseSettingsService.getByFusionId(caseSettings.getFusionId());
             if(list.size() >0){
             if(list.size() >0){
                 throw new BusinessException(ResultCode.CASE_HAVE_SETTINGS);
                 throw new BusinessException(ResultCode.CASE_HAVE_SETTINGS);
             }
             }

+ 74 - 0
src/main/java/com/fdkankan/fusion/controller/CaseTabulationController.java

@@ -0,0 +1,74 @@
+package com.fdkankan.fusion.controller;
+
+
+import cn.hutool.core.date.DateUtil;
+import com.fdkankan.fusion.common.ResultData;
+import com.fdkankan.fusion.entity.CaseTabulation;
+import com.fdkankan.fusion.request.CaseOverviewParam;
+import com.fdkankan.fusion.service.ICaseOverviewService;
+import com.fdkankan.fusion.service.ICaseService;
+import com.fdkankan.fusion.service.ICaseTabulationService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2025-05-13
+ */
+@RestController
+@RequestMapping("/caseTabulation")
+@Slf4j
+public class CaseTabulationController extends BaseController{
+
+
+    @Autowired
+    ICaseTabulationService caseTabulationService;
+    @Autowired
+    ICaseService caseService;
+    @Autowired
+    ICaseOverviewService caseOverviewService;
+
+    @PostMapping("/list")
+    public ResultData list(@RequestBody CaseOverviewParam param) {
+
+        return ResultData.ok(caseTabulationService.pageList(param));
+    }
+
+    @GetMapping("/info")
+    public ResultData info (@RequestParam (required = false) String tabulationId){
+        CaseTabulation caseTabulation = caseTabulationService.getById(tabulationId);
+        return ResultData.ok(caseTabulation);
+    }
+
+    @GetMapping("/getByOverviewId")
+    public ResultData getByOverviewId (@RequestParam(required = false) String overviewId){
+        return ResultData.ok(caseTabulationService.getByOverviewId(overviewId));
+    }
+
+    @PostMapping("/addOrUpdate")
+    public ResultData addOrUpdate (@RequestBody CaseTabulation caseTabulation){
+
+        if(caseTabulation.getId() == null && StringUtils.isBlank(caseTabulation.getTitle())){
+            Long no = caseTabulationService.count();
+            String title = "方位图"+ DateUtil.format(new Date(),"yyyyMMdd")+"_"+no +1;
+            caseTabulation.setTitle(title);
+        }
+        caseTabulationService.addOrUpdate(caseTabulation);
+        return ResultData.ok(caseTabulation);
+    }
+
+    @PostMapping("/del")
+    public ResultData del (@RequestBody CaseTabulation caseTabulation){
+        caseTabulationService.removeById(caseTabulation.getId());
+        return ResultData.ok();
+    }
+}
+

+ 2 - 2
src/main/java/com/fdkankan/fusion/controller/CaseTagController.java

@@ -47,9 +47,9 @@ public class CaseTagController {
     }
     }
 
 
     @GetMapping("/allList")
     @GetMapping("/allList")
-    public ResultData allList(@RequestParam(required = false) Integer caseId,
+    public ResultData allList(@RequestParam(required = false) Integer fusionId,
                               @RequestParam(required = false)String tagTitle){
                               @RequestParam(required = false)String tagTitle){
-        return ResultData.ok(caseTagService.allList(caseId,tagTitle));
+        return ResultData.ok(caseTagService.allListFusionId(fusionId,tagTitle));
     }
     }
 
 
     @PostMapping("/delete")
     @PostMapping("/delete")

+ 5 - 15
src/main/java/com/fdkankan/fusion/controller/FusionGuideController.java

@@ -27,11 +27,11 @@ public class FusionGuideController {
     IFusionGuideService fusionGuideService;
     IFusionGuideService fusionGuideService;
 
 
     @GetMapping("/allList")
     @GetMapping("/allList")
-    public ResultData allList(@RequestParam(required = false) Integer caseId){
-        if(caseId == null){
+    public ResultData allList(@RequestParam(required = false) Integer fusionId){
+        if(fusionId == null){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
-        return ResultData.ok(fusionGuideService.getAllList(caseId));
+        return ResultData.ok(fusionGuideService.getByFusionId(fusionId));
     }
     }
 
 
     @PostMapping("/add")
     @PostMapping("/add")
@@ -44,18 +44,8 @@ public class FusionGuideController {
                 (fusionGuide.getSort() == null && StringUtils.isEmpty(fusionGuide.getTitle()) && StringUtils.isEmpty(fusionGuide.getCover())  )){
                 (fusionGuide.getSort() == null && StringUtils.isEmpty(fusionGuide.getTitle()) && StringUtils.isEmpty(fusionGuide.getCover())  )){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
-        LambdaUpdateWrapper<FusionGuide> wrapper = new LambdaUpdateWrapper<>();
-        wrapper.eq(FusionGuide::getFusionGuideId,fusionGuide.getFusionGuideId());
-        if(fusionGuide.getSort()!=null){
-            wrapper.set(FusionGuide::getSort,fusionGuide.getSort());
-        }
-        if(StringUtils.isNotBlank(fusionGuide.getTitle())){
-            wrapper.set(FusionGuide::getTitle,fusionGuide.getTitle());
-        }
-        if(StringUtils.isNotBlank(fusionGuide.getCover())){
-            wrapper.set(FusionGuide::getCover,fusionGuide.getCover());
-        }
-        fusionGuideService.update(wrapper);
+        fusionGuide.setUpdateTime(null);
+        fusionGuideService.updateById(fusionGuide);
         return ResultData.ok();
         return ResultData.ok();
     }
     }
 
 

+ 2 - 9
src/main/java/com/fdkankan/fusion/controller/FusionGuidePathController.java

@@ -47,15 +47,8 @@ public class FusionGuidePathController {
                 (fusionGuidePath.getSort() == null && StringUtils.isEmpty(fusionGuidePath.getCover())) ){
                 (fusionGuidePath.getSort() == null && StringUtils.isEmpty(fusionGuidePath.getCover())) ){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
-        LambdaUpdateWrapper<FusionGuidePath> wrapper = new LambdaUpdateWrapper<>();
-        wrapper.eq(FusionGuidePath::getGuidePathId,fusionGuidePath.getGuidePathId());
-        if(fusionGuidePath.getSort()!=null){
-            wrapper.set(FusionGuidePath::getSort,fusionGuidePath.getSort());
-        }
-        if(StringUtils.isNotBlank(fusionGuidePath.getCover())){
-            wrapper.set(FusionGuidePath::getCover,fusionGuidePath.getCover());
-        }
-        fusionGuidePathService.update(wrapper);
+        fusionGuidePath.setUpdateTime(null);
+        fusionGuidePathService.updateById(fusionGuidePath);
         return ResultData.ok();
         return ResultData.ok();
     }
     }
 
 

+ 22 - 7
src/main/java/com/fdkankan/fusion/controller/HotIconController.java

@@ -40,18 +40,33 @@ public class HotIconController extends BaseController{
     private String environment;
     private String environment;
 
 
     @GetMapping("/list")
     @GetMapping("/list")
-    public ResultData list(@RequestParam(required = false) Integer caseId){
-        if(caseId!=null){
-            return ResultData.ok(hotIconService.getListByCaseId(caseId));
+    public ResultData list(@RequestParam(required = false) Integer fusionId){
+        if(fusionId!=null){
+            return ResultData.ok(hotIconService.getListByFusionId(fusionId));
         }
         }
         return ResultData.ok(hotIconService.getListByUserName(getUserName()));
         return ResultData.ok(hotIconService.getListByUserName(getUserName()));
     }
     }
 
 
+    @GetMapping("/treeList")
+    public ResultData listTree(@RequestParam(required = false) Integer fusionId){
+        List<HotIcon> iconList ;
+        if(fusionId!=null){
+            iconList = hotIconService.getListByFusionId(fusionId);
+        }else {
+            iconList = hotIconService.getListByUserName(getUserName());
+        }
+        List<HotIcon> treeList = hotIconService.treeList(iconList);
+
+        return ResultData.ok(treeList);
+    }
+
     @PostMapping("/add")
     @PostMapping("/add")
     public ResultData add(@RequestParam(required = false) MultipartFile file,
     public ResultData add(@RequestParam(required = false) MultipartFile file,
                           @RequestParam(required = false) String iconTitle,
                           @RequestParam(required = false) String iconTitle,
-                          @RequestParam(required = false) Integer caseId) throws IOException {
-        if(file==null || StringUtils.isEmpty(iconTitle)){
+                          @RequestParam(required = false) Integer fusionId,
+                          @RequestParam(required = false,defaultValue = "279") Integer parentId) throws IOException {
+
+        if(file==null || StringUtils.isEmpty(iconTitle) || fusionId == null){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
 
 
@@ -60,8 +75,8 @@ public class HotIconController extends BaseController{
         HotIcon hotIcon = new HotIcon();
         HotIcon hotIcon = new HotIcon();
         hotIcon.setIconTitle(iconTitle);
         hotIcon.setIconTitle(iconTitle);
         hotIcon.setIconUrl(iconUrl);
         hotIcon.setIconUrl(iconUrl);
-        hotIcon.setCaseId(caseId);
-        //hotIcon.setUserName(username);
+        hotIcon.setFusionId(fusionId);
+        hotIcon.setParentId(parentId);
         if(StringUtils.isEmpty(hotIcon.getIconUrl())){
         if(StringUtils.isEmpty(hotIcon.getIconUrl())){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }

+ 77 - 0
src/main/java/com/fdkankan/fusion/controller/MapConfigController.java

@@ -0,0 +1,77 @@
+package com.fdkankan.fusion.controller;
+
+
+import cn.hutool.core.util.URLUtil;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.fusion.common.ResultCode;
+import com.fdkankan.fusion.common.ResultData;
+import com.fdkankan.fusion.entity.MapConfig;
+import com.fdkankan.fusion.exception.BusinessException;
+import com.fdkankan.fusion.request.MapParam;
+import com.fdkankan.fusion.response.MapVo;
+import com.fdkankan.fusion.service.IMapConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2024-12-10
+ */
+@RestController
+@RequestMapping("/mapConfig")
+@Slf4j
+public class MapConfigController {
+
+
+    @Autowired
+    IMapConfigService mapConfigService;
+
+    @PostMapping("/geocode")
+    public ResultData geocode(@RequestBody MapParam param){
+        if(param.getMapId() == null || StringUtils.isBlank(param.getAddress())){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        MapConfig mapConfig = mapConfigService.getById(param.getMapId());
+        if(mapConfig == null || mapConfig.getGeocodeUrl() == null){
+            throw new BusinessException(ResultCode.RECORD_NOT_EXIST);
+        }
+        try {
+            String url = mapConfig.getGeocodeUrl().replace("{address}",param.getAddress());
+            String s = HttpUtil.get(url);
+            JSONObject jsonObject = JSON.parseObject(s);
+            JSONArray jsonArray = jsonObject.getJSONArray(mapConfig.getRespListKey());
+            List<MapVo> mapVos = new ArrayList<>();
+            for (Object object : jsonArray) {
+                JSONObject jsonObject1 = (JSONObject) object;
+                MapVo vo = new MapVo();
+                vo.setLocation(jsonObject1.getString(mapConfig.getRespLocationKey()));
+                vo.setAddress(jsonObject1.getString(mapConfig.getRespAddressKey()));
+                vo.setName(jsonObject1.getString(mapConfig.getRespNameKey()));
+                mapVos.add(vo);
+            }
+            return ResultData.ok(mapVos);
+        }catch ( Exception e){
+            log.info("map-error:{}",e);
+        }
+
+        return ResultData.ok();
+    }
+
+    public static void main(String[] args) {
+        String s = HttpUtil.get("https://restapi.amap.com/v3/place/text?keywords={address}&offset=20&page=1&key=3609daa52e8ae4493393292213e2fb98&extensions=base");
+
+    }
+}
+

+ 4 - 4
src/main/java/com/fdkankan/fusion/down/CaseDownService.java

@@ -245,7 +245,7 @@ public class CaseDownService {
         jsonObject.put(basePath+inquestInfoUrl+caseId, ResultData.ok(caseInquestInfoService.getByCaseId(caseId)));
         jsonObject.put(basePath+inquestInfoUrl+caseId, ResultData.ok(caseInquestInfoService.getByCaseId(caseId)));
         jsonObject.put(basePath+caseInfo+caseId, ResultData.ok(caseService.getInfo(caseId)));
         jsonObject.put(basePath+caseInfo+caseId, ResultData.ok(caseService.getInfo(caseId)));
 
 
-        List<CaseSettings> caseSettings = caseSettingsService.getByCaseId(caseId);
+        List<CaseSettings> caseSettings = caseSettingsService.getByFusionId(caseId);
         jsonObject.put(basePath+caseSettingsInfo+caseId, ResultData.ok(caseSettings));
         jsonObject.put(basePath+caseSettingsInfo+caseId, ResultData.ok(caseSettings));
         for (CaseSettings caseSetting : caseSettings) {
         for (CaseSettings caseSetting : caseSettings) {
             downResource(caseId,caseSetting.getBack(),caseOffPath);
             downResource(caseId,caseSetting.getBack(),caseOffPath);
@@ -351,13 +351,13 @@ public class CaseDownService {
 
 
         jsonObject.put(basePath+caseFilesType+caseId, ResultData.ok(caseFilesTypeService.list()));
         jsonObject.put(basePath+caseFilesType+caseId, ResultData.ok(caseFilesTypeService.list()));
 
 
-        List<HotIcon> hotIconList = hotIconService.getListByCaseId(caseId);
+        List<HotIcon> hotIconList = hotIconService.getListByFusionId(caseId);
         for (HotIcon hotIcon : hotIconList) {
         for (HotIcon hotIcon : hotIconList) {
             downResource(caseId,hotIcon.getIconUrl(),caseOffPath);
             downResource(caseId,hotIcon.getIconUrl(),caseOffPath);
         }
         }
         jsonObject.put(basePath+hostIcon+caseId, ResultData.ok(hotIconList));
         jsonObject.put(basePath+hostIcon+caseId, ResultData.ok(hotIconList));
 
 
-        List<CaseTag> caseTagList = caseTagService.allList(caseId, null);
+        List<CaseTag> caseTagList = caseTagService.getListByFusionId(caseId);
         jsonObject.put(basePath+caseTag+caseId, ResultData.ok(caseTagList));
         jsonObject.put(basePath+caseTag+caseId, ResultData.ok(caseTagList));
         for (CaseTag tag : caseTagList) {
         for (CaseTag tag : caseTagList) {
             jsonObject.put(basePath+caseTagPoint+tag.getTagId(), ResultData.ok(caseTagPointService.allList(tag.getTagId())));
             jsonObject.put(basePath+caseTagPoint+tag.getTagId(), ResultData.ok(caseTagPointService.allList(tag.getTagId())));
@@ -415,7 +415,7 @@ public class CaseDownService {
 
 
        String s = FileUtil.readString(caseOffPath + File.separator + batName, StandardCharsets.UTF_8);
        String s = FileUtil.readString(caseOffPath + File.separator + batName, StandardCharsets.UTF_8);
        String s1 = s.replaceAll("@caseId", String.valueOf(caseId));
        String s1 = s.replaceAll("@caseId", String.valueOf(caseId));
-       if(CacheUtil.ga){
+       if(CacheUtil.settingEntity.getGa()){
            s1 = s.replaceAll("@caseId", String.valueOf(caseId)+"^&ga=true");
            s1 = s.replaceAll("@caseId", String.valueOf(caseId)+"^&ga=true");
        }
        }
        FileUtil.writeString(s1, caseOffPath + File.separator + batName,"UTF-8");
        FileUtil.writeString(s1, caseOffPath + File.separator + batName,"UTF-8");

+ 87 - 0
src/main/java/com/fdkankan/fusion/entity/CaseAnimation.java

@@ -0,0 +1,87 @@
+package com.fdkankan.fusion.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2025-03-26
+ */
+@Getter
+@Setter
+@TableName("t_case_animation")
+public class CaseAnimation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("case_id")
+    private Integer caseId;
+
+    @TableField("fusion_id")
+    private Integer fusionId;
+
+    @TableField("title")
+    private String title;
+
+    @TableField("url")
+    private String url;
+
+    /**
+     * 0否,1是
+     */
+    @TableField("show_title")
+    private Boolean showTitle;
+
+    @TableField("font_size")
+    private Integer fontSize;
+
+    /**
+     * 0否,1是
+     */
+    @TableField("global_visibility")
+    private Boolean globalVisibility;
+
+    @TableField("visibility_range")
+    private Integer visibilityRange;
+
+    @TableField("frames")
+    private String frames;
+
+    @TableField("actions")
+    private String actions;
+
+    @TableField("subtitles")
+    private String subtitles;
+
+    @TableField("paths")
+    private String paths;
+
+    @TableField("mat")
+    private String mat;
+
+    @TableField("tb_status")
+    @TableLogic
+    private Integer tbStatus;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 91 - 0
src/main/java/com/fdkankan/fusion/entity/CaseOverview.java

@@ -0,0 +1,91 @@
+package com.fdkankan.fusion.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author
+ * @since 2025-05-13
+ */
+@Getter
+@Setter
+@TableName("t_case_overview")
+public class CaseOverview implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("case_id")
+    private Integer caseId;
+
+    /**
+     * 数据
+     */
+    @TableField("store")
+    private String store;
+
+    @TableField("title")
+    private String title;
+
+    @TableField("list_cover")
+    private String listCover;
+
+    @TableField("cover")
+    private String cover;
+    /**
+     * 视口
+     */
+    @TableField("viewport")
+    private String viewport;
+
+    @TableField("type")
+    private Integer type;
+
+    @TableField(value = "map_url",updateStrategy = FieldStrategy.IGNORED)
+    private String mapUrl;
+
+    @TableField("high")
+    private Integer high;
+
+    @TableField("width")
+    private Integer width;
+
+    @TableField("tb_status")
+    @TableLogic
+    private Integer tbStatus;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("kankan_cover")
+    private String kankanCover;
+
+    @TableField("num")
+    private String num;
+
+    @TableField("sub_group")
+    private Integer subGroup;
+
+    @TableField("sys_user_id")
+    private Integer sysUserId;
+
+    @TableField("platform_id")
+    private Integer platformId;
+
+    @TableField(exist = false)
+    private CaseTabulation caseTabulation;
+
+}

+ 3 - 0
src/main/java/com/fdkankan/fusion/entity/CasePath.java

@@ -31,6 +31,9 @@ public class CasePath implements Serializable {
     @TableField("case_id")
     @TableField("case_id")
     private Integer caseId;
     private Integer caseId;
 
 
+    @TableField("fusion_id")
+    private Integer fusionId;
+
     @TableField("path")
     @TableField("path")
     private String path;
     private String path;
 
 

+ 14 - 8
src/main/java/com/fdkankan/fusion/entity/CaseSettings.java

@@ -1,10 +1,7 @@
 package com.fdkankan.fusion.entity;
 package com.fdkankan.fusion.entity;
 
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
 import lombok.Getter;
 import lombok.Getter;
@@ -37,6 +34,9 @@ public class CaseSettings implements Serializable {
     @TableField("case_id")
     @TableField("case_id")
     private Integer caseId;
     private Integer caseId;
 
 
+    @TableField("fusion_id")
+    private Integer fusionId;
+
     /**
     /**
      * 初始画面json
      * 初始画面json
      */
      */
@@ -46,13 +46,13 @@ public class CaseSettings implements Serializable {
     /**
     /**
      * 封面图
      * 封面图
      */
      */
-    @TableField("cover")
+    @TableField(value = "cover",updateStrategy = FieldStrategy.IGNORED)
     private String cover;
     private String cover;
 
 
     /**
     /**
      * 背景,天空
      * 背景,天空
      */
      */
-    @TableField("back")
+    @TableField(value = "back",updateStrategy = FieldStrategy.IGNORED)
     private String back;
     private String back;
 
 
     /**
     /**
@@ -62,7 +62,7 @@ public class CaseSettings implements Serializable {
      *   bottomImage = "bimg",
      *   bottomImage = "bimg",
      *   icon = "icon",
      *   icon = "icon",
      */
      */
-    @TableField("back_type")
+    @TableField(value = "back_type",updateStrategy = FieldStrategy.IGNORED)
     private String backType;
     private String backType;
 
 
     @TableField("open_compass")
     @TableField("open_compass")
@@ -90,4 +90,10 @@ public class CaseSettings implements Serializable {
 
 
     @TableField("rotate")
     @TableField("rotate")
     private Double rotate;
     private Double rotate;
+
+    @TableField(value = "map_id",updateStrategy = FieldStrategy.IGNORED)
+    private Integer mapId;
+
+    @TableField(exist = false)
+    private MapConfig mapConfig;
 }
 }

+ 94 - 0
src/main/java/com/fdkankan/fusion/entity/CaseTabulation.java

@@ -0,0 +1,94 @@
+package com.fdkankan.fusion.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2025-05-13
+ */
+@Getter
+@Setter
+@TableName("t_case_tabulation")
+public class CaseTabulation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("case_id")
+    private Integer caseId;
+
+    /**
+     * 数据
+     */
+    @TableField("store")
+    private String store;
+
+    @TableField("title")
+    private String title;
+
+    /**
+     * 视口
+     */
+    @TableField("viewport")
+    private String viewport;
+
+    /**
+     * 封面图
+     */
+    @TableField("cover")
+    private String cover;
+
+    /**
+     * 纸张
+     */
+    @TableField("paper_key")
+    private String paperKey;
+
+    @TableField("is_auto_gen")
+    private Boolean isAutoGen;
+
+    @TableField("tb_status")
+    @TableLogic
+    private Integer tbStatus;
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+    @TableField("overview_id")
+    private Integer overviewId;
+
+    @TableField(value = "map_url",updateStrategy = FieldStrategy.IGNORED)
+    private String mapUrl;
+
+    @TableField("high")
+    private Integer high;
+
+    @TableField("width")
+    private Integer width;
+
+    /**
+     * 封面图
+     */
+    @TableField("list_cover")
+    private String listCover;
+
+    @TableField("sys_user_id")
+    private Integer sysUserId;
+
+    @TableField("platform_id")
+    private Integer platformId;
+}

+ 16 - 6
src/main/java/com/fdkankan/fusion/entity/CaseTag.java

@@ -1,12 +1,11 @@
 package com.fdkankan.fusion.entity;
 package com.fdkankan.fusion.entity;
 
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -83,6 +82,9 @@ public class CaseTag implements Serializable {
      */
      */
     @TableField("case_id")
     @TableField("case_id")
     private Integer caseId;
     private Integer caseId;
+
+    @TableField("fusion_id")
+    private Integer fusionId;
     /**
     /**
      * 放置数量
      * 放置数量
      */
      */
@@ -122,9 +124,17 @@ public class CaseTag implements Serializable {
     @TableField("show3d_title")
     @TableField("show3d_title")
     private Integer show3dTitle;
     private Integer show3dTitle;
 
 
-    @TableField("audio")
+    @TableField(value = "audio",updateStrategy = FieldStrategy.IGNORED)
     private String audio;
     private String audio;
 
 
     @TableField("file_name")
     @TableField("file_name")
     private String fileName;
     private String fileName;
+
+    @TableField("tq_status")
+    private String tqStatus;
+
+    @TableField("tq_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date tqTime;
+
 }
 }

+ 13 - 0
src/main/java/com/fdkankan/fusion/entity/FusionGuide.java

@@ -37,6 +37,9 @@ public class FusionGuide implements Serializable {
     @TableField("case_id")
     @TableField("case_id")
     private Integer caseId;
     private Integer caseId;
 
 
+    @TableField("fusion_id")
+    private Integer fusionId;
+
     /**
     /**
      * 封面图
      * 封面图
      */
      */
@@ -72,5 +75,15 @@ public class FusionGuide implements Serializable {
     @TableField("update_time")
     @TableField("update_time")
     private String updateTime;
     private String updateTime;
 
 
+    @TableField("show_taggings")
+    private Boolean showTaggings;
+
+    @TableField("show_measure")
+    private Boolean showMeasure;
+
+    @TableField("show_monitor")
+    private Boolean showMonitor;
 
 
+    @TableField("show_path")
+    private Boolean showPath;
 }
 }

+ 2 - 0
src/main/java/com/fdkankan/fusion/entity/FusionGuidePath.java

@@ -80,5 +80,7 @@ public class FusionGuidePath implements Serializable {
     @TableField("update_time")
     @TableField("update_time")
     private String updateTime;
     private String updateTime;
 
 
+    @TableField("play_animation")
+    private Boolean playAnimation;
 
 
 }
 }

+ 12 - 0
src/main/java/com/fdkankan/fusion/entity/HotIcon.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.*;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
+
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -55,11 +57,19 @@ public class HotIcon implements Serializable {
      */
      */
     @TableField("is_new")
     @TableField("is_new")
     private Integer isNew;
     private Integer isNew;
+
     @TableField("case_id")
     @TableField("case_id")
     private Integer caseId;
     private Integer caseId;
+
+    @TableField("fusion_id")
+    private Integer fusionId;
+
     @TableField("sort")
     @TableField("sort")
     private Integer sort;
     private Integer sort;
 
 
+    @TableField("parent_id")
+    private Integer parentId;
+
     @TableField("tb_status")
     @TableField("tb_status")
     @TableLogic
     @TableLogic
     private Integer tbStatus;
     private Integer tbStatus;
@@ -70,5 +80,7 @@ public class HotIcon implements Serializable {
     @TableField("update_time")
     @TableField("update_time")
     private String updateTime;
     private String updateTime;
 
 
+    @TableField(exist = false)
+    private List<HotIcon> childrenList;
 
 
 }
 }

+ 64 - 0
src/main/java/com/fdkankan/fusion/entity/MapConfig.java

@@ -0,0 +1,64 @@
+package com.fdkankan.fusion.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2025-03-28
+ */
+@Getter
+@Setter
+@TableName("t_map_config")
+public class MapConfig implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("name")
+    private String name;
+
+    @TableField("map_url")
+    private String mapUrl;
+
+    @TableField("coord")
+    private String coord;
+
+    @TableField("geocode_url")
+    private String geocodeUrl;
+
+    @TableField("resp_list_key")
+    private String respListKey;
+
+    @TableField("resp_location_key")
+    private String respLocationKey;
+
+    @TableField("resp_address_key")
+    private String respAddressKey;
+
+    @TableField("resp_name_key")
+    private String respNameKey;
+
+    @TableField("tb_status")
+    @TableLogic
+    private Integer tbStatus;
+
+
+    @TableField("create_time")
+    private Date createTime;
+
+    @TableField("update_time")
+    private Date updateTime;
+
+
+}

+ 3 - 0
src/main/java/com/fdkankan/fusion/entity/Model.java

@@ -55,6 +55,9 @@ public class Model implements Serializable {
     @TableField("type")
     @TableField("type")
     private Integer type;
     private Integer type;
 
 
+    @TableField("is_obj")
+    private Integer isObj;
+
     @TableField("model_obj_url")
     @TableField("model_obj_url")
     private String modelObjUrl;
     private String modelObjUrl;
 
 

+ 10 - 1
src/main/java/com/fdkankan/fusion/entity/ScenePlus.java

@@ -101,7 +101,7 @@ public class ScenePlus implements Serializable {
      * 创建时间
      * 创建时间
      */
      */
     @TableField("create_time")
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
 
     /**
     /**
      * 更新时间
      * 更新时间
@@ -119,4 +119,13 @@ public class ScenePlus implements Serializable {
     //@TableField("has_ai")
     //@TableField("has_ai")
     @TableField(exist = false)
     @TableField(exist = false)
     private Integer hasAi = 0;
     private Integer hasAi = 0;
+
+    @TableField(exist = false)
+    private String sceneName;
+
+    @TableField(exist = false)
+    private ScenePlusExt scenePlusExt;
+    public String getSceneName() {
+        return title;
+    }
 }
 }

+ 1 - 1
src/main/java/com/fdkankan/fusion/entity/jsonEntity/Transform.java

@@ -8,7 +8,7 @@ import java.util.List;
 
 
 @Data
 @Data
 public class Transform {
 public class Transform {
-    private List<Double> scale = Arrays.asList(1.0,1.0,1.0);
+    private List<Double> scale = Arrays.asList(100.0,100.0,100.0);
     private Position position = new Position();
     private Position position = new Position();
     private Rotation rotation = new Rotation();
     private Rotation rotation = new Rotation();
 
 

+ 1 - 5
src/main/java/com/fdkankan/fusion/httpClient/address/LaserAddressSource.java

@@ -20,10 +20,6 @@ public class LaserAddressSource implements AddressSource {
 
 
     @Override
     @Override
     public ForestAddress getAddress(ForestRequest forestRequest) {
     public ForestAddress getAddress(ForestRequest forestRequest) {
-        String setting = CacheUtil.installPath + File.separator +"bin" +File.separator +"resources"+File.separator+"static"+File.separator +"setting.json";
-        String data = FileUtil.readString(setting, "UTF-8");
-        JSONObject config = JSONObject.parseObject(data);
-        Integer javaPort = config.getInteger("laserPort");
-        return new ForestAddress("","",javaPort,basePath);
+        return new ForestAddress("","",CacheUtil.settingEntity.getLaserPort(),basePath);
     }
     }
 }
 }

+ 19 - 0
src/main/java/com/fdkankan/fusion/mapper/ICaseAnimationMapper.java

@@ -0,0 +1,19 @@
+package com.fdkankan.fusion.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.fusion.entity.CameraVersion;
+import com.fdkankan.fusion.entity.CaseAnimation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机版本表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2024-07-23
+ */
+@Mapper
+public interface ICaseAnimationMapper extends BaseMapper<CaseAnimation> {
+
+}

+ 18 - 0
src/main/java/com/fdkankan/fusion/mapper/ICaseOverviewMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.fusion.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.fusion.entity.CaseOverview;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-04-17
+ */
+@Mapper
+public interface ICaseOverviewMapper extends BaseMapper<CaseOverview> {
+
+}

+ 19 - 0
src/main/java/com/fdkankan/fusion/mapper/ICaseTabulationMapper.java

@@ -0,0 +1,19 @@
+package com.fdkankan.fusion.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.fusion.entity.CaseOverview;
+import com.fdkankan.fusion.entity.CaseTabulation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2025-04-17
+ */
+@Mapper
+public interface ICaseTabulationMapper extends BaseMapper<CaseTabulation> {
+
+}

+ 19 - 0
src/main/java/com/fdkankan/fusion/mapper/IMapConfigMapper.java

@@ -0,0 +1,19 @@
+package com.fdkankan.fusion.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.fusion.entity.CameraVersion;
+import com.fdkankan.fusion.entity.MapConfig;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 相机版本表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2024-07-23
+ */
+@Mapper
+public interface IMapConfigMapper extends BaseMapper<MapConfig> {
+
+}

+ 2 - 2
src/main/java/com/fdkankan/fusion/mq/consumer/OsgbToB3dmConsumer.java

@@ -56,7 +56,7 @@ public class OsgbToB3dmConsumer {
             //commonUploadService.updateStatus(uploadId,0);
             //commonUploadService.updateStatus(uploadId,0);
             ///mnt/manage/media-library/result/ea041f3237df46568f4e83e723e743d4
             ///mnt/manage/media-library/result/ea041f3237df46568f4e83e723e743d4
             String dir = String.format(OssPath.MANAGE_MODEL_FILE_PATH ,UUID.randomUUID().toString().replace("-",""));
             String dir = String.format(OssPath.MANAGE_MODEL_FILE_PATH ,UUID.randomUUID().toString().replace("-",""));
-            sourcePath = CacheUtil.basePath +File.separator+ dir;
+            sourcePath = CacheUtil.settingEntity.getProfilePath() +File.separator+ dir;
 
 
             OBJToGLBUtil.OsgbToB3dm(localPath,sourcePath);
             OBJToGLBUtil.OsgbToB3dm(localPath,sourcePath);
             String b3dmJsonPath =  FileWriterUtil.checkB3dmTileset(new File(sourcePath));
             String b3dmJsonPath =  FileWriterUtil.checkB3dmTileset(new File(sourcePath));
@@ -69,7 +69,7 @@ public class OsgbToB3dmConsumer {
                 log.info("osgbToB3dm-mq,msg:{},转化失败tileset.json不存在",localPath);
                 log.info("osgbToB3dm-mq,msg:{},转化失败tileset.json不存在",localPath);
                 throw new BusinessException(-1,"转化失败tileset.json不存在");
                 throw new BusinessException(-1,"转化失败tileset.json不存在");
             }
             }
-            //String ossPath = sourcePath.replace(CacheUtil.basePath,"");
+            //String ossPath = sourcePath.replace(CacheUtil.settingEntity.getProfilePath(),"");
             //localToOssUtil.uploadOss(sourcePath,ossPath);
             //localToOssUtil.uploadOss(sourcePath,ossPath);
             String url = CacheUtil.mapping + dir + File.separator +jsonFile.getName();
             String url = CacheUtil.mapping + dir + File.separator +jsonFile.getName();
             HashMap<String,String> resultMap = ReadXmlUtil.getLatMap(file);
             HashMap<String,String> resultMap = ReadXmlUtil.getLatMap(file);

+ 10 - 0
src/main/java/com/fdkankan/fusion/request/CaseOverviewParam.java

@@ -0,0 +1,10 @@
+package com.fdkankan.fusion.request;
+
+
+import com.fdkankan.fusion.common.RequestBase;
+import lombok.Data;
+
+@Data
+public class CaseOverviewParam extends RequestBase {
+    private String title;
+}

+ 5 - 0
src/main/java/com/fdkankan/fusion/request/FusionParam.java

@@ -44,4 +44,9 @@ public class FusionParam {
 
 
     private String token;
     private String token;
 
 
+
+    private String num;
+
+    private Integer isObj;
+    private Integer uploadId;
 }
 }

+ 9 - 0
src/main/java/com/fdkankan/fusion/request/MapParam.java

@@ -0,0 +1,9 @@
+package com.fdkankan.fusion.request;
+
+import lombok.Data;
+
+@Data
+public class MapParam {
+    private String address;
+    private Integer mapId;
+}

+ 11 - 0
src/main/java/com/fdkankan/fusion/response/CaseFusionVo.java

@@ -0,0 +1,11 @@
+package com.fdkankan.fusion.response;
+
+import com.fdkankan.fusion.entity.CaseFusion;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CaseFusionVo  extends CaseFusion {
+    private  List<FusionNumVo> sceneVoList;
+}

+ 10 - 0
src/main/java/com/fdkankan/fusion/response/MapVo.java

@@ -0,0 +1,10 @@
+package com.fdkankan.fusion.response;
+
+import lombok.Data;
+
+@Data
+public class MapVo {
+    private String location;
+    private String address;
+    private String name;
+}

+ 31 - 1
src/main/java/com/fdkankan/fusion/response/SceneVo.java

@@ -2,8 +2,10 @@ package com.fdkankan.fusion.response;
 
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fdkankan.fusion.common.FilePath;
 import com.fdkankan.fusion.entity.Model;
 import com.fdkankan.fusion.entity.Model;
 import lombok.Data;
 import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
 
 
 import java.util.Date;
 import java.util.Date;
 
 
@@ -41,7 +43,6 @@ public class SceneVo extends Model {
     private Integer location;
     private Integer location;
 
 
     private Boolean inFusion = false;
     private Boolean inFusion = false;
-    private Boolean inCase = false;
 
 
     /**
     /**
      * 模型方向(只有激光场景才有)
      * 模型方向(只有激光场景才有)
@@ -60,4 +61,33 @@ public class SceneVo extends Model {
 
 
     private String mapping ;
     private String mapping ;
     private String webPath ;
     private String webPath ;
+
+
+
+    private String cutModelPath;
+    private String surveillancePath;
+    private String sceneJsonPath;
+    private String sourceName;
+
+
+    public String getCutModelPath() {
+        if(StringUtils.isNotBlank(num) ){
+            return "/oss/"+String.format(FilePath.OBJ_OSS_PATH,num)+"/user/cutModel.json";
+        }
+        return cutModelPath;
+    }
+
+    public String getSurveillancePath() {
+        if(StringUtils.isNotBlank(num)){
+            return "/oss/"+String.format(FilePath.OBJ_OSS_PATH,num)+"/user/surveillance.json";
+        }
+        return surveillancePath;
+    }
+
+    public String getSceneJsonPath() {
+        if(StringUtils.isNotBlank(num)){
+            return "/oss/"+String.format(FilePath.OBJ_OSS_PATH,num)+"/data/scene.json";
+        }
+        return sceneJsonPath;
+    }
 }
 }

+ 20 - 0
src/main/java/com/fdkankan/fusion/service/ICaseAnimationService.java

@@ -0,0 +1,20 @@
+package com.fdkankan.fusion.service;
+
+import com.fdkankan.fusion.entity.CaseAnimation;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-03-26
+ */
+public interface ICaseAnimationService extends IService<CaseAnimation> {
+
+
+    List<CaseAnimation> getListByFusionId(Integer fusionId);
+}

+ 29 - 0
src/main/java/com/fdkankan/fusion/service/ICaseOverviewService.java

@@ -0,0 +1,29 @@
+package com.fdkankan.fusion.service;
+
+import com.fdkankan.fusion.entity.CaseOverview;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.fusion.request.CaseOverviewParam;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-05-13
+ */
+public interface ICaseOverviewService extends IService<CaseOverview> {
+
+    List<CaseOverview> getByCaseId(String caseId);
+
+    void updateTitleById(Integer overviewId, String filesTitle);
+
+    CaseOverview getByNumAndSubGroup(String num, Integer subGroup);
+
+
+    void updateListCoverById(Integer overviewId, String listCover);
+
+    Object pageList(CaseOverviewParam param);
+}

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/ICasePathService.java

@@ -14,4 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface ICasePathService extends IService<CasePath> {
 public interface ICasePathService extends IService<CasePath> {
 
 
     Object getByCaseId(Integer caseId);
     Object getByCaseId(Integer caseId);
+
+    Object getByFusionId(Integer fusionId);
 }
 }

+ 1 - 1
src/main/java/com/fdkankan/fusion/service/ICaseSettingsService.java

@@ -15,5 +15,5 @@ import java.util.List;
  */
  */
 public interface ICaseSettingsService extends IService<CaseSettings> {
 public interface ICaseSettingsService extends IService<CaseSettings> {
 
 
-    List<CaseSettings> getByCaseId(Integer caseId);
+    List<CaseSettings> getByFusionId(Integer caseId);
 }
 }

+ 28 - 0
src/main/java/com/fdkankan/fusion/service/ICaseTabulationService.java

@@ -0,0 +1,28 @@
+package com.fdkankan.fusion.service;
+
+import com.fdkankan.fusion.entity.CaseTabulation;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.fusion.request.CaseOverviewParam;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-05-13
+ */
+public interface ICaseTabulationService extends IService<CaseTabulation> {
+
+
+    List<CaseTabulation> getByOverviewId(String overviewId);
+
+    void addOrUpdate(CaseTabulation caseTabulation);
+
+    void updateTitleById(Integer tabulationId, String filesTitle);
+
+
+    Object pageList(CaseOverviewParam param);
+}

+ 2 - 3
src/main/java/com/fdkankan/fusion/service/ICaseTagService.java

@@ -15,11 +15,10 @@ import java.util.List;
  */
  */
 public interface ICaseTagService extends IService<CaseTag> {
 public interface ICaseTagService extends IService<CaseTag> {
 
 
-    List<CaseTag> allList(Integer caseId, String tagTitle);
+    List<CaseTag> allListFusionId(Integer caseId, String tagTitle);
 
 
     void updateDFHotIcon(Integer iconId);
     void updateDFHotIcon(Integer iconId);
 
 
-    List<CaseTag> getListByCaseId(Integer caseId);
+    List<CaseTag> getListByFusionId(Integer caseId);
 
 
-    void deletePointByCaseId(Integer caseId);
 }
 }

+ 2 - 0
src/main/java/com/fdkankan/fusion/service/IFusionGuideService.java

@@ -20,4 +20,6 @@ public interface IFusionGuideService extends IService<FusionGuide> {
     FusionGuide add(FusionGuide fusionGuide);
     FusionGuide add(FusionGuide fusionGuide);
 
 
     Long getCountByCaseId(Integer caseId);
     Long getCountByCaseId(Integer caseId);
+
+    List<FusionGuide> getByFusionId(Integer fusionId);
 }
 }

+ 5 - 1
src/main/java/com/fdkankan/fusion/service/IFusionNumService.java

@@ -2,6 +2,7 @@ package com.fdkankan.fusion.service;
 
 
 import com.fdkankan.fusion.entity.FusionNum;
 import com.fdkankan.fusion.entity.FusionNum;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.fusion.entity.ScenePlus;
 import com.fdkankan.fusion.request.FusionParam;
 import com.fdkankan.fusion.request.FusionParam;
 import com.fdkankan.fusion.response.FusionNumVo;
 import com.fdkankan.fusion.response.FusionNumVo;
 
 
@@ -25,7 +26,7 @@ public interface IFusionNumService extends IService<FusionNum> {
 
 
     List<FusionNumVo> getListByCaseId(Integer caseId,Integer fusionNumId);
     List<FusionNumVo> getListByCaseId(Integer caseId,Integer fusionNumId);
 
 
-    FusionNumVo add(FusionParam param);
+    FusionNumVo add(FusionParam param, ScenePlus scenePlus, Integer isObj );
 
 
     void updateModel(FusionParam param);
     void updateModel(FusionParam param);
 
 
@@ -44,4 +45,7 @@ public interface IFusionNumService extends IService<FusionNum> {
     HashMap<Integer, FusionNum> getByCaseId(Integer caseId);
     HashMap<Integer, FusionNum> getByCaseId(Integer caseId);
 
 
     List<FusionNum> getByModelId(List<Integer> modelIds);
     List<FusionNum> getByModelId(List<Integer> modelIds);
+
+    FusionNumVo addModel(FusionParam param, Integer modelId,String title);
+    FusionNumVo addModel(FusionParam param, Integer modelId,ScenePlus scenePlus);
 }
 }

+ 3 - 1
src/main/java/com/fdkankan/fusion/service/IHotIconService.java

@@ -24,7 +24,9 @@ public interface IHotIconService extends IService<HotIcon> {
 
 
     void cancelIsNew(String username);
     void cancelIsNew(String username);
 
 
-    List<HotIcon> getListByCaseId(Integer caseId);
+    List<HotIcon> getListByFusionId(Integer caseId);
 
 
     List<HotIcon> getByIds( HashSet<Integer> hotIconId);
     List<HotIcon> getByIds( HashSet<Integer> hotIconId);
+
+    List<HotIcon> treeList(List<HotIcon> iconList);
 }
 }

+ 20 - 0
src/main/java/com/fdkankan/fusion/service/IMapConfigService.java

@@ -0,0 +1,20 @@
+package com.fdkankan.fusion.service;
+
+import com.fdkankan.fusion.entity.MapConfig;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2025-03-28
+ */
+public interface IMapConfigService extends IService<MapConfig> {
+
+    HashMap<Integer, MapConfig> getMapByIds(List<Integer> mapIds);
+}

+ 1 - 1
src/main/java/com/fdkankan/fusion/service/IModelService.java

@@ -35,7 +35,7 @@ public interface IModelService extends IService<Model> {
 
 
     List<Model> getListByModelIdStrs(List<String> numList);
     List<Model> getListByModelIdStrs(List<String> numList);
 
 
-    Model getIsNullNewByNum(String num,Integer type);
+    Model getIsNullNewByNum(String num,Integer type,Integer isObj);
 
 
     Object getInfo(Integer modelId);
     Object getInfo(Integer modelId);
 
 

+ 4 - 0
src/main/java/com/fdkankan/fusion/service/IScenePlusExtService.java

@@ -17,4 +17,8 @@ import java.util.List;
 public interface IScenePlusExtService extends IService<ScenePlusExt> {
 public interface IScenePlusExtService extends IService<ScenePlusExt> {
 
 
     List<SceneVo> getRtkByNumList(List<String> numList);
     List<SceneVo> getRtkByNumList(List<String> numList);
+
+    ScenePlusExt getByPlusId(Long id);
+
+    List<ScenePlusExt> getByPlusIds(List<Long> plusIds);
 }
 }

+ 29 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseAnimationServiceImpl.java

@@ -0,0 +1,29 @@
+package com.fdkankan.fusion.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.fusion.entity.CaseAnimation;
+import com.fdkankan.fusion.mapper.ICaseAnimationMapper;
+import com.fdkankan.fusion.service.ICaseAnimationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-03-26
+ */
+@Service
+public class CaseAnimationServiceImpl extends ServiceImpl<ICaseAnimationMapper, CaseAnimation> implements ICaseAnimationService {
+
+    @Override
+    public List<CaseAnimation> getListByFusionId(Integer fusionId) {
+        LambdaQueryWrapper<CaseAnimation> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseAnimation::getFusionId,fusionId);
+        return this.list(wrapper);
+    }
+}

+ 6 - 121
src/main/java/com/fdkankan/fusion/service/impl/CaseNumServiceImpl.java

@@ -73,7 +73,7 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
 
 
 
 
     @Override
     @Override
-    public synchronized void addBatch(Integer caseId, List<SceneNumParam> sceneNumParam) {
+    public void addBatch(Integer caseId, List<SceneNumParam> sceneNumParam) {
 
 
         List<String> addNumList = this.updateByNumList(caseId, sceneNumParam);
         List<String> addNumList = this.updateByNumList(caseId, sceneNumParam);
         if(addNumList == null || addNumList.size()<=0){
         if(addNumList == null || addNumList.size()<=0){
@@ -81,7 +81,6 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
         }
         }
 
 
         List<CaseNumEntity> newCaseNums = new ArrayList<>();
         List<CaseNumEntity> newCaseNums = new ArrayList<>();
-        List<Model> modelList = new ArrayList<>();
 
 
         HashMap<Integer,HashSet<String>> map = new HashMap<>();
         HashMap<Integer,HashSet<String>> map = new HashMap<>();
         for (SceneNumParam numParam : sceneNumParam) {
         for (SceneNumParam numParam : sceneNumParam) {
@@ -93,10 +92,11 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
             }
             }
         }
         }
 
 
-
         for (Integer type : map.keySet()) {
         for (Integer type : map.keySet()) {
             HashSet<String> nulList = map.get(type);
             HashSet<String> nulList = map.get(type);
-            for (String num : nulList) {
+            List<String> numList = new ArrayList<>(nulList);
+            HashSet<String> setNum = new HashSet<>(numList);
+            for (String num : setNum) {
                 if(!addNumList.contains(num)){
                 if(!addNumList.contains(num)){
                     continue;
                     continue;
                 }
                 }
@@ -105,125 +105,22 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
                 caseNumEntity.setNumType(type);
                 caseNumEntity.setNumType(type);
                 caseNumEntity.setNum(num);
                 caseNumEntity.setNum(num);
                 newCaseNums.add(caseNumEntity);
                 newCaseNums.add(caseNumEntity);
-                if(type == 3){                   //用户上传三维模型跳过
-                    continue;
-                }
-                Model model = modelService.getIsNullNewByNum(num,type);
-                if(model.getModelId() != null && StringUtils.isNotBlank(model.getModelGlbUrl()) && StringUtils.isNotBlank(model.getModelSize())){
-                    continue;
-                }
-                model.setModelDateType("obj");
-                model.setType(type);
-                model.setModelType("pointcloud");    //深时点云类型
-                model.setCreateStatus(1);
-                Scene scene = sceneService.getByNum(num);
-                if(scene == null){
-                    continue;
-                }
-                if(type == 0 || type == 1 || type == 4 || type == 6 || type == 7){           //看看,看见
-                    String mesh3DtilesPath  =  String.format(FilePath.OBJ_OSS_PATH,num) + "/images/3dtiles/tileset.json";
-
-                    String sizePath = scene.getWebPath() + String.format(FilePath.OBJ_OSS_PATH,num) + "/images/3dtiles";
-                    if(localToOssUtil.existKey(scene.getWebPath() +mesh3DtilesPath)){
-                        model.setModelDateType("b3dm");
-                        model.setModelType("b3dm");
-                        model.setModelGlbUrl(JSONArray.toJSONString(Arrays.asList(scene.getMapping() +File.separator +mesh3DtilesPath)));
-                        model.setModelSize(FileWriterUtil.setFileSize(localToOssUtil.getSizeCount( sizePath)));
-                    }else {
-                        String meshPath = String.format(FilePath.OBJ_OSS_PATH, num)+"/data/mesh";
-                        if(localToOssUtil.existKey( scene.getWebPath() +meshPath +"/mesh.obj")){
-                            Long size = localToOssUtil.getSizeCount( scene.getWebPath() +meshPath);
-                            model.setModelSize(FileWriterUtil.setFileSize(size));
-                            model.setModelGlbUrl(JSONArray.toJSONString(Arrays.asList(scene.getMapping()+File.separator + meshPath+"/mesh.obj")));
-                        }else {
-                            List<String> objPaths = new ArrayList<>();
-                            String meshPathjs =  String.format(FilePath.OBJ_OSS_PATH, num)+"/data/";
-
-                            String jsonPath =scene.getWebPath() + meshPath + "/floors.json";
-                            if(!localToOssUtil.existKey(jsonPath)){
-                               jsonPath =scene.getWebPath() + meshPath +"mesh.json";
-                            }
-                            if(localToOssUtil.existKey(jsonPath)){
-                                String objectContent = localToOssUtil.getObjectContent(meshPath + "/floors.json");
-                                JSONObject jsonObject = JSONObject.parseObject(objectContent);
-                                JSONArray floors1 = jsonObject.getJSONArray("floors");
-                                for (Object object : floors1) {
-                                    JSONObject jb = (JSONObject) object;
-                                    String string = jb.getString("objPath");
-                                    objPaths.add(scene.getMapping()+File.separator +meshPathjs + string);
-                                }
-                                model.setModelGlbUrl(JSONArray.toJSONString(objPaths));
-                                Long size = localToOssUtil.getSize(scene.getWebPath() +meshPath);
-                                model.setModelSize(FileWriterUtil.setFileSize(size));
-                            }
-                        }
-                        model.setModelType("obj");
-                    }
-
-                }
-                model.setNum(num);
-                modelList.add(model);
             }
             }
         }
         }
 
 
         if(newCaseNums.size() >0){
         if(newCaseNums.size() >0){
             this.saveBatch(newCaseNums);
             this.saveBatch(newCaseNums);
         }
         }
-        if(modelList.size() >0){
-            modelService.saveOrUpdateBatch(modelList);
-        }
     }
     }
 
 
 
 
 
 
-    private String getGlbUrl(Integer type, String num,Model model) {
-        if(type == 0 || type == 1 || type == 4 || type == 6 || type == 7){ //看看,看见
-            String objPath = String.format(FilePath.OBJ_LOCAL_PATH ,environment,num);
-            ShellUtil.yunDownload(String.format(FilePath.OBJ_OSS_PATH, num)+"/data/mesh" ,objPath);
-            List<String> localGlbPaths = new ArrayList<>();
-            List<String> ossGlbPaths = new ArrayList<>();
-            File localFile = new File(objPath);
-            this.toGlB(localFile,localGlbPaths);
-            Long modelSize = 0L;
-            if(localGlbPaths.size() >0){
-                for (String localGlbPath : localGlbPaths) {
-                    String ossGlbPath = localGlbPath.replace(FilePath.LOCAL_BASE_PATH,"fusion/");
-                    localToOssUtil.uploadOss(localGlbPath,ossGlbPath);
-                    if(ossGlbPath.contains("lod_")){
-                        if(ossGlbPath.contains("lod_0")){
-                            ossGlbPaths.add(queryPath  +ossGlbPath);
-                            modelSize +=  localToOssUtil.getSize(ossGlbPath);
-                        }
-                        continue;
-                    }
-                    modelSize +=  localToOssUtil.getSize(ossGlbPath);
-                    ossGlbPaths.add(queryPath +ossGlbPath);
-                }
-                model.setModelSize(FileWriterUtil.setFileSize(modelSize));
-                FileUtil.del(objPath);
-                return JSONArray.toJSONString(ossGlbPaths);
-            }
-            FileUtil.del(objPath);
-        }
-        return null;
-    }
 
 
-    private void toGlB(File localFile, List<String> localGlbPath) {
-        File[] files = localFile.listFiles();
-        for (File file : files) {
-            if(file.isDirectory()){
-                toGlB(file,localGlbPath);
-            }
-            if(file.getName().contains(".obj")){
-               String glbPath =  OBJToGLBUtil.objToGlb(file.getPath(),file.getPath().replace(".obj",".glb") );
-               localGlbPath.add(glbPath);
-            }
-        }
-    }
+
+
 
 
     private List<String> updateByNumList(Integer caseId, List<SceneNumParam> sceneNumParam) {
     private List<String> updateByNumList(Integer caseId, List<SceneNumParam> sceneNumParam) {
         List<String> addList = new ArrayList<>();
         List<String> addList = new ArrayList<>();
-        HashMap<Integer, FusionNum> fusionNumHashMap = fusionNumService.getByCaseId(caseId);
         HashMap<Integer,List<String>> delMap = new HashMap<>();
         HashMap<Integer,List<String>> delMap = new HashMap<>();
         for (SceneNumParam param : sceneNumParam) {
         for (SceneNumParam param : sceneNumParam) {
             Integer type = param.getType();
             Integer type = param.getType();
@@ -246,13 +143,6 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
                 }
                 }
             }
             }
             if(!delList.isEmpty()){
             if(!delList.isEmpty()){
-                HashMap<String, Model> mapByNum = modelService.getMapByNum(delList);
-                for (String key : mapByNum.keySet()) {
-                    Model model = mapByNum.get(key);
-                    if(model != null && model.getType().equals(param.getType()) && fusionNumHashMap.containsKey(model.getModelId())){
-                        throw new BusinessException(ResultCode.DEL_NUM_ERROR);
-                    }
-                }
                 delMap.put(param.getType(),delList);
                 delMap.put(param.getType(),delList);
             }
             }
         }
         }
@@ -282,11 +172,6 @@ public class CaseNumServiceImpl extends ServiceImpl<ICaseNumMapper, CaseNumEntit
         LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<CaseNumEntity> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(CaseNumEntity::getCaseId,caseId);
         wrapper.eq(CaseNumEntity::getCaseId,caseId);
         this.remove(wrapper);
         this.remove(wrapper);
-        fusionNumService.deleteByCaseId(caseId);
-        caseViewService.deleteByCaseId(caseId);
-        fusionGuidePathService.deleteByCaseId(caseId);
-        fusionMeterService.deleteByCaseId(caseId);
-        caseTagService.deletePointByCaseId(caseId);
     }
     }
 
 
     @Override
     @Override

+ 84 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseOverviewServiceImpl.java

@@ -0,0 +1,84 @@
+package com.fdkankan.fusion.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.fusion.common.PageInfo;
+import com.fdkankan.fusion.entity.CaseOverview;
+import com.fdkankan.fusion.mapper.ICaseOverviewMapper;
+import com.fdkankan.fusion.request.CaseOverviewParam;
+import com.fdkankan.fusion.service.ICaseOverviewService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.fusion.service.ICaseTabulationService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-05-13
+ */
+@Service
+@Slf4j
+public class CaseOverviewServiceImpl extends ServiceImpl<ICaseOverviewMapper, CaseOverview> implements ICaseOverviewService {
+
+
+    @Autowired
+    ICaseTabulationService caseTabulationService;
+
+    @Override
+    public Object pageList(CaseOverviewParam param) {
+        LambdaQueryWrapper<CaseOverview> wrapper = new LambdaQueryWrapper<>();
+        if(StringUtils.isNotBlank(param.getTitle())){
+            wrapper.like(CaseOverview::getTitle,param.getTitle());
+        }
+        wrapper.orderByDesc(CaseOverview::getId);
+        Page<CaseOverview> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
+        return PageInfo.PageInfo(page);
+    }
+
+    @Override
+    public List<CaseOverview> getByCaseId(String caseId) {
+        LambdaQueryWrapper<CaseOverview> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseOverview::getCaseId,caseId);
+        wrapper.orderByDesc(CaseOverview::getId);
+        return this.list(wrapper);
+    }
+
+    @Override
+    public void updateTitleById(Integer overviewId, String filesTitle) {
+        LambdaUpdateWrapper<CaseOverview> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(CaseOverview::getId,overviewId);
+        wrapper.set(CaseOverview::getTitle,filesTitle);
+        this.update(wrapper);
+    }
+
+
+    @Override
+    public void updateListCoverById(Integer overviewId, String listCover) {
+        LambdaUpdateWrapper<CaseOverview> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(CaseOverview::getId,overviewId);
+        wrapper.set(CaseOverview::getListCover,listCover);
+        this.update(wrapper);
+    }
+
+    @Override
+    public CaseOverview getByNumAndSubGroup(String num, Integer subGroup) {
+        LambdaQueryWrapper<CaseOverview> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseOverview::getNum,num);
+        wrapper.eq(CaseOverview::getSubGroup,subGroup);
+        List<CaseOverview> list = this.list(wrapper);
+        if(list ==null || list.isEmpty()){
+            return null;
+        }
+        return list.get(0);
+    }
+
+}

+ 7 - 0
src/main/java/com/fdkankan/fusion/service/impl/CasePathServiceImpl.java

@@ -24,4 +24,11 @@ public class CasePathServiceImpl extends ServiceImpl<ICasePathMapper, CasePath>
         wrapper.eq(CasePath::getCaseId,caseId);
         wrapper.eq(CasePath::getCaseId,caseId);
         return this.list(wrapper);
         return this.list(wrapper);
     }
     }
+
+    @Override
+    public Object getByFusionId(Integer fusionId) {
+        LambdaQueryWrapper<CasePath> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CasePath::getFusionId,fusionId);
+        return this.list(wrapper);
+    }
 }
 }

+ 25 - 3
src/main/java/com/fdkankan/fusion/service/impl/CaseSettingsServiceImpl.java

@@ -2,12 +2,17 @@ package com.fdkankan.fusion.service.impl;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.fusion.entity.CaseSettings;
 import com.fdkankan.fusion.entity.CaseSettings;
+import com.fdkankan.fusion.entity.MapConfig;
 import com.fdkankan.fusion.mapper.ICaseSettingsMapper;
 import com.fdkankan.fusion.mapper.ICaseSettingsMapper;
 import com.fdkankan.fusion.service.ICaseSettingsService;
 import com.fdkankan.fusion.service.ICaseSettingsService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.fusion.service.IMapConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -20,10 +25,27 @@ import java.util.List;
 @Service
 @Service
 public class CaseSettingsServiceImpl extends ServiceImpl<ICaseSettingsMapper, CaseSettings> implements ICaseSettingsService {
 public class CaseSettingsServiceImpl extends ServiceImpl<ICaseSettingsMapper, CaseSettings> implements ICaseSettingsService {
 
 
+    @Autowired
+    IMapConfigService mapConfigService;
+
+
     @Override
     @Override
-    public List<CaseSettings> getByCaseId(Integer caseId) {
+    public List<CaseSettings> getByFusionId(Integer fusionId) {
         LambdaQueryWrapper<CaseSettings> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<CaseSettings> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(CaseSettings::getCaseId,caseId);
-        return this.list(wrapper);
+        wrapper.eq(CaseSettings::getFusionId,fusionId);
+        List<CaseSettings> list = this.list(wrapper);
+        List<Integer> mapIds = list.stream().map(CaseSettings::getMapId).collect(Collectors.toList());
+        if(!mapIds.isEmpty()){
+            HashMap<Integer, MapConfig> map = mapConfigService.getMapByIds(mapIds);
+            for (CaseSettings caseSettings : list) {
+                if(caseSettings.getMapId() != null && map.get(caseSettings.getMapId()) != null){
+                    MapConfig mapConfig = map.get(caseSettings.getMapId());
+                    caseSettings.setMapConfig(mapConfig);
+                }
+
+            }
+        }
+
+        return list;
     }
     }
 }
 }

+ 84 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseTabulationServiceImpl.java

@@ -0,0 +1,84 @@
+package com.fdkankan.fusion.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.fusion.common.PageInfo;
+import com.fdkankan.fusion.entity.CaseOverview;
+import com.fdkankan.fusion.entity.CaseTabulation;
+import com.fdkankan.fusion.mapper.ICaseTabulationMapper;
+import com.fdkankan.fusion.request.CaseOverviewParam;
+import com.fdkankan.fusion.service.ICaseFilesService;
+import com.fdkankan.fusion.service.ICaseOverviewService;
+import com.fdkankan.fusion.service.ICaseTabulationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-05-13
+ */
+@Service
+public class CaseTabulationServiceImpl extends ServiceImpl<ICaseTabulationMapper, CaseTabulation> implements ICaseTabulationService {
+
+    @Autowired
+    ICaseFilesService caseFilesService;
+    @Autowired
+    ICaseOverviewService caseOverviewService;
+
+    @Override
+    public Object pageList(CaseOverviewParam param) {
+        LambdaQueryWrapper<CaseTabulation> wrapper = new LambdaQueryWrapper<>();
+        wrapper.isNull(CaseTabulation::getOverviewId);
+        if(StringUtils.isNotBlank(param.getTitle())){
+            wrapper.like(CaseTabulation::getTitle,param.getTitle());
+        }
+        wrapper.orderByDesc(CaseTabulation::getId);
+        Page<CaseTabulation> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
+        return PageInfo.PageInfo(page);
+    }
+
+    @Override
+    public List<CaseTabulation> getByOverviewId(String overviewId) {
+        LambdaQueryWrapper<CaseTabulation> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseTabulation::getOverviewId,overviewId);
+        wrapper.orderByDesc(CaseTabulation::getId);
+        return this.list(wrapper);
+    }
+
+    @Override
+    public void addOrUpdate(CaseTabulation caseTabulation) {
+        this.saveOrUpdate(caseTabulation);
+        caseTabulation = this.getById(caseTabulation.getId());
+
+        if(StringUtils.isNotBlank(caseTabulation.getTitle()) && caseTabulation.getOverviewId() != null){
+            caseOverviewService.updateTitleById(caseTabulation.getOverviewId(),caseTabulation.getTitle());
+        }
+        if(StringUtils.isNotBlank(caseTabulation.getListCover()) && caseTabulation.getOverviewId() != null){
+            caseOverviewService.updateListCoverById(caseTabulation.getOverviewId(),caseTabulation.getListCover());
+        }
+
+    }
+
+
+    @Override
+    public void updateTitleById(Integer tabulationId, String filesTitle) {
+        LambdaUpdateWrapper<CaseTabulation> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(CaseTabulation::getId,tabulationId);
+        wrapper.set(CaseTabulation::getTitle,filesTitle);
+        this.update(wrapper);
+    }
+
+
+
+
+
+}

+ 5 - 11
src/main/java/com/fdkankan/fusion/service/impl/CaseTagServiceImpl.java

@@ -37,12 +37,12 @@ public class CaseTagServiceImpl extends ServiceImpl<ICaseTagMapper, CaseTag> imp
     IHotIconService hotIconService;
     IHotIconService hotIconService;
 
 
     @Override
     @Override
-    public List<CaseTag> allList(Integer caseId, String tagTitle) {
-        if(caseId == null){
+    public List<CaseTag> allListFusionId(Integer fusionId, String tagTitle) {
+        if(fusionId == null){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
         LambdaQueryWrapper<CaseTag> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<CaseTag> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(CaseTag::getCaseId,caseId);
+        wrapper.eq(CaseTag::getFusionId,fusionId);
         if(StringUtils.isNotBlank(tagTitle)){
         if(StringUtils.isNotBlank(tagTitle)){
             wrapper.like(CaseTag::getTagTitle,tagTitle);
             wrapper.like(CaseTag::getTagTitle,tagTitle);
         }
         }
@@ -65,16 +65,10 @@ public class CaseTagServiceImpl extends ServiceImpl<ICaseTagMapper, CaseTag> imp
     }
     }
 
 
     @Override
     @Override
-    public List<CaseTag> getListByCaseId(Integer caseId) {
+    public List<CaseTag> getListByFusionId(Integer caseId) {
         LambdaQueryWrapper<CaseTag> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<CaseTag> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(CaseTag::getCaseId,caseId);
+        wrapper.eq(CaseTag::getFusionId,caseId);
         return list(wrapper);
         return list(wrapper);
     }
     }
 
 
-    @Override
-    public void deletePointByCaseId(Integer caseId) {
-        List<CaseTag> list = this.getListByCaseId(caseId);
-        List<Integer> tagIds = list.parallelStream().map(CaseTag::getTagId).collect(Collectors.toList());
-        caseTagPointService.deleteByTagIds(tagIds);
-    }
 }
 }

+ 3 - 3
src/main/java/com/fdkankan/fusion/service/impl/CommonUploadServiceImpl.java

@@ -107,7 +107,7 @@ public class CommonUploadServiceImpl extends ServiceImpl<ICommonUploadMapper, Co
     private ResultData uploadModelZip(String oldName,File file,Integer dictId) {
     private ResultData uploadModelZip(String oldName,File file,Integer dictId) {
 
 
         String ossZipPath = String.format(OssPath.MANAGE_MODEL_FILE_PATH, UUID.randomUUID().toString().replace("-", ""));
         String ossZipPath = String.format(OssPath.MANAGE_MODEL_FILE_PATH, UUID.randomUUID().toString().replace("-", ""));
-        String unzipPath = CacheUtil.basePath + ossZipPath;
+        String unzipPath = CacheUtil.settingEntity.getProfilePath() + ossZipPath;
         ShellUtil.unZip(file.getPath(),unzipPath);
         ShellUtil.unZip(file.getPath(),unzipPath);
         try {
         try {
             Thread.sleep(1000L);
             Thread.sleep(1000L);
@@ -182,7 +182,7 @@ public class CommonUploadServiceImpl extends ServiceImpl<ICommonUploadMapper, Co
     }
     }
 
 
     private String uploadB3dm(String unzipPath, File modelFile) {
     private String uploadB3dm(String unzipPath, File modelFile) {
-        String b3dmJsonPath = FileWriterUtil.checkB3dmTileset(new File(CacheUtil.basePath + unzipPath));
+        String b3dmJsonPath = FileWriterUtil.checkB3dmTileset(new File(CacheUtil.settingEntity.getProfilePath() + unzipPath));
         if(b3dmJsonPath == null){
         if(b3dmJsonPath == null){
             throw new BusinessException(ResultCode.UPLOAD_FILE_OBJ_ERROR);
             throw new BusinessException(ResultCode.UPLOAD_FILE_OBJ_ERROR);
         }
         }
@@ -198,7 +198,7 @@ public class CommonUploadServiceImpl extends ServiceImpl<ICommonUploadMapper, Co
     OsgbToB3dmConsumer osgbToB3dmConsumer;
     OsgbToB3dmConsumer osgbToB3dmConsumer;
 
 
     private void uploadOsgb(Integer uploadId) {
     private void uploadOsgb(Integer uploadId) {
-         //osgbToB3dmConsumer.consumerQueue(CacheUtil.basePath + unzipPath);
+         //osgbToB3dmConsumer.consumerQueue(CacheUtil.settingEntity.getProfilePath() + unzipPath);
          osgbToB3dmConsumer.consumerQueue(uploadId);
          osgbToB3dmConsumer.consumerQueue(uploadId);
     }
     }
 
 

+ 2 - 2
src/main/java/com/fdkankan/fusion/service/impl/CopyCaseService.java

@@ -259,7 +259,7 @@ public class CopyCaseService {
      * 复制案件系统设置
      * 复制案件系统设置
      */
      */
     private void cpCaseSettings(Integer oldCaseId, Integer newCaseId) {
     private void cpCaseSettings(Integer oldCaseId, Integer newCaseId) {
-        List<CaseSettings> listByCaseId = caseSettingsService.getByCaseId(oldCaseId);
+        List<CaseSettings> listByCaseId = caseSettingsService.getByFusionId(oldCaseId);
         if(listByCaseId == null || listByCaseId.isEmpty()){
         if(listByCaseId == null || listByCaseId.isEmpty()){
             return;
             return;
         }
         }
@@ -289,7 +289,7 @@ public class CopyCaseService {
      * 复制案件标注
      * 复制案件标注
      */
      */
     private void cpCaseTag(Integer oldCaseId, Integer newCaseId) {
     private void cpCaseTag(Integer oldCaseId, Integer newCaseId) {
-        List<CaseTag> listByCaseId = caseTagService.getListByCaseId(oldCaseId);
+        List<CaseTag> listByCaseId = caseTagService.getListByFusionId(oldCaseId);
         if(listByCaseId == null || listByCaseId.isEmpty()){
         if(listByCaseId == null || listByCaseId.isEmpty()){
             return;
             return;
         }
         }

+ 17 - 2
src/main/java/com/fdkankan/fusion/service/impl/FusionGuideServiceImpl.java

@@ -33,19 +33,34 @@ public class FusionGuideServiceImpl extends ServiceImpl<IFusionGuideMapper, Fusi
     }
     }
 
 
     @Override
     @Override
+    public List<FusionGuide> getByFusionId(Integer fusionId) {
+        LambdaQueryWrapper<FusionGuide> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(FusionGuide::getFusionId,fusionId);
+        wrapper.orderByAsc(FusionGuide::getSort);
+        wrapper.orderByAsc(FusionGuide::getCreateTime);
+        return this.list(wrapper);
+    }
+
+    @Override
     public Long getCountByCaseId(Integer caseId) {
     public Long getCountByCaseId(Integer caseId) {
         LambdaQueryWrapper<FusionGuide> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<FusionGuide> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(FusionGuide::getCaseId,caseId);
         wrapper.eq(FusionGuide::getCaseId,caseId);
         return this.count(wrapper);
         return this.count(wrapper);
     }
     }
 
 
+    public Long getCountByFusionId(Integer fusionId) {
+        LambdaQueryWrapper<FusionGuide> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(FusionGuide::getFusionId,fusionId);
+        return this.count(wrapper);
+    }
+
     @Override
     @Override
     public FusionGuide add(FusionGuide fusionGuide) {
     public FusionGuide add(FusionGuide fusionGuide) {
-        if(fusionGuide.getCaseId() == null || StringUtils.isEmpty(fusionGuide.getTitle())
+        if(fusionGuide.getFusionId() == null || StringUtils.isEmpty(fusionGuide.getTitle())
             || StringUtils.isEmpty(fusionGuide.getCover())){
             || StringUtils.isEmpty(fusionGuide.getCover())){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
-        Long count = this.getCountByCaseId(fusionGuide.getCaseId());
+        Long count = this.getCountByFusionId(fusionGuide.getFusionId());
         fusionGuide.setSort(count + 1);
         fusionGuide.setSort(count + 1);
         this.save(fusionGuide);
         this.save(fusionGuide);
         return fusionGuide;
         return fusionGuide;

+ 53 - 28
src/main/java/com/fdkankan/fusion/service/impl/FusionNumServiceImpl.java

@@ -4,9 +4,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.fusion.common.ResultCode;
 import com.fdkankan.fusion.common.ResultCode;
-import com.fdkankan.fusion.entity.CaseFusion;
-import com.fdkankan.fusion.entity.FusionNum;
-import com.fdkankan.fusion.entity.Model;
+import com.fdkankan.fusion.common.util.CameraUtil;
+import com.fdkankan.fusion.common.util.NumTypeUtils;
+import com.fdkankan.fusion.entity.*;
 import com.fdkankan.fusion.entity.jsonEntity.Transform;
 import com.fdkankan.fusion.entity.jsonEntity.Transform;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.mapper.IFusionNumMapper;
 import com.fdkankan.fusion.mapper.IFusionNumMapper;
@@ -133,40 +133,65 @@ public class FusionNumServiceImpl extends ServiceImpl<IFusionNumMapper, FusionNu
     }
     }
 
 
     @Override
     @Override
-    public FusionNumVo add(FusionParam param) {
-        if(param.getModelId()==null || param.getCaseId() == null){
-            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
-        }
-        Model model = modelService.getById(param.getModelId());
+    public FusionNumVo add(FusionParam param, ScenePlus scenePlus, Integer isObj ) {
+        Integer type = NumTypeUtils.getMeshTypeBySceneSource(scenePlus.getSceneSource(), isObj,null);
+        Model model = modelService.getIsNullNewByNum(scenePlus.getNum(),type, isObj);
         if(model == null){
         if(model == null){
             throw new BusinessException(ResultCode.MODEL_NOT_EXIST);
             throw new BusinessException(ResultCode.MODEL_NOT_EXIST);
         }
         }
-        CaseFusion caseFusion = null;
-        synchronized (this){
-            List<CaseFusion> list = caseFusionService.getListByCaseId(param.getCaseId());
-            if(list.size() <=0){
-                caseFusion = new CaseFusion();
-                caseFusion.setCaseId(param.getCaseId());
-                caseFusionService.save(caseFusion);
-                list.add(caseFusion);
-            }
-            caseFusion = list.get(0);
-        }
 
 
-        List<FusionNum> fusionNums = this.getByFusionIdAndModelId(caseFusion.getFusionId(),param.getModelId());
-        if(fusionNums.size()>0){
-           this.removeByIds(fusionNums);
-        }
+        return addModel(param,model.getModelId(),scenePlus);
+    }
+
+    @Override
+    public FusionNumVo addModel(FusionParam param, Integer modelId,ScenePlus scenePlus) {
         FusionNum fusionNum = new FusionNum();
         FusionNum fusionNum = new FusionNum();
         BeanUtils.copyProperties(param,fusionNum);
         BeanUtils.copyProperties(param,fusionNum);
-        fusionNum.setFusionId(caseFusion.getFusionId());
+        fusionNum.setFusionId(param.getFusionId());
+        fusionNum.setModelId(modelId);
         fusionNum.setTransform(JSONObject.toJSONString(param.getTransform()));
         fusionNum.setTransform(JSONObject.toJSONString(param.getTransform()));
         this.save(fusionNum);
         this.save(fusionNum);
-        List<FusionNumVo> numVoList = this.getListByCaseId(param.getCaseId(), fusionNum.getFusionNumId());
-        if(numVoList.size()<=0){
-            throw new BusinessException(ResultCode.ERROR);
+
+        FusionNumVo vo = new FusionNumVo();
+        SceneVo sceneVo = new SceneVo();
+        BeanUtils.copyProperties(fusionNum,vo);
+        Model model = modelService.getById(modelId);
+        BeanUtils.copyProperties(model,sceneVo);
+        sceneVo.setStatus(2);
+        sceneVo.setSceneName(scenePlus.getTitle());
+        sceneVo.setSourceName(CameraUtil.getSourceName(model.getType()));
+        sceneVo.setName(scenePlus.getTitle());
+        sceneVo.setCreateTime(scenePlus.getCreateTime());
+        ScenePlusExt scenePlusExt = scenePlus.getScenePlusExt();
+        if(scenePlusExt != null){
+            sceneVo.setRtkLocation(scenePlusExt.getRtkLocation());
+            sceneVo.setOrientation(scenePlusExt.getOrientation());
         }
         }
-        return numVoList.get(0);
+
+        vo.setSceneData(sceneVo);
+        return vo;
+    }
+
+    @Override
+    public FusionNumVo addModel(FusionParam param, Integer modelId,String title) {
+        FusionNum fusionNum = new FusionNum();
+        BeanUtils.copyProperties(param,fusionNum);
+        fusionNum.setFusionId(param.getFusionId());
+        fusionNum.setModelId(modelId);
+        fusionNum.setTransform(JSONObject.toJSONString(param.getTransform()));
+        this.save(fusionNum);
+
+        FusionNumVo vo = new FusionNumVo();
+        SceneVo sceneVo = new SceneVo();
+        BeanUtils.copyProperties(fusionNum,vo);
+        Model model = modelService.getById(modelId);
+        BeanUtils.copyProperties(model,sceneVo);
+        sceneVo.setStatus(2);
+        sceneVo.setSceneName(title);
+        sceneVo.setSourceName(CameraUtil.getSourceName(model.getType()));
+
+        vo.setSceneData(sceneVo);
+        return vo;
     }
     }
 
 
     private List<FusionNum> getByFusionIdAndModelId(Integer fusionId, Integer modelId) {
     private List<FusionNum> getByFusionIdAndModelId(Integer fusionId, Integer modelId) {

+ 36 - 3
src/main/java/com/fdkankan/fusion/service/impl/HotIconServiceImpl.java

@@ -16,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.HashSet;
 import java.util.List;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -82,10 +83,11 @@ public class HotIconServiceImpl extends ServiceImpl<IHotIconMapper, HotIcon> imp
         this.update(wrapper);
         this.update(wrapper);
     }
     }
 
 
+
     @Override
     @Override
-    public List<HotIcon> getListByCaseId(Integer caseId) {
+    public List<HotIcon> getListByFusionId(Integer fusionId) {
         HashSet<Integer> hotIconIds = new HashSet<>();
         HashSet<Integer> hotIconIds = new HashSet<>();
-        List<CaseTag> list = caseTagService.getListByCaseId(caseId);
+        List<CaseTag> list = caseTagService.getListByFusionId(fusionId);
         if(list.size() >0){
         if(list.size() >0){
             List<Integer> ids  = list.parallelStream().map(CaseTag::getHotIconId).collect(Collectors.toList());
             List<Integer> ids  = list.parallelStream().map(CaseTag::getHotIconId).collect(Collectors.toList());
             if(!ids.isEmpty()){
             if(!ids.isEmpty()){
@@ -94,7 +96,7 @@ public class HotIconServiceImpl extends ServiceImpl<IHotIconMapper, HotIcon> imp
         }
         }
         hotIconIds.addAll(getDefaultIcon().stream().map(HotIcon::getIconId).collect(Collectors.toList()));
         hotIconIds.addAll(getDefaultIcon().stream().map(HotIcon::getIconId).collect(Collectors.toList()));
         LambdaQueryWrapper<HotIcon> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<HotIcon> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(HotIcon::getCaseId,caseId);
+        wrapper.eq(HotIcon::getFusionId,fusionId);
         List<HotIcon> list1 = this.list(wrapper);
         List<HotIcon> list1 = this.list(wrapper);
         List<Integer> ids = list1.stream().map(HotIcon::getIconId).collect(Collectors.toList());
         List<Integer> ids = list1.stream().map(HotIcon::getIconId).collect(Collectors.toList());
         if(!ids.isEmpty()){
         if(!ids.isEmpty()){
@@ -115,4 +117,35 @@ public class HotIconServiceImpl extends ServiceImpl<IHotIconMapper, HotIcon> imp
                 .orderByAsc(HotIcon::getSort);
                 .orderByAsc(HotIcon::getSort);
         return this.list(wrapper);
         return this.list(wrapper);
     }
     }
+
+    @Override
+    public List<HotIcon> treeList(List<HotIcon> iconList) {
+        HashMap<Integer,HotIcon> map = new HashMap<>();
+
+        List<HotIcon> list = new ArrayList<>();
+        List<HotIcon> result = new ArrayList<>();
+
+        for (HotIcon hotIcon : iconList) {
+            if(hotIcon.getParentId() == null){
+                list.add(hotIcon);
+            }
+            map.put(hotIcon.getIconId(),hotIcon);
+        }
+        for (HotIcon hotIcon : iconList) {
+            if(hotIcon.getParentId() == null){
+                continue;
+            }
+            HotIcon parent = map.get(hotIcon.getParentId());
+            if(parent.getChildrenList() == null){
+                parent.setChildrenList(new ArrayList<>());
+            }
+            parent.getChildrenList().add(hotIcon);
+        }
+        for (HotIcon hotIcon : list) {
+            result.add( map.get(hotIcon.getIconId()));
+        }
+
+        return result;
+    }
+
 }
 }

+ 31 - 0
src/main/java/com/fdkankan/fusion/service/impl/MapConfigServiceImpl.java

@@ -0,0 +1,31 @@
+package com.fdkankan.fusion.service.impl;
+
+import com.fdkankan.fusion.entity.MapConfig;
+import com.fdkankan.fusion.mapper.IMapConfigMapper;
+import com.fdkankan.fusion.service.IMapConfigService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2025-03-28
+ */
+@Service
+public class MapConfigServiceImpl extends ServiceImpl<IMapConfigMapper, MapConfig> implements IMapConfigService {
+
+
+    @Override
+    public HashMap<Integer, MapConfig> getMapByIds(List<Integer> mapIds) {
+        HashMap<Integer,MapConfig> map = new HashMap<>();
+        List<MapConfig> mapConfigs = this.listByIds(mapIds);
+        mapConfigs.forEach( e -> map.put(e.getId(),e));
+        return map;
+    }
+}

+ 87 - 6
src/main/java/com/fdkankan/fusion/service/impl/ModelServiceImpl.java

@@ -209,6 +209,9 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
 
 
     @Override
     @Override
     public List<Model> getListByModelIds(List<Integer> modelIds) {
     public List<Model> getListByModelIds(List<Integer> modelIds) {
+        if(modelIds == null || modelIds.isEmpty()){
+            return new ArrayList<>();
+        }
         LambdaQueryWrapper<Model> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<Model> wrapper = new LambdaQueryWrapper<>();
         wrapper.in(Model::getModelId,modelIds);
         wrapper.in(Model::getModelId,modelIds);
         return this.list(wrapper);
         return this.list(wrapper);
@@ -238,19 +241,45 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
     }
     }
 
 
     @Override
     @Override
-    public Model getIsNullNewByNum(String num,Integer type) {
+    public Model getIsNullNewByNum(String num,Integer type, Integer isObj) {
         LambdaQueryWrapper<Model> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<Model> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(Model::getNum,num);
         wrapper.eq(Model::getNum,num);
         wrapper.eq(Model::getType,type);
         wrapper.eq(Model::getType,type);
-        List<Model> models = this.list(wrapper);
-        if(models == null || models.isEmpty()){
-            return new Model();
+        Model model = this.getOne(wrapper);
+        if(model == null){
+            model = new Model();
         }
         }
-        return models.get(0);
+        if(model.getModelId() != null && StringUtils.isNotBlank(model.getModelGlbUrl()) && StringUtils.isNotBlank(model.getModelSize())){
+            return model;
+        }
+        model.setModelDateType("obj");
+        model.setType(type);
+        model.setModelType("pointcloud");    //深时点云类型
+        model.setCreateStatus(1);
+        model.setIsObj(isObj);
+        if(isObj == 1){           //看看,看见
+            String mesh3DtilesPath  = String.format(FilePath.OBJ_OSS_PATH,num) + "/images/3dtiles/tileset.json";
+            String sizePath = String.format(FilePath.OBJ_OSS_PATH,num) + "/images/3dtiles";
+            if(localToOssUtil.existKey(mesh3DtilesPath)){
+                model.setModelDateType("b3dm");
+                model.setModelType("b3dm");
+                model.setModelGlbUrl(JSONArray.toJSONString(Arrays.asList(queryPath +mesh3DtilesPath)));
+                model.setModelSize(FileWriterUtil.setFileSize(localToOssUtil.getSize( sizePath)));
+            }else {
+                model.setModelObjUrl(String.format(FilePath.OBJ_LOCAL_PATH,environment ,num) +"/mesh.obj");
+                model.setModelGlbUrl(getGlbUrl(type,num,model));
+                model.setModelType("glb");
+            }
+
+        }
+        model.setNum(num);
+
+        this.saveOrUpdate(model);
+        return model;
     }
     }
 
 
     @Override
     @Override
-    public Object getInfo(Integer modelId) {
+    public SceneVo getInfo(Integer modelId) {
         Model model = this.getById(modelId);
         Model model = this.getById(modelId);
         if(model == null){
         if(model == null){
             throw new BusinessException(ResultCode.SCENE_NOT_EXIST);
             throw new BusinessException(ResultCode.SCENE_NOT_EXIST);
@@ -326,4 +355,56 @@ public class ModelServiceImpl extends ServiceImpl<IModelMapper, Model> implement
             localToOssUtil.copyFile(oldOssPath,newOssPath);
             localToOssUtil.copyFile(oldOssPath,newOssPath);
         }
         }
     }
     }
+
+
+
+
+
+
+
+
+    private String getGlbUrl(Integer type, String num,Model model) {
+        if(type == 0 || type == 1 || type == 4 || type == 6 || type == 7){ //看看,看见
+            String objPath = String.format(FilePath.OBJ_LOCAL_PATH ,environment,num);
+            ShellUtil.yunDownload(String.format(FilePath.OBJ_OSS_PATH, num)+"/data/mesh" ,objPath);
+            List<String> localGlbPaths = new ArrayList<>();
+            List<String> ossGlbPaths = new ArrayList<>();
+            File localFile = new File(objPath);
+            this.toGlB(localFile,localGlbPaths);
+            Long modelSize = 0L;
+            if(localGlbPaths.size() >0){
+                for (String localGlbPath : localGlbPaths) {
+                    String ossGlbPath = localGlbPath.replace(FilePath.LOCAL_BASE_PATH,"fusion/");
+                    localToOssUtil.uploadOss(localGlbPath,ossGlbPath);
+                    if(ossGlbPath.contains("lod_")){
+                        if(ossGlbPath.contains("lod_0")){
+                            ossGlbPaths.add(queryPath  +ossGlbPath);
+                            modelSize +=  localToOssUtil.getSize(ossGlbPath);
+                        }
+                        continue;
+                    }
+                    modelSize +=  localToOssUtil.getSize(ossGlbPath);
+                    ossGlbPaths.add(queryPath +ossGlbPath);
+                }
+                model.setModelSize(FileWriterUtil.setFileSize(modelSize));
+                FileUtil.del(objPath);
+                return JSONArray.toJSONString(ossGlbPaths);
+            }
+            FileUtil.del(objPath);
+        }
+        return null;
+    }
+
+    private void toGlB(File localFile, List<String> localGlbPath) {
+        File[] files = localFile.listFiles();
+        for (File file : files) {
+            if(file.isDirectory()){
+                toGlB(file,localGlbPath);
+            }
+            if(file.getName().contains(".obj")){
+                String glbPath =  OBJToGLBUtil.objToGlb(file.getPath(),file.getPath().replace(".obj",".glb") );
+                localGlbPath.add(glbPath);
+            }
+        }
+    }
 }
 }

+ 0 - 4
src/main/java/com/fdkankan/fusion/service/impl/SceneCommonService.java

@@ -116,7 +116,6 @@ public class SceneCommonService implements ISceneCommonService {
         Page<Scene> page = sceneService.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
         Page<Scene> page = sceneService.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
         List<String> numList = page.getRecords().parallelStream().map(Scene::getSceneCode).collect(Collectors.toList());
         List<String> numList = page.getRecords().parallelStream().map(Scene::getSceneCode).collect(Collectors.toList());
 
 
-        HashMap<String, CaseEntity> mapByNumList = caseNumService.getMapByNumList(numList);
         HashMap<String, SceneFileBuild> buildTimeByScene = sceneFileBuildService.getBuildTimeByScene(numList);
         HashMap<String, SceneFileBuild> buildTimeByScene = sceneFileBuildService.getBuildTimeByScene(numList);
 
 
         HashMap<String,SceneVo> rtkInfoMap = new HashMap<>();
         HashMap<String,SceneVo> rtkInfoMap = new HashMap<>();
@@ -154,9 +153,6 @@ public class SceneCommonService implements ISceneCommonService {
                 vo.setOrientation(rtkVo.getOrientation());
                 vo.setOrientation(rtkVo.getOrientation());
                 vo.setRtkLocation(rtkVo.getRtkLocation());
                 vo.setRtkLocation(rtkVo.getRtkLocation());
             }
             }
-            if(mapByNumList.get(vo.getNum() +"_"+  vo.getType())!=null){
-                vo.setInCase(true);
-            }
             //       "buildScene":"buildObj";
             //       "buildScene":"buildObj";
             SceneFileBuild sceneFileBuild = null;
             SceneFileBuild sceneFileBuild = null;
             if(!vo.getIsLaser()){
             if(!vo.getIsLaser()){

+ 23 - 0
src/main/java/com/fdkankan/fusion/service/impl/ScenePlusExtServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fdkankan.fusion.service.impl;
 package com.fdkankan.fusion.service.impl;
 
 
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.fusion.entity.ScenePlusExt;
 import com.fdkankan.fusion.entity.ScenePlusExt;
 import com.fdkankan.fusion.mapper.IScenePlusExtMapper;
 import com.fdkankan.fusion.mapper.IScenePlusExtMapper;
 import com.fdkankan.fusion.response.SceneVo;
 import com.fdkankan.fusion.response.SceneVo;
@@ -8,6 +9,7 @@ import com.fdkankan.fusion.service.IScenePlusExtService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -26,4 +28,25 @@ public class ScenePlusExtServiceImpl extends ServiceImpl<IScenePlusExtMapper, Sc
     public List<SceneVo> getRtkByNumList(List<String> numList) {
     public List<SceneVo> getRtkByNumList(List<String> numList) {
         return this.getBaseMapper().getRtkByNumList(numList);
         return this.getBaseMapper().getRtkByNumList(numList);
     }
     }
+
+    @Override
+    public ScenePlusExt getByPlusId(Long id) {
+        LambdaQueryWrapper<ScenePlusExt> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePlusExt::getPlusId,id);
+        List<ScenePlusExt> list = this.list(wrapper);
+        if(list == null || list.isEmpty()){
+            return null;
+        }
+        return list.get(0);
+    }
+
+    @Override
+    public List<ScenePlusExt> getByPlusIds(List<Long> plusIds) {
+        if(plusIds == null || plusIds.isEmpty()){
+            return new ArrayList<>();
+        }
+        LambdaQueryWrapper<ScenePlusExt> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(ScenePlusExt::getPlusId,plusIds);
+        return this.list(wrapper);
+    }
 }
 }

+ 1 - 1
src/main/java/com/fdkankan/fusion/service/impl/TmProjectServiceImpl.java

@@ -149,7 +149,7 @@ public class TmProjectServiceImpl extends ServiceImpl<ITmProjectMapper, TmProjec
                 record.setOrganizerDeptName(tmDepartment.getName());
                 record.setOrganizerDeptName(tmDepartment.getName());
             }
             }
 
 
-            List<CaseSettings> caseSettings = caseSettingsService.getByCaseId(record.getCaseId());
+            List<CaseSettings> caseSettings = caseSettingsService.getByFusionId(record.getCaseId());
             if(!caseSettings.isEmpty()){
             if(!caseSettings.isEmpty()){
                 CaseSettings caseSettings1 = caseSettings.get(0);
                 CaseSettings caseSettings1 = caseSettings.get(0);
                 if(caseSettings1 != null){
                 if(caseSettings1 != null){

+ 12 - 21
src/main/java/com/fdkankan/fusion/task/InitService.java

@@ -42,34 +42,37 @@ public class InitService {
     IHotIconService hotIconService;
     IHotIconService hotIconService;
     @Value("${upload.type}")
     @Value("${upload.type}")
     private String uploadType;
     private String uploadType;
-    @Value("${fdkk.installPath}")
-    private String installPath;
+    @Value("${fdkk.settingPath}")
+    private String settingPath;
     @Autowired
     @Autowired
     IPathService pathService;
     IPathService pathService;
     @PostConstruct
     @PostConstruct
     public void run()  {
     public void run()  {
+        getSettingJson();
         initConfig();
         initConfig();
         checkDefaultImag();
         checkDefaultImag();
         delMediaLibrary();
         delMediaLibrary();
         writerStateFile();
         writerStateFile();
         delRedisKey();
         delRedisKey();
         cleanRedisKey();
         cleanRedisKey();
-        getSettingJson();
     }
     }
 
 
-
+    public void getSettingJson() {
+        CacheUtil.settingPath = settingPath;
+        String s = FileUtil.readUtf8String(new File(settingPath));
+        CacheUtil.settingEntity = JSONObject.parseObject(s, SettingEntity.class);
+        log.info("settingPath:{},{}",settingPath, CacheUtil.settingEntity );
+    }
 
 
 
 
     public void initConfig(){
     public void initConfig(){
         CacheUtil.uploadType = uploadType;
         CacheUtil.uploadType = uploadType;
-        CacheUtil.installPath = new File(installPath).getParentFile().getPath() +File.separator;
         Path path = pathService.getBasePath();
         Path path = pathService.getBasePath();
         if(path != null){
         if(path != null){
             CacheUtil.mapping = path.getMapping() + File.separator;
             CacheUtil.mapping = path.getMapping() + File.separator;
-            CacheUtil.basePath = path.getDir() ;
+            CacheUtil.settingEntity.setProfilePath(path.getDir());
         }else {
         }else {
             CacheUtil.mapping = "profile" + File.separator;
             CacheUtil.mapping = "profile" + File.separator;
-            CacheUtil.basePath =  CacheUtil.installPath +"/4DKK_PROGRAM_STATIC/";
         }
         }
     }
     }
 
 
@@ -89,7 +92,7 @@ public class InitService {
             }
             }
 
 
             if(hotIcon != null){
             if(hotIcon != null){
-                File file = new File(hotIcon.getIconUrl().replace("profile",CacheUtil.installPath +"/4DKK_PROGRAM_STATIC"));
+                File file = new File(hotIcon.getIconUrl().replace("profile",CacheUtil.settingEntity.getProfilePath() ));
                 if(!file.exists()){
                 if(!file.exists()){
                     InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/default/tag_icon_default.svg");
                     InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/default/tag_icon_default.svg");
                     FileUtils.copyInputStreamToFile(inputStream,file);
                     FileUtils.copyInputStreamToFile(inputStream,file);
@@ -165,7 +168,7 @@ public class InitService {
     }
     }
 
 
     private void writerStateFile() {
     private void writerStateFile() {
-        String path = CacheUtil.installPath + "bin" + File.separator + "resources" + File.separator + "static" + File.separator +".fusionstate";
+        String path = CacheUtil.settingEntity.getBinPath() + File.separator +".fusionstate";
         log.info("写入status文件:{}",path);
         log.info("写入status文件:{}",path);
         FileUtil.writeString("1",new File(path), StandardCharsets.UTF_8);
         FileUtil.writeString("1",new File(path), StandardCharsets.UTF_8);
     }
     }
@@ -211,16 +214,4 @@ public class InitService {
 
 
     }
     }
 
 
-    private void getSettingJson() {
-        try{
-            String path = CacheUtil.installPath + "bin" + File.separator + "resources" + File.separator + "static" + File.separator +"setting.json";
-            String s = FileUtil.readUtf8String(new File(path));
-            JSONObject jsonObject = JSON.parseObject(s);
-            Boolean ga = jsonObject.getBoolean("ga");
-            CacheUtil.ga = ga;
-            log.info("ga:{}",ga);
-        }catch (Exception e){
-            log.info("获取settingjson失败:{}",e);
-        }
-    }
 }
 }

+ 16 - 0
src/main/java/com/fdkankan/fusion/task/SettingEntity.java

@@ -0,0 +1,16 @@
+package com.fdkankan.fusion.task;
+
+import lombok.Data;
+
+@Data
+public class SettingEntity {
+
+    private String buildModelPath;  //
+    private String profilePath;  //静态资源目录
+    private String buildCallPath;  //命令目录
+    private String binPath;
+    private Boolean ga;
+    private Integer laserPort;
+    private Integer meshPort;
+    private Integer fusePort;
+}

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

@@ -68,7 +68,7 @@ oss:
 
 
 
 
 fdkk:
 fdkk:
-  installPath: ${PROFILE_PATH}
+  settingPath: ${SETTING_JSON}
 
 
 
 
 geoquery:
 geoquery:

+ 5 - 0
src/main/resources/mapper/fusion/CaseOverviewMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.fusion.mapper.ICaseOverviewMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/mapper/fusion/CaseTabulationMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.fusion.mapper.ICaseTabulationMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/mapper/fusion/ICaseAnimationMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.fusion.mapper.ICaseAnimationMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/mapper/fusion/IMapConfigMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.fusion.mapper.IMapConfigMapper">
+
+</mapper>