|
@@ -231,7 +231,7 @@ public class CaseDownService {
|
|
|
}
|
|
|
if(sceneData.getType() != 3){
|
|
|
//下载场景离线包
|
|
|
- downSwkk(caseId,sceneData.getNum(),sceneData.getType());
|
|
|
+ downSwkk(caseId,sceneData.getNum(),sceneData.getType(),caseOffPath);
|
|
|
}
|
|
|
if(sceneData.getType() == 2 || sceneData.getType() == 5){
|
|
|
FdkkResponse sceneInfo = laserService.getSceneInfo(sceneData.getNum());
|
|
@@ -369,24 +369,79 @@ public class CaseDownService {
|
|
|
@Autowired
|
|
|
LocalToOssUtil localToOssUtil;
|
|
|
|
|
|
- public void downSwkk(Integer caseId,String num,Integer type){
|
|
|
+ public void downSwkk(Integer caseId,String num,Integer type,String offPath){
|
|
|
|
|
|
- String swkkPath = FilePath.OFFLINE_PACKAGE_PATH+caseId + "/www/swkk/"+num;
|
|
|
- String swssPath = FilePath.OFFLINE_PACKAGE_PATH+caseId + "/www/swss/"+num;
|
|
|
+ String swkkPath = offPath+ "/www/swkk/"+num;
|
|
|
+ String swssPath = offPath + "/www/swss/"+num;
|
|
|
|
|
|
- Integer isObj = 0;
|
|
|
+ Boolean isLaser = true;
|
|
|
if(type == 4 || type == 6){
|
|
|
- isObj =1;
|
|
|
+ isLaser = false;
|
|
|
}
|
|
|
- try {
|
|
|
- FdkkResponse fdkkResponse = laserService.sceneLocInfo(num);
|
|
|
-
|
|
|
+ Boolean wita = true;
|
|
|
+ Long startTime = new Date().getTime();
|
|
|
+ Long wiatTime = 10000L;
|
|
|
+
|
|
|
+ while (wita){
|
|
|
+ Long nowTime = new Date().getTime();
|
|
|
+ if(nowTime - startTime < wiatTime){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ startTime = nowTime;
|
|
|
+ try {
|
|
|
+ FdkkResponse fdkkResponse = laserService.sceneLocInfo(num);
|
|
|
+ if(fdkkResponse.getCode() != 200){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ JSONObject jsonObject = (JSONObject) fdkkResponse.getData();
|
|
|
+ Integer sceneId = jsonObject.getInteger("id");
|
|
|
+ Boolean meshStatus = jsonObject.getBoolean("meshRebuildOffline");
|
|
|
+ Boolean laserStatus = jsonObject.getBoolean("rebuildOffline");
|
|
|
+ String meshOfflineFolder = jsonObject.getString("meshOfflineFolder");
|
|
|
+ String laserOfflineFolder = jsonObject.getString("offlineFolder");
|
|
|
+ //1 生成成功 ,0:正在生成 1,初次生成 2,下载失败
|
|
|
+ Integer laserOffStatus = jsonObject.getInteger("buildOfflineStatus");
|
|
|
+ //1 生成成功,0:正在生成 1,初次生成 2,下载失败
|
|
|
+ Integer meshBuildOfflineStatus = jsonObject.getInteger("meshBuildOfflineStatus");
|
|
|
+
|
|
|
+ wita = downSceneOffline(sceneId, isLaser,
|
|
|
+ isLaser ? swssPath : swkkPath,
|
|
|
+ isLaser ? laserStatus : meshStatus,
|
|
|
+ isLaser ? laserOfflineFolder : meshOfflineFolder,
|
|
|
+ isLaser ? laserOffStatus : meshBuildOfflineStatus
|
|
|
+ );
|
|
|
+
|
|
|
+ }catch (Exception e){
|
|
|
+ log.info("下载场景离线包失败:{}",num,e);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- }catch (Exception e){
|
|
|
- log.info("下载场景离线包失败:{}",num,e);
|
|
|
- }
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param buildOfflineStatus //1 生成成功,0:正在生成 1,初次生成 2,下载失败
|
|
|
+ */
|
|
|
+ private Boolean downSceneOffline(Integer sceneId, Boolean isLaser, String offPath, Boolean rebuildOffline, String offlineFolder, Integer buildOfflineStatus) {
|
|
|
+ if(rebuildOffline && buildOfflineStatus !=0){
|
|
|
+ laserService.rebuildOffline(offPath,isLaser,sceneId);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ if(buildOfflineStatus == 2){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(!rebuildOffline && buildOfflineStatus == 1){
|
|
|
+ if(!new File(offlineFolder).exists()){
|
|
|
+ laserService.rebuildOffline(offPath,isLaser,sceneId);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ FileUtil.copyContent(new File(offlineFolder),new File(offPath),true);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
@Value("${upload.query-path}")
|
|
|
private String queryPath;
|
|
|
public void downZip(Integer type ,String uri,String kkzipPath,String kknumPath,String sszipPath,String ssNumPath){
|
|
@@ -459,5 +514,4 @@ public class CaseDownService {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
}
|