Bladeren bron

fix 去除无用代码

wuweihao 4 jaren geleden
bovenliggende
commit
16497b96c6
100 gewijzigde bestanden met toevoegingen van 3360 en 474 verwijderingen
  1. 29 0
      README.md
  2. 18 0
      laser/pom.xml
  3. 2 2
      laser/src/main/java/com/fdkankan/indoor/base/constant/ConfigConstant.java
  4. 26 0
      laser/src/main/java/com/fdkankan/indoor/base/constant/TypeConstant.java
  5. 171 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/ConvertToPanoInfoFor4dkk.java
  6. 275 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/FileUtil.java
  7. 440 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/GetRoute.java
  8. 113 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/GisCoordinateTransform.java
  9. 117 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/GisCoordinateUtil.java
  10. 106 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/ModifyCloud.java
  11. 43 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/ModifyConfig.java
  12. 88 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/ModifyDataSets.java
  13. 43 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/TransformGPS.java
  14. 179 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/kesar/AStar.java
  15. 22 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/kesar/Coord.java
  16. 29 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/kesar/MapInfo.java
  17. 37 0
      laser/src/main/java/com/fdkankan/indoor/base/convert/kesar/Node.java
  18. 0 68
      laser/src/main/java/com/fdkankan/indoor/base/model/ViewResult.java
  19. 57 0
      laser/src/main/java/com/fdkankan/indoor/base/util/FileUtils.java
  20. 32 0
      laser/src/main/java/com/fdkankan/indoor/base/util/RandomUtils.java
  21. 29 0
      laser/src/main/java/com/fdkankan/indoor/base/util/Result.java
  22. 221 0
      laser/src/main/java/com/fdkankan/indoor/base/util/SnowFlakeUUidUtils.java
  23. 8 7
      laser/src/main/java/com/fdkankan/indoor/core/controller/FilterController.java
  24. 43 0
      laser/src/main/java/com/fdkankan/indoor/core/controller/InitController.java
  25. 0 92
      laser/src/main/java/com/fdkankan/indoor/core/controller/JsonDataController.java
  26. 7 14
      laser/src/main/java/com/fdkankan/indoor/core/controller/LoginController.java
  27. 45 5
      laser/src/main/java/com/fdkankan/indoor/core/controller/PoiController.java
  28. 52 0
      laser/src/main/java/com/fdkankan/indoor/core/controller/PoiTypeController.java
  29. 44 0
      laser/src/main/java/com/fdkankan/indoor/core/controller/PoiTypeGroupController.java
  30. 41 0
      laser/src/main/java/com/fdkankan/indoor/core/controller/RouteController.java
  31. 45 0
      laser/src/main/java/com/fdkankan/indoor/core/controller/SceneController.java
  32. 59 35
      laser/src/main/java/com/fdkankan/indoor/core/controller/TSiteModelController.java
  33. 63 17
      laser/src/main/java/com/fdkankan/indoor/core/controller/SiteModelController.java
  34. 31 0
      laser/src/main/java/com/fdkankan/indoor/core/controller/TestController.java
  35. 14 21
      laser/src/main/java/com/fdkankan/indoor/core/entity/BaseEntity.java
  36. 24 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/ConfigEntity.java
  37. 21 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/DataSetEntity.java
  38. 23 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/FilterEntity.java
  39. 23 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/PoiEntity.java
  40. 19 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/PoiTypeEntity.java
  41. 19 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/PoiTypeGroupEntity.java
  42. 24 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/RouteEntity.java
  43. 22 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/SiteEntity.java
  44. 24 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/SiteModelEntity.java
  45. 28 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/SpecialPointEntity.java
  46. 26 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/dto/ConfigDto.java
  47. 38 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/dto/FilterHotDto.java
  48. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/dto/JsonDataDetailDto.java
  49. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/dto/LoginDto.java
  50. 48 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/dto/PoiHotDto.java
  51. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/dto/PoiSearchDto.java
  52. 24 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/dto/PoiTypeDto.java
  53. 19 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/dto/PoiTypeGroupDto.java
  54. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/dto/QueryJsonDataBase.java
  55. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/dto/QueryJsonDataOne.java
  56. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/dto/QueryJsonDataTwo.java
  57. 22 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/dto/RouteInputDto.java
  58. 17 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/dto/SecurityDto.java
  59. 36 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/dto/SiteDto.java
  60. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/dto/SiteModelLatestDto.java
  61. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/dto/SiteModelSearchDto.java
  62. 16 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/dto/SitePolygon.java
  63. 2 2
      laser/src/main/java/com/fdkankan/indoor/core/entity/jsonData/FilterEntity.java
  64. 0 35
      laser/src/main/java/com/fdkankan/indoor/core/entity/jsonData/JsonData2.java
  65. 12 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/po/LanguagePo.java
  66. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/entity/poi/PoiEntity.java
  67. 0 18
      laser/src/main/java/com/fdkankan/indoor/core/entity/siteModel/Attributes.java
  68. 0 37
      laser/src/main/java/com/fdkankan/indoor/core/entity/siteModel/SiteModel2.java
  69. 0 37
      laser/src/main/java/com/fdkankan/indoor/core/entity/tsiteModel/SiteModel.java
  70. 0 26
      laser/src/main/java/com/fdkankan/indoor/core/entity/tsiteModel/TsiteModel.java
  71. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/vo/AttributesVo.java
  72. 19 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/vo/BaseListVo.java
  73. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/vo/BaseVo.java
  74. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/vo/GroupsVo.java
  75. 16 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/vo/HaoVo.java
  76. 22 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/vo/OwenVo.java
  77. 22 0
      laser/src/main/java/com/fdkankan/indoor/core/entity/vo/PoiTypeVo.java
  78. 3 3
      laser/src/main/java/com/fdkankan/indoor/core/vo/UserVo.java
  79. 15 0
      laser/src/main/java/com/fdkankan/indoor/core/mapper/ConfigMapper.java
  80. 15 0
      laser/src/main/java/com/fdkankan/indoor/core/mapper/DataSetMapper.java
  81. 15 0
      laser/src/main/java/com/fdkankan/indoor/core/mapper/FilterMapper.java
  82. 15 0
      laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiMapper.java
  83. 15 0
      laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiTypeGroupMapper.java
  84. 15 0
      laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiTypeMapper.java
  85. 14 0
      laser/src/main/java/com/fdkankan/indoor/core/mapper/RouteMapper.java
  86. 15 0
      laser/src/main/java/com/fdkankan/indoor/core/mapper/SiteModelMapper.java
  87. 14 0
      laser/src/main/java/com/fdkankan/indoor/core/mapper/SpecialPointMapper.java
  88. 1 1
      laser/src/main/java/com/fdkankan/indoor/core/mapper/SysUserMapper.java
  89. 11 0
      laser/src/main/java/com/fdkankan/indoor/core/service/ConfigService.java
  90. 10 0
      laser/src/main/java/com/fdkankan/indoor/core/service/DataSetService.java
  91. 9 3
      laser/src/main/java/com/fdkankan/indoor/core/service/FilterService.java
  92. 10 0
      laser/src/main/java/com/fdkankan/indoor/core/service/InitService.java
  93. 0 19
      laser/src/main/java/com/fdkankan/indoor/core/service/JsonData2Service.java
  94. 0 16
      laser/src/main/java/com/fdkankan/indoor/core/service/JsonDataService.java
  95. 3 3
      laser/src/main/java/com/fdkankan/indoor/core/service/LoginService.java
  96. 12 1
      laser/src/main/java/com/fdkankan/indoor/core/service/PoiService.java
  97. 20 0
      laser/src/main/java/com/fdkankan/indoor/core/service/PoiTypeGroupService.java
  98. 27 0
      laser/src/main/java/com/fdkankan/indoor/core/service/PoiTypeService.java
  99. 14 0
      laser/src/main/java/com/fdkankan/indoor/core/service/RouteService.java
  100. 0 0
      laser/src/main/java/com/fdkankan/indoor/core/service/SceneService.java

+ 29 - 0
README.md

@@ -62,4 +62,33 @@
     mongoimport --authenticationDatabase=json_data --username=4dage --password=1234  --collection=json_data_3 --db=json_data --jsonArray /root/filter3.json
     
     嵌套实体对象, 如果要使用id, 需要录入数据库时把id -> _id
+             
+             
+# 2021-07-28
+    不区分登录
+    t_users  已完成
+    t_configs  已完成
+    t_health  已完成
+    
+    
+    区分登录
+    t_user 已完成
+    t_group  已完成
+    t_license  已完成
+    
+    test2 已处理
+    t_filter
+    t_site_model
+    t_poi
+    t_poi_types
+    t_poi_type_groups
+    
+    
+# 坐标    
+    获取特殊点,firstView, lat:113, [0], lon:22, [1]
+    
+    
+# 测试页面
+https://testlaser.4dkankan.com/maxkk/test2    
+    
              

+ 18 - 0
laser/pom.xml

@@ -137,6 +137,24 @@
 			<version>${spring.boot.version}</version>
 		</dependency>
 
+		<!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
+		<!--classifier主要是用来标识特殊jar包的。在相同版本下针对不同的环境或者jdk使用的jar,有多个跟JDK相关的名称,如图一所示。
+		如果不通过classifier属性指定版本,是找不到这个jar的。-->
+		<dependency>
+			<groupId>net.sf.json-lib</groupId>
+			<artifactId>json-lib</artifactId>
+			<version>2.4</version>
+			<classifier>jdk15</classifier>
+		</dependency>
+
+		<!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
+		<!--<dependency>-->
+			<!--<groupId>net.sf.json-lib</groupId>-->
+			<!--<artifactId>json-lib</artifactId>-->
+			<!--<version>2.3</version>-->
+		<!--</dependency>-->
+
+
 	</dependencies>
 
 	<build>

+ 2 - 2
laser/src/main/java/com/fdkankan/indoor/base/constant/ConfigConstant.java

