|
|
@@ -258,6 +258,11 @@ public class JmgaServiceImpl implements IJmgaService {
|
|
|
throw new BusinessException(ErrorCode.FAILURE_CODE_4001.code(), ErrorCode.FAILURE_CODE_4001.formatMessage(fileName));
|
|
|
}
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IGaSceneBuildService gaSceneBuildService;
|
|
|
+ @Autowired
|
|
|
+ private ISceneOrigManageService sceneOrigManageService;
|
|
|
+
|
|
|
@Override
|
|
|
public void uploadScene(UploadSceneOrigParamVo param) throws Exception {
|
|
|
|
|
|
@@ -275,73 +280,89 @@ public class JmgaServiceImpl implements IJmgaService {
|
|
|
CameraDetail cameraDetail = null;
|
|
|
String sceneNum = null;
|
|
|
if(param.getSourceType().equals("orig")){//原始资源
|
|
|
- String dataFdageStr = com.fdkankan.contro.util.ZipUtil.readUtf8(zipDir + zipName, "data.fdage");
|
|
|
- if(StrUtil.isEmpty(dataFdageStr) || !JSONUtil.isJson(dataFdageStr)){
|
|
|
- throw new BusinessException(60027, "data.fdage文件数据异常");
|
|
|
- }
|
|
|
- JSONObject dataFdage = JSON.parseObject(dataFdageStr);
|
|
|
- String snCode = dataFdage.getJSONObject("cam").getString("uuid");
|
|
|
- String uuidTime = dataFdage.getString("uuidtime");
|
|
|
- String uniCode = snCode + "_" + uuidTime;
|
|
|
- int camType = dataFdage.getJSONObject("cam").getIntValue("type");
|
|
|
- Map<String, Object> instorage = cameraService.instorage(camType, snCode);
|
|
|
- cameraDetail = (CameraDetail) instorage.get("cameraDetail");
|
|
|
-
|
|
|
- ScenePlus scenePlus = scenePlusService.getByFileId(uniCode);
|
|
|
- if(scenePlus == null){
|
|
|
- scenePlus = new ScenePlus();
|
|
|
- sceneNum = scene3dNumService.generateSceneNum(cameraDetail.getType());
|
|
|
- scenePlus.setNum(sceneNum);
|
|
|
- scenePlus.setCameraId(cameraDetail.getCameraId());
|
|
|
- scenePlus.setSceneSource(SceneSourceUtil.getSceneSourceByCamType(cameraDetail.getType()));
|
|
|
- }else{
|
|
|
- if(scenePlus.getSceneStatus() == SceneStatus.wait.code()){
|
|
|
- throw new BusinessException(ErrorCode.FAILURE_CODE_5033);
|
|
|
+ try {
|
|
|
+ String dataFdageStr = com.fdkankan.contro.util.ZipUtil.readUtf8(zipDir + zipName, "data.fdage");
|
|
|
+ if(StrUtil.isEmpty(dataFdageStr) || !JSONUtil.isJson(dataFdageStr)){
|
|
|
+ throw new BusinessException(60027, "data.fdage文件数据异常");
|
|
|
}
|
|
|
- sceneNum = scenePlus.getNum();
|
|
|
+ JSONObject dataFdage = JSON.parseObject(dataFdageStr);
|
|
|
+ String snCode = dataFdage.getJSONObject("cam").getString("uuid");
|
|
|
+ String uuidTime = dataFdage.getString("uuidtime");
|
|
|
+ String uniCode = snCode + "_" + uuidTime;
|
|
|
+
|
|
|
+ SceneOrigManage sceneOrigManage = new SceneOrigManage();
|
|
|
+ sceneOrigManage.setTaskNo(UUID.randomUUID().toString());
|
|
|
+ sceneOrigManage.setUnicode(uniCode);
|
|
|
+ sceneOrigManage.setUserId(param.getUserId());
|
|
|
+ sceneOrigManage.setFilePath(param.getFilePath());
|
|
|
+ sceneOrigManageService.save(sceneOrigManage);
|
|
|
+ gaSceneBuildService.noticeBuild(dataFdage, "manage", null, null, sceneOrigManage);
|
|
|
+ }finally {
|
|
|
+ FileUtil.del(zipDir + zipName);
|
|
|
}
|
|
|
- scenePlus.setTitle(dataFdage.getString("name"));
|
|
|
- scenePlus.setUserId(user.getId());
|
|
|
- scenePlus.setUpdateTime(null);
|
|
|
- scenePlus.setSceneStatus(SceneStatus.wait.code());
|
|
|
- scenePlusService.saveOrUpdate(scenePlus);
|
|
|
|
|
|
- ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
|
|
|
- if(scenePlusExt == null){
|
|
|
- scenePlusExt = new ScenePlusExt();
|
|
|
- scenePlusExt.setPlusId(scenePlus.getId());
|
|
|
- scenePlusExt.setWebSite("/" + sceneProNewUrl + scenePlus.getNum());
|
|
|
- String fileId = sceneFileBuildService.getFileId(snCode, uniCode);
|
|
|
- scenePlusExt.setDataSource(ConstantFilePath.BUILD_MODEL_PATH + snCode + File.separator + fileId + File.separator + uniCode);
|
|
|
- if(ModelKind.THREE_D_TILE.code().equals(modelKind)
|
|
|
- && CollUtil.isNotEmpty(sdTilesSceneSourceList)
|
|
|
- && sdTilesSceneSourceList.contains(scenePlus.getSceneSource())){
|
|
|
- scenePlusExt.setModelKind(modelKind);
|
|
|
- }
|
|
|
- }
|
|
|
- JSONArray points = dataFdage.getJSONArray("points");
|
|
|
- scenePlusExt.setShootCount(points.size());
|
|
|
- scenePlusExtService.saveOrUpdate(scenePlusExt);
|
|
|
-
|
|
|
- SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
|
|
|
- if(sceneEditInfo == null){
|
|
|
- sceneEditInfo = new SceneEditInfo();
|
|
|
- sceneEditInfo.setScenePlusId(scenePlus.getId());
|
|
|
- sceneEditInfoService.save(sceneEditInfo);
|
|
|
- }
|
|
|
- SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfo.getId());
|
|
|
- if(sceneEditInfoExt == null){
|
|
|
- sceneEditInfoExt = new SceneEditInfoExt();
|
|
|
- sceneEditInfoExt.setScenePlusId(scenePlus.getId());
|
|
|
- sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
|
|
|
- sceneEditInfoExtService.save(sceneEditInfoExt);
|
|
|
- }
|
|
|
- SceneEditControls sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfo.getId());
|
|
|
- if(sceneEditControls == null){
|
|
|
- sceneEditControls = new SceneEditControls();
|
|
|
- sceneEditControls.setEditInfoId(sceneEditInfo.getId());
|
|
|
- sceneEditControlsService.save(sceneEditControls);
|
|
|
- }
|
|
|
+// String snCode = dataFdage.getJSONObject("cam").getString("uuid");
|
|
|
+// String uuidTime = dataFdage.getString("uuidtime");
|
|
|
+// String uniCode = snCode + "_" + uuidTime;
|
|
|
+// int camType = dataFdage.getJSONObject("cam").getIntValue("type");
|
|
|
+// Map<String, Object> instorage = cameraService.instorage(camType, snCode);
|
|
|
+// cameraDetail = (CameraDetail) instorage.get("cameraDetail");
|
|
|
+//
|
|
|
+// ScenePlus scenePlus = scenePlusService.getByFileId(uniCode);
|
|
|
+// if(scenePlus == null){
|
|
|
+// scenePlus = new ScenePlus();
|
|
|
+// sceneNum = scene3dNumService.generateSceneNum(cameraDetail.getType());
|
|
|
+// scenePlus.setNum(sceneNum);
|
|
|
+// scenePlus.setCameraId(cameraDetail.getCameraId());
|
|
|
+// scenePlus.setSceneSource(SceneSourceUtil.getSceneSourceByCamType(cameraDetail.getType()));
|
|
|
+// }else{
|
|
|
+// if(scenePlus.getSceneStatus() == SceneStatus.wait.code()){
|
|
|
+// throw new BusinessException(ErrorCode.FAILURE_CODE_5033);
|
|
|
+// }
|
|
|
+// sceneNum = scenePlus.getNum();
|
|
|
+// }
|
|
|
+// scenePlus.setTitle(dataFdage.getString("name"));
|
|
|
+// scenePlus.setUserId(user.getId());
|
|
|
+// scenePlus.setUpdateTime(null);
|
|
|
+// scenePlus.setSceneStatus(SceneStatus.wait.code());
|
|
|
+// scenePlusService.saveOrUpdate(scenePlus);
|
|
|
+//
|
|
|
+// ScenePlusExt scenePlusExt = scenePlusExtService.getScenePlusExtByPlusId(scenePlus.getId());
|
|
|
+// if(scenePlusExt == null){
|
|
|
+// scenePlusExt = new ScenePlusExt();
|
|
|
+// scenePlusExt.setPlusId(scenePlus.getId());
|
|
|
+// scenePlusExt.setWebSite("/" + sceneProNewUrl + scenePlus.getNum());
|
|
|
+// String fileId = sceneFileBuildService.getFileId(snCode, uniCode);
|
|
|
+// scenePlusExt.setDataSource(ConstantFilePath.BUILD_MODEL_PATH + snCode + File.separator + fileId + File.separator + uniCode);
|
|
|
+// if(ModelKind.THREE_D_TILE.code().equals(modelKind)
|
|
|
+// && CollUtil.isNotEmpty(sdTilesSceneSourceList)
|
|
|
+// && sdTilesSceneSourceList.contains(scenePlus.getSceneSource())){
|
|
|
+// scenePlusExt.setModelKind(modelKind);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// JSONArray points = dataFdage.getJSONArray("points");
|
|
|
+// scenePlusExt.setShootCount(points.size());
|
|
|
+// scenePlusExtService.saveOrUpdate(scenePlusExt);
|
|
|
+//
|
|
|
+// SceneEditInfo sceneEditInfo = sceneEditInfoService.getByScenePlusId(scenePlus.getId());
|
|
|
+// if(sceneEditInfo == null){
|
|
|
+// sceneEditInfo = new SceneEditInfo();
|
|
|
+// sceneEditInfo.setScenePlusId(scenePlus.getId());
|
|
|
+// sceneEditInfoService.save(sceneEditInfo);
|
|
|
+// }
|
|
|
+// SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getByEditInfoId(sceneEditInfo.getId());
|
|
|
+// if(sceneEditInfoExt == null){
|
|
|
+// sceneEditInfoExt = new SceneEditInfoExt();
|
|
|
+// sceneEditInfoExt.setScenePlusId(scenePlus.getId());
|
|
|
+// sceneEditInfoExt.setEditInfoId(sceneEditInfo.getId());
|
|
|
+// sceneEditInfoExtService.save(sceneEditInfoExt);
|
|
|
+// }
|
|
|
+// SceneEditControls sceneEditControls = sceneEditControlsService.getBySceneEditId(sceneEditInfo.getId());
|
|
|
+// if(sceneEditControls == null){
|
|
|
+// sceneEditControls = new SceneEditControls();
|
|
|
+// sceneEditControls.setEditInfoId(sceneEditInfo.getId());
|
|
|
+// sceneEditControlsService.save(sceneEditControls);
|
|
|
+// }
|
|
|
|
|
|
}else{//离线包
|
|
|
String sceneJsonStr = com.fdkankan.contro.util.ZipUtil.readUtf8(zipDir + zipName, "scene.json");
|
|
|
@@ -381,14 +402,14 @@ public class JmgaServiceImpl implements IJmgaService {
|
|
|
String fileId = sceneFileBuildService.getFileId(snCode, uniCode);
|
|
|
scenePlusExt.setDataSource(ConstantFilePath.BUILD_MODEL_PATH + snCode + File.separator + fileId + File.separator + uniCode);
|
|
|
scenePlusExtService.save(scenePlusExt);
|
|
|
- }
|
|
|
|
|
|
- //发mq做异步处理
|
|
|
- JSONObject content = new JSONObject();
|
|
|
- content.put("zipPath", zipDir + zipName);
|
|
|
- content.put("num", sceneNum);
|
|
|
- content.put("sourceType", param.getSourceType());
|
|
|
- mqProducer.sendByWorkQueue("manage-upload-scene", content);
|
|
|
+ //发mq做异步处理
|
|
|
+ JSONObject content = new JSONObject();
|
|
|
+ content.put("zipPath", zipDir + zipName);
|
|
|
+ content.put("num", sceneNum);
|
|
|
+ content.put("sourceType", param.getSourceType());
|
|
|
+ mqProducer.sendByWorkQueue("manage-upload-scene", content);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|