|
@@ -444,6 +444,11 @@ public class CaseDownService {
|
|
Long outTime = new Date().getTime();
|
|
Long outTime = new Date().getTime();
|
|
Long wiatTime = 10000L;
|
|
Long wiatTime = 10000L;
|
|
|
|
|
|
|
|
+
|
|
|
|
+ JSONObject jsonObject = getSceneInfo(num);
|
|
|
|
+ Integer sceneId = jsonObject.getInteger("id");
|
|
|
|
+ laserService.rebuildOffline(offPath,isLaser,sceneId);
|
|
|
|
+
|
|
while (wita){
|
|
while (wita){
|
|
Long nowTime = new Date().getTime();
|
|
Long nowTime = new Date().getTime();
|
|
if(nowTime - startTime < wiatTime){
|
|
if(nowTime - startTime < wiatTime){
|
|
@@ -453,12 +458,8 @@ public class CaseDownService {
|
|
throw new BusinessException(ResultCode.SYSTEM_ERROR);
|
|
throw new BusinessException(ResultCode.SYSTEM_ERROR);
|
|
}
|
|
}
|
|
startTime = nowTime;
|
|
startTime = nowTime;
|
|
- FdkkResponse fdkkResponse = laserService.sceneLocInfo(num);
|
|
|
|
- if(fdkkResponse.getCode() != 200){
|
|
|
|
- throw new BusinessException(ResultCode.SYSTEM_ERROR);
|
|
|
|
- }
|
|
|
|
- JSONObject jsonObject = (JSONObject) fdkkResponse.getData();
|
|
|
|
- Integer sceneId = jsonObject.getInteger("id");
|
|
|
|
|
|
+ jsonObject = getSceneInfo(num);
|
|
|
|
+ sceneId = jsonObject.getInteger("id");
|
|
Boolean meshStatus = jsonObject.getBoolean("meshRebuildOffline");
|
|
Boolean meshStatus = jsonObject.getBoolean("meshRebuildOffline");
|
|
Boolean laserStatus = jsonObject.getBoolean("rebuildOffline");
|
|
Boolean laserStatus = jsonObject.getBoolean("rebuildOffline");
|
|
String meshOfflineFolder = jsonObject.getString("meshOfflineFolder");
|
|
String meshOfflineFolder = jsonObject.getString("meshOfflineFolder");
|
|
@@ -484,71 +485,24 @@ public class CaseDownService {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private JSONObject getSceneInfo(String num){
|
|
|
|
+ FdkkResponse fdkkResponse = laserService.sceneLocInfo(num);
|
|
|
|
+ if(fdkkResponse.getCode() != 200){
|
|
|
|
+ throw new BusinessException(ResultCode.SYSTEM_ERROR);
|
|
|
|
+ }
|
|
|
|
+ return (JSONObject) fdkkResponse.getData();
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @param buildOfflineStatus //1 生成成功,0:正在生成 1,初次生成 2,下载失败
|
|
* @param buildOfflineStatus //1 生成成功,0:正在生成 1,初次生成 2,下载失败
|
|
*/
|
|
*/
|
|
private Boolean downSceneOffline(String num,Integer sceneId, Boolean isLaser, String offPath, Boolean rebuildOffline, String offlineFolder, Integer buildOfflineStatus) {
|
|
private Boolean downSceneOffline(String num,Integer sceneId, Boolean isLaser, String offPath, Boolean rebuildOffline, String offlineFolder, Integer buildOfflineStatus) {
|
|
- String redisKey = buildSceneKey + num;
|
|
|
|
- if(redisUtil.hasKey(redisKey) && Integer.parseInt(redisUtil.get(redisKey))>=3 ){
|
|
|
|
- log.info("场景查询状态不对,跳出循环:{},{}",num,isLaser);
|
|
|
|
- redisUtil.del(redisKey);
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- if(buildOfflineStatus == null){
|
|
|
|
- redisUtil.del(redisKey);
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- if(rebuildOffline && buildOfflineStatus !=0){
|
|
|
|
- setBuildSceneKey(redisKey);
|
|
|
|
- laserService.rebuildOffline(offPath,isLaser,sceneId);
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- if(StringUtils.isNotBlank(offlineFolder) && offlineFolder.contains(".zip")){
|
|
|
|
- setBuildSceneKey(redisKey);
|
|
|
|
- laserService.rebuildOffline(offPath,isLaser,sceneId);
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- if(buildOfflineStatus == -1){
|
|
|
|
- setBuildSceneKey(redisKey);
|
|
|
|
- laserService.rebuildOffline(offPath,isLaser,sceneId);
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- if(buildOfflineStatus == 2){
|
|
|
|
- redisUtil.del(redisKey);
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- if(!rebuildOffline && buildOfflineStatus == 1){
|
|
|
|
- if(!new File(offlineFolder).exists()){
|
|
|
|
- setBuildSceneKey(redisKey);
|
|
|
|
- log.info("离线包文件不存在:{}",offlineFolder);
|
|
|
|
- laserService.rebuildOffline(offPath,isLaser,sceneId);
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- if(!offlineFolder.contains(num)){
|
|
|
|
- offlineFolder += File.separator + num;
|
|
|
|
- }
|
|
|
|
- File file = new File(offlineFolder);
|
|
|
|
- File file1 = new File(offPath + File.separator + num);
|
|
|
|
- if(!file.getPath().equals(file1.getPath()) || file1.getParentFile().getPath().equals(file.getPath())){
|
|
|
|
- try {
|
|
|
|
- FileUtil.copyContent(file,file1,true);
|
|
|
|
- }catch (Exception e){
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- redisUtil.del(redisKey);
|
|
|
|
|
|
+ if(buildOfflineStatus == null || buildOfflineStatus == -1 || buildOfflineStatus ==2){
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- private void setBuildSceneKey(String redisKey){
|
|
|
|
- if(redisUtil.hasKey(redisKey)){
|
|
|
|
- redisUtil.set(redisKey, String.valueOf(Integer.parseInt(redisUtil.get(redisKey)) +1),60 * 60 * 24);
|
|
|
|
- }else {
|
|
|
|
- redisUtil.set(redisKey, "1",60 * 60 * 24);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
|
|
@Value("${upload.query-path}")
|
|
@Value("${upload.query-path}")
|
|
private String queryPath;
|
|
private String queryPath;
|