|
@@ -7,7 +7,6 @@ import cn.hutool.core.date.TimeInterval;
|
|
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
-import cn.hutool.core.util.ZipUtil;
|
|
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
import cn.hutool.http.HttpUtil;
|
|
import cn.hutool.http.HttpUtil;
|
|
|
import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONObject;
|
|
@@ -45,8 +44,6 @@ import javax.annotation.Resource;
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
|
import java.io.FileInputStream;
|
|
import java.io.FileInputStream;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
-import java.nio.charset.Charset;
|
|
|
|
|
-import java.nio.charset.StandardCharsets;
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.concurrent.Callable;
|
|
import java.util.concurrent.Callable;
|
|
|
import java.util.concurrent.ExecutorService;
|
|
import java.util.concurrent.ExecutorService;
|
|
@@ -154,24 +151,7 @@ public class SceneDownloadHandlerServiceImpl {
|
|
|
long consumeTime = Calendar.getInstance().getTimeInMillis() - startTime;
|
|
long consumeTime = Calendar.getInstance().getTimeInMillis() - startTime;
|
|
|
|
|
|
|
|
log.info("场景下载结束 - num[{}] - threadName[{}] - consumeTime[{}]", num, Thread.currentThread().getName(), consumeTime);
|
|
log.info("场景下载结束 - num[{}] - threadName[{}] - consumeTime[{}]", num, Thread.currentThread().getName(), consumeTime);
|
|
|
- //成功请求
|
|
|
|
|
- Date endDate = new Date();
|
|
|
|
|
- sceneFileBuildService.updateTimeAndStatus(downLoadTaskBean.getNum(),4,null, endDate, BuildType.BUILD_MESH_OFFLINE,endDate);
|
|
|
|
|
-
|
|
|
|
|
- //离线包下载成功,更新场景最后修改时间为当前时间
|
|
|
|
|
- scenePlusService.update(new LambdaUpdateWrapper<ScenePlus>().set(ScenePlus::getLastEditTime, endDate).eq(ScenePlus::getNum, downLoadTaskBean.getNum()));
|
|
|
|
|
-
|
|
|
|
|
- SceneFileBuildEntity buildBySceneNum = sceneFileBuildService.findBuildBySceneNum(num, BuildType.BUILD_MESH_OFFLINE);
|
|
|
|
|
- if (buildBySceneNum != null&&!downLoadTaskBean.isFusion()){
|
|
|
|
|
- SceneBuildLogEntity logEntity=new SceneBuildLogEntity();
|
|
|
|
|
- logEntity.setSceneNum(num);
|
|
|
|
|
- logEntity.setStartBuildTime(buildBySceneNum.getStartBuildTime());
|
|
|
|
|
- logEntity.setEndBuildTime(endDate);
|
|
|
|
|
- logEntity.setBuildType(buildBySceneNum.getBuildType());
|
|
|
|
|
- logEntity.setFusionId(downLoadTaskBean.getFusionId());
|
|
|
|
|
- sceneBuildLogService.save(logEntity);
|
|
|
|
|
- laserClient.addNotifications(2,num,BuildType.BUILD_MESH_OFFLINE);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
}catch (Exception e){
|
|
}catch (Exception e){
|
|
|
sceneDownloadLogService.update(
|
|
sceneDownloadLogService.update(
|
|
@@ -179,10 +159,7 @@ public class SceneDownloadHandlerServiceImpl {
|
|
|
.eq(SceneDownloadLog::getSceneNum,num)
|
|
.eq(SceneDownloadLog::getSceneNum,num)
|
|
|
.set(SceneDownloadLog::getStatus,2)
|
|
.set(SceneDownloadLog::getStatus,2)
|
|
|
);
|
|
);
|
|
|
- Date date = new Date();
|
|
|
|
|
- sceneFileBuildService.updateTimeAndStatus(num,-1,null, new Date(), BuildType.BUILD_MESH_OFFLINE,date);
|
|
|
|
|
log.info("场景下载失败 - num[{}] - threadName[{}]", num, Thread.currentThread().getName());
|
|
log.info("场景下载失败 - num[{}] - threadName[{}]", num, Thread.currentThread().getName());
|
|
|
- scenePlusService.update(new LambdaUpdateWrapper<ScenePlus>().set(ScenePlus::getLastEditTime, date).eq(ScenePlus::getNum, num));
|
|
|
|
|
log.error(ExceptionUtil.stacktraceToString(e));
|
|
log.error(ExceptionUtil.stacktraceToString(e));
|
|
|
if (!downLoadTaskBean.isFusion()) {
|
|
if (!downLoadTaskBean.isFusion()) {
|
|
|
laserClient.addNotifications(3,num, BuildType.BUILD_MESH_OFFLINE);
|
|
laserClient.addNotifications(3,num, BuildType.BUILD_MESH_OFFLINE);
|
|
@@ -211,6 +188,7 @@ public class SceneDownloadHandlerServiceImpl {
|
|
|
//zip包路径
|
|
//zip包路径
|
|
|
String zipPath = null;
|
|
String zipPath = null;
|
|
|
try {
|
|
try {
|
|
|
|
|
+
|
|
|
TimeInterval timer = DateUtil.timer();
|
|
TimeInterval timer = DateUtil.timer();
|
|
|
|
|
|
|
|
//删除资源目录
|
|
//删除资源目录
|
|
@@ -278,9 +256,18 @@ public class SceneDownloadHandlerServiceImpl {
|
|
|
// String url = "/" + uploadPath + "?t=" + Calendar.getInstance().getTimeInMillis();
|
|
// String url = "/" + uploadPath + "?t=" + Calendar.getInstance().getTimeInMillis();
|
|
|
this.updateProgress(null, num, SceneDownloadProgressStatus.DOWNLOAD_SUCCESS.code(), resultPath, "v4");
|
|
this.updateProgress(null, num, SceneDownloadProgressStatus.DOWNLOAD_SUCCESS.code(), resultPath, "v4");
|
|
|
|
|
|
|
|
|
|
+ sceneDownloadLogService.updateStatusSceneNum(num, DownloadStatus.SUCCESS.code());
|
|
|
|
|
+
|
|
|
|
|
+ //成功请求
|
|
|
|
|
+ updateStatusAndLastEditTime(downLoadTaskBean,4);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}catch (Exception e){
|
|
}catch (Exception e){
|
|
|
//更新进度为下载失败
|
|
//更新进度为下载失败
|
|
|
this.updateProgress( null, num, SceneDownloadProgressStatus.DOWNLOAD_FAILED.code(), null, "v4");
|
|
this.updateProgress( null, num, SceneDownloadProgressStatus.DOWNLOAD_FAILED.code(), null, "v4");
|
|
|
|
|
+ sceneDownloadLogService.updateStatusSceneNum(num, DownloadStatus.FAILD.code());
|
|
|
|
|
+ updateStatusAndLastEditTime(downLoadTaskBean,-1);
|
|
|
throw e;
|
|
throw e;
|
|
|
}
|
|
}
|
|
|
// finally {
|
|
// finally {
|
|
@@ -289,6 +276,28 @@ public class SceneDownloadHandlerServiceImpl {
|
|
|
// }
|
|
// }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private void updateStatusAndLastEditTime(DownLoadTaskBean downLoadTaskBean, Integer status) {
|
|
|
|
|
+ Date endDate = new Date();
|
|
|
|
|
+ sceneFileBuildService.updateTimeAndStatus(downLoadTaskBean.getNum(),status,null, endDate, BuildType.BUILD_MESH_OFFLINE,endDate);
|
|
|
|
|
+ //离线包下载成功,更新场景最后修改时间为当前时间
|
|
|
|
|
+ scenePlusService.update(new LambdaUpdateWrapper<ScenePlus>().set(ScenePlus::getLastEditTime, endDate).eq(ScenePlus::getNum, downLoadTaskBean.getNum()));
|
|
|
|
|
+ if(status != 4){//失败状态直接终止
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ //添加下载完成记录(非融合下载)
|
|
|
|
|
+ SceneFileBuildEntity buildBySceneNum = sceneFileBuildService.findBuildBySceneNum(downLoadTaskBean.getNum(), BuildType.BUILD_MESH_OFFLINE);
|
|
|
|
|
+ if (buildBySceneNum != null&&!downLoadTaskBean.isFusion()){
|
|
|
|
|
+ SceneBuildLogEntity logEntity=new SceneBuildLogEntity();
|
|
|
|
|
+ logEntity.setSceneNum(downLoadTaskBean.getNum());
|
|
|
|
|
+ logEntity.setStartBuildTime(buildBySceneNum.getStartBuildTime());
|
|
|
|
|
+ logEntity.setEndBuildTime(endDate);
|
|
|
|
|
+ logEntity.setBuildType(buildBySceneNum.getBuildType());
|
|
|
|
|
+ logEntity.setFusionId(downLoadTaskBean.getFusionId());
|
|
|
|
|
+ sceneBuildLogService.save(logEntity);
|
|
|
|
|
+ laserClient.addNotifications(2,downLoadTaskBean.getNum(),BuildType.BUILD_MESH_OFFLINE);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private SceneViewInfo getSceneJson(String num, String bucket){
|
|
private SceneViewInfo getSceneJson(String num, String bucket){
|
|
|
String sceneJsonData = redisUtil.get(String.format(RedisKey.SCENE_JSON, num));
|
|
String sceneJsonData = redisUtil.get(String.format(RedisKey.SCENE_JSON, num));
|
|
|
if(StrUtil.isEmpty(sceneJsonData)){
|
|
if(StrUtil.isEmpty(sceneJsonData)){
|
|
@@ -419,7 +428,6 @@ public class SceneDownloadHandlerServiceImpl {
|
|
|
}catch (Exception e){
|
|
}catch (Exception e){
|
|
|
throw e;
|
|
throw e;
|
|
|
}
|
|
}
|
|
|
-// Thread.sleep(500);
|
|
|
|
|
//更新进度
|
|
//更新进度
|
|
|
this.updateProgress(
|
|
this.updateProgress(
|
|
|
new BigDecimal(count.incrementAndGet()).divide(new BigDecimal(total), 6, BigDecimal.ROUND_HALF_UP),
|
|
new BigDecimal(count.incrementAndGet()).divide(new BigDecimal(total), 6, BigDecimal.ROUND_HALF_UP),
|