浏览代码

Merge remote-tracking branch 'origin/master'

lyhzzz 2 月之前
父节点
当前提交
ba2487ea6c

+ 2 - 0
4dkankan-common-web/src/main/java/com/fdkankan/web/response/BaseResponseAdvice.java

@@ -55,6 +55,8 @@ public class BaseResponseAdvice implements ResponseBodyAdvice<Object> {
         }
         if (body instanceof ResultData) {
             return getI18n((ResultData) body);
+        }else if(body instanceof Result){
+            return body;
         } else {
             return getI18n(ResultData.ok(body));
         }

+ 44 - 34
4dkankan-utils-model/src/main/java/com/fdkankan/model/utils/CreateHouseJsonUtil.java

@@ -95,19 +95,22 @@ public class CreateHouseJsonUtil {
 		Map<String, PointBean> pointMap = new HashMap<>();
 		Map<Integer, String> vpMap = new HashMap<>();
 		JSONArray vertexArr = floor.getJSONArray("vertex-xy");
-		for(int i = 0; i < vertexArr.size(); i++){
-			Object o = vertexArr.get(i);
+		if(CollUtil.isNotEmpty(vertexArr)){
+			for(int i = 0; i < vertexArr.size(); i++){
+				Object o = vertexArr.get(i);
 
-			VertexBean vertexBean = JSON.parseObject(JSON.toJSONString(o), VertexBean.class);
-			Integer vertexId = vertexBean.getId();
-			vertexMap.put(vertexId, vertexBean);
+				VertexBean vertexBean = JSON.parseObject(JSON.toJSONString(o), VertexBean.class);
+				Integer vertexId = vertexBean.getId();
+				vertexMap.put(vertexId, vertexBean);
 
-			String pointId = "Point" + i;
-			pointMap.put(pointId, PointBean.builder().vectorId(pointId).x(vertexBean.getX()).y(vertexBean.getY()).build());
+				String pointId = "Point" + i;
+				pointMap.put(pointId, PointBean.builder().vectorId(pointId).x(vertexBean.getX()).y(vertexBean.getY()).build());
 
-			vpMap.put(vertexId, pointId);
+				vpMap.put(vertexId, pointId);
+			}
 		}
 
+
 		//处理墙
 		Map<Integer, SegmentBean> segmentMap = new HashMap<>();
 		Map<String, WallBean> wallMap = new HashMap<>();
@@ -115,32 +118,34 @@ public class CreateHouseJsonUtil {
 		JSONArray segmentArr = floor.getJSONArray("segment");
 		Map<String, String> startMap = new HashMap<>();
 		Map<String, String> endMap = new HashMap<>();
-		for(int i = 0; i < segmentArr.size(); i++){
-			Object o = segmentArr.get(i);
-
-			SegmentBean segmentBean = JSON.parseObject(JSON.toJSONString(o), SegmentBean.class);
-			String startPointId = vpMap.get(segmentBean.getA());
-			String endPointId = vpMap.get(segmentBean.getB());
-			segmentBean.setStartPointId(startPointId);
-			segmentBean.setEndPointId(endPointId);
-
-			Integer segmentId = segmentBean.getId();
-			segmentMap.put(segmentId, segmentBean);
-
-			String wallId = "Wall" + i;
-			WallBean wallBean = WallBean.builder()
-				.vectorId(wallId)
-				.start(segmentBean.getStartPointId())
-				.end(segmentBean.getEndPointId())
-				.children(new String[]{})
-				.width(0.2d)
-				.build();
-			wallMap.put(wallId, wallBean);
-
-			startMap.put(wallBean.getStart(), wallBean.getVectorId());
-			endMap.put(wallBean.getEnd(), wallBean.getVectorId());
-
-			swMap.put(segmentId, wallId);
+		if(CollUtil.isNotEmpty(segmentArr)){
+			for(int i = 0; i < segmentArr.size(); i++){
+				Object o = segmentArr.get(i);
+
+				SegmentBean segmentBean = JSON.parseObject(JSON.toJSONString(o), SegmentBean.class);
+				String startPointId = vpMap.get(segmentBean.getA());
+				String endPointId = vpMap.get(segmentBean.getB());
+				segmentBean.setStartPointId(startPointId);
+				segmentBean.setEndPointId(endPointId);
+
+				Integer segmentId = segmentBean.getId();
+				segmentMap.put(segmentId, segmentBean);
+
+				String wallId = "Wall" + i;
+				WallBean wallBean = WallBean.builder()
+						.vectorId(wallId)
+						.start(segmentBean.getStartPointId())
+						.end(segmentBean.getEndPointId())
+						.children(new String[]{})
+						.width(0.2d)
+						.build();
+				wallMap.put(wallId, wallBean);
+
+				startMap.put(wallBean.getStart(), wallBean.getVectorId());
+				endMap.put(wallBean.getEnd(), wallBean.getVectorId());
+
+				swMap.put(segmentId, wallId);
+			}
 		}
 
 		Collection<PointBean> pointBeans = pointMap.values();
@@ -163,6 +168,11 @@ public class CreateHouseJsonUtil {
 
 	}
 
+	public static void main(String[] args) {
+		JSONObject houseTypeJsonByCad = createHouseTypeJsonByCad("D:\\Downloads\\floorplan_cad.json");
+		FileUtil.writeUtf8String(houseTypeJsonByCad.toJSONString(), "D:\\Downloads\\houseType.json");
+	}
+
 	private static JSONObject init() {
 		JSONObject outContent = new JSONObject();
 		outContent.put("name", "houseType.json");

+ 2 - 2
4dkankan-utils-model/src/main/java/com/fdkankan/model/utils/CreateObjUtil.java

@@ -101,7 +101,7 @@ public class CreateObjUtil {
 
 	public static void killMainLoader(){
 		log.info("开始杀掉算法进程");
-		String command = "ps -ef | grep 'MainLoader.exe' | grep -v grep | awk '{print $2}' | xargs kill -9";
+		String command = "sudo ps -ef | grep 'MainLoader.exe' | grep -v grep | awk '{print $2}' | xargs kill -9";
 		callshell(command);
 		log.info("开始杀掉算法完毕");
 	}
@@ -355,7 +355,7 @@ public class CreateObjUtil {
 //		convertVisionmodeldataToTxt("D:\\test\\test\\vision.modeldata", "D:\\test\\test\\vision.txt");
 //		FileUtil.del("D:\\test\\test");
 
-		convertTxtToVisionmodeldata("D:\\test\\vision_100(1).txt", "D:\\test\\vision_100.modeldata");
+		convertTxtToVisionmodeldata("D:\\test\\vision.txt", "D:\\test\\vision.modeldata");
 
 	}
 

+ 43 - 39
4dkankan-utils-model/src/main/java/com/fdkankan/model/utils/FloorPlanUserUtil.java

@@ -20,8 +20,8 @@ import java.util.Map;
 public class FloorPlanUserUtil {
 
 	public static void main(String[] args) {
-		JSONObject floorPlanUserJson = FloorPlanUserUtil.createFloorPlanUserJson("D:\\test\\新建文件夹\\floorplan_cad.json");
-		FileUtil.writeUtf8String(floorPlanUserJson.toJSONString(), "D:\\test\\新建文件夹\\floorplan.json");
+		JSONObject floorPlanUserJson = FloorPlanUserUtil.createFloorPlanUserJson("D:\\Downloads\\floorplan_cad.json");
+		FileUtil.writeUtf8String(floorPlanUserJson.toJSONString(), "D:\\Downloads\\floorplan.json");
 
 	}
 
@@ -91,18 +91,20 @@ public class FloorPlanUserUtil {
 		Map<String, PointBean> pointMap = new HashMap<>();
 		Map<Integer, String> vpMap = new HashMap<>();
 		JSONArray vertexArr = floor.getJSONArray("vertex-xy");
-		for(int i = 0; i < vertexArr.size(); i++){
-			Object o = vertexArr.get(i);
+		if(CollUtil.isNotEmpty(vertexArr)){
+			for(int i = 0; i < vertexArr.size(); i++){
+				Object o = vertexArr.get(i);
 
-			VertexBean vertexBean = JSON.parseObject(JSON.toJSONString(o), VertexBean.class);
-			Integer vertexId = vertexBean.getId();
-			vertexMap.put(vertexId, vertexBean);
+				VertexBean vertexBean = JSON.parseObject(JSON.toJSONString(o), VertexBean.class);
+				Integer vertexId = vertexBean.getId();
+				vertexMap.put(vertexId, vertexBean);
 
-			String pointId = "Point" + currentId;
-			pointMap.put(pointId, PointBean.builder().geoType("Point").vectorId(pointId).x(vertexBean.getX()).y(vertexBean.getY()).build());
-			++currentId;
+				String pointId = "Point" + currentId;
+				pointMap.put(pointId, PointBean.builder().geoType("Point").vectorId(pointId).x(vertexBean.getX()).y(vertexBean.getY()).build());
+				++currentId;
 
-			vpMap.put(vertexId, pointId);
+				vpMap.put(vertexId, pointId);
+			}
 		}
 
 		//处理墙
@@ -112,34 +114,36 @@ public class FloorPlanUserUtil {
 		JSONArray segmentArr = floor.getJSONArray("segment");
 		Map<String, String> startMap = new HashMap<>();
 		Map<String, String> endMap = new HashMap<>();
-		for(int i = 0; i < segmentArr.size(); i++){
-			Object o = segmentArr.get(i);
-
-			SegmentBean segmentBean = JSON.parseObject(JSON.toJSONString(o), SegmentBean.class);
-			String startPointId = vpMap.get(segmentBean.getA());
-			String endPointId = vpMap.get(segmentBean.getB());
-			segmentBean.setStartPointId(startPointId);
-			segmentBean.setEndPointId(endPointId);
-
-			Integer segmentId = segmentBean.getId();
-			segmentMap.put(segmentId, segmentBean);
-
-			String wallId = "Wall" + currentId;
-			WallBean wallBean = WallBean.builder()
-				.geoType("Wall")
-				.vectorId(wallId)
-				.start(segmentBean.getStartPointId())
-				.end(segmentBean.getEndPointId())
-				.children(new String[]{})
-				.width(0.2d)
-				.build();
-			wallMap.put(wallId, wallBean);
-			++currentId;
-
-			startMap.put(wallBean.getStart(), wallBean.getVectorId());
-			endMap.put(wallBean.getEnd(), wallBean.getVectorId());
-
-			swMap.put(segmentId, wallId);
+		if(CollUtil.isNotEmpty(segmentArr)){
+			for(int i = 0; i < segmentArr.size(); i++){
+				Object o = segmentArr.get(i);
+
+				SegmentBean segmentBean = JSON.parseObject(JSON.toJSONString(o), SegmentBean.class);
+				String startPointId = vpMap.get(segmentBean.getA());
+				String endPointId = vpMap.get(segmentBean.getB());
+				segmentBean.setStartPointId(startPointId);
+				segmentBean.setEndPointId(endPointId);
+
+				Integer segmentId = segmentBean.getId();
+				segmentMap.put(segmentId, segmentBean);
+
+				String wallId = "Wall" + currentId;
+				WallBean wallBean = WallBean.builder()
+						.geoType("Wall")
+						.vectorId(wallId)
+						.start(segmentBean.getStartPointId())
+						.end(segmentBean.getEndPointId())
+						.children(new String[]{})
+						.width(0.2d)
+						.build();
+				wallMap.put(wallId, wallBean);
+				++currentId;
+
+				startMap.put(wallBean.getStart(), wallBean.getVectorId());
+				endMap.put(wallBean.getEnd(), wallBean.getVectorId());
+
+				swMap.put(segmentId, wallId);
+			}
 		}
 
 		Collection<PointBean> pointBeans = pointMap.values();

+ 100 - 0
4dkankan-utils-model/src/main/java/com/fdkankan/model/utils/Yingzhang.java

@@ -0,0 +1,100 @@
+package com.fdkankan.model.utils;
+
+import javax.imageio.ImageIO;
+import javax.swing.*;
+import java.awt.*;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+
+public class Yingzhang {
+
+    public static void main(String...args) {
+        File file = new File("D:\\test\\yinzhang");
+        if (file.exists()) {
+            File[] images = file.listFiles();//f -> f.getName().toLowerCase().indexOf(".bmp") != 0
+            assert images != null;
+            for (File image : images) {
+                convertImage(image);
+            }
+        }
+        //convertImage(new File("C:/Users/Administrator/Desktop/love.bmp"));
+    }
+
+
+    /**
+     * 将图片白色部分透明化处理,只保留非白色部分
+     * @param imageFile 图片文件
+     */
+    public static void convertImage(File imageFile) {
+        if (imageFile == null || imageFile.isDirectory()) {
+            return;
+        }
+        //获取image buffered
+        BufferedImage image = null;
+        try {
+            image = ImageIO.read(imageFile);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        assert image != null;
+        //获取图片高度
+        int height = image.getHeight();
+        //获取图片宽度
+        int width = image.getWidth();
+        //生成ImageIcon对象
+        ImageIcon imageIcon = new ImageIcon(image);
+        //载入原图片数据
+        BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR);
+        //创建画笔对象
+        Graphics2D graphics2D = (Graphics2D) bufferedImage.getGraphics();
+        //绘制Image图片
+        graphics2D.drawImage(imageIcon.getImage(), 0, 0, null);
+        //图片透明度
+        int alpha = 0;
+        //遍历图片y坐标
+        for (int y = bufferedImage.getMinY(); y < bufferedImage.getHeight(); y++) {
+            //遍历图片x坐标
+            for (int x = bufferedImage.getMinX(); x < bufferedImage.getWidth(); x++) {
+                int rgb = bufferedImage.getRGB(x, y);
+                alpha = includeColor(rgb) ? 0 : 255;
+                rgb = (alpha << 24) | (rgb & 0X00FFFFFF);
+                bufferedImage.setRGB(x, y, rgb);
+            }
+        }
+        //将处理后的色块buffered对象写入缓冲区
+        graphics2D.drawImage(bufferedImage, 0, 0, null);
+        //创建输出路径
+        File outFile = new File(imageFile.getParentFile().getPath() + "/temp/");
+        //检测输出路径是否存在
+        boolean exists = outFile.exists() || outFile.mkdir();
+        if (exists) {
+            //获取文件名不含后缀
+            String fileName = imageFile.getName().substring(0, imageFile.getName().lastIndexOf("."));
+            //创建输出图片文件对象
+            File outImageFile = new File(outFile.getPath() + "/" + fileName + ".png");
+            try {
+                //输出图片
+                ImageIO.write(bufferedImage, "png", outImageFile);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+            //输出
+            System.out.println(outImageFile.getPath() + " 转换完成!");
+        }
+    }
+
+    /**
+     * 判断当前色块是否属于设定值的范围
+     * @param color 当前颜色
+     * @return false|true
+     */
+    public static boolean includeColor(int color) {
+        int red = (color & 0xFF0000) >> 16;
+        int green = (color & 0x00FF00) >> 8;
+        int blue = (color & 0x0000FF);
+        int color_range = 215;
+        return (red >= color_range && green >= color_range && blue >= color_range);
+    }
+
+}

+ 2 - 0
4dkankan-utils-rabbitmq/src/main/java/com/fdkankan/rabbitmq/bean/BuildSceneCallMessage.java

@@ -3,6 +3,7 @@ package com.fdkankan.rabbitmq.bean;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.LinkedHashMap;
 import java.util.Map;
 
 @Data
@@ -23,4 +24,5 @@ public class BuildSceneCallMessage extends BaseBuildSceneMessage {
     private Map<String,Object> ext;
 
     private String bizType;
+
 }

+ 3 - 0
4dkankan-utils-rabbitmq/src/main/java/com/fdkankan/rabbitmq/bean/BuildSceneResultMqMessage.java

@@ -5,6 +5,7 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.util.LinkedHashMap;
 import java.util.Map;
 
 @Data
@@ -24,4 +25,6 @@ public class BuildSceneResultMqMessage extends BaseBuildSceneMessage{
     private Map<String,Object> ext;
 
     private Integer errorType;
+
+    private LinkedHashMap<Integer, Boolean> detFloorplan;
 }

+ 0 - 16
pom.xml

@@ -41,22 +41,6 @@
     <version>3.0.0-SNAPSHOT</version>
     <packaging>pom</packaging>
 
-
-    <repositories>
-        <repository>
-            <id>releases</id>
-            <url>http://192.168.0.115:8081/nexus-2.14.2-01/content/repositories/releases/</url>
-        </repository>
-        <repository>
-            <id>nexus-aliyun</id>
-            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
-        </repository>
-        <repository>
-            <id>snapshots</id>
-            <url>http://192.168.0.115:8081/nexus-2.14.2-01/content/repositories/snapshots/</url>
-        </repository>
-    </repositories>
-
     <properties>
         <java.version>1.8</java.version>
         <fastjson-version>1.2.83</fastjson-version>