@@ -12,8 +12,8 @@ import org.springframework.stereotype.Component;
 public class ConfigConstant {
 
     /** 服务器文件地址*/
-//    @Value("${server.file.path}")
-//    public  String serverBasePath;
+    @Value("${server.file.path}")
+    public  String serverBasePath;
 
 //    @Value("${server.file.allow}")
 //    public String serverFileFallow;

+ 26 - 0
laser/src/main/java/com/fdkankan/indoor/base/constant/TypeConstant.java

@@ -0,0 +1,26 @@
+package com.fdkankan.indoor.base.constant;
+
+/**
+ * Created by owen on 2021/7/28 0028 19:53
+ */
+public class TypeConstant {
+
+    /**特殊点-原点*/
+   public final static String POI_ORIGIN = "origin";
+
+    /**特殊点-中心点*/
+    public final static String POI_CENTRE = "centre";
+
+    /**特殊点-最大点*/
+    public final static String POI_BOUNDINGBOX_MAX = "boundingbox_max";
+
+    /**特殊点-最小点*/
+    public final static String POI_BOUNDINGBOX_MIN = "boundingbox_min";
+
+    /**特殊点-第一点*/
+    public final static String POI_FIRST_VIEW = "firstView";
+
+
+
+
+}

+ 171 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/ConvertToPanoInfoFor4dkk.java

@@ -0,0 +1,171 @@
+package com.fdkankan.indoor.base.convert;
+
+import java.io.IOException;
+import java.time.LocalDateTime;
+
+import com.fdkankan.indoor.base.constant.TypeConstant;
+import com.fdkankan.indoor.base.util.SnowFlakeUUidUtils;
+import com.fdkankan.indoor.core.entity.SpecialPointEntity;
+import com.fdkankan.indoor.core.service.SpecialPointService;
+import lombok.extern.slf4j.Slf4j;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 四维看看vision数据转 激光相机filter数据
+ */
+@Slf4j
+@Component
+public class ConvertToPanoInfoFor4dkk {
+//	public static String inputFilePath = "F:\\2021\\navvis\\���Ի���\\test3(v2.7.3)\\vision-indoor.txt";
+
+	@Autowired
+	SpecialPointService specialPointService;
+
+	private static JSONArray readVisionTxt(String path) throws IOException {
+//		String str = FileUtil.readStringFile(inputFilePath);
+		String str = FileUtil.readStringFile(path);
+		JSONObject json = JSONObject.fromObject(str);
+		JSONArray sweepLocations = json.getJSONArray("sweepLocations");
+		
+		JSONArray result = new JSONArray();
+		
+		for(int i=0;i<sweepLocations.size();++i) {
+			
+			JSONObject item = new JSONObject();
+			
+			JSONObject sweepItem = sweepLocations.getJSONObject(i);
+			//navvis��֧��id��0�����ε�
+			int id = sweepItem.getInt("id");
+			JSONObject pose = sweepItem.getJSONObject("pose");
+			JSONObject rotation = pose.getJSONObject("rotation");
+			JSONObject translation = pose.getJSONObject("translation");
+			JSONObject puck = sweepItem.getJSONObject("puck");
+			
+			item.put("id", id);   //��һ��Ԫ�ص�id��1
+			item.put("rotation", rotation);    //quaternation
+			item.put("translation", translation);     //�������
+			item.put("puck", puck);     // ��������
+			
+			result.add(item);
+		}
+		
+		return result;
+	}
+	
+	private  JSONArray createPanoInfos(String sceneCode, JSONArray panoInfos) {
+		
+		JSONArray laserPanos = new JSONArray();
+		for(int i=0;i<panoInfos.size();++i) {
+			JSONObject item = panoInfos.getJSONObject(i);
+			JSONObject laserPano = new JSONObject();
+			int id = item.getInt("id");
+			laserPano.put("camera_head_id", 12);
+			laserPano.put("dataset_id", 1);
+			laserPano.put("dataset_orientation", null);
+			laserPano.put("file_path", "data/chunk1");
+			laserPano.put("hidden", false);
+			laserPano.put("id", id+1);
+			laserPano.put("site_model_entity_id", 11);
+			
+			//JSONObject pose = item.getJSONObject("pose");
+			JSONObject position2 = item.getJSONObject("puck");
+			JSONObject position1 = item.getJSONObject("translation");
+			//���
+			double[] location = new double[3];
+			location[0] = position1.getDouble("x");
+			location[1] = position1.getDouble("y");
+			location[2] = position1.getDouble("z");
+			//����
+			double[] floor_location = new double[3];
+			floor_location[0] = position2.getDouble("x");
+			floor_location[1] = position2.getDouble("y");
+			floor_location[2] = position2.getDouble("z");
+			//gis����
+			double[] _location = TransformGPS.convert(location);
+			double[] _floor_location = TransformGPS.convert(floor_location);
+			location[0] = _location[0];
+			location[1] = _location[1];
+			floor_location[0] = _floor_location[0];
+			floor_location[1] = _floor_location[1];
+			laserPano.put("location", location);
+			laserPano.put("floor_location", floor_location);
+			
+			//���
+			double[] dataset_location = new double[3];
+			dataset_location[0] = position2.getDouble("x");
+			dataset_location[1] = position2.getDouble("y");
+			dataset_location[2] = position1.getDouble("z");
+			//����
+			double[] dataset_floor_location = new double[3];
+			dataset_floor_location[0] = position2.getDouble("x");
+			dataset_floor_location[1] = position2.getDouble("y");
+			dataset_floor_location[2] = position2.getDouble("z");
+
+			laserPano.put("dataset_location", dataset_location);
+			laserPano.put("dataset_floor_location", dataset_floor_location);
+			
+			JSONObject rotation = item.getJSONObject("rotation");
+			double[] quaternation = new double[4];
+			quaternation[0] = rotation.getDouble("w");
+			quaternation[1] = rotation.getDouble("x");
+			quaternation[2] = rotation.getDouble("y");
+			quaternation[3] = rotation.getDouble("z");
+			laserPano.put("orientation", quaternation);
+			
+			String fileId = String.valueOf(id);
+			while(fileId.length()<5) {
+				fileId = "0"+fileId;
+			}
+			laserPano.put("file_id", fileId);
+			
+			laserPanos.add(laserPano);
+			//firstView
+			if(id == 0) {
+				//保存初始点的gis坐标
+				// _location 存入数据库
+				SpecialPointEntity pointEntity = new SpecialPointEntity();
+				// 纬度 113
+//				pointEntity.setLat(_location[0]);
+//				// 经度 22
+//				pointEntity.setLon(_location[1]);
+				Double[] edit = {_location[0], _location[1]};
+				pointEntity.setPoi(edit);
+				pointEntity.setSceneCode(sceneCode);
+				pointEntity.setUpdateTime(LocalDateTime.now());
+				pointEntity.setId(SnowFlakeUUidUtils.getUuid("SP"));
+				pointEntity.setPoiKey(TypeConstant.POI_FIRST_VIEW);
+				specialPointService.save(pointEntity);
+			}
+		}
+		return laserPanos;
+	}
+
+
+	public  JSONArray createFilter(String sceneCode, String path){
+		if (!cn.hutool.core.io.FileUtil.isFile(path)) {
+			log.error("文件路径不存在: {}", path);
+			throw new RuntimeException("文件路径不存在");
+		}
+		try {
+			JSONArray panoInfos = readVisionTxt(path);
+			return createPanoInfos(sceneCode, panoInfos);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+//	public static void main(String[] args) {
+//		String inputFilePath = "F:\\test\\project\\age_laser\\vision-indoor.txt";
+//		try {
+//			JSONArray panoInfos = readVisionTxt(inputFilePath);
+//			createPanoInfos("111", panoInfos);
+//		}
+//		catch(Exception e){
+//			e.printStackTrace();
+//		}
+//	}
+}

+ 275 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/FileUtil.java

@@ -0,0 +1,275 @@
+package com.fdkankan.indoor.base.convert;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.List;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+//�������
+public class FileUtil {
+
+	public static byte[] readFile(String path)throws Exception
+	{
+		File f = new File(path);  
+        if(!f.exists()){  
+            throw new FileNotFoundException(path);  
+        }  
+  
+        ByteArrayOutputStream bos = new ByteArrayOutputStream((int)f.length());  
+        BufferedInputStream in = null;  
+        try{  
+            in = new BufferedInputStream(new FileInputStream(f));  
+            int buf_size = 4096;  
+            byte[] buffer = new byte[buf_size];  
+            int len = 0;  
+            while(-1 != (len = in.read(buffer,0,buf_size))){  
+                bos.write(buffer,0,len);  
+            }    
+            return bos.toByteArray();
+        }catch (IOException e) {  
+            e.printStackTrace();  
+            throw e;  
+        }finally{  
+            try{  
+                in.close();  
+            }catch (IOException e) {  
+                e.printStackTrace();  
+            }  
+            bos.close();  
+        }  
+	}
+	
+	public static void writeBinary(byte[] buf,String filePath)throws Exception
+	{
+    	File fout = new File(filePath);
+        FileOutputStream fos = new FileOutputStream(fout);
+		ByteArrayInputStream stream = new ByteArrayInputStream(buf);  
+        BufferedOutputStream bos = new BufferedOutputStream(fos);//�������·��  
+        BufferedInputStream bis = new BufferedInputStream(stream);  
+        int b = -1;  
+        while ((b = bis.read()) != -1) {  
+            bos.write(b);  
+        }  
+        bis.close();  
+        bos.close(); 
+	}
+  
+    public static String readFileByLines(String path)throws Exception
+   	{
+    	File f = new File(path);  
+        if(!f.exists()){  
+        	return null; 
+        }  
+  
+        ByteArrayOutputStream bos = new ByteArrayOutputStream((int)f.length());  
+        BufferedInputStream in = null;  
+        try{  
+            in = new BufferedInputStream(new FileInputStream(f));  
+            int buf_size = 4096;  
+            byte[] buffer = new byte[buf_size];  
+            int len = 0;  
+            while(-1 != (len = in.read(buffer,0,buf_size))){  
+                bos.write(buffer,0,len);  
+            }    
+            return bos.toString();
+        }catch (IOException e) {  
+            e.printStackTrace();  
+            throw e;  
+        }finally{  
+            try{  
+                in.close();  
+            }catch (IOException e) {  
+                e.printStackTrace();  
+            }  
+            bos.close();  
+        }  
+   	}
+    
+    public static List<String> readFileByLines2(String path)throws Exception
+   	{
+    	File f = new File(path);  
+        if(!f.exists()){  
+        	return null; 
+        }  
+  
+        try{  
+            // read file content from file
+            FileReader reader = new FileReader(path);
+            BufferedReader br = new BufferedReader(reader);
+           
+            String str = null;
+            List<String> result = new ArrayList<String>();
+            while((str = br.readLine()) != null) {
+            	result.add(str);
+            }
+           
+            br.close();
+            reader.close();
+            
+            return result;
+        }catch (IOException e) {  
+            e.printStackTrace();  
+            throw e;  
+        }
+   	}
+    
+    public static String readStringFile(String fileName) {
+        String Str = "";
+        try {
+            File jsonFile = new File(fileName);
+            FileReader fileReader = new FileReader(jsonFile);
+            Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
+            int ch = 0;
+            StringBuffer sb = new StringBuffer();
+            while ((ch = reader.read()) != -1) {
+                sb.append((char) ch);
+            }
+            fileReader.close();
+            reader.close();
+            Str = sb.toString();
+            return Str;
+        } catch (IOException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+    
+	public static boolean deleteFile(String sPath) {  
+	    
+		boolean flag = false;  
+	    File file = new File(sPath);  
+	    // ·��Ϊ�ļ��Ҳ�Ϊ�������ɾ��  
+	    if (file.isFile() && file.exists()) {  
+	        file.delete();  
+	        flag = true;  
+	    }  
+	    return flag;  
+	} 
+	
+    public static void writeFile(String filePath,String str) throws IOException {
+        File fout = new File(filePath);
+        FileOutputStream fos = new FileOutputStream(fout);
+        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
+        bw.write(str);
+        bw.close();
+    }
+    
+    public static void writeFileForLine(String filePath,List list) throws IOException {        
+        FileWriter fw = new FileWriter(filePath,true);    
+        BufferedWriter bw = new BufferedWriter(fw);    
+        for (int i = 0; i < list.size(); i++) {
+            bw.write(list.get(i).toString());
+            bw.newLine();
+        }  
+        bw.close();
+    }
+    
+    public static boolean copyFile(String srcFileName, String destFileName,  boolean overlay) {  
+        File srcFile = new File(srcFileName);  
+  
+        // �ж�Դ�ļ��Ƿ����  
+        if (!srcFile.exists()) {   
+            return false;  
+        } else if (!srcFile.isFile()) {   
+            return false;  
+        }  
+  
+        // �ж�Ŀ���ļ��Ƿ����  
+        File destFile = new File(destFileName);  
+        if (destFile.exists()) {  
+            // ���Ŀ���ļ����ڲ�������  
+            if (overlay) {  
+                // ɾ���Ѿ����ڵ�Ŀ���ļ�������Ŀ���ļ���Ŀ¼���ǵ����ļ�  
+                new File(destFileName).delete();  
+            }  
+        } else {  
+            // ���Ŀ���ļ�����Ŀ¼�����ڣ��򴴽�Ŀ¼  
+            if (!destFile.getParentFile().exists()) {  
+                // Ŀ���ļ�����Ŀ¼������  
+                if (!destFile.getParentFile().mkdirs()) {  
+                    // �����ļ�ʧ�ܣ�����Ŀ���ļ�����Ŀ¼ʧ��  
+                    return false;  
+                }  
+            }  
+        }  
+  
+        // �����ļ�  
+        int byteread = 0; // ��ȡ���ֽ���  
+        InputStream in = null;  
+        OutputStream out = null;  
+  
+        try {  
+            in = new FileInputStream(srcFile);  
+            out = new FileOutputStream(destFile);  
+            byte[] buffer = new byte[1024];  
+  
+            while ((byteread = in.read(buffer)) != -1) {  
+                out.write(buffer, 0, byteread);  
+            }  
+            return true;  
+        } catch (FileNotFoundException e) {  
+            return false;  
+        } catch (IOException e) {  
+            return false;  
+        } finally {  
+            try {  
+                if (out != null)  
+                    out.close();  
+                if (in != null)  
+                    in.close();  
+            } catch (IOException e) {  
+                e.printStackTrace();  
+            }  
+        }  
+    } 
+    
+    /*
+     * ��ȡָ��·���µ��ļ�����Ŀ¼��
+     */
+    public static JSONObject getFileList(String directory) throws IOException {
+        File file = new File(directory);
+
+        File[] fileList = file.listFiles();
+        
+        JSONObject result = new JSONObject();
+        JSONArray files = new JSONArray();
+        JSONArray fileDirectorys = new JSONArray();
+        for (int i = 0; i < fileList.length; i++) {
+            if (fileList[i].isFile()) {
+                String fileName = fileList[i].getName();
+                //System.out.println("���" + fileName);
+                files.add(fileName);
+            }
+
+            if (fileList[i].isDirectory()) {
+                String fileName = fileList[i].getName();
+                //System.out.println("Ŀ¼��" + fileName);
+                fileDirectorys.add(fileName);
+            }
+        }
+        
+        result.put("files", files);
+        result.put("fileDirectorys", fileDirectorys);
+        
+        return result;
+    }
+}

+ 440 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/GetRoute.java

@@ -0,0 +1,440 @@
+package com.fdkankan.indoor.base.convert;
+
+import java.util.List;
+
+import com.fdkankan.indoor.base.convert.kesar.AStar;
+import com.fdkankan.indoor.base.convert.kesar.Coord;
+import com.fdkankan.indoor.base.convert.kesar.MapInfo;
+import com.fdkankan.indoor.base.convert.kesar.Node;
+
+
+import com.fdkankan.indoor.core.entity.dto.RouteInputDto;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+/**
+ * star算法
+ * 最优路径算法
+ */
+public class GetRoute {
+
+	//	public static String inputFilePath = "F:\\2021\\navvis\\���Ի���\\test3(v2.7.3)\\routeMap.txt";
+	public static String inputFilePath = "F:\\test\\project\\age_laser\\routeMap.txt";
+
+	// 起始点
+	private static float startX = 1.745f;
+	private static float startY = -14.45f;
+	private static float startZ = -0.042078f;
+
+	// 终点
+	private static float endX = 3.74493f;
+	private static float endY = -14.4489f;
+	private static float endZ = -0.042078f;
+
+	private static int minStartId = -1;
+	private static int minEndId = -1;
+	private static Node start = null;
+	private static Node end = null;
+	private static AStar g_AStar = new AStar();
+
+	//"id" "x" ,"y " ,"z" ,"weight" ,"p1",...,"p8"
+	// lat:113, [0], x, lon:22, [1], y
+
+	/**
+	 *
+	 * @param list 算法部 生成的文件
+	 * @param dto
+	 * @return
+	 * @throws Exception
+	 */
+	private static JSONArray init(List<String> list, RouteInputDto dto) throws Exception {
+//		List<String> list = FileUtil.readFileByLines2(inputFilePath);
+		JSONArray maps = new JSONArray();
+
+		float startX = dto.getSource_longitude();
+		float startY = dto.getSource_latitude();
+		float startZ = dto.getSource_z();
+
+		float endX = dto.getDestination_longitude();
+		float endY = dto.getDestination_latitude();
+		float endZ = dto.getDestination_z();
+
+		Coord _start = new Coord(startX,startY,startZ);
+		Coord _end = new Coord(endX,endY,endZ);
+
+		float startDistance=1000f;
+		float endDistance = 1000f;
+
+		for(int i=0;i<list.size();++i) {
+			String str = list.get(i);
+			String[] strArray = str.trim().split(" ");
+			JSONObject item = new JSONObject();
+			//item.put("id", i);
+			item.put("x", strArray[0]);
+			item.put("y", strArray[1]);
+			item.put("z", strArray[2]);
+			item.put("weight", strArray[3]);
+
+			String linkedIds = "";
+			for(int j = 4;j<strArray.length;++j) {
+				if(Integer.valueOf(strArray[j])>0) {
+					linkedIds += strArray[j]+",";
+				}
+			}
+
+			item.put("linkedIds", linkedIds.substring(0, linkedIds.length()-1));
+			maps.add(item);
+			Coord coord = new Coord(Float.valueOf(strArray[0]),Float.valueOf(strArray[1]),Float.valueOf(strArray[2]));
+			float _startDistance = g_AStar.calcH(_start, coord);
+			if(_startDistance<startDistance) {
+				minStartId = i;
+				startDistance = _startDistance;
+			}
+			float _endDistance = g_AStar.calcH(_end, coord);
+			if(_endDistance<endDistance) {
+				minEndId = i;
+				endDistance = _endDistance;
+			}
+		}
+
+		JSONObject virtualStart = maps.getJSONObject(minStartId);
+		JSONObject virtualEnd = maps.getJSONObject(minEndId);
+		Coord startVirtualCoord = new Coord((float)virtualStart.getDouble("x"), (float)virtualStart.getDouble("y"),(float)virtualStart.getDouble("z"));
+		Coord endVirtualCoord = new Coord((float)virtualEnd.getDouble("x"), (float)virtualEnd.getDouble("y"),(float)virtualEnd.getDouble("z"));
+		float startH = g_AStar.calcH(startVirtualCoord, endVirtualCoord);
+
+		start = new Node(minStartId,0,startVirtualCoord, null, 0, startH);
+		end = new Node(minEndId,0,endVirtualCoord, null, 0, 0);
+
+		return maps;
+	}
+
+
+
+	private static JSONArray init() throws Exception {
+		List<String> list = FileUtil.readFileByLines2(inputFilePath);
+		JSONArray maps = new JSONArray();
+
+//		float startX = dto.getSource_longitude();
+//		float startY = dto.getSource_latitude();
+//		float startZ = dto.getSource_z();
+//
+//		float endX = dto.getDestination_longitude();
+//		float endY = dto.getDestination_latitude();
+//		float endZ = dto.getDestination_z();
+
+		Coord _start = new Coord(startX,startY,startZ);
+		Coord _end = new Coord(endX,endY,endZ);
+
+		float startDistance=1000f;
+		float endDistance = 1000f;
+
+		for(int i=0;i<list.size();++i) {
+			String str = list.get(i);
+			String[] strArray = str.trim().split(" ");
+			JSONObject item = new JSONObject();
+			//item.put("id", i);
+			item.put("x", strArray[0]);
+			item.put("y", strArray[1]);
+			item.put("z", strArray[2]);
+			item.put("weight", strArray[3]);
+
+			String linkedIds = "";
+			for(int j = 4;j<strArray.length;++j) {
+				if(Integer.valueOf(strArray[j])>0) {
+					linkedIds += strArray[j]+",";
+				}
+			}
+
+			item.put("linkedIds", linkedIds.substring(0, linkedIds.length()-1));
+			maps.add(item);
+			Coord coord = new Coord(Float.valueOf(strArray[0]),Float.valueOf(strArray[1]),Float.valueOf(strArray[2]));
+			float _startDistance = g_AStar.calcH(_start, coord);
+			if(_startDistance<startDistance) {
+				minStartId = i;
+				startDistance = _startDistance;
+			}
+			float _endDistance = g_AStar.calcH(_end, coord);
+			if(_endDistance<endDistance) {
+				minEndId = i;
+				endDistance = _endDistance;
+			}
+		}
+
+		JSONObject virtualStart = maps.getJSONObject(minStartId);
+		JSONObject virtualEnd = maps.getJSONObject(minEndId);
+		Coord startVirtualCoord = new Coord((float)virtualStart.getDouble("x"), (float)virtualStart.getDouble("y"),(float)virtualStart.getDouble("z"));
+		Coord endVirtualCoord = new Coord((float)virtualEnd.getDouble("x"), (float)virtualEnd.getDouble("y"),(float)virtualEnd.getDouble("z"));
+		float startH = g_AStar.calcH(startVirtualCoord, endVirtualCoord);
+
+		start = new Node(minStartId,0,startVirtualCoord, null, 0, startH);
+		end = new Node(minEndId,0,endVirtualCoord, null, 0, 0);
+
+		return maps;
+	}
+
+	private static JSONArray convertFromPath(List<Node> path) {
+		if(path == null||path.size() == 0) {
+			return null;
+		}
+
+
+		JSONArray route = new JSONArray();
+
+		//起点不在path上,path的第一个点对应的是格子
+		JSONObject start = new JSONObject();
+		double[] startPosition = {startX,startY};
+		startPosition = TransformGPS.convert(startPosition);
+		start.put("longitude", startPosition[0]);
+		start.put("latitude", startPosition[1]);
+		start.put("z", startZ);
+		float[] location = new float[3];
+		location[0] = (float)startPosition[0];
+		location[1] = (float)startPosition[1];
+		location[2] = startZ;
+
+		start.put("location", location);
+		start.put("distance", 0);
+		start.put("distance_to_previous", 0);
+		start.put("instruction", null);
+		route.add(start);
+
+		float[] virtualendPosition = new float[3];
+
+		for(int i=0;i<path.size();++i) {
+			Node node = path.get(i);
+			JSONObject item = new JSONObject();
+			//转经纬度
+			double[] position = {node.coord.x,node.coord.y};
+			position = TransformGPS.convert(position);
+			item.put("longitude", position[0]);
+			item.put("latitude", position[1]);
+
+			item.put("z", node.coord.z);
+			location = new float[3];
+
+			location[0] = (float)position[0];
+			location[1] = (float)position[1];
+			location[2] = node.coord.z;
+			item.put("location", location);
+
+			JSONObject instruction = null;
+
+			if(i == 0) {
+				item.put("distance", g_AStar.calcH(node.coord,new Coord(startX,startY,startZ)));
+				item.put("distance_to_previous", g_AStar.calcH(node.coord,new Coord(startX,startY,startZ)));
+				item.put("instruction", instruction);
+
+				instruction = new JSONObject();
+				instruction.put("type", "source_projection_to_navgraph");
+				item.put("instruction", instruction);
+			}
+			else {
+				int j = i-1;
+				Node prenode = path.get(j);
+				JSONObject preitem = route.getJSONObject(j);
+				float distance_to_previous = g_AStar.calcH(node.coord,prenode.coord);
+				item.put("distance_to_previous", distance_to_previous);
+				float distance = (float)preitem.getDouble("distance")+distance_to_previous;
+				item.put("distance", distance);
+				if(i == path.size()-1) {
+					instruction = new JSONObject();
+					instruction.put("type", "destination_projection_to_navgraph");
+					item.put("instruction", instruction);
+
+					virtualendPosition[0] = (float)node.coord.x;
+					virtualendPosition[1] = (float)node.coord.y;
+					virtualendPosition[2] = (float)node.coord.z;
+				}
+				else {
+					item.put("instruction", instruction);
+				}
+			}
+			route.add(item);
+		}
+
+		JSONObject endItem = route.getJSONObject(route.size()-1);
+		JSONObject end = new JSONObject();
+		double[] endPosition = {endX,endY};
+		endPosition = TransformGPS.convert(endPosition);
+		end.put("longitude", endPosition[0]);
+		end.put("latitude", endPosition[1]);
+		end.put("z", endZ);
+		location = new float[3];
+		location[0] = (float)endPosition[0];
+		location[1] = (float)endPosition[1];
+		location[2] = endZ;
+		end.put("location", location);
+		float enddistance = g_AStar.calcH(new Coord(virtualendPosition[0],virtualendPosition[1],virtualendPosition[2]),new Coord(endX,endY,endZ));
+		end.put("distance", enddistance+(float)endItem.getDouble("distance_to_previous"));
+		end.put("distance_to_previous", enddistance);
+		end.put("instruction", null);
+		route.add(end);
+
+		return route;
+	}
+
+
+
+	private static JSONArray convertFromPath(List<Node> path, RouteInputDto dto) {
+		if(path == null||path.size() == 0) {
+			return null;
+		}
+
+		// 起始点
+		float startX = dto.getSource_longitude();
+		float startY = dto.getSource_latitude();
+		float startZ = dto.getSource_z();
+
+		// 终点
+		float endX = dto.getDestination_longitude();
+		float endY = dto.getDestination_latitude();
+		float endZ = dto.getDestination_z();
+
+		JSONArray route = new JSONArray();
+
+		//起点不在path上,path的第一个点对应的是格子
+		JSONObject start = new JSONObject();
+		double[] startPosition = {startX,startY};
+		startPosition = TransformGPS.convert(startPosition);
+		start.put("longitude", startPosition[0]);
+		start.put("latitude", startPosition[1]);
+		start.put("z", startZ);
+		float[] location = new float[3];
+		location[0] = (float)startPosition[0];
+		location[1] = (float)startPosition[1];
+		location[2] = startZ;
+
+		start.put("location", location);
+		start.put("distance", 0);
+		start.put("distance_to_previous", 0);
+		start.put("instruction", null);
+		route.add(start);
+
+		float[] endVirPosition = new float[3];
+		JSONObject endItem = new JSONObject();
+
+		for(int i=0;i<path.size();++i) {
+			Node node = path.get(i);
+			JSONObject item = new JSONObject();
+			//转经纬度
+			double[] position = {node.coord.x,node.coord.y};
+			position = TransformGPS.convert(position);
+			item.put("longitude", position[0]);
+			item.put("latitude", position[1]);
+
+			item.put("z", node.coord.z);
+			location = new float[3];
+
+			location[0] = (float)position[0];
+			location[1] = (float)position[1];
+			location[2] = node.coord.z;
+			item.put("location", location);
+
+			JSONObject instruction = null;
+
+			if(i == 0) {
+				item.put("distance", g_AStar.calcH(node.coord,new Coord(startX,startY,startZ)));
+				item.put("distance_to_previous", g_AStar.calcH(node.coord,new Coord(startX,startY,startZ)));
+				item.put("instruction", instruction);
+
+				instruction = new JSONObject();
+				instruction.put("type", "source_projection_to_navgraph");
+				item.put("instruction", instruction);
+			}
+			else {
+				int j = i-1;
+				Node prenode = path.get(j);
+				JSONObject preitem = route.getJSONObject(j);
+				float distance = g_AStar.calcH(node.coord,prenode.coord);
+				item.put("distance", distance);
+				float distance_to_previous = (float)preitem.getDouble("distance_to_previous")+distance;
+				item.put("distance_to_previous", distance_to_previous);
+				if(i == path.size()-1) {
+					instruction = new JSONObject();
+					instruction.put("type", "destination_projection_to_navgraph");
+					item.put("instruction", instruction);
+
+					endVirPosition[0] = node.coord.x;
+					endVirPosition[1] = node.coord.y;
+					endVirPosition[2] = node.coord.z;
+					endItem.put("distance_to_previous",distance_to_previous);
+				}
+				else {
+					item.put("instruction", instruction);
+				}
+			}
+			route.add(item);
+		}
+
+
+		JSONObject end = new JSONObject();
+		double[] endPosition = {endX,endY};
+		endPosition = TransformGPS.convert(endPosition);
+		end.put("longitude", endPosition[0]);
+		end.put("latitude", endPosition[1]);
+		end.put("z", endZ);
+		location = new float[3];
+		location[0] = (float)endPosition[0];
+		location[1] = (float)endPosition[1];
+		location[2] = endZ;
+		end.put("location", location);
+		float enddistance = g_AStar.calcH(new Coord(endVirPosition[0],endVirPosition[1],endVirPosition[2]),new Coord(endX,endY,endZ));
+		end.put("distance", enddistance+(float)endItem.getDouble("distance_to_previous"));
+		end.put("distance_to_previous", enddistance);
+		end.put("instruction", null);
+		route.add(end);
+
+		return route;
+	}
+
+	/**
+	 * 读取文件,获取文件内容
+	 * @param inPath F:\test\project\age_laser\routeMap.txt
+	 * @return
+	 */
+//	public static JSONArray createRoute(String inPath){
+//		try {
+//			JSONArray maps = readMap(inPath);
+//			return maps;
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//		}
+//		return null;
+//	}
+
+	/**
+	 * 读取文件,获取文件内容
+	 *   F:\test\project\age_laser\routeMap.txt
+	 *
+	 *   list 是routeMap的结果集
+	 * @return
+	 */
+	public static JSONArray getRoute(List<String> list, RouteInputDto dto){
+		try {
+			JSONArray maps = init(list, dto);
+			MapInfo info=new MapInfo(maps,start,end);
+			List<Node> path = g_AStar.start(info);
+			JSONArray jsonArray = convertFromPath(path, dto);
+			return jsonArray;
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return null;
+	}
+
+	public static void main(String[] args) {
+		String inputFilePath = "F:\\test\\project\\age_laser\\routeMap.txt";
+		try {
+			JSONArray maps = init();
+
+			MapInfo info=new MapInfo(maps,start,end);
+			List<Node> path = g_AStar.start(info);
+			JSONArray jsonArray = convertFromPath(path);
+			System.out.println(jsonArray);
+		}
+		catch(Exception e){
+			e.printStackTrace();
+		}
+	}
+}

+ 113 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/GisCoordinateTransform.java

@@ -0,0 +1,113 @@
+package com.fdkankan.indoor.base.convert;
+
+/**
+ * 提供常国家用坐标系转换方法
+ */
+public  class GisCoordinateTransform {
+    //CGCS2000坐标系参数
+    private  static double CGCS2000_a=6378137.0;
+    private  static double CGCS2000_f=1/298.257222101;
+    //WGS84坐标系参数
+    private  static double WGS84_a=6378137.0;
+    private  static double WGS84_f=1/298.2572236;
+
+    /**
+     * 求三度分带的中央经线
+     * @param longitude
+     * @return
+     */
+    public static double getZone3CenterLon(double longitude){
+        return  Math.round(longitude/3)*3;
+    }
+    /**
+     * 2000坐标系 经纬度转平面坐标算法  也就是经纬度转米
+     * @param longitude 经度
+     * @param latitude  纬度
+     * @return
+     */
+    public static double[] Convert2000BLToGauss(double longitude, double latitude)
+    {
+        double[] output = new double[2];
+        double longitude1,latitude1,longitude0,  X0,Y0, xval,yval;
+        //NN曲率半径,测量学里面用N表示
+        //M为子午线弧长,测量学里用大X表示
+        //fai为底点纬度,由子午弧长反算公式得到,测量学里用Bf表示
+        //R为底点所对的曲率半径,测量学里用Nf表示
+        double a,f, e2,ee, NN, T,C,A, M, iPI;
+        iPI = 0.0174532925199433; //3.1415926535898/180.0;
+        a= CGCS2000_a; f=CGCS2000_f; //CGCS2000坐标系参数
+        longitude0=Math.round(longitude/3)*3;//中央子午线计算
+        longitude0 = longitude0 * iPI ;//中央子午线转换为弧度
+        longitude1 = longitude * iPI ; //经度转换为弧度
+        latitude1 = latitude * iPI ; //纬度转换为弧度
+        e2=2*f-f*f;
+        ee=e2*(1.0-e2);
+        NN=a/Math.sqrt(1.0-e2*Math.sin(latitude1)*Math.sin(latitude1));
+        T=Math.tan(latitude1)*Math.tan(latitude1);
+        C=ee*Math.cos(latitude1)*Math.cos(latitude1);
+        A=(longitude1-longitude0)*Math.cos(latitude1);
+        M=a*((1-e2/4-3*e2*e2/64-5*e2*e2*e2/256)*latitude1-(3*e2/8+3*e2*e2/32+45*e2*e2
+                *e2/1024)*Math.sin(2*latitude1)
+                +(15*e2*e2/256+45*e2*e2*e2/1024)*Math.sin(4*latitude1)-(35*e2*e2*e2/3072)*Math.sin(6*latitude1));
+        xval = NN*(A+(1-T+C)*A*A*A/6+(5-18*T+T*T+72*C-58*ee)*A*A*A*A*A/120);
+        yval = M+NN*Math.tan(latitude1)*(A*A/2+(5-T+9*C+4*C*C)*A*A*A*A/24
+                +(61-58*T+T*T+600*C-330*ee)*A*A*A*A*A*A/720);
+        X0 = 500000L;
+        Y0 = 0;
+        xval = xval+X0; yval = yval+Y0;
+
+        //转换为投影
+        output[0] = xval;
+        output[1] = yval;
+        return output;
+    }
+
+    /**
+     * 2000坐标系 平面转经纬度坐标算法  也就是米转经纬度
+     * @param x x坐标,对应经度
+     * @param y  y坐标,对应纬度
+     * @param  centerlon  所处带的中央经线
+     * @return
+     */
+    public static double[] Convert2000GaussToBL(double x, double y,double centerlon)
+    {
+        double[] output = new double[2];
+        int ProjNo; int ZoneWide; ////带宽
+        double longitude1,latitude1, longitude0,latitude0, X0,Y0, xval,yval;
+        double e1,e2,f,a, ee, NN, T,C, M, D,R,u,fai, iPI;
+        iPI = 0.0174532925199433; ////3.1415926535898/180.0;
+        a=CGCS2000_a; f=CGCS2000_f; //CGCS2000坐标系参数
+        ZoneWide = 3; ////3度带宽
+        ProjNo = (int)(x/1000000L) ; //查找带号
+        longitude0 = (ProjNo-1) * ZoneWide + ZoneWide / 2;
+       // System.out.println(longitude0);
+        longitude0=centerlon;
+        longitude0 = longitude0 * iPI ; //中央经线
+        X0 = ProjNo*1000000L+500000L;
+        Y0 = 0;
+        xval = x-X0; yval = y-Y0; //带内大地坐标
+        e2 = 2*f-f*f;
+        e1 = (1.0-Math.sqrt(1-e2))/(1.0+Math.sqrt(1-e2));
+        ee = e2/(1-e2);
+        M = yval;
+        u = M/(a*(1-e2/4-3*e2*e2/64-5*e2*e2*e2/256));
+        fai = u+(3*e1/2-27*e1*e1*e1/32)*Math.sin(2*u)+(21*e1*e1/16-55*e1*e1*e1*e1/32)*Math.sin(
+                4*u)
+                +(151*e1*e1*e1/96)*Math.sin(6*u)+(1097*e1*e1*e1*e1/512)*Math.sin(8*u);
+        C = ee*Math.cos(fai)*Math.cos(fai);
+        T = Math.tan(fai)*Math.tan(fai);
+        NN = a/Math.sqrt(1.0-e2*Math.sin(fai)*Math.sin(fai));
+        R = a*(1-e2)/Math.sqrt((1-e2*Math.sin(fai)*Math.sin(fai))*(1-e2*Math.sin(fai)*Math.sin(fai))*(1-e2*Math.sin
+                (fai)*Math.sin(fai)));
+        D = xval/NN;
+        //计算经度(Longitude) 纬度(Latitude)
+        longitude1 = longitude0+(D-(1+2*T+C)*D*D*D/6+(5-2*C+28*T-3*C*C+8*ee+24*T*T)*D
+                *D*D*D*D/120)/Math.cos(fai);
+        latitude1 = fai -(NN*Math.tan(fai)/R)*(D*D/2-(5+3*T+10*C-4*C*C-9*ee)*D*D*D*D/24
+                +(61+90*T+298*C+45*T*T-256*ee-3*C*C)*D*D*D*D*D*D/720);
+        //转换为度 DD
+        output[0] = longitude1 / iPI;
+        output[1] = latitude1 / iPI;
+        return output;
+    }
+}

+ 117 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/GisCoordinateUtil.java

@@ -0,0 +1,117 @@
+package com.fdkankan.indoor.base.convert;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.indoor.base.convert.GisCoordinateTransform;
+
+import java.io.*;
+
+
+public class GisCoordinateUtil {
+    private   static  double dx;//x方向增量
+    private  static  double dy;//y方向增量
+    private  static  double locationplaneVector[];//本地向量
+    private  static  double geographicplaneVector[];//地理平面坐标系向量
+    private  static  double centerLon;//中央经度
+    /**
+     * 解析控制点文件
+     * @param  controlPointsFileUrl 控制点文件路径
+     */
+    public static void parseControlPointsFile (String controlPointsFileUrl){
+        String jsonStr = "";
+        try {
+            File file = new File(controlPointsFileUrl);
+            FileReader fileReader = new FileReader(file);
+            Reader reader = new InputStreamReader(new FileInputStream(file),"Utf-8");
+            int ch = 0;
+            StringBuffer sb = new StringBuffer();
+            while ((ch = reader.read()) != -1) {
+                sb.append((char) ch);
+            }
+            fileReader.close();
+            reader.close();
+            jsonStr = sb.toString();
+            parseJSON(jsonStr);
+        } catch (Exception e) {
+            System.out.println("文件内部格式错误!");
+        }
+    }
+
+    /**
+     * 解析json字符串
+     * @param jsonStr
+     */
+    private  static void parseJSON(String jsonStr){
+//        JSONObject json= JSONObject.fromObject(jsonStr);
+        JSONObject json = JSONObject.parseObject(jsonStr);
+        JSONArray points=json.getJSONArray("points");
+        JSONObject aPoint=(JSONObject)points.get(0);
+        JSONObject bPoint=(JSONObject)points.get(1);
+        JSONObject aPointCoordinate=(JSONObject)aPoint.get("coordinate");
+        JSONObject aPointLocation=(JSONObject)aPoint.get("location");
+        JSONObject bPointCoordinate=(JSONObject)bPoint.get("coordinate");
+        JSONObject bPointLocation=(JSONObject)bPoint.get("location");
+        double alon=aPointCoordinate.getDouble("longitude");
+        double alat=aPointCoordinate.getDouble("latitude");
+        double aX=aPointLocation.getDouble("x");
+        double aY=aPointLocation.getDouble("y");
+        double blon=bPointCoordinate.getDouble("longitude");
+        double blat=bPointCoordinate.getDouble("latitude");
+        double bX=bPointLocation.getDouble("x");
+        double bY=bPointLocation.getDouble("y");
+        calculateVariable (alon,alat,aX,aY,blon,blat,bX,bY);
+      //  System.out.println(alon+" "+alat+" "+aX+" "+aY+" "+blon+" "+blat+" "+bX+" "+bY);
+    }
+
+    /**
+     * 根据两个控制点计算增量及用于计算角度的两个向量
+     * @param alon
+     * @param alat
+     * @param aX
+     * @param aY
+     * @param blon
+     * @param blat
+     * @param bX
+     * @param bY
+     */
+    public  static  void calculateVariable (double alon,double alat,double aX,double aY,double blon,double blat,double bX,double bY){
+       double[] a= GisCoordinateTransform.Convert2000BLToGauss(alon,alat);
+       double[] b= GisCoordinateTransform.Convert2000BLToGauss(blon,blat);
+       dx=a[0]-aX;
+       dy=a[1]-aY;
+        locationplaneVector=new double[2];
+        locationplaneVector[0]=a[0]-b[0];
+        locationplaneVector[1]=a[1]-b[1];
+        geographicplaneVector=new double[2];
+        geographicplaneVector[0]=aX-bX;
+        geographicplaneVector[1]=aY-bY;
+        centerLon=GisCoordinateTransform.getZone3CenterLon(alon);
+    }
+
+    /**
+     * 本地坐标转经纬度
+     * @param loctionX
+     * @param loctionY
+     * @return
+     */
+    public static  double[] transformLocationToBL(double loctionX,double loctionY){
+        double x1=locationplaneVector[0];
+        double y1=locationplaneVector[1];
+        double x2=geographicplaneVector[0];
+        double y2=geographicplaneVector[1];
+        double tana1=y1/x1;
+        double tana2=y2/x2;
+        double a1=Math.atan(tana1);
+        double a2=Math.atan(tana2);
+        double a=a2-a1;
+        double sinazimuth,cosazimuth;
+        cosazimuth=Math.cos(a);
+        sinazimuth=Math.sin(a);
+        double resultX=loctionY*sinazimuth+loctionX*cosazimuth;
+        double resultY=loctionY*cosazimuth-loctionX*sinazimuth;
+        double x=resultX+dx;
+        double y=resultY+dy;
+
+        return GisCoordinateTransform.Convert2000GaussToBL(x,y,centerLon);
+    }
+}

+ 106 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/ModifyCloud.java

@@ -0,0 +1,106 @@
+package com.fdkankan.indoor.base.convert;
+
+import java.io.IOException;
+
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+/**
+ * 点云数据转换
+ */
+public class ModifyCloud {
+
+//	public static String inputFilePath = "F:\\2021\\navvis\\���Ի���\\data\\cloud.js";
+//	public static String inputFilePath = "F:\\test\\project\\age_laser\\cloud.js";
+	
+	public static JSONObject fixCloud(String path) throws IOException {
+		String str = FileUtil.readStringFile(path);
+		JSONObject json = JSONObject.fromObject(str);
+		
+		String[] pointAttributes = {
+		                            "POSITION_CARTESIAN",
+		                            "COLOR_PACKED",
+		                            "NORMAL_OCT16"
+									};
+		json.put("pointAttributes", pointAttributes);
+		return json;
+	}
+	
+	public static JSONObject getBoundingBox(JSONObject json) {
+		JSONObject boundingBox = json.getJSONObject("boundingBox");
+		JSONObject result = new JSONObject();
+		
+		result.put("maxX", boundingBox.getDouble("ux"));
+		result.put("maxY", boundingBox.getDouble("uy"));
+		result.put("maxZ", boundingBox.getDouble("uz"));
+		
+		result.put("minX", boundingBox.getDouble("lx"));
+		result.put("minY", boundingBox.getDouble("lx"));
+		result.put("minZ", boundingBox.getDouble("lx"));
+		
+		result.put("centreX", (boundingBox.getDouble("lx")+boundingBox.getDouble("ux"))/2);
+		result.put("centreY", (boundingBox.getDouble("ly")+boundingBox.getDouble("uy"))/2);
+		result.put("centreZ", (boundingBox.getDouble("lz")+boundingBox.getDouble("uz"))/2);
+		return result;
+	}
+
+	//把原点(0,0,0)的坐标转换成gps坐标
+	public static double[] convertFromOrigin() {
+		double[] location = {0,0,0};
+		location = TransformGPS.convert(location);
+		return location;
+	}
+
+	//把boundingbox的顶点和中心点转换成gps坐标
+	public static JSONObject convertFromBoundingBox(JSONObject boundingBox) {
+		double[] max = {boundingBox.getDouble("maxX"),boundingBox.getDouble("maxY"),boundingBox.getDouble("maxZ")};
+		double[] min = {boundingBox.getDouble("minX"),boundingBox.getDouble("minY"),boundingBox.getDouble("minZ")};
+		double[] centre = {boundingBox.getDouble("centreX"),boundingBox.getDouble("centreY"),boundingBox.getDouble("centreZ")};
+
+
+		max = TransformGPS.convert(max);
+		min = TransformGPS.convert(min);
+		centre = TransformGPS.convert(centre);
+		
+		JSONObject result = new JSONObject();
+		result.put("max", max);
+		result.put("min", min);
+		result.put("centre", centre);
+		return result;
+	}
+	
+	public static void main(String args[]) {
+		String inputFilePath = "F:\\test\\project\\age_laser\\cloud.js";
+		try
+		{
+			//修改cloud.js文件
+			JSONObject info = fixCloud(inputFilePath);
+			//将原点转换成gis坐标,后续要写到datasets里
+			double[] doubles = convertFromOrigin();//原点 0,0,0 key:origin
+//将boundingbox坐标转换成gis坐标,site_model(第二张表)需要 , 这个获取z_max, z_min
+			JSONObject boundingbox = getBoundingBox(info);
+
+			Object minZ = boundingbox.get("minZ");
+
+
+			JSONObject resJson = convertFromBoundingBox(boundingbox);//boundingbox_min,boundingbox_max,centre
+			Object max = resJson.get("max");
+			Object min = resJson.get("min");
+			Object centre = resJson.get("centre");
+
+			JSONArray object = resJson.getJSONArray("max");
+			System.out.println();
+			// 0:113, 1:22
+			double[] max1 = {object.getDouble(0), object.getDouble(1)};
+
+			System.out.println();
+
+		}
+		catch(Exception e)
+		{
+			e.printStackTrace();
+		}
+		
+	}
+}

+ 43 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/ModifyConfig.java

@@ -0,0 +1,43 @@
+package com.fdkankan.indoor.base.convert;
+
+import java.io.IOException;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+public class ModifyConfig {
+
+	public static String inputFilePath = "F:\\2021\\navvis\\���Ի���\\data\\configs"; 
+	public static JSONObject first = new JSONObject();
+	
+	//���³�ʼ����Ϣ
+	public static void initFirstView() {
+		first.put("lon", 113);   //core.init.map.lon
+		first.put("lat", 22);    //core.init.map.lat
+	}
+	
+	private static JSONArray readConfigs() throws IOException {
+		String str = FileUtil.readStringFile(inputFilePath);
+		JSONArray configs = JSONArray.fromObject(str);
+		
+		initFirstView();
+
+		// 获取特殊点,firstView
+		for(int i=0;i<configs.size();++i) {
+			JSONObject item = configs.getJSONObject(i);
+			String name = item.getString("name");
+			if(name.equals("core.init.map.lon")) {
+				item.put("value", first.getDouble("lon")); //firstView
+			}
+			else if(name.equals("core.init.map.lat")) {
+				item.put("value", first.getDouble("lat"));
+			}
+		}
+		
+		return configs;
+	}
+
+
+
+	
+}

+ 88 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/ModifyDataSets.java

@@ -0,0 +1,88 @@
+package com.fdkankan.indoor.base.convert;
+
+import java.io.IOException;
+
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+public class ModifyDataSets {
+	public static String inputFilePath = "F:\\2021\\navvis\\���Ի���\\data\\datasets"; 
+	
+	public static String type = "4dage";
+	public static String name = "chunk1";
+	
+	/*
+	 * [{
+		"security": {
+			"group_read": 0,
+			"group_write": 1,
+			"can_write": false
+		},
+		"id": 1,
+		"bundle_id": 3,
+		"type": "4dage",
+		"name": "chunk1",
+		"title": "chunk1",
+		"color": "pink",
+		"visible": false,
+		"location": [113.595659855988,22.3666646417028,0],
+		"orientation": 0,
+		"site_model_entity_ids": [10,11,12],
+		"point_cloud_type": "POTREE",
+		"bounding_box_min": [-9.270299911499023,-17.399999618530273,-2.5648499727249146],
+		"bounding_box_max": [15.35949993133545,16.259200096130371,3.762256],
+		"has_depth_images": true,
+		"has_images": true
+	}]
+
+    */
+	
+	public static JSONObject createDataSet(Double[] location) {
+		JSONObject dataset = new JSONObject();
+		
+		JSONObject security = new JSONObject();
+		security.put("group_read", 0);
+		security.put("group_write", 1);
+		security.put("can_write", false);
+		
+		dataset.put("security", security);
+		dataset.put("id", 0);
+		dataset.put("bundle_id", 1);
+		dataset.put("type", "4dage");
+		dataset.put("name", "chunk1");
+		dataset.put("title", "chunk1");
+		dataset.put("color", "pink");
+		dataset.put("visible", false);
+		
+		//double[] location = {0,0,0};
+		//location = TransformGPS.convert(location);
+		//原点 ,获取特征点的原点
+		dataset.put("location", location);
+		dataset.put("orientation", 0);
+		double[] site_model_entity_ids = {10,11,12};
+		dataset.put("site_model_entity_ids", site_model_entity_ids);
+		dataset.put("point_cloud_type", "POTREE");
+
+		//添加boundingbox,从modifyCloud里的convertFromBoundingBox获取
+		//dataset.put("bounding_box_min", "");
+		//dataset.put("bounding_box_max", "");
+		
+		dataset.put("has_depth_images", true);
+		dataset.put("has_images", true);
+		return dataset;
+	}
+	
+	public static JSONArray readSiteModel() throws IOException { 
+		String str = FileUtil.readStringFile(inputFilePath);
+		JSONArray siteModels = JSONArray.fromObject(str);
+		//默认情况取第一个元素
+		JSONObject item = siteModels.getJSONObject(0);
+
+		//更新location(原点的gps坐标)
+		//更新orientation(默认是0)
+		//更新site_model_entity_ids,按照层级[10,11,12]
+		//更新bounding_box_min和bounding_box_max
+		return null;
+	}
+}

+ 43 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/TransformGPS.java

@@ -0,0 +1,43 @@
+package com.fdkankan.indoor.base.convert;
+
+
+/***
+ * 控制点(三维坐标)坐标转经纬度
+ */
+public class TransformGPS {
+	
+	public static final String CRS = "EPSG:4490";
+	
+	// 控制点, 输入参数,需要存入数据库
+	public static double[] controlLocation1 = {6.774144f,-9.48061f};  // 四维看看坐标
+	public static double[] controlCoordinate1 = {113.595725873337f,22.366579193007f}; //gps坐标
+	
+	public static double[] controlLocation2 = {6.059886f,-12.197689f}; // 四维看看坐标
+	public static double[] controlCoordinate2 = {113.59571900944f,22.366554639591f};  //gps坐标
+	
+	public static double[] convert(double[] position) {
+    	GisCoordinateUtil.calculateVariable (controlCoordinate1[0],controlCoordinate1[1],controlLocation1[0],controlLocation1[1],controlCoordinate2[0],controlCoordinate2[1],controlLocation2[0],controlLocation2[1]);
+        double[] d = GisCoordinateUtil.transformLocationToBL(position[0], position[1]);
+        return d;
+	}
+	
+	public static double[][] convert(double[][] positions){
+	   	GisCoordinateUtil.calculateVariable (controlCoordinate1[0],controlCoordinate1[1],controlLocation1[0],controlLocation1[1],controlCoordinate2[0],controlCoordinate2[1],controlLocation2[0],controlLocation2[1]);
+        double[][] result = new double[positions.length][2];
+	   	for(int i=0;i<positions.length;++i) {
+	   		double[] d = GisCoordinateUtil.transformLocationToBL(positions[i][0], positions[i][1]);
+	   		result[i] = d;
+	   		
+	   	}
+	   	
+        return result;
+	}
+	
+    public static void main(String[] args) {
+        //String url = "src/main/resources/demo.cp";
+        //GisCoordinateUtil.parseControlPointsFile(url);
+    	GisCoordinateUtil.calculateVariable (controlCoordinate1[0],controlCoordinate1[1],controlLocation1[0],controlLocation1[1],controlCoordinate2[0],controlCoordinate2[1],controlLocation2[0],controlLocation2[1]);
+        double[] d = GisCoordinateUtil.transformLocationToBL(3.489638, -11.538544);
+        System.out.println(d[0]+" "+d[1]);
+    }
+}

+ 179 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/kesar/AStar.java

@@ -0,0 +1,179 @@
+package com.fdkankan.indoor.base.convert.kesar;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.PriorityQueue;
+import java.util.Queue;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+/**
+ * 
+ * ClassName: AStar 
+ * @Description: A星算法
+ * @author kesar
+ */
+public class AStar
+{
+	//public final static int BAR = 1; // 障碍值
+	//public final static int PATH = 2; // 路径
+	//public final static int DIRECT_VALUE = 10; // 横竖移动代价
+	//public final static int OBLIQUE_VALUE = 14; // 斜移动代价
+	
+	Queue<Node> openList = new PriorityQueue<Node>(); // 优先队列(升序)
+	List<Node> closeList = new ArrayList<Node>();
+	
+	/**
+	 * 开始算法
+	 */
+	public List<Node> start(MapInfo mapInfo)
+	{
+		if(mapInfo==null) return null;
+		// clean
+		openList.clear();
+		closeList.clear();
+		// 开始搜索
+		openList.add(mapInfo.start);
+		return moveNodes(mapInfo);
+	}
+
+	/**
+	 * 移动当前结点
+	 */
+	private List<Node> moveNodes(MapInfo mapInfo)
+	{
+		while (!openList.isEmpty())
+		{
+			Node current = openList.poll();
+			closeList.add(current);
+			addNeighborNodeInOpen(mapInfo,current);
+			if (isCoordInClose(mapInfo.end.id))
+			{
+				List<Node> list = getPath(mapInfo.maps, mapInfo.start);
+				//break;
+				return list;
+			}
+		}
+		return null;
+	}
+	
+	/**
+	 * 在二维数组中绘制路径
+	 */
+	private List<Node> getPath(JSONArray maps, Node start)
+	{
+		if(start==null||maps==null) return null;
+		List<Node> list = new ArrayList<Node>();
+		while (start != null)
+		{
+			System.out.println("路线:" + start.id);
+			list.add(start);
+			Coord c = start.coord;
+			start = start.child;
+		}
+		return list;
+	}
+
+	/**
+	 * 添加所有邻结点到open表
+	 */
+	private void addNeighborNodeInOpen(MapInfo mapInfo,Node current)
+	{
+		int id = current.id;
+		JSONObject item = mapInfo.maps.getJSONObject(id);
+		String[] linkedIds = item.getString("linkedIds").split(",");
+		
+		for(int i=0;i<linkedIds.length;++i) {
+			int linkedId = Integer.valueOf(linkedIds[i]);
+			//是否在close表里
+			if (canAddNodeToOpen(mapInfo,linkedId)) {
+				Node end=mapInfo.end;
+				float G = current.G + current.weight; // 计算邻结点的G值
+				Node child = findNodeInOpen(linkedId);
+
+				if (child == null)
+				{
+					// System.out.println("加入,linkedId:"+linkedId);
+					float H=calcH(end.coord,current.coord); // 计算H值
+					if(isEndNode(end.id,linkedId))
+					{
+						child=end;
+						//child.parent=current;
+						child.G=G;
+						child.H=H;
+
+					}
+					else
+					{
+						JSONObject neighItem = mapInfo.maps.getJSONObject(linkedId);
+						child = new Node(linkedId,(float)neighItem.getDouble("weight"),new Coord((float)neighItem.getDouble("x"), (float)neighItem.getDouble("y"),(float)neighItem.getDouble("z")), null, G, H);
+					}
+					current.child = child;
+					openList.add(child);
+				}
+				else if (child.G > G)
+				{
+					child.G = G;
+					current.child = child;
+					//child.parent = current;
+					openList.add(child);
+				}
+			}
+		}
+	}
+
+	/**
+	 * 从Open列表中查找结点
+	 */
+	private Node findNodeInOpen(int id)
+	{
+		if (openList.isEmpty()) return null;
+		for (Node node : openList)
+		{
+			if (node.id == id)
+			{
+				return node;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * 计算H的估值:“曼哈顿”法,坐标分别取差值相加
+	 */
+	public float calcH(Coord end,Coord coord)
+	{
+		return (float)Math.sqrt(Math.pow(end.x - coord.x,2)+ Math.pow(end.y - coord.y,2)+ Math.pow(end.z - coord.z,2));
+	}
+	
+	/**
+	 * 判断结点是否是最终结点
+	 */
+	private boolean isEndNode(int endId,int id)
+	{
+		return  endId == id;
+	}
+
+	private boolean canAddNodeToOpen(MapInfo mapInfo,int id)
+	{
+		// 判断结点是否存在close表
+		if (isCoordInClose(id)) return false;
+
+		return true;
+	}
+
+
+	private boolean isCoordInClose(int id)
+	{
+		if (closeList.isEmpty()) return false;
+		for (Node node : closeList)
+		{
+			if (node.id == id)
+			{
+				return true;
+			}
+		}
+		return false;
+	}
+}

+ 22 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/kesar/Coord.java

@@ -0,0 +1,22 @@
+package com.fdkankan.indoor.base.convert.kesar;
+/**
+ * 
+ * ClassName: Coord
+ * 
+ * @Description: 坐标
+ * @author kesar
+ */
+public class Coord
+{
+
+	public float x;
+	public float y;
+	public float z;
+	
+	public Coord(float x, float y,float z)
+	{
+		this.x = x;
+		this.y = y;
+		this.z = z;
+	}
+}

+ 29 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/kesar/MapInfo.java

@@ -0,0 +1,29 @@
+package com.fdkankan.indoor.base.convert.kesar;
+
+import net.sf.json.JSONArray;
+
+/**
+ * 
+ * ClassName: MapInfo 
+ * @Description: 包含地图所需的所有输入数据
+ * @author kesar
+ */
+public class MapInfo
+{
+	//public int[][] maps; // 二维数组的地图
+	//public int width; // 地图的宽
+	//public int hight; // 地图的高
+	public JSONArray maps;
+	public Node start; // 起始结点
+	public Node end; // 最终结点
+	
+	//public MapInfo(int[][] maps, int width, int hight, Node start, Node end)
+	public MapInfo(JSONArray maps, Node start, Node end)
+	{
+		this.maps = maps;
+		//this.width = width;
+		//this.hight = hight;
+		this.start = start;
+		this.end = end;
+	}
+}

+ 37 - 0
laser/src/main/java/com/fdkankan/indoor/base/convert/kesar/Node.java

@@ -0,0 +1,37 @@
+package com.fdkankan.indoor.base.convert.kesar;
+/**
+ * 
+ * ClassName: Node 
+ * 
+ * @Description: 路径结点
+ * @author kesar
+ */
+public class Node implements Comparable<Node>
+{
+	public int id;
+	public float weight;
+	public Coord coord; // 坐标
+	public Node child; // 父结点
+	public float G; // G:是个准确的值,是起点到当前结点的代价
+	public float H; // H:是个估值,当前结点到目的结点的估计代价
+
+	public Node(int id ,float weight,Coord coord, Node child, float g, float h)
+	{
+		this.id = id;
+		this.weight = weight;
+		this.coord = coord;
+		this.child = child;
+		G = g;
+		H = h;
+	}
+
+	@Override
+	public int compareTo(Node o)
+	{
+		if (o == null) return -1;
+		if (G + H > o.G + o.H)
+			return 1;
+		else if (G + H < o.G + o.H) return -1;
+		return 0;
+	}
+}

+ 0 - 68
laser/src/main/java/com/fdkankan/indoor/base/model/ViewResult.java

@@ -1,68 +0,0 @@
-package com.fdkankan.indoor.base.model;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.http.HttpStatus;
-
-
-/**
- * @author zhujh
- */
-@ApiModel
-@Data
-public class ViewResult<T> {
-
-    @ApiModelProperty("返回码")
-    private Integer code;
-
-    @ApiModelProperty("返回说明")
-    private String msg;
-
-    @ApiModelProperty("返回数据")
-    private T data;
-
-    public Integer getCode() {
-        return code;
-    }
-
-    public ViewResult(Integer code) {
-        this.code = code;
-    }
-
-    public ViewResult(Integer code, String msg) {
-        this.code = code;
-        this.msg = msg;
-    }
-
-    public ViewResult(Integer code, String msg, T data) {
-        this.code = code;
-        this.msg = msg;
-        this.data = data;
-    }
-
-    public static ViewResult success() {
-        return new ViewResult(HttpStatus.OK.value(), "操作成功");
-    }
-
-    public static ViewResult success(Object data) {
-        return new ViewResult(HttpStatus.OK.value(), "成功", data);
-    }
-
-    public static ViewResult success(Integer code, String msg, Object data) {
-        return new ViewResult(code, msg, data);
-    }
-
-    public static ViewResult success(Integer code, String msg) {
-        return new ViewResult(code, msg);
-    }
-
-    public static ViewResult error(String msg) {
-        return new ViewResult(500, msg);
-    }
-
-    public static ViewResult error(Integer code, String msg) {
-        return new ViewResult(code, msg);
-    }
-
-}

+ 57 - 0
laser/src/main/java/com/fdkankan/indoor/base/util/FileUtils.java

@@ -0,0 +1,57 @@
+package com.fdkankan.indoor.base.util;
+
+import org.junit.Test;
+import org.springframework.core.io.ClassPathResource;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+/**
+ * Created by owen on 2021/7/28 0028 14:18
+ */
+public class FileUtils {
+
+    /**
+     * 读取资源文内容
+     * @param resourcePath : data/someData.json
+     * @return
+     */
+    public static String getResourceContent(String resourcePath){
+        InputStream resource = FileUtils.getResource(resourcePath);
+        StringBuilder sb = new StringBuilder();
+        String line;
+        String str = null ;
+        BufferedReader br = new BufferedReader(new InputStreamReader(resource));
+        while (true) {
+            try {
+                if ((line = br.readLine()) == null) break;
+                sb.append(line);
+                str = sb.toString();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return str;
+    }
+
+
+    // jar包运行,只能用文件流的形式获取文件
+    private static InputStream getResource(String path){
+        ClassPathResource classPathResource = new ClassPathResource(path);
+        InputStream inputStream = null;
+        try {
+            inputStream = classPathResource.getInputStream();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return inputStream;
+    }
+
+    @Test
+    public void readJar(){
+        String resourceContent = getResourceContent("data/poi_type.json");
+        System.out.println(resourceContent);
+    }
+}

+ 32 - 0
laser/src/main/java/com/fdkankan/indoor/base/util/RandomUtils.java

@@ -0,0 +1,32 @@
+package com.fdkankan.indoor.base.util;
+
+import cn.hutool.core.util.RandomUtil;
+
+/**
+ * Created by owen on 2020/4/26 0026 10:07
+ *
+ *
+ */
+public class RandomUtils {
+
+    public static String createCode(int length, String prefix){
+        String baseString = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+        String s = RandomUtil.randomString(baseString, length);
+        return prefix + s;
+    }
+
+//    public static void main(String[] args) {
+//        System.out.println(randowString(9));
+//    }
+
+    /**
+     * 分布式id
+     * preStr: 8位id前缀
+     * @return
+     */
+//    public static String getUuid(String prefix){
+//        String s = prefix.toUpperCase();
+//        return SnowFlakeUUidUtils.generaUUid(null, null, s);
+//
+//    }
+}

+ 29 - 0
laser/src/main/java/com/fdkankan/indoor/base/util/Result.java

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
@@ -103,4 +105,31 @@ public class Result<T> implements Serializable {
         return "JsonResult [code=" + code + ", msg=" + msg + ", data="
                 + data + ", timestamp="+ dataTime + "]";
     }
+
+    /**
+     * Created by owen on 2021/7/27 0027 15:48
+     */
+    @Document
+    public static class MongoSequence {
+        @Id
+        private String id;
+
+        private int seq;
+
+        public String getId() {
+            return id;
+        }
+
+        public void setId(String id) {
+            this.id = id;
+        }
+
+        public int getSeq() {
+            return seq;
+        }
+
+        public void setSeq(int seq) {
+            this.seq = seq;
+        }
+    }
 }

+ 221 - 0
laser/src/main/java/com/fdkankan/indoor/base/util/SnowFlakeUUidUtils.java

@@ -0,0 +1,221 @@
+package com.fdkankan.indoor.base.util;
+
+import lombok.extern.log4j.Log4j2;
+import org.apache.commons.lang.StringUtils;
+
+import java.lang.management.ManagementFactory;
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
+/**
+ * 2 * @Author: Abner
+ * 3 * @Date: 2020/12/9 16:07
+ * 4
+ */
+@Log4j2
+public class SnowFlakeUUidUtils {
+
+    // 时间起始标记点,作为基准,一般取系统的最近时间(一旦确定不能变动)
+    //起始标记点
+    private final static long twepoch = 1288834974657L;
+    // 机器标识位数
+    private final static long workerIdBits = 5L;
+    // 数据中心标识位数
+    private final static long datacenterIdBits = 5L;
+    // 机器ID最大值
+    private final static long maxWorkerId = -1L ^ (-1L << workerIdBits);
+    // 数据中心ID最大值
+    private final static long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
+    // 毫秒内自增位
+    private final static long sequenceBits = 12L;
+    // 机器ID偏左移12位
+    private final static long workerIdShift = sequenceBits;
+    // 数据中心ID左移17位
+    private final static long datacenterIdShift = sequenceBits + workerIdBits;
+    // 时间毫秒左移22位
+    private final static long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
+
+    private final static long sequenceMask = -1L ^ (-1L << sequenceBits);
+
+    private final static Lock myLock = new ReentrantLock();
+    /* 上次生产id时间戳 */
+    private static long lastTimestamp = -1L;
+    // 0,并发控制
+    private long sequence = 0L;
+
+    private final long workerId;
+    // 数据标识id部分
+    private final long datacenterId;
+
+    private static volatile SnowFlakeUUidUtils snowFlakeUUidUtils;
+
+
+    private static SnowFlakeUUidUtils getSingleInstance(Long workerId, Long datacenterId){
+        if(null == snowFlakeUUidUtils){
+            synchronized (SnowFlakeUUidUtils.class){
+                if(null == snowFlakeUUidUtils){
+                    if(null != workerId && null != datacenterId){
+                        snowFlakeUUidUtils = new SnowFlakeUUidUtils(workerId , datacenterId);
+                    }else{
+                        snowFlakeUUidUtils = new SnowFlakeUUidUtils();
+                    }
+                }
+            }
+        }
+        return snowFlakeUUidUtils;
+    }
+
+    /**
+     * @param workerId 自定义的应用所在的服务器的机器ID,使用默认读取本机则无需传,传个NULL即可
+     * @param datacenterId 自定义的应用所在的服务器的数据中心ID,使用默认读取本机则无需传,传个NULL即可
+     * @param preStr 自定义的ID前缀
+     * **/
+    private static String generaUUid(Long workerId, Long datacenterId , String preStr){
+        StringBuilder resultId = new StringBuilder();
+        SnowFlakeUUidUtils snowFlakeUUidUtils = getSingleInstance(workerId , datacenterId);
+        if(StringUtils.isNotBlank(preStr)){
+            return resultId.append(preStr).append(snowFlakeUUidUtils.nextId()).toString();
+        }else{
+            return resultId.append(snowFlakeUUidUtils.nextId()).toString();
+        }
+    }
+
+    public SnowFlakeUUidUtils(){
+        this.datacenterId = getDatacenterId(maxDatacenterId);
+        this.workerId = getMaxWorkerId(datacenterId, maxWorkerId);
+    }
+    /**
+     * @param workerId
+     *            工作机器ID
+     * @param datacenterId
+     *            序列号
+     */
+    public SnowFlakeUUidUtils(long workerId, long datacenterId) {
+        if (workerId > maxWorkerId || workerId < 0) {
+            throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
+        }
+        if (datacenterId > maxDatacenterId || datacenterId < 0) {
+            throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
+        }
+        this.workerId = workerId;
+        this.datacenterId = datacenterId;
+    }
+    /**
+     * 获取下一个ID
+     * 线程安全
+     * @return NULL 抢锁失败,需要重新调用
+     *         数字串 抢锁成功,则生成20位的数字串
+     */
+    public  Long nextId() {
+        try {
+
+            if(myLock.tryLock(700 , TimeUnit.MILLISECONDS)){
+                try {
+                    long timestamp = timeGen();
+                    if (timestamp < lastTimestamp) {
+                        throw new RuntimeException(String.format("Clock moved backwards.  Refusing to generate id for %d milliseconds", lastTimestamp - timestamp));
+                    }
+
+                    if (lastTimestamp == timestamp) {
+                        // 当前毫秒内,则+1
+                        sequence = (sequence + 1) & sequenceMask;
+                        if (sequence == 0) {
+                            // 当前毫秒内计数满了,则等待下一秒
+                            timestamp = tilNextMillis(lastTimestamp);
+                        }
+                    } else {
+                        sequence = 0L;
+                    }
+                    lastTimestamp = timestamp;
+                    // ID偏移组合生成最终的ID,并返回ID
+                    Long nextId = ((timestamp - twepoch) << timestampLeftShift)
+                            | (datacenterId << datacenterIdShift)
+                            | (workerId << workerIdShift) | sequence;
+
+                    return nextId;
+                }catch (Exception e){
+                    log.info("生成UUID抢锁失败:{}" , e);
+                }finally {
+                    myLock.unlock();
+                }
+            }else{
+                return null;
+            }
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+        return null;
+
+    }
+
+    private long tilNextMillis(final long lastTimestamp) {
+        long timestamp = this.timeGen();
+        while (timestamp <= lastTimestamp) {
+            timestamp = this.timeGen();
+        }
+        return timestamp;
+    }
+
+    private long timeGen() {
+        return System.currentTimeMillis();
+    }
+
+    /**
+     * <p>
+     * 获取 maxWorkerId
+     * </p>
+     */
+    protected static long getMaxWorkerId(long datacenterId, long maxWorkerId) {
+        StringBuffer mpid = new StringBuffer();
+        mpid.append(datacenterId);
+        String name = ManagementFactory.getRuntimeMXBean().getName();
+        if (!name.isEmpty()) {
+            /*
+             * GET jvmPid
+             */
+            mpid.append(name.split("@")[0]);
+        }
+        /*
+         * MAC + PID 的 hashcode 获取16个低位
+         */
+        return (mpid.toString().hashCode() & 0xffff) % (maxWorkerId + 1);
+    }
+
+    /**
+     * <p>
+     * 数据标识id部分
+     * </p>
+     */
+    protected static long getDatacenterId(long maxDatacenterId) {
+        long id = 0L;
+        try {
+            InetAddress ip = InetAddress.getLocalHost();
+            NetworkInterface network = NetworkInterface.getByInetAddress(ip);
+            if (network == null) {
+                id = 1L;
+            } else {
+                byte[] mac = network.getHardwareAddress();
+                id = ((0x000000FF & (long) mac[mac.length - 1])
+                        | (0x0000FF00 & (((long) mac[mac.length - 2]) << 8))) >> 6;
+                id = id % (maxDatacenterId + 1);
+            }
+        } catch (Exception e) {
+            System.out.println(" getDatacenterId: " + e.getMessage());
+        }
+        return id;
+    }
+
+    public static void main(String[] args) {
+        System.out.println(SnowFlakeUUidUtils.generaUUid(null, null, null));
+    }
+
+
+    public static String getUuid(String prefix){
+        String s = prefix.toUpperCase();
+        return generaUUid(null, null, s);
+
+    }
+}

+ 8 - 7
laser/src/main/java/com/fdkankan/indoor/core/controller/FilterController.java

@@ -2,10 +2,9 @@ package com.fdkankan.indoor.core.controller;
 
 import com.fdkankan.indoor.base.aop.WebControllerLog;
 import com.fdkankan.indoor.base.util.Result;
-import com.fdkankan.indoor.core.dto.JsonDataDetailDto;
-import com.fdkankan.indoor.core.dto.QueryJsonDataOne;
-import com.fdkankan.indoor.core.dto.QueryJsonDataTwo;
-import com.fdkankan.indoor.core.entity.jsonData.JsonData;
+import com.fdkankan.indoor.core.entity.dto.JsonDataDetailDto;
+import com.fdkankan.indoor.core.entity.dto.QueryJsonDataOne;
+import com.fdkankan.indoor.core.entity.dto.QueryJsonDataTwo;
 import com.fdkankan.indoor.core.service.FilterService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -15,8 +14,6 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
-
 /**
  * Created by owen on 2021/7/15 0015 15:58
  *
@@ -42,7 +39,8 @@ public class FilterController {
     @GetMapping("indoor/{sceneCode}/api/images/{id}")
     public Object getDataById(@PathVariable String sceneCode, @PathVariable Integer id) {
         log.info("sceneCode: {}", sceneCode);
-        Result result = filterService.findById(sceneCode, id);
+//        Result result = filterService.findById(sceneCode, id);
+        Result result = filterService.findById_5(sceneCode, id);
         return result.getData();
     }
 
@@ -73,4 +71,7 @@ public class FilterController {
         log.info("sceneCode: {}", sceneCode);
         return filterService.findById1(sceneCode, id);
     }
+
+
+
 }

+ 43 - 0
laser/src/main/java/com/fdkankan/indoor/core/controller/InitController.java

@@ -0,0 +1,43 @@
+package com.fdkankan.indoor.core.controller;
+
+import com.fdkankan.indoor.base.aop.WebControllerLog;
+import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.service.InitService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Created by owen on 2021/7/28 0028 9:04
+ *
+ */
+@Slf4j
+@Api(tags = "四维看看数据转激光相机数据")
+@RestController
+@RequestMapping("indoor/api")
+public class InitController {
+
+    @Autowired
+    InitService initService;
+
+
+
+    /**
+     * 2021-7-
+     * 将4dkk vision.txt 转 激光相机可用数据并出入数据库
+     * 4dkk 调用
+     * @param sceneCode
+     * @param path
+     * @return
+     */
+    @WebControllerLog(description = "filter数据接口-创建初始数据")
+    @ApiOperation(value = "创建初始数据")
+    @GetMapping("init")
+    public Result initData(String sceneCode, String path) {
+        return initService.initData(sceneCode, path);
+    }
+}

+ 0 - 92
laser/src/main/java/com/fdkankan/indoor/core/controller/JsonDataController.java

@@ -1,92 +0,0 @@
-//package com.fdkankan.indoor.core.controller;
-//
-//import cn.hutool.core.bean.BeanUtil;
-//import com.fdkankan.indoor.core.dto.JsonDataDetailDto;
-//import com.fdkankan.indoor.core.dto.QueryJsonDataBase;
-//import com.fdkankan.indoor.core.dto.QueryJsonDataOne;
-//import com.fdkankan.indoor.core.dto.QueryJsonDataTwo;
-//import com.fdkankan.indoor.core.entity.jsonData.JsonData;
-//import com.fdkankan.indoor.core.service.JsonData2Service;
-//import com.fdkankan.indoor.core.service.JsonDataService;
-//import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-//import io.swagger.annotations.Api;
-//import io.swagger.annotations.ApiOperation;
-//import lombok.AllArgsConstructor;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.validation.ValidationUtils;
-//import org.springframework.web.bind.annotation.GetMapping;
-//import org.springframework.web.bind.annotation.PathVariable;
-//import org.springframework.web.bind.annotation.RestController;
-//
-//import java.util.ArrayList;
-//import java.util.List;
-//
-///**
-// * @author Admin
-// */
-//@Slf4j
-//@Api(tags = "jsonData数据接口")
-//@RestController
-//@AllArgsConstructor
-//public class JsonDataController {
-//
-//
-//
-//    @Autowired
-//    JsonData2Service jsonData2Service;
-//
-//
-//
-//
-//    /**
-//     * 测试api
-//     * http://127.0.0.1:9294/indoor/test1/api/images/filter?dataset=56&hidden=false&limit=100&sort_by=FILE_ID&sort_order=ASC
-//     * @param queryJsonDataOne 坐标参数
-//     * @param queryJsonDataTwo 距离参数
-//     * @param jsonDataDetailDto 距离参数
-//     * @return
-//     */
-//    @ApiOperation(value = "(正)json数据")
-//    @ApiOperationSupport(order = 1)
-//    @GetMapping("indoor/{code}/api/images/filter")
-//    public List<JsonData> filter(@PathVariable String code,
-//                                 QueryJsonDataOne queryJsonDataOne, QueryJsonDataTwo queryJsonDataTwo, JsonDataDetailDto jsonDataDetailDto) {
-//        log.info("one: {}", BeanUtil.isEmpty(queryJsonDataOne));
-//        log.info("two: {}", BeanUtil.isEmpty(queryJsonDataTwo));
-//        if (queryJsonDataOne.getLat() != null || queryJsonDataTwo.getLat_max() != null){
-//            QueryJsonDataBase data = switchQueryData(queryJsonDataOne, queryJsonDataTwo);
-//            return  jsonData2Service.filterJsonData(code, data);
-//        }
-//
-//        if (jsonDataDetailDto != null){
-//            return jsonData2Service.filterJsonDataDetail(code, jsonDataDetailDto);
-//        }
-//
-//        return null;
-//    }
-//
-//
-//    @ApiOperation(value = "(正)根据id获取数据")
-//    @ApiOperationSupport(order = 1)
-//    @GetMapping("indoor/{code}/api/images/{id}")
-//    public JsonData getDataById(@PathVariable String code, @PathVariable String id) {
-//        log.info("code: {}", code);
-//        return jsonData2Service.findById(id, code);
-//    }
-//
-//
-//    private QueryJsonDataBase switchQueryData(QueryJsonDataOne queryJsonDataOne, QueryJsonDataTwo queryJsonDataTwo) {
-//        QueryJsonDataBase data = new QueryJsonDataBase();
-//        if (queryJsonDataOne.getLat() != null && queryJsonDataOne.getLon() != null) {
-//            data = queryJsonDataOne;
-//        } else if (queryJsonDataTwo.getLat_min() != null && queryJsonDataTwo.getLat_max() != null
-//                && queryJsonDataTwo.getLon_min() != null && queryJsonDataTwo.getLon_max() != null) {
-//            data = queryJsonDataTwo;
-//        }
-//        log.info("base data: {}", data.toString());
-//        return data;
-//    }
-//
-//
-//}

+ 7 - 14
laser/src/main/java/com/fdkankan/indoor/core/controller/LoginController.java

@@ -1,7 +1,7 @@
 package com.fdkankan.indoor.core.controller;
 
 import com.fdkankan.indoor.base.util.Result;
-import com.fdkankan.indoor.core.dto.LoginDto;
+import com.fdkankan.indoor.core.entity.dto.LoginDto;
 import com.fdkankan.indoor.core.service.LoginService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -71,19 +71,12 @@ public class LoginController {
     }
 
 
-    @ApiOperation(value = "poi_type_groups", notes = "数据目前是写死的")
-    @GetMapping("indoor/{sceneCode}/api/poi_type_groups")
-    public Object poiTypeGroups(@PathVariable String sceneCode){
-        Result result = loginService.poiTypeGroups(sceneCode);
-        return result.getData();
-    }
-
-    @ApiOperation(value = "poi_types", notes = "数据目前是写死的")
-    @GetMapping("indoor/{sceneCode}/api/poi_types")
-    public Object poiTypes(@PathVariable String sceneCode){
-        Result result = loginService.poiTypes(sceneCode);
-        return result.getData();
-    }
+//    @ApiOperation(value = "poi_type_groups", notes = "数据目前是写死的")
+//    @GetMapping("indoor/{sceneCode}/api/poi_type_groups")
+//    public Object poiTypeGroups(@PathVariable String sceneCode){
+//        Result result = loginService.poiTypeGroups(sceneCode);
+//        return result.getData();
+//    }
 
 
 }

+ 45 - 5
laser/src/main/java/com/fdkankan/indoor/core/controller/PoiController.java

@@ -1,16 +1,18 @@
 package com.fdkankan.indoor.core.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.indoor.base.aop.WebControllerLog;
 import com.fdkankan.indoor.base.util.Result;
-import com.fdkankan.indoor.core.dto.PoiSearchDto;
+import com.fdkankan.indoor.core.entity.dto.PoiHotDto;
+import com.fdkankan.indoor.core.entity.dto.PoiSearchDto;
 import com.fdkankan.indoor.core.service.PoiService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * Created by owen on 2021/7/14 0014 14:17
@@ -24,13 +26,18 @@ public class PoiController {
     @Autowired
     PoiService poiService;
 
+    /**
+     * http://127.0.0.1:9294/indoor/test3/api/pois/1
+     * @param code
+     * @param id data.id
+     * @return
+     */
     @WebControllerLog(description = "poi数据接口-根据id查询")
     @ApiOperation(value = "根据id查询", notes = "code:场景码, id:poi.jsons数据里的id")
     @GetMapping("indoor/{code}/api/pois/{id}")
     public Object findById(@PathVariable String code, @PathVariable Integer id){
         Result result = poiService.findBySceneCodeAndId(code, id);
         return result.getData();
-//        return poiService.findBySceneCodeAndId(code, id);
 
     }
 
@@ -50,4 +57,37 @@ public class PoiController {
         return search.getData();
 
     }
+
+
+    @WebControllerLog(description = "poi数据接口-添加热点")
+    @ApiOperation(value = "添加热点", notes = "code:场景码")
+    @PostMapping("indoor/{sceneCode}/api/pois")
+    public Object saveHot(@PathVariable String sceneCode, @RequestBody List<PoiHotDto> param){
+        Result result = poiService.saveHot(sceneCode, param);
+        return result.getData();
+    }
+
+    /**
+     * 2021-07-27
+     * @param sceneCode
+     * @return
+     */
+    @WebControllerLog(description = "poi数据接口-过滤接口")
+    @ApiOperation(value = "过滤接口", notes = "code:场景码")
+    @PostMapping("indoor/{sceneCode}/api/pois/filter")
+    public Object filter(@PathVariable String sceneCode){
+        Result result = poiService.filter(sceneCode);
+        return result.getData();
+    }
+
+
+    @WebControllerLog(description = "poi数据接口-统计")
+    @ApiOperation(value = "统计接口", notes = "目前是写死的")
+    @GetMapping("indoor/{sceneCode}/api/pois/count")
+    public Object count(@PathVariable String sceneCode){
+        JSONObject json = new JSONObject();
+        json.put("count", 0);
+
+        return json;
+    }
 }

+ 52 - 0
laser/src/main/java/com/fdkankan/indoor/core/controller/PoiTypeController.java

@@ -0,0 +1,52 @@
+package com.fdkankan.indoor.core.controller;
+
+import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.entity.dto.PoiTypeDto;
+import com.fdkankan.indoor.core.service.PoiTypeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/26 0026 10:11
+ */
+@Api(tags = "PoiType数据接口")
+@RestController
+public class PoiTypeController {
+
+    @Autowired
+    PoiTypeService poiTypeService;
+
+    @ApiOperation(value = "修改保存")
+    @PostMapping("indoor/{sceneCode}/api/poi_types")
+    public Object edit(@PathVariable String sceneCode, @RequestBody List<PoiTypeDto> param){
+        Result result = poiTypeService.edit(sceneCode, param);
+        return result.getData();
+    }
+
+    @ApiOperation(value = "poi_types")
+    @GetMapping("indoor/{sceneCode}/api/poi_types")
+    public Object poiTypes(@PathVariable String sceneCode){
+        Result result = poiTypeService.poiTypes(sceneCode);
+        return result.getData();
+    }
+
+    @ApiOperation(value = "删除接口")
+    @DeleteMapping("indoor/{sceneCode}/api/poi_types/{id}")
+    public Object remove(@PathVariable String sceneCode, @PathVariable Integer id){
+        Result result = poiTypeService.remove(sceneCode, id);
+        return result.getData();
+    }
+
+
+    @ApiOperation(value = "上传图标")
+    @PostMapping("indoor/{sceneCode}/poi/icon")
+    public Object upload(@PathVariable String sceneCode, MultipartFile image){
+        Result result = poiTypeService.upload(sceneCode, image);
+        return result.getData();
+    }
+}

+ 44 - 0
laser/src/main/java/com/fdkankan/indoor/core/controller/PoiTypeGroupController.java

@@ -0,0 +1,44 @@
+package com.fdkankan.indoor.core.controller;
+
+import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.entity.dto.PoiTypeDto;
+import com.fdkankan.indoor.core.entity.dto.PoiTypeGroupDto;
+import com.fdkankan.indoor.core.service.PoiTypeGroupService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/26 0026 10:11
+ */
+@Api(tags = "PoiTypeGroup数据接口")
+@RestController
+public class PoiTypeGroupController {
+
+    @Autowired
+    PoiTypeGroupService entityService;
+
+    @ApiOperation(value = "修改保存")
+    @PostMapping("indoor/{sceneCode}/api/poi_type_groups")
+    public Object edit(@PathVariable String sceneCode, @RequestBody List<PoiTypeGroupDto> param){
+        Result result = entityService.edit(sceneCode, param);
+        return result.getData();
+    }
+
+    @ApiOperation(value = "getAll")
+    @GetMapping("indoor/{sceneCode}/api/poi_type_groups")
+    public Object poiTypes(@PathVariable String sceneCode){
+        Result result = entityService.poiTypes(sceneCode);
+        return result.getData();
+    }
+
+    @ApiOperation(value = "删除热点组")
+    @DeleteMapping("indoor/{sceneCode}/api/poi_type_groups/{id}")
+    public Object remove(@PathVariable String sceneCode, @PathVariable Integer id){
+        Result result = entityService.remove(sceneCode, id);
+        return result.getData();
+    }
+}

+ 41 - 0
laser/src/main/java/com/fdkankan/indoor/core/controller/RouteController.java

@@ -0,0 +1,41 @@
+package com.fdkankan.indoor.core.controller;
+
+import com.fdkankan.indoor.base.aop.WebControllerLog;
+import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.entity.dto.RouteInputDto;
+import com.fdkankan.indoor.core.service.RouteService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Created by owen on 2021/7/29 0029 12:03
+ */
+@Slf4j
+@Api(tags = "最优路径接口")
+@RestController
+public class RouteController {
+
+    @Autowired
+    RouteService entityService;
+
+    /**
+     * http://127.0.0.1:9294/indoor/test3/api/route?destination_latitude=29.877832321748773&destination_longitude=121.61113968215992&destination_z=-0.36150911602493974&source_latitude=29.87753305947931&source_longitude=121.6110424052154&source_z=-0.2624532010303853
+     * http://192.168.0.135:9294/indoor/test3/api/route?destination_latitude=-3.3754012098200965&destination_longitude=-2.143694831230416&destination_z=-1.1803865408990568&source_latitude=-7.905951689748807&source_longitude=5.358192084229412&source_z=-1.3145928255248511
+     * @param sceneCode
+     * @param param
+     * @return
+     */
+    @WebControllerLog(description = "最优路径-获取最优路径")
+    @ApiOperation(value = "获取最优路径")
+    @GetMapping("indoor/{sceneCode}/api/route")
+    public Object getRoute(@PathVariable String sceneCode, RouteInputDto param){
+        Result search = entityService.getRoute(sceneCode, param);
+        return search.getData();
+    }
+
+}

+ 45 - 0
laser/src/main/java/com/fdkankan/indoor/core/controller/SceneController.java

@@ -0,0 +1,45 @@
+package com.fdkankan.indoor.core.controller;
+
+import com.fdkankan.indoor.base.aop.WebControllerLog;
+import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.service.SceneService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Created by owen on 2021/7/26 0026 9:00
+ */
+
+@Slf4j
+@Api(tags = "场景接口")
+@RestController
+@RequestMapping("indoor/scene")
+public class SceneController {
+
+    @Autowired
+    SceneService sceneService;
+
+    @WebControllerLog(description = "场景接口-创建场景码")
+    @ApiOperation(value = "创建场景码")
+    @GetMapping("getSceneCode")
+    public Object createSceneCode(){
+        Result search = sceneService.createSceneCode();
+        return search.getData();
+    }
+
+    @WebControllerLog(description = "场景接口-创建30万个场景码")
+    @ApiOperation(value = "创建30万个场景码")
+    @GetMapping("batchSceneCod")
+    public Object batchSceneCod(){
+        Result search = sceneService.batchSceneCod();
+        return search.getData();
+    }
+
+
+
+}

+ 59 - 35
laser/src/main/java/com/fdkankan/indoor/core/controller/TSiteModelController.java

@@ -3,10 +3,8 @@ package com.fdkankan.indoor.core.controller;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.indoor.base.aop.WebControllerLog;
 import com.fdkankan.indoor.base.util.Result;
-import com.fdkankan.indoor.core.dto.SiteModelSearchDto;
-import com.fdkankan.indoor.core.entity.siteModel.SiteModel;
-import com.fdkankan.indoor.core.service.SiteModel2Service;
-import com.fdkankan.indoor.core.service.TSiteModel2Service;
+import com.fdkankan.indoor.core.entity.dto.SiteModelSearchDto;
+import com.fdkankan.indoor.core.service.SiteService;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -24,14 +22,14 @@ import org.springframework.web.bind.annotation.*;
  * site_model.json的原始数据是数组, 目前存数据库是对象
  */
 @Slf4j
-@Api(tags = "TSiteModel数据接口")
+@Api(tags = "Site数据接口")
 @RestController
 @AllArgsConstructor
-public class TSiteModelController {
+public class SiteController {
 
 
     @Autowired
-    TSiteModel2Service tSiteModel2Service;
+    SiteService entityService;
 
 
     /**
@@ -41,36 +39,71 @@ public class TSiteModelController {
      * https://testlaser.4dkankan.com/indoor
      *
      * https://testlaser.4dkankan.com/indoor/test2/api/site_model/within?location=113.595542719717&location=22.366858049261&location=-0.299806&type=FLOOR
-     * @param code
      * @param location
      * @param type
      * @return
      */
-    @ApiOperation(value = "(正)siteModel数据")
-    @GetMapping("indoor/{code}/api/site_model/within")
-    public Object within(@PathVariable String code, Double[] location, String type) {
-        log.info("code: {}", code);
-        Result result = tSiteModel2Service.withinType(code, location, type);
+    @ApiOperation(value = "siteModel数据")
+    @GetMapping("indoor/{sceneCode}/api/site_model/within")
+    public Object within(@PathVariable String sceneCode, Double[] location, String type) {
+        Result result = entityService.withinType(sceneCode, location, type);
         return result.getData();
     }
 
 
-
-    @ApiOperation(value = "(正)根据id获取数据")
+    /**
+     * http://127.0.0.1:9294/indoor/test2/api/site_model/10
+     */
+    @ApiOperation(value = "根据id获取数据")
     @ApiOperationSupport(order = 1)
-    @GetMapping("indoor/{code}/api/site_model/{id}")
-    public SiteModel getDataById(@PathVariable String code, @PathVariable Long id) {
-        log.info("code: {}", code);
-        return tSiteModel2Service.findById(id, code);
+    @GetMapping("indoor/{sceneCode}/api/site_model/{id}")
+    public Object getDataById(@PathVariable String sceneCode, @PathVariable Long id) {
+        Result result = entityService.findBySceneCodeAndId(sceneCode, id);
+        return result.getData();
     }
 
 
+    /**
+     * test2
+     * {
+     * 	"polygon": {
+     * 		"coordinates": [
+     * 			[
+     * 				[
+     * 					121.61047162518044,
+     * 					29.87658107486706
+     * 				],
+     * 				[
+     * 					121.61130284124107,
+     * 					29.876581077463503
+     * 				],
+     * 				[
+     * 					121.61130284126927,
+     * 					29.877426361048224
+     * 				],
+     * 				[
+     * 					121.61047161819917,
+     * 					29.8774263584517
+     * 				],
+     * 				[
+     * 					121.61047162518044,
+     * 					29.87658107486706
+     * 				]
+     * 			]
+     * 		],
+     * 		"type": "Polygon"
+     *        },
+     * 	"type": "BUILDING"
+     * }
+     * @param param
+     * @return
+     */
     @WebControllerLog(description = "SiteModel数据接口-获取building数据")
     @ApiOperation(value = "获取building数据",notes = "参数直接传个json对象")
-    @PostMapping("indoor/{code}/api/site_model/within_polygon")
-    public Result getData(@RequestBody JSONObject param, @PathVariable String code) {
-        return tSiteModel2Service.getData(param, code);
-//        return Result.success(param);
+    @PostMapping("indoor/{sceneCode}/api/site_model/within_polygon")
+    public Object getData(@RequestBody JSONObject param, @PathVariable String sceneCode) {
+        Result result = entityService.getData(param, sceneCode);
+        return result.getData();
     }
 
 
@@ -86,9 +119,8 @@ public class TSiteModelController {
     @ApiOperation(value = "查询",notes = "参数直接传个json对象")
     @GetMapping("indoor/{sceneCode}/api/search/site_model")
     public Object search(@PathVariable String sceneCode, SiteModelSearchDto searchDto) {
-        Result search = tSiteModel2Service.search(sceneCode, searchDto);
+        Result search = entityService.search(sceneCode, searchDto);
         return search.getData();
-//        return siteModel2Service.search(sceneCode, searchDto);
     }
 
 
@@ -109,19 +141,11 @@ public class TSiteModelController {
     @ApiOperation(value = "查询",notes = "参数直接传个json对象")
     @GetMapping("indoor/{sceneCode}/api/site_model/closest")
     public Object latest(@PathVariable String sceneCode, Double[] location, Double radius) {
-        Result search = tSiteModel2Service.latest(sceneCode, location, radius);
+        Result search = entityService.latest(sceneCode, location, radius);
         return search.getData();
-//        return siteModel2Service.search(sceneCode, searchDto);
     }
 
 
-    @WebControllerLog(description = "测试获取对象")
-    @ApiOperation(value = "测试获取对象",notes = "参数直接传个json对象")
-    @GetMapping("indoor/{sceneCode}/api/site_model/testData")
-    public Object latest(@PathVariable String sceneCode) {
-        Result search = tSiteModel2Service.testData(sceneCode);
-        return search.getData();
-//        return siteModel2Service.search(sceneCode, searchDto);
-    }
+
 
 }

+ 63 - 17
laser/src/main/java/com/fdkankan/indoor/core/controller/SiteModelController.java

@@ -5,8 +5,7 @@
 //import com.fdkankan.indoor.base.util.Result;
 //import com.fdkankan.indoor.core.dto.SiteModelSearchDto;
 //import com.fdkankan.indoor.core.entity.siteModel.SiteModel;
-//import com.fdkankan.indoor.core.service.SiteModel2Service;
-//import com.fdkankan.indoor.core.service.TsiteModelService;
+//import com.fdkankan.indoor.core.service.SiteModelService;
 //import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 //import io.swagger.annotations.Api;
 //import io.swagger.annotations.ApiOperation;
@@ -19,6 +18,9 @@
 // * @author Admin
 // *
 // * http://127.0.0.1:9294/indoor/
+// *
+// * 2021-07-20
+// * site_model.json的原始数据是数组, 目前存数据库是对象
 // */
 //@Slf4j
 //@Api(tags = "SiteModel数据接口")
@@ -28,10 +30,7 @@
 //
 //
 //    @Autowired
-//    SiteModel2Service siteModel2Service;
-//
-////    @Autowired
-////    TsiteModelService tsiteModelService;
+//    SiteModelService tSiteModel2Service;
 //
 //
 //    /**
@@ -46,31 +45,72 @@
 //     * @param type
 //     * @return
 //     */
-//    @ApiOperation(value = "(正)siteModel数据")
+//    @ApiOperation(value = "siteModel数据")
 //    @GetMapping("indoor/{code}/api/site_model/within")
 //    public Object within(@PathVariable String code, Double[] location, String type) {
 //        log.info("code: {}", code);
-//        Result result = siteModel2Service.withinType(code, location, type);
+//        Result result = tSiteModel2Service.withinType(code, location, type);
+////        Result result = tSiteModel2Service.withinType_5(code, location, type);
 //        return result.getData();
 //    }
 //
 //
-//
-//    @ApiOperation(value = "(正)根据id获取数据")
+//    /**
+//     * http://127.0.0.1:9294/indoor/test2/api/site_model/10
+//     * @param code
+//     * @param id
+//     * @return
+//     */
+//    @ApiOperation(value = "根据id获取数据")
 //    @ApiOperationSupport(order = 1)
 //    @GetMapping("indoor/{code}/api/site_model/{id}")
 //    public SiteModel getDataById(@PathVariable String code, @PathVariable Long id) {
 //        log.info("code: {}", code);
-//        return siteModel2Service.findById(id, code);
+//        return tSiteModel2Service.findById(id, code);
 //    }
 //
 //
+//    /**
+//     * test2
+//     * {
+//     * 	"polygon": {
+//     * 		"coordinates": [
+//     * 			[
+//     * 				[
+//     * 					121.61047162518044,
+//     * 					29.87658107486706
+//     * 				],
+//     * 				[
+//     * 					121.61130284124107,
+//     * 					29.876581077463503
+//     * 				],
+//     * 				[
+//     * 					121.61130284126927,
+//     * 					29.877426361048224
+//     * 				],
+//     * 				[
+//     * 					121.61047161819917,
+//     * 					29.8774263584517
+//     * 				],
+//     * 				[
+//     * 					121.61047162518044,
+//     * 					29.87658107486706
+//     * 				]
+//     * 			]
+//     * 		],
+//     * 		"type": "Polygon"
+//     *        },
+//     * 	"type": "BUILDING"
+//     * }
+//     * @param param
+//     * @param code
+//     * @return
+//     */
 //    @WebControllerLog(description = "SiteModel数据接口-获取building数据")
 //    @ApiOperation(value = "获取building数据",notes = "参数直接传个json对象")
 //    @PostMapping("indoor/{code}/api/site_model/within_polygon")
 //    public Result getData(@RequestBody JSONObject param, @PathVariable String code) {
-//        return siteModel2Service.getData(param, code);
-////        return Result.success(param);
+//        return tSiteModel2Service.getData(param, code);
 //    }
 //
 //
@@ -86,9 +126,8 @@
 //    @ApiOperation(value = "查询",notes = "参数直接传个json对象")
 //    @GetMapping("indoor/{sceneCode}/api/search/site_model")
 //    public Object search(@PathVariable String sceneCode, SiteModelSearchDto searchDto) {
-//        Result search = siteModel2Service.search(sceneCode, searchDto);
+//        Result search = tSiteModel2Service.search(sceneCode, searchDto);
 //        return search.getData();
-////        return siteModel2Service.search(sceneCode, searchDto);
 //    }
 //
 //
@@ -109,10 +148,17 @@
 //    @ApiOperation(value = "查询",notes = "参数直接传个json对象")
 //    @GetMapping("indoor/{sceneCode}/api/site_model/closest")
 //    public Object latest(@PathVariable String sceneCode, Double[] location, Double radius) {
-//        Result search = siteModel2Service.latest(sceneCode, location, radius);
+//        Result search = tSiteModel2Service.latest(sceneCode, location, radius);
 //        return search.getData();
-////        return siteModel2Service.search(sceneCode, searchDto);
 //    }
 //
 //
+//    @WebControllerLog(description = "测试获取对象")
+//    @ApiOperation(value = "测试获取对象",notes = "参数直接传个json对象")
+//    @GetMapping("indoor/{sceneCode}/api/site_model/testData")
+//    public Object latest(@PathVariable String sceneCode) {
+//        Result search = tSiteModel2Service.testData(sceneCode);
+//        return search.getData();
+//    }
+//
 //}

+ 31 - 0
laser/src/main/java/com/fdkankan/indoor/core/controller/TestController.java

@@ -0,0 +1,31 @@
+package com.fdkankan.indoor.core.controller;
+
+import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.service.TestService;
+import com.fdkankan.indoor.core.entity.vo.HaoVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/26 0026 15:13
+ */
+@Api(tags = "测试")
+@RestController
+@RequestMapping("test")
+public class TestController {
+
+    @Autowired
+    TestService testService;
+
+    @ApiOperation("修改数据")
+    @PostMapping("edit/{sceneCode}")
+    public Result edit(@PathVariable String sceneCode, @RequestBody List<HaoVo> param){
+        return testService.edit(sceneCode, param);
+
+
+    }
+}

+ 14 - 21
laser/src/main/java/com/fdkankan/indoor/core/entity/BaseEntity.java

@@ -11,28 +11,21 @@ import java.time.LocalDateTime;
 //@MappedSuperclass
 public abstract class BaseEntity {
 
-//    @Id
-//    @GeneratedValue(strategy = GenerationType.IDENTITY)
-//    @Column(name = "id")
     @ApiModelProperty(value = "对象ID")
-    private Integer id;
+    private String id;
 
-//    @ApiModelProperty(value = "创建时间")
-//    @Temporal(TemporalType.TIMESTAMP)
-//    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
-//    private LocalDateTime createTime;
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
 
-//    @ApiModelProperty(value = "修改时间")
-//    @Temporal(TemporalType.TIMESTAMP)
-//    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
-//    private LocalDateTime updateTime;
-//
-//    /**
-//     * 用来批量操作的
-//     * 0代表未删除 , 1代表已经删除,默认写0
-//     * 需要使用对象类型
-//     */
-//    @JsonIgnore
-//    @JSONField(serialize = false)
-//    private Integer isDelete;
+    @ApiModelProperty(value = "修改时间")
+    private LocalDateTime updateTime;
+
+    /**
+     * 用来批量操作的
+     * 0代表未删除 , 1代表已经删除,默认写0
+     * 需要使用对象类型
+     */
+    @JsonIgnore
+    @JSONField(serialize = false)
+    private Integer isDelete;
 }

+ 24 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/ConfigEntity.java

@@ -0,0 +1,24 @@
+package com.fdkankan.indoor.core.entity;
+
+import com.fdkankan.indoor.core.entity.dto.ConfigDto;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+
+/**
+ * Created by owen on 2021/7/28 0027 10:42
+ *
+ */
+@Document(collection = "t_configs")
+@Data
+public class ConfigEntity extends BaseEntity {
+
+
+    private String sceneCode;
+
+    private List<ConfigDto> data;
+
+
+}

+ 21 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/DataSetEntity.java

@@ -0,0 +1,21 @@
+package com.fdkankan.indoor.core.entity;
+
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+
+/**
+ * Created by owen on 2021/7/28 0027 10:42
+ *
+ */
+@Document(collection = "t_data_set")
+@Data
+public class DataSetEntity extends BaseEntity {
+
+
+    private String sceneCode;
+
+    private Object data;
+
+
+}

+ 23 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/FilterEntity.java

@@ -0,0 +1,23 @@
+package com.fdkankan.indoor.core.entity;
+
+import com.fdkankan.indoor.core.entity.dto.FilterHotDto;
+import com.fdkankan.indoor.core.entity.dto.PoiHotDto;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/27 0027 10:42
+ * poi 热点
+ */
+@Document(collection = "t_filter")
+@Data
+public class FilterEntity extends BaseEntity {
+
+    private String sceneCode;
+
+    private List<FilterHotDto> data;
+
+
+}

+ 23 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/PoiEntity.java

@@ -0,0 +1,23 @@
+package com.fdkankan.indoor.core.entity;
+
+import com.fdkankan.indoor.core.entity.dto.PoiHotDto;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/27 0027 10:42
+ * poi 热点
+ */
+@Document(collection = "t_poi")
+@Data
+public class PoiEntity extends BaseEntity {
+
+
+    private String sceneCode;
+
+    private List<PoiHotDto> data;
+
+
+}

+ 19 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/PoiTypeEntity.java

@@ -0,0 +1,19 @@
+package com.fdkankan.indoor.core.entity;
+
+import com.fdkankan.indoor.core.entity.dto.PoiTypeDto;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/26 0026 10:24
+ */
+@Document(collection = "t_poi_types")
+@Data
+public class PoiTypeEntity extends BaseEntity {
+
+    private String sceneCode;
+
+    private List<PoiTypeDto> data;
+}

+ 19 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/PoiTypeGroupEntity.java

@@ -0,0 +1,19 @@
+package com.fdkankan.indoor.core.entity;
+
+import com.fdkankan.indoor.core.entity.dto.PoiTypeGroupDto;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/26 0026 10:24
+ */
+@Document(collection = "t_poi_type_groups")
+@Data
+public class PoiTypeGroupEntity extends BaseEntity{
+
+    private String sceneCode;
+
+    private List<PoiTypeGroupDto> data;
+}

+ 24 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/RouteEntity.java

@@ -0,0 +1,24 @@
+package com.fdkankan.indoor.core.entity;
+
+import com.fdkankan.indoor.core.entity.dto.ConfigDto;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+
+/**
+ * Created by owen on 2021/7/28 0027 10:42
+ *
+ */
+@Document(collection = "t_route")
+@Data
+public class RouteEntity extends BaseEntity {
+
+
+    private String sceneCode;
+
+    private List<String> data;
+
+
+}

+ 22 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/SiteEntity.java

@@ -0,0 +1,22 @@
+package com.fdkankan.indoor.core.entity;
+
+import com.fdkankan.indoor.core.entity.dto.SiteDto;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/27 0027 10:42
+ * 这个要改回siteModel
+ */
+@Document(collection = "t_site_model")
+@Data
+public class SiteEntity extends BaseEntity {
+
+    private String sceneCode;
+
+    private List<SiteDto> data;
+
+
+}

+ 24 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/SiteModelEntity.java

@@ -0,0 +1,24 @@
+package com.fdkankan.indoor.core.entity;
+
+import com.fdkankan.indoor.core.entity.dto.PoiHotDto;
+import com.fdkankan.indoor.core.entity.dto.SiteDto;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/27 0027 10:42
+ * poi 热点
+ */
+@Document(collection = "t_site_model")
+@Data
+public class SiteModelEntity extends BaseEntity {
+
+    private String sceneCode;
+
+//    private List<PoiHotDto> data;
+    private List<SiteDto> data;
+
+
+}

+ 28 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/SpecialPointEntity.java

@@ -0,0 +1,28 @@
+package com.fdkankan.indoor.core.entity;
+
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+/**
+ * Created by owen on 2021/7/27 0027 18:16
+ * 特殊点坐标
+ */
+@Document(collection = "t_special_point")
+@Data
+public class SpecialPointEntity extends BaseEntity {
+
+    // 纬度
+//    private Double lat;
+//
+//    // 经度
+//    private Double lon;
+
+    // 特殊点
+    private Double[] poi;
+
+    // 场景码
+    private String sceneCode;
+
+    // key
+    private String poiKey;
+}

+ 26 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/dto/ConfigDto.java

@@ -0,0 +1,26 @@
+package com.fdkankan.indoor.core.entity.dto;
+
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/7/29 0029 9:10
+ */
+@Data
+public class ConfigDto {
+
+    private Integer id;
+
+    private String name;
+
+    private String value;
+
+    private Integer length;
+
+    private String category;
+
+    private Object possible_values;
+
+    private Boolean edit_in_form;
+
+    private SecurityDto security;
+}

+ 38 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/dto/FilterHotDto.java

@@ -0,0 +1,38 @@
+package com.fdkankan.indoor.core.entity.dto;
+
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/7/27 0027 14:55
+ */
+@Data
+public class FilterHotDto {
+
+    private Integer id;
+
+    private Integer camera_head_id;
+
+    private Integer dataset_id;
+
+    private String file_path;
+
+    private Boolean hidden;
+
+    private Integer site_model_entity_id;
+
+    private Double[] location;
+
+    private Double[] floor_location;
+
+    private Double[] dataset_location;
+
+    private Double[] dataset_floor_location;
+
+    private Double[] orientation;
+
+    private String file_id;
+
+//
+
+
+}

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/dto/JsonDataDetailDto.java

@@ -1,4 +1,4 @@
-package com.fdkankan.indoor.core.dto;
+package com.fdkankan.indoor.core.entity.dto;
 
 import lombok.Data;
 

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/dto/LoginDto.java

@@ -1,4 +1,4 @@
-package com.fdkankan.indoor.core.dto;
+package com.fdkankan.indoor.core.entity.dto;
 
 import lombok.Data;
 

+ 48 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/dto/PoiHotDto.java

@@ -0,0 +1,48 @@
+package com.fdkankan.indoor.core.entity.dto;
+
+import com.fdkankan.indoor.core.entity.po.LanguagePo;
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/7/27 0027 10:42
+ * poi 热点
+ */
+@Data
+public class PoiHotDto {
+
+    private Integer id;
+
+    private Double[] location;
+
+    private Double[] orientation;
+
+    private Integer dataset_id;
+
+    private Double[] dataset_location;
+
+    private Double[] dataset_orientation;
+
+    private Integer site_model_entity_id;
+
+    private SecurityDto security;
+
+    private Integer poi_type_id;
+
+    private Double importance;
+
+    private Boolean visibility_check;
+
+    private LanguagePo titles;
+
+    private LanguagePo descriptions;
+
+    private Boolean reference_marker;
+
+    private Object point_of_view;
+
+    private String icon;
+
+    private String custom_data;
+
+
+}

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/dto/PoiSearchDto.java

@@ -1,4 +1,4 @@
-package com.fdkankan.indoor.core.dto;
+package com.fdkankan.indoor.core.entity.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 24 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/dto/PoiTypeDto.java

@@ -0,0 +1,24 @@
+package com.fdkankan.indoor.core.entity.dto;
+
+import lombok.Data;
+import org.springframework.data.annotation.Id;
+
+/**
+ * Created by owen on 2021/7/26 0026 10:21
+ */
+@Data
+public class PoiTypeDto {
+
+    @Id
+    private Integer id;
+
+    private Object name;
+
+    private String icon;
+
+    private Double visibility_zoom_min;
+
+    private Double visibility_zoom_max;
+
+    private Integer poi_type_group_id;
+}

+ 19 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/dto/PoiTypeGroupDto.java

@@ -0,0 +1,19 @@
+package com.fdkankan.indoor.core.entity.dto;
+
+import lombok.Data;
+import org.springframework.data.annotation.Id;
+
+/**
+ * Created by owen on 2021/7/26 0026 10:21
+ */
+@Data
+public class PoiTypeGroupDto {
+
+    @Id
+    private Integer id;
+
+    private Object name;
+
+    private SecurityDto security;
+
+}

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/dto/QueryJsonDataBase.java

@@ -1,4 +1,4 @@
-package com.fdkankan.indoor.core.dto;
+package com.fdkankan.indoor.core.entity.dto;
 
 import lombok.Data;
 

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/dto/QueryJsonDataOne.java

@@ -1,4 +1,4 @@
-package com.fdkankan.indoor.core.dto;
+package com.fdkankan.indoor.core.entity.dto;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/dto/QueryJsonDataTwo.java

@@ -1,4 +1,4 @@
-package com.fdkankan.indoor.core.dto;
+package com.fdkankan.indoor.core.entity.dto;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 22 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/dto/RouteInputDto.java

@@ -0,0 +1,22 @@
+package com.fdkankan.indoor.core.entity.dto;
+
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/7/29 0029 12:07
+ */
+@Data
+public class RouteInputDto {
+
+
+
+    // 起始点
+    private float source_latitude;
+    private float source_longitude;
+    private float source_z;
+
+    // 终点
+    private float destination_latitude;
+    private float destination_longitude;
+    private float destination_z;
+}

+ 17 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/dto/SecurityDto.java

@@ -0,0 +1,17 @@
+package com.fdkankan.indoor.core.entity.dto;
+
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/7/27 0027 16:44
+ */
+@Data
+public class SecurityDto {
+
+    private Integer group_read;
+    private Integer group_write;
+
+    // 已登录:true, 其他false, 默认true
+    private Boolean can_write = true;
+
+}

+ 36 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/dto/SiteDto.java

@@ -0,0 +1,36 @@
+package com.fdkankan.indoor.core.entity.dto;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+import org.springframework.data.annotation.Transient;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by owen on 2021/7/28 0028 16:03
+ */
+@Data
+public class SiteDto {
+
+    private Integer id;
+    private String type;
+    private String name;
+    private SitePolygon polygon;
+    private Double z_min;
+    private Double z_max;
+    private Double[] center;
+    private Map<String, Object> attributes = new HashMap<>();
+    private Double area;
+    private Double volume;
+    private Long geometry_hash;
+    //    private List<SiteModel> children ;
+    private List<SiteDto> children = new ArrayList<>();
+
+    // 父级id, 后端需要,前端不用
+    @Transient
+    @JsonIgnore
+    private Integer parentId;
+}

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/dto/SiteModelLatestDto.java

@@ -1,4 +1,4 @@
-package com.fdkankan.indoor.core.dto;
+package com.fdkankan.indoor.core.entity.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/dto/SiteModelSearchDto.java

@@ -1,4 +1,4 @@
-package com.fdkankan.indoor.core.dto;
+package com.fdkankan.indoor.core.entity.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 16 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/dto/SitePolygon.java

@@ -0,0 +1,16 @@
+package com.fdkankan.indoor.core.entity.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/28 0028 16:10
+ */
+@Data
+public class SitePolygon {
+
+    private String type;
+
+    private List<List<Double[]>> coordinates;
+}

+ 2 - 2
laser/src/main/java/com/fdkankan/indoor/core/entity/jsonData/FilterEntity.java

@@ -15,10 +15,10 @@ import java.util.List;
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
 @Document(collection = "t_filter")
-public class FilterEntity implements Serializable {
+public class FilterEntity1 implements Serializable {
 
     private static final long serialVersionUID = 2974313673840996620L;
-    private Integer id;
+    private String id;
 
     private String sceneCode;
 

+ 0 - 35
laser/src/main/java/com/fdkankan/indoor/core/entity/jsonData/JsonData2.java

@@ -1,35 +0,0 @@
-package com.fdkankan.indoor.core.entity.jsonData;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.springframework.data.mongodb.core.mapping.Document;
-
-import java.io.Serializable;
-
-/**
- * @author Admin
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@Document(collection = "json_data_2")
-public class JsonData2 implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    private Integer id;
-    private Double[] location;
-    private Double[] floor_location;
-    private Double[] orientation;
-    private Integer dataset_id;
-    private Double[] dataset_location;
-    private Double[] dataset_floor_location;
-    private Double[] dataset_orientation;
-    private Integer camera_head_id;
-    private String file_path;
-    private String file_id;
-    private Boolean hidden;
-    private Integer site_model_entity_id;
-
-}

+ 12 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/po/LanguagePo.java

@@ -0,0 +1,12 @@
+package com.fdkankan.indoor.core.entity.po;
+
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/7/27 0027 17:25
+ */
+@Data
+public class LanguagePo {
+
+    private String zh;
+}

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/entity/poi/PoiEntity.java

@@ -15,7 +15,7 @@ import java.util.List;
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
 @Document(collection = "t_poi")
-public class PoiEntity implements Serializable {
+public class PoiBaseEntity implements Serializable {
     private static final long serialVersionUID = 8758157456020769056L;
 
     private Long id;

+ 0 - 18
laser/src/main/java/com/fdkankan/indoor/core/entity/siteModel/Attributes.java

@@ -1,18 +0,0 @@
-package com.fdkankan.indoor.core.entity.siteModel;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * @author Admin
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class Attributes implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-}

+ 0 - 37
laser/src/main/java/com/fdkankan/indoor/core/entity/siteModel/SiteModel2.java

@@ -1,37 +0,0 @@
-package com.fdkankan.indoor.core.entity.siteModel;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.springframework.data.mongodb.core.mapping.Document;
-
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author Admin
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@Document(collection = "site_model_2")
-public class SiteModel2 implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    private Integer id;
-    private String type;
-    private String name;
-    private Polygon polygon;
-    private Double z_min;
-    private Double z_max;
-    private List<Double> center;
-    private Map<String, Object> attributes = new HashMap<>();
-    private Double area;
-    private Double volume;
-    private Long geometry_hash;
-    private List<SiteModel2> children;
-
-}

+ 0 - 37
laser/src/main/java/com/fdkankan/indoor/core/entity/tsiteModel/SiteModel.java

@@ -1,37 +0,0 @@
-package com.fdkankan.indoor.core.entity.tsiteModel;
-
-import com.fdkankan.indoor.core.entity.siteModel.Polygon;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.springframework.data.mongodb.core.mapping.Document;
-
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author Admin
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class SiteModel implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    private String id;
-    private String type;
-    private String name;
-    private Polygon polygon;
-    private Double z_min;
-    private Double z_max;
-    private List<Double> center;
-    private Map<String, Object> attributes = new HashMap<>();
-    private Double area;
-    private Double volume;
-    private Long geometry_hash;
-    private List<SiteModel> children;
-
-}

+ 0 - 26
laser/src/main/java/com/fdkankan/indoor/core/entity/tsiteModel/TsiteModel.java

@@ -1,26 +0,0 @@
-package com.fdkankan.indoor.core.entity.tsiteModel;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.springframework.data.mongodb.core.mapping.Document;
-
-import java.io.Serializable;
-
-/**
- * Created by owen on 2021/7/14 0014 9:27
- */
-
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@Document(collection = "t_site_model")
-public class TsiteModel  implements Serializable {
-    private static final long serialVersionUID = -1050476893909629046L;
-
-    private String id;
-
-    private String sceneNum;
-
-    private SiteModel data;
-}

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/vo/AttributesVo.java

@@ -1,4 +1,4 @@
-package com.fdkankan.indoor.core.vo;
+package com.fdkankan.indoor.core.entity.vo;
 
 import lombok.Data;
 

+ 19 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/vo/BaseListVo.java

@@ -0,0 +1,19 @@
+package com.fdkankan.indoor.core.entity.vo;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/19 0019 17:02
+ */
+@Data
+public class BaseListVo {
+
+    private Integer id;
+
+    private String sceneCode;
+
+    private List<JSONObject> data;
+}

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/vo/BaseVo.java

@@ -1,4 +1,4 @@
-package com.fdkankan.indoor.core.vo;
+package com.fdkankan.indoor.core.entity.vo;
 
 import lombok.Data;
 

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/vo/GroupsVo.java

@@ -1,4 +1,4 @@
-package com.fdkankan.indoor.core.vo;
+package com.fdkankan.indoor.core.entity.vo;
 
 import com.alibaba.fastjson.JSONObject;
 import lombok.Data;

+ 16 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/vo/HaoVo.java

@@ -0,0 +1,16 @@
+package com.fdkankan.indoor.core.entity.vo;
+
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/7/26 0026 15:12
+ */
+@Data
+public class HaoVo {
+
+    private Integer id;
+
+    private Double price_aa;
+
+    private Integer num;
+}

+ 22 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/vo/OwenVo.java

@@ -0,0 +1,22 @@
+package com.fdkankan.indoor.core.entity.vo;
+
+import lombok.Data;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/26 0026 15:09
+ */
+@Document(collection = "t_owen")
+@Data
+public class OwenVo {
+
+    @Id
+    private Integer id;
+
+    private String sceneCode;
+
+    private List<HaoVo> data;
+}

+ 22 - 0
laser/src/main/java/com/fdkankan/indoor/core/entity/vo/PoiTypeVo.java

@@ -0,0 +1,22 @@
+package com.fdkankan.indoor.core.entity.vo;
+
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/7/26 0026 10:21
+ */
+@Data
+public class PoiTypeVo {
+
+    private Integer id;
+
+    private Object name;
+
+    private String icon;
+
+    private Double visibility_zoom_min;
+
+    private Double visibility_zoom_max;
+
+    private Integer poi_type_group_id;
+}

+ 3 - 3
laser/src/main/java/com/fdkankan/indoor/core/vo/UserVo.java

@@ -1,6 +1,5 @@
-package com.fdkankan.indoor.core.vo;
+package com.fdkankan.indoor.core.entity.vo;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -15,7 +14,8 @@ import java.util.List;
 @Data
 public class UserVo {
 
-    private Integer id;
+//    private Integer id;
+    private String id;
 
     @ApiModelProperty(value = "用户名")
     private String username;

+ 15 - 0
laser/src/main/java/com/fdkankan/indoor/core/mapper/ConfigMapper.java

@@ -0,0 +1,15 @@
+package com.fdkankan.indoor.core.mapper;
+
+import com.fdkankan.indoor.core.entity.ConfigEntity;
+import com.fdkankan.indoor.core.entity.DataSetEntity;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by owen on 2021/7/27 0027 15:19
+ */
+@Component
+public interface ConfigMapper extends MongoRepository<ConfigEntity, String> {
+
+    ConfigEntity findBySceneCode(String sceneCode);
+}

+ 15 - 0
laser/src/main/java/com/fdkankan/indoor/core/mapper/DataSetMapper.java

@@ -0,0 +1,15 @@
+package com.fdkankan.indoor.core.mapper;
+
+import com.fdkankan.indoor.core.entity.DataSetEntity;
+import com.fdkankan.indoor.core.entity.PoiEntity;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by owen on 2021/7/27 0027 15:19
+ */
+@Component
+public interface DataSetMapper extends MongoRepository<DataSetEntity, String> {
+
+    DataSetEntity findBySceneCode(String sceneCode);
+}

+ 15 - 0
laser/src/main/java/com/fdkankan/indoor/core/mapper/FilterMapper.java

@@ -0,0 +1,15 @@
+package com.fdkankan.indoor.core.mapper;
+
+import com.fdkankan.indoor.core.entity.FilterEntity;
+import com.fdkankan.indoor.core.entity.SysUserEntity;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by owen on 2021/7/27 0027 15:19
+ */
+@Component
+public interface FilterMapper extends MongoRepository<FilterEntity, String> {
+
+    FilterEntity findBySceneCode(String sceneCode);
+}

+ 15 - 0
laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiMapper.java

@@ -0,0 +1,15 @@
+package com.fdkankan.indoor.core.mapper;
+
+import com.fdkankan.indoor.core.entity.FilterEntity;
+import com.fdkankan.indoor.core.entity.PoiEntity;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by owen on 2021/7/27 0027 15:19
+ */
+@Component
+public interface PoiMapper extends MongoRepository<PoiEntity, String> {
+
+    PoiEntity findBySceneCode(String sceneCode);
+}

+ 15 - 0
laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiTypeGroupMapper.java

@@ -0,0 +1,15 @@
+package com.fdkankan.indoor.core.mapper;
+
+import com.fdkankan.indoor.core.entity.PoiTypeEntity;
+import com.fdkankan.indoor.core.entity.PoiTypeGroupEntity;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by owen on 2021/7/27 0027 15:19
+ */
+@Component
+public interface PoiTypeGroupMapper extends MongoRepository<PoiTypeGroupEntity, String> {
+
+    PoiTypeGroupEntity findBySceneCode(String sceneCode);
+}

+ 15 - 0
laser/src/main/java/com/fdkankan/indoor/core/mapper/PoiTypeMapper.java

@@ -0,0 +1,15 @@
+package com.fdkankan.indoor.core.mapper;
+
+import com.fdkankan.indoor.core.entity.PoiEntity;
+import com.fdkankan.indoor.core.entity.PoiTypeEntity;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by owen on 2021/7/27 0027 15:19
+ */
+@Component
+public interface PoiTypeMapper extends MongoRepository<PoiTypeEntity, String> {
+
+    PoiTypeEntity findBySceneCode(String sceneCode);
+}

+ 14 - 0
laser/src/main/java/com/fdkankan/indoor/core/mapper/RouteMapper.java

@@ -0,0 +1,14 @@
+package com.fdkankan.indoor.core.mapper;
+
+import com.fdkankan.indoor.core.entity.RouteEntity;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by owen on 2021/7/27 0027 15:19
+ */
+@Component
+public interface RouteMapper extends MongoRepository<RouteEntity, String> {
+
+    RouteEntity findBySceneCode(String sceneCode);
+}

+ 15 - 0
laser/src/main/java/com/fdkankan/indoor/core/mapper/SiteModelMapper.java

@@ -0,0 +1,15 @@
+package com.fdkankan.indoor.core.mapper;
+
+import com.fdkankan.indoor.core.entity.PoiEntity;
+import com.fdkankan.indoor.core.entity.SiteModelEntity;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by owen on 2021/7/27 0027 15:19
+ */
+@Component
+public interface SiteModelMapper extends MongoRepository<SiteModelEntity, String> {
+
+    SiteModelEntity findBySceneCode(String sceneCode);
+}

+ 14 - 0
laser/src/main/java/com/fdkankan/indoor/core/mapper/SpecialPointMapper.java

@@ -0,0 +1,14 @@
+package com.fdkankan.indoor.core.mapper;
+
+import com.fdkankan.indoor.core.entity.SpecialPointEntity;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by owen on 2021/7/27 0027 18:30
+ */
+@Component
+public interface SpecialPointMapper extends MongoRepository<SpecialPointEntity, String> {
+
+    SpecialPointEntity findBySceneCodeAndPoiKey(String sceneCode, String poiKey);
+}

+ 1 - 1
laser/src/main/java/com/fdkankan/indoor/core/mapper/SysUserMapper.java

@@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
  * Created by owen on 2021/7/19 0019 12:00
  */
 @Component
-public interface SysUserMapper extends MongoRepository<SysUserEntity, Integer> {
+public interface SysUserMapper extends MongoRepository<SysUserEntity, String> {
 
     SysUserEntity findByUsername(String username);
 }

+ 11 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/ConfigService.java

@@ -0,0 +1,11 @@
+package com.fdkankan.indoor.core.service;
+
+import com.fdkankan.indoor.core.entity.ConfigEntity;
+import com.fdkankan.indoor.core.entity.DataSetEntity;
+
+/**
+ * Created by owen on 2021/7/28 0028 20:05
+ */
+public interface ConfigService {
+    void save(ConfigEntity entity);
+}

+ 10 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/DataSetService.java

@@ -0,0 +1,10 @@
+package com.fdkankan.indoor.core.service;
+
+import com.fdkankan.indoor.core.entity.DataSetEntity;
+
+/**
+ * Created by owen on 2021/7/28 0028 20:05
+ */
+public interface DataSetService {
+    void save(DataSetEntity entity);
+}

+ 9 - 3
laser/src/main/java/com/fdkankan/indoor/core/service/FilterService.java

@@ -1,9 +1,10 @@
 package com.fdkankan.indoor.core.service;
 
 import com.fdkankan.indoor.base.util.Result;
-import com.fdkankan.indoor.core.dto.JsonDataDetailDto;
-import com.fdkankan.indoor.core.dto.QueryJsonDataOne;
-import com.fdkankan.indoor.core.dto.QueryJsonDataTwo;
+import com.fdkankan.indoor.core.entity.dto.JsonDataDetailDto;
+import com.fdkankan.indoor.core.entity.dto.QueryJsonDataOne;
+import com.fdkankan.indoor.core.entity.dto.QueryJsonDataTwo;
+import com.fdkankan.indoor.core.entity.FilterEntity;
 
 /**
  * Created by owen on 2021/7/15 0015 16:00
@@ -16,4 +17,9 @@ public interface FilterService {
     Result query(String code, QueryJsonDataOne queryJsonDataOne, QueryJsonDataTwo queryJsonDataTwo, JsonDataDetailDto jsonDataDetailDto);
 
     Result findById1(String sceneCode, Integer id);
+
+
+    void save(FilterEntity entity);
+
+    Result findById_5(String sceneCode, Integer id);
 }

+ 10 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/InitService.java

@@ -0,0 +1,10 @@
+package com.fdkankan.indoor.core.service;
+
+import com.fdkankan.indoor.base.util.Result;
+
+/**
+ * Created by owen on 2021/7/28 0028 9:10
+ */
+public interface InitService {
+    Result initData(String sceneCode, String path);
+}

+ 0 - 19
laser/src/main/java/com/fdkankan/indoor/core/service/JsonData2Service.java

@@ -1,19 +0,0 @@
-package com.fdkankan.indoor.core.service;
-
-import com.fdkankan.indoor.core.dto.JsonDataDetailDto;
-import com.fdkankan.indoor.core.dto.QueryJsonDataBase;
-import com.fdkankan.indoor.core.entity.jsonData.JsonData;
-
-import java.util.List;
-
-/**
- * @author Admin
- */
-public interface JsonData2Service {
-
-    List<JsonData> filterJsonData(String code, QueryJsonDataBase data);
-
-    JsonData findById(String id, String code);
-
-    List<JsonData> filterJsonDataDetail(String code, JsonDataDetailDto jsonDataDetailDto);
-}

+ 0 - 16
laser/src/main/java/com/fdkankan/indoor/core/service/JsonDataService.java

@@ -1,16 +0,0 @@
-package com.fdkankan.indoor.core.service;
-
-import com.fdkankan.indoor.core.dto.QueryJsonDataBase;
-import com.fdkankan.indoor.core.entity.jsonData.JsonData;
-
-import java.util.List;
-
-/**
- * @author Admin
- */
-public interface JsonDataService {
-
-    List<JsonData> filterJsonData( QueryJsonDataBase data);
-
-    JsonData findById(String id, String code);
-}

+ 3 - 3
laser/src/main/java/com/fdkankan/indoor/core/service/LoginService.java

@@ -1,7 +1,7 @@
 package com.fdkankan.indoor.core.service;
 
 import com.fdkankan.indoor.base.util.Result;
-import com.fdkankan.indoor.core.dto.LoginDto;
+import com.fdkankan.indoor.core.entity.dto.LoginDto;
 
 /**
  * Created by owen on 2021/7/19 0019 11:53
@@ -21,7 +21,7 @@ public interface LoginService {
 
     Result users(String sceneCode);
 
-    Result poiTypeGroups(String sceneCode);
+//    Result poiTypeGroups(String sceneCode);
+
 
-    Result poiTypes(String sceneCode);
 }

+ 12 - 1
laser/src/main/java/com/fdkankan/indoor/core/service/PoiService.java

@@ -1,7 +1,11 @@
 package com.fdkankan.indoor.core.service;
 
 import com.fdkankan.indoor.base.util.Result;
-import com.fdkankan.indoor.core.dto.PoiSearchDto;
+import com.fdkankan.indoor.core.entity.dto.PoiHotDto;
+import com.fdkankan.indoor.core.entity.dto.PoiSearchDto;
+import com.fdkankan.indoor.core.entity.PoiEntity;
+
+import java.util.List;
 
 /**
  * Created by owen on 2021/7/14 0014 14:31
@@ -11,4 +15,11 @@ public interface PoiService {
     Result findBySceneCodeAndId(String code, Integer id);
 
     Result search(String code, PoiSearchDto param);
+
+    Result saveHot(String sceneCode, List<PoiHotDto> param);
+
+    Result filter(String sceneCode);
+
+
+    void save(PoiEntity entity);
 }

+ 20 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/PoiTypeGroupService.java

@@ -0,0 +1,20 @@
+package com.fdkankan.indoor.core.service;
+
+import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.entity.dto.PoiTypeGroupDto;
+import com.fdkankan.indoor.core.entity.PoiTypeGroupEntity;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/26 0026 10:14
+ */
+public interface PoiTypeGroupService {
+    Result edit(String sceneCode, List<PoiTypeGroupDto> param);
+
+    Result poiTypes(String sceneCode);
+
+    Result remove(String sceneCode, Integer id);
+
+    void save(PoiTypeGroupEntity entity);
+}

+ 27 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/PoiTypeService.java

@@ -0,0 +1,27 @@
+package com.fdkankan.indoor.core.service;
+
+import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.entity.dto.PoiTypeDto;
+import com.fdkankan.indoor.core.entity.PoiTypeEntity;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * Created by owen on 2021/7/26 0026 10:14
+ */
+public interface PoiTypeService {
+    Result edit(String sceneCode, List<PoiTypeDto> param);
+
+    Result poiTypes(String sceneCode);
+
+    Result remove(String sceneCode, Integer id);
+
+    void removeByPoiTypeGroupId(String sceneCode, Integer poiTypeGroupId);
+
+    Result upload(String sceneCode, MultipartFile file);
+
+    PoiTypeDto findBySceneCodeAndPoiTypeId(String sceneCode, Integer poiTypeId);
+
+    void save(PoiTypeEntity entity);
+}

+ 14 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/RouteService.java

@@ -0,0 +1,14 @@
+package com.fdkankan.indoor.core.service;
+
+import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.entity.dto.RouteInputDto;
+import com.fdkankan.indoor.core.entity.RouteEntity;
+
+/**
+ * Created by owen on 2021/7/28 0028 20:05
+ */
+public interface RouteService {
+    void save(RouteEntity entity);
+
+    Result getRoute(String sceneCode, RouteInputDto param);
+}

+ 0 - 0
laser/src/main/java/com/fdkankan/indoor/core/service/SceneService.java


Some files were not shown because too many files changed in this diff