lyhzzz 2 月之前
父节点
当前提交
aa74295505

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

@@ -95,7 +95,7 @@ public class OBJToGLBUtil {
             throw new BusinessException(ResultCode.UPLOAD_FILE_OBJ_ERROR);
         }
         LinkedHashSet<String> imgName = new LinkedHashSet<>();
-        if(allFile == null || allFile.length()<=0 ){
+        if(allFile == null  ){
             throw new BusinessException(ResultCode.UPLOAD_FILE_OBJ_ERROR);
         }
         File[] files = allFile.listFiles();

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

@@ -44,7 +44,7 @@ public class CaseTabulationController {
 
     @PostMapping("/addOrUpdate")
     public ResultData addOrUpdate (@RequestBody CaseTabulation caseTabulation){
-        caseTabulationService.saveOrUpdate(caseTabulation);
+        caseTabulationService.addOrUpdate(caseTabulation);
         return ResultData.ok(caseTabulation);
     }
 

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

@@ -508,7 +508,7 @@ public class CaseDownService {
             String res = (String) object;
             log.info("下载模型:{}",res);
             res = res.replace(queryPath, "");
-            if(res.contains(".json") || res.contains(".shp")){
+            if(res.contains(".json") ){
                 res = new File(res).getParentFile().getPath();
             }
             ShellUtil.yunDownload(res, path +queryPath + res);

+ 6 - 0
src/main/java/com/fdkankan/fusion/entity/CaseFiles.java

@@ -88,5 +88,11 @@ public class CaseFiles implements Serializable {
     @TableField("content")
     private String content;
 
+    @TableField("overview_id")
+    private Integer overviewId;
+
+    @TableField("tabulation_id")
+    private Integer tabulationId;
+
 
 }

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

@@ -79,4 +79,11 @@ public class CaseTabulation implements Serializable {
 
     @TableField("width")
     private Integer width;
+
+    /**
+     * 封面图
+     */
+    @TableField("list_cover")
+    private String listCover;
+
 }

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

@@ -25,4 +25,8 @@ public interface ICaseFilesService extends IService<CaseFiles> {
     CaseFiles addByInquest(CaseInquestCriminal caseInquestCriminal);
 
     List<CaseFiles> getByCaseIdAndTypeId(Integer caseId, Integer filesTypeId);
+
+    CaseFiles getByTabulation(Integer tabulationId);
+
+    CaseFiles getByOverviewId(Integer overviewId);
 }

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

@@ -18,4 +18,6 @@ public interface ICaseTabulationService extends IService<CaseTabulation> {
     List<CaseTabulation> getByCaseId(String caseId);
 
     List<CaseTabulation> getByOverviewId(String overviewId);
+
+    void addOrUpdate(CaseTabulation caseTabulation);
 }

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

@@ -16,5 +16,5 @@ public interface ISceneDownLogService extends IService<SceneDownLog> {
 
     Object pageList(SceneDownLogParam param);
 
-    SceneDownLog getByStatusAndNum(String sceneNum, Integer status,Integer version);
+    SceneDownLog getByStatusAndNum(String sceneNum, Integer status);
 }

+ 22 - 0
src/main/java/com/fdkankan/fusion/service/impl/CaseFilesServiceImpl.java

@@ -98,4 +98,26 @@ public class CaseFilesServiceImpl extends ServiceImpl<ICaseFilesMapper, CaseFile
         List<CaseFiles> list = this.list(wrapper);
         return list;
     }
+
+    @Override
+    public CaseFiles getByTabulation(Integer tabulationId) {
+        LambdaQueryWrapper<CaseFiles> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseFiles::getTabulationId,tabulationId);
+        List<CaseFiles> list = this.list(wrapper);
+        if(list != null && !list.isEmpty()){
+            return list.get(0);
+        }
+        return null;
+    }
+
+    @Override
+    public CaseFiles getByOverviewId(Integer overviewId) {
+        LambdaQueryWrapper<CaseFiles> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CaseFiles::getOverviewId,overviewId);
+        List<CaseFiles> list = this.list(wrapper);
+        if(list != null && !list.isEmpty()){
+            return list.get(0);
+        }
+        return null;
+    }
 }

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

@@ -1,10 +1,16 @@
 package com.fdkankan.fusion.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.fusion.entity.CaseFiles;
+import com.fdkankan.fusion.entity.CaseOverview;
 import com.fdkankan.fusion.entity.CaseTabulation;
 import com.fdkankan.fusion.mapper.ICaseTabulationMapper;
