lyhzzz 6 дней назад
Родитель
Сommit
605d40a0f2

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

@@ -20,7 +20,6 @@ import com.fdkankan.fusion.request.CaseParam;
 import com.fdkankan.fusion.response.*;
 import com.fdkankan.fusion.service.*;
 import com.fdkankan.fusion.service.impl.DownService;
-import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.redis.util.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;

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

@@ -32,4 +32,6 @@ public interface ISceneDeptShareService extends IService<SceneDeptShare> {
     void checkCaseId(Integer caseId);
 
     void deleteByCaseId(Integer caseId);
+
+    void deleteByNumList(List<String> numList);
 }

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

@@ -4,6 +4,8 @@ import com.fdkankan.fusion.entity.SceneDownLog;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.fusion.request.SceneDownLogParam;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务类
@@ -16,5 +18,5 @@ public interface ISceneDownLogService extends IService<SceneDownLog> {
 
     Object pageList(SceneDownLogParam param);
 
-    SceneDownLog getByStatusAndNum(String sceneNum, Integer status,Integer version,Integer isObj);
+    List<SceneDownLog> getByStatusAndNum(String sceneNum,Integer status, Integer version, Integer isObj);
 }

+ 25 - 27
src/main/java/com/fdkankan/fusion/service/impl/DownService.java

@@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @Service
@@ -76,30 +77,24 @@ public class DownService implements IDownService {
         }
         Integer sceneType =  plus.getSceneSource();
         log.info("checkDownLoad--sceneType:{},isObj:{}",sceneType,isObj);
+        Integer sceneVersion = getSceneVersion(plus);
+        saveLog(plus,sceneVersion,type,isObj);
+
         if(NumTypeUtils.isLaserBySceneSource(sceneType) && isObj !=1){ //深时场景
             return SSCheckDownload(sceneNum);
         }
-        SceneDownLog sceneDownloadLog;
-        Integer sceneVersion = getSceneVersion(plus);
+        List<SceneDownLog> sceneDownloadLogs = sceneDownloadLogService.getByStatusAndNum(sceneNum,1,sceneVersion,isObj);
 
-        sceneDownloadLog = sceneDownloadLogService.getByStatusAndNum(sceneNum,0,sceneVersion,isObj);
         DownVo downVo = new DownVo();
-        if(sceneDownloadLog != null){
-            downVo.setDownloadStatus(1);
-            return downVo;
-        }
-        sceneDownloadLog = sceneDownloadLogService.getByStatusAndNum(sceneNum,1,sceneVersion,isObj);
         //下载过,有更改
-        if(sceneDownloadLog == null){
+        if(sceneDownloadLogs == null || sceneDownloadLogs.isEmpty()){
             String redisKey = RedisKey.PREFIX_DOWNLOAD_PROGRESS;
             downVo.setDownloadStatus(2);
             redisUtil.del(String.format(redisKey,sceneNum));  // 清除旧的下载信息
             return downVo;
         }
-        saveLog(plus,sceneVersion,type,isObj);
-        //3下载过,并且没有修改过
         downVo.setDownloadStatus(3);
-        downVo.setDownloadUrl(sceneDownloadLog.getDownUrl());
+        downVo.setDownloadUrl(sceneDownloadLogs.get(0).getDownUrl());
         return downVo;
 
     }
