Browse Source

增加下载cad文件接接口

dengsixing 1 year ago
parent
commit
89a735627a

+ 18 - 3
src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -323,9 +323,24 @@ public class SceneEditController extends BaseController {
      * @return com.fdkankan.web.response.ResultData
      **/
     @CheckPermit
-    @PostMapping(value = "/cad/saveDxf")
-    public ResultData saveCadDxf(@RequestParam MultipartFile file, @RequestParam String num) throws Exception{
-        return sceneEditInfoService.saveCadDxf(file, num);
+    @GetMapping(value = "/cad/dxf/download")
+    public ResultData saveCadDxf(@RequestParam String num) throws Exception{
+        return sceneEditInfoService.downloadDxf(num);
+    }
+
+    /**
+     * <p>
+     保存户型图
+     * </p>
+     * @author dengsixing
+     * @date 2022/1/20
+     * @param param
+     * @return com.fdkankan.web.response.ResultData
+     **/
+    @CheckPermit
+    @PostMapping(value = "/cad/dxf/upload")
+    public ResultData uploadDxf(@RequestParam MultipartFile file, @RequestParam String num) throws Exception{
+        return sceneEditInfoService.uploadDxf(file, num);
     }
 
     /**

+ 3 - 1
src/main/java/com/fdkankan/scene/service/ISceneEditInfoService.java

@@ -52,7 +52,9 @@ public interface ISceneEditInfoService extends IService<SceneEditInfo> {
 
     ResultData saveCad(BaseDataParamVO param) throws Exception;
 
-    ResultData saveCadDxf(MultipartFile file, String num) throws Exception;
+    ResultData uploadDxf(MultipartFile file, String num) throws Exception;
+
+    ResultData downloadDxf(String num) throws Exception;
 
     ResultData resetCad(String num) throws IOException;
 

+ 27 - 1
src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -19,7 +19,9 @@ import com.fdkankan.common.util.FileMd5Util;
 import com.fdkankan.common.util.FileSizeUtil;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.dxf.parse.utils.FdJsonToDxfUtil;
+import com.fdkankan.fyun.config.FYunFileConfig;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
+import com.fdkankan.fyun.util.OssFileUtil;
 import com.fdkankan.model.constants.ConstantFilePath;
 import com.fdkankan.model.constants.UploadFilePath;
 import com.fdkankan.model.utils.ComputerUtil;
@@ -110,6 +112,8 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     private ICutModelService cutModelService;
     @Autowired
     private ICommonService commonService;
+    @Autowired
+    private FYunFileConfig fYunFileConfig;
 
     @Transactional
     @Override
@@ -673,7 +677,7 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     }
 
     @Override
-    public ResultData saveCadDxf(MultipartFile file, String num) throws Exception {
+    public ResultData uploadDxf(MultipartFile file, String num) throws Exception {
 
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
         ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
@@ -717,6 +721,28 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     }
 
     @Override
+    public ResultData downloadDxf(String num) throws Exception {
+
+        ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);
+        ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
+        SceneEditInfo sceneEditInfo = this.getByScenePlusId(scenePlus.getId());
+        if(Objects.isNull(sceneEditInfo.getFloorPlanUser()) || sceneEditInfo.getFloorPlanUser() == CommonStatus.NO.code()){
+            return ResultData.ok();
+        }
+
+        String localFloorplan = String.format(ConstantFilePath.SCENE_USER_PATH_V4, num) + UUID.randomUUID() + ".json";
+        fYunFileService.downloadFile(scenePlusExt.getYunFileBucket(),
+                String.format(UploadFilePath.USER_EDIT_PATH, num) + "floorplan.json", localFloorplan);
+        String localDxf = String.format(ConstantFilePath.SCENE_USER_PATH_V4, num) + UUID.randomUUID() + ".dxf";
+        FdJsonToDxfUtil.fdJsonToDxf(localFloorplan, localDxf);
+        String key = OssFileUtil.getUploadTempFileKey(null, "dxf");
+        fYunFileService.uploadFile(scenePlusExt.getYunFileBucket(), localDxf, key);
+        String url = fYunFileConfig.getHost() + key;
+
+        return ResultData.ok(url);
+    }
+
+    @Override
     public ResultData resetCad(String num) throws IOException {
 
         ScenePlus scenePlus = scenePlusService.getScenePlusByNum(num);