OsgbToB3dmConsumer.java 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package com.fdkankan.fusion.mq.consumer;
  2. import cn.hutool.core.io.FileUtil;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.fdkankan.fusion.common.FilePath;
  5. import com.fdkankan.fusion.common.OssPath;
  6. import com.fdkankan.fusion.common.ResultCode;
  7. import com.fdkankan.fusion.common.util.*;
  8. import com.fdkankan.fusion.config.CacheUtil;
  9. import com.fdkankan.fusion.entity.CommonUpload;
  10. import com.fdkankan.fusion.exception.BusinessException;
  11. import com.fdkankan.fusion.service.ICommonUploadService;
  12. import com.fdkankan.redis.util.RedisUtil;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.beans.factory.annotation.Value;
  16. import org.springframework.scheduling.annotation.Async;
  17. import org.springframework.stereotype.Component;
  18. import org.w3c.dom.Document;
  19. import org.w3c.dom.Element;
  20. import javax.xml.parsers.DocumentBuilder;
  21. import javax.xml.parsers.DocumentBuilderFactory;
  22. import java.io.File;
  23. import java.lang.reflect.Field;
  24. import java.nio.charset.StandardCharsets;
  25. import java.util.HashMap;
  26. import java.util.UUID;
  27. /**
  28. * 场景封存解封 mq
  29. */
  30. @Slf4j
  31. @Component
  32. public class OsgbToB3dmConsumer {
  33. @Autowired
  34. ICommonUploadService commonUploadService;
  35. @Value("${upload.query-path}")
  36. private String ossUrlPrefix;
  37. @Autowired
  38. LocalToOssUtil localToOssUtil;
  39. @Async
  40. public void consumerQueue(Integer uploadId) {
  41. String sourcePath = null;
  42. String localPath = null;
  43. try {
  44. CommonUpload commonUpload = commonUploadService.getById(uploadId);
  45. localPath = commonUpload.getUnzipPath();
  46. File file = new File(localPath);
  47. if(!file.exists()){
  48. log.info("osgbToB3dm-mq--,msg:{},文件不存在",localPath);
  49. return;
  50. }
  51. commonUploadService.updateStatus(uploadId,0);
  52. ///mnt/manage/media-library/result/ea041f3237df46568f4e83e723e743d4
  53. String dir = String.format(OssPath.MANAGE_MODEL_FILE_PATH ,UUID.randomUUID().toString().replace("-",""));
  54. sourcePath = CacheUtil.basePath +File.separator+ dir;
  55. OBJToGLBUtil.OsgbToB3dm(localPath,sourcePath);
  56. String b3dmJsonPath = FileWriterUtil.checkB3dmTileset(new File(sourcePath));
  57. if(b3dmJsonPath == null){
  58. log.info("osgbToB3dm-mq,msg:{},转化失败tileset.json不存在",localPath);
  59. throw new BusinessException(-1,"转化失败tileset.json不存在");
  60. }
  61. File jsonFile = new File(b3dmJsonPath);
  62. if(!jsonFile.exists()){
  63. log.info("osgbToB3dm-mq,msg:{},转化失败tileset.json不存在",localPath);
  64. throw new BusinessException(-1,"转化失败tileset.json不存在");
  65. }
  66. //String ossPath = sourcePath.replace(CacheUtil.basePath,"");
  67. //localToOssUtil.uploadOss(sourcePath,ossPath);
  68. String url = CacheUtil.mapping + dir+ File.separator +jsonFile.getName();
  69. HashMap<String,String> resultMap = ReadXmlUtil.getLatMap(file);
  70. if(resultMap != null && !resultMap.isEmpty()){
  71. commonUploadService.updateByPath(uploadId,url,resultMap.get("wgs84"),resultMap.get("gcj02"));
  72. }else {
  73. commonUploadService.updateByPath(uploadId,url);
  74. }
  75. }catch (Exception e){
  76. log.info("osgbToB3dm-status----消费失败",e);
  77. if(localPath != null){
  78. commonUploadService.updateStatus(uploadId,-1);
  79. }
  80. }finally {
  81. try {
  82. FileUtil.del(localPath);
  83. //FileUtil.del(sourcePath);
  84. }catch ( Exception e){
  85. log.info("删除文件失败:{}",e);
  86. }
  87. }
  88. }
  89. }