@@ -118,9 +113,7 @@ public class DownService implements IDownService {
         Long userId =  scenePlus.getUserId();
 
         Integer sceneType =  scenePlus.getSceneSource();
-        Integer sceneVersion = getSceneVersion( scenePlus);
         log.info("down--sceneType:{},isObj:{}",sceneType,isObj);
-        saveLog(scenePlus,sceneVersion,type,isObj);
         if(NumTypeUtils.isLaserBySceneSource(sceneType)  && isObj !=1){ //深时场景
             return SSDownload(sceneNum,userId);
         }
@@ -189,24 +182,19 @@ public class DownService implements IDownService {
         if(StringUtils.isEmpty(result)){
             return new DownloadProcessVo();
         }
-        SceneDownLog sceneDownloadLog = sceneDownloadLogService.getByStatusAndNum(sceneNum,0,getSceneVersion(scenePlus),isObj);
 
         DownloadProcessVo downloadProcessVo = JSONObject.parseObject(result, DownloadProcessVo.class);
-        if(sceneDownloadLog != null){
             switch (downloadProcessVo.getStatus()) {
                 case DownloadStatusEnum.DOWNLOAD_SUCCESS_CODE:
                     String url = downloadProcessVo.getUrl();
                     if (!StringUtils.isEmpty(url)) {
-                        sceneDownloadLog.setDownUrl(url);
-                        sceneDownloadLog.setStatus(1);
+                        updateLogStatus(sceneNum,getSceneVersion(scenePlus),1,isObj,url);
                         break;
                     }
                 case DownloadStatusEnum.DOWNLOAD_FAILED_CODE:
-                    sceneDownloadLog.setStatus(-1);
+                    updateLogStatus(sceneNum,getSceneVersion(scenePlus),-1,isObj,null);
                     break;
             }
-            sceneDownloadLogService.updateById(sceneDownloadLog);
-        }
         return downloadProcessVo;
     }
 
@@ -275,14 +263,24 @@ public class DownService implements IDownService {
             downVo.setUrl(vo.getUrl());
             downVo.setStatus(1002);
 
-            LambdaUpdateWrapper<SceneDownLog> wrapper = new LambdaUpdateWrapper<>();
-            wrapper.eq(SceneDownLog::getSceneNum,sceneNum);
-            wrapper.eq(SceneDownLog::getStatus,0);
-            wrapper.set(SceneDownLog::getDownUrl,vo.getUrl());
-            wrapper.set(SceneDownLog::getStatus,1);
-            sceneDownloadLogService.update(wrapper);
+            updateLogStatus(sceneNum,null,1,0,vo.getUrl());
         }
         return downVo;
     }
 
+    private void updateLogStatus(String sceneNum,Integer version,Integer status,Integer isObj,String url){
+        LambdaUpdateWrapper<SceneDownLog> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(SceneDownLog::getSceneNum,sceneNum);
+        wrapper.eq(SceneDownLog::getIsObj,isObj);
+        if(version != null){
+            wrapper.eq(SceneDownLog::getVersion,version);
+        }
+        wrapper.eq(SceneDownLog::getStatus,0);
+        if(StringUtils.isNotBlank(url)){
+            wrapper.set(SceneDownLog::getDownUrl,url);
+        }
+        wrapper.set(SceneDownLog::getStatus,status);
+        sceneDownloadLogService.update(wrapper);
+    }
+
 }

+ 10 - 0
src/main/java/com/fdkankan/fusion/service/impl/SceneDeptShareServiceImpl.java

@@ -443,4 +443,14 @@ public class SceneDeptShareServiceImpl extends ServiceImpl<ISceneDeptShareMapper
         wrapper2.eq(SceneDeptShare::getCaseId,caseId);
         this.remove(wrapper2);
     }
+
+    @Override
+    public void deleteByNumList(List<String> numList) {
+        if(numList == null || numList.isEmpty()){
+            return;
+        }
+        LambdaQueryWrapper<SceneDeptShare> wrapper2 = new LambdaQueryWrapper<>();
+        wrapper2.in(SceneDeptShare::getNum,numList);
+        this.remove(wrapper2);
+    }
 }

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

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

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

@@ -165,7 +165,7 @@ public class SceneService implements ISceneService {
                 sceneVo.setDeptName(tmDepartment.getName());
             }
             sceneVo.setType(CameraUtil.getTypeByCameraType(sceneVo.getCameraType(),param.getIsObj()));
-            if(modelingMap.get(sceneVo.getNum()) != null && !modelingMap.get(sceneVo.getNum())){
+            if(sceneVo.getStatus() == 0 && modelingMap.get(sceneVo.getNum()) != null && !modelingMap.get(sceneVo.getNum())){
                 sceneVo.setStatus(5);
             }
 

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

@@ -56,6 +56,8 @@ public class TmCameraServiceImpl extends ServiceImpl<ITmCameraMapper, TmCamera>
     ICaseNumService caseNumService;
     @Autowired
     IFusionNumService fusionNumService;
+    @Autowired
+    ISceneDeptShareService sceneDeptShareService;
 
     @Override
     public List<TmCamera> getByUserId(String userId) {
@@ -147,6 +149,7 @@ public class TmCameraServiceImpl extends ServiceImpl<ITmCameraMapper, TmCamera>
         List<String> numList = scenePlusList.stream().map(ScenePlus::getNum).collect(Collectors.toList());
         caseNumService.deleteByNumList(numList);
         fusionNumService.deleteByNumList(numList);
+        sceneDeptShareService.deleteByNumList(numList);
     }
 
     @Override