+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;
@@ -20,6 +26,11 @@ import java.util.List;
 @Service
 public class CaseTabulationServiceImpl extends ServiceImpl<ICaseTabulationMapper, CaseTabulation> implements ICaseTabulationService {
 
+    @Autowired
+    ICaseFilesService caseFilesService;
+    @Autowired
+    ICaseOverviewService caseOverviewService;
+
     @Override
     public List<CaseTabulation> getByCaseId(String caseId) {
         LambdaQueryWrapper<CaseTabulation> wrapper = new LambdaQueryWrapper<>();
@@ -35,4 +46,52 @@ public class CaseTabulationServiceImpl extends ServiceImpl<ICaseTabulationMapper
         wrapper.orderByDesc(CaseTabulation::getId);
         return this.list(wrapper);
     }
+
+    @Override
+    public void addOrUpdate(CaseTabulation caseTabulation) {
+
+        this.saveOrUpdate(caseTabulation);
+
+        if(StringUtils.isNotBlank(caseTabulation.getListCover()) || caseTabulation.getOverviewId() != null){
+            CaseFiles caseFiles  = new CaseFiles();
+            if(caseTabulation.getId()!=null){
+                CaseTabulation db = this.getById(caseTabulation.getId());
+                if(caseTabulation.getOverviewId() == null){
+                    caseTabulation.setOverviewId(db.getOverviewId());
+                }
+                CaseFiles dbCaseFile = caseFilesService.getByTabulation(caseTabulation.getId());
+                if(dbCaseFile != null){
+                    caseFiles.setFilesId(dbCaseFile.getFilesId());
+                }
+            }
+            if(caseTabulation.getOverviewId()!=null){
+                CaseFiles dbCaseFile = caseFilesService.getByOverviewId(caseTabulation.getOverviewId());
+                if(dbCaseFile != null){
+                    caseFiles.setFilesId(dbCaseFile.getFilesId());
+                }
+            }
+            caseFiles.setCaseId(caseTabulation.getCaseId());
+            caseFiles.setFilesUrl(caseTabulation.getListCover());
+            if(StringUtils.isBlank(caseTabulation.getListCover())){
+                CaseOverview caseOverview = caseOverviewService.getById(caseTabulation.getOverviewId());
+                caseFiles.setFilesUrl(caseOverview.getListCover());
+            }
+
+            if(caseTabulation.getOverviewId() != null){         //平面图
+                caseFiles.setFilesTypeId(41);
+                caseFiles.setFilesTitle("平面图");
+                caseFiles.setOverviewId(caseTabulation.getOverviewId() );
+            }else {
+                caseFiles.setFilesTypeId(42);
+                caseFiles.setFilesTitle("方位图");
+                caseFiles.setTabulationId(caseTabulation.getId() );
+
+            }
+            caseFilesService.saveOrUpdate(caseFiles);
+        }
+
+
+
+
+    }
 }

+ 15 - 11
src/main/java/com/fdkankan/fusion/service/impl/DownService.java

@@ -81,24 +81,28 @@ public class DownService implements IDownService {
         SceneDownLog sceneDownloadLog;
         Integer sceneVersion = getSceneVersion(plus);
 
-        sceneDownloadLog = sceneDownloadLogService.getByStatusAndNum(sceneNum,0,sceneVersion);
         DownVo downVo = new DownVo();
-        if(sceneDownloadLog != null){
-            downVo.setDownloadStatus(1);
+        sceneDownloadLog = sceneDownloadLogService.getByStatusAndNum(sceneNum,1);
+        //3下载过,并且没有修改过
+        if(sceneDownloadLog != null && sceneDownloadLog.getVersion().intValue() == sceneVersion){
+            downVo.setDownloadStatus(3);
+            downVo.setDownloadUrl(sceneDownloadLog.getDownUrl());
             return downVo;
         }
-        sceneDownloadLog = sceneDownloadLogService.getByStatusAndNum(sceneNum,1,sceneVersion);
+
         //下载过,有更改
-        if(sceneDownloadLog == null){
-            String redisKey = RedisKey.PREFIX_DOWNLOAD_PROGRESS;
+        if(sceneDownloadLog != null){
+            String redisKey = RedisKey.PREFIX_DOWNLOAD_PROGRESS_V4;
             downVo.setDownloadStatus(2);
             redisUtil.del(String.format(redisKey,sceneNum));  // 清除旧的下载信息
             return downVo;
+        }else {
+            sceneDownloadLog = sceneDownloadLogService.getByStatusAndNum(sceneNum,0);
+            if(sceneDownloadLog != null){
+                downVo.setDownloadStatus(1);
+                return downVo;
+            }
         }
-        saveLog(plus,sceneVersion,type);
-        //3下载过,并且没有修改过
-        downVo.setDownloadStatus(3);
-        downVo.setDownloadUrl(sceneDownloadLog.getDownUrl());
         return downVo;
 
     }
@@ -184,7 +188,7 @@ public class DownService implements IDownService {
         if(StringUtils.isEmpty(result)){
             return new DownloadProcessVo();
         }
-        SceneDownLog sceneDownloadLog = sceneDownloadLogService.getByStatusAndNum(sceneNum,0,getSceneVersion(scenePlus));
+        SceneDownLog sceneDownloadLog = sceneDownloadLogService.getByStatusAndNum(sceneNum,0);
 
         DownloadProcessVo downloadProcessVo = JSONObject.parseObject(result, DownloadProcessVo.class);
         if(sceneDownloadLog != null){

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

@@ -71,11 +71,10 @@ public class SceneDownLogServiceImpl extends ServiceImpl<ISceneDownLogMapper, Sc
     }
 
     @Override
-    public SceneDownLog getByStatusAndNum(String sceneNum, Integer status,Integer sceneVersion) {
+    public SceneDownLog getByStatusAndNum(String sceneNum, Integer status) {
         LambdaQueryWrapper<SceneDownLog> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(SceneDownLog::getSceneNum,sceneNum);
         wrapper.eq(SceneDownLog::getStatus,status);
-        wrapper.eq(SceneDownLog::getVersion,sceneVersion);
         wrapper.orderByDesc(SceneDownLog::getId);
         List<SceneDownLog> list = this.list(wrapper);
         if(list != null && !list.isEmpty()){