From 922de4e688e18f508070972876002fa6a3810135 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 10 三月 2025 14:31:31 +0800
Subject: [PATCH] 修改导出bug

---
 guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/imageModel/ImageModelUtil.java |   81 +++++++++++++++++++++-------------------
 1 files changed, 42 insertions(+), 39 deletions(-)

diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/imageModel/ImageModelUtil.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/imageModel/ImageModelUtil.java
index 2b302b3..b2717c2 100644
--- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/imageModel/ImageModelUtil.java
+++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/imageModel/ImageModelUtil.java
@@ -21,7 +21,9 @@
 import java.net.URL;
 import java.net.URLConnection;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author zhibing.pu
@@ -64,20 +66,23 @@
 	 * @param file  图片文件
 	 */
 	private static List<String> closedTopModel(File file){
+		log.info("--------调用顶盖密闭模型开始--------");
 		HttpRequest post = HttpUtil.createPost("http://120.232.235.142:5000/predict");
 		post.form("file", file);
 		HttpResponse execute = post.execute();
 		int status = execute.getStatus();
 		if(200 != status){
 			log.error("顶盖密闭模型调用失败:" + execute.body());
-			return null;
+			throw new RuntimeException("顶盖密闭模型调用失败:" + execute.body());
 		}
+		log.info("调用顶盖密闭模型结果:{}", execute.body());
 		JSONObject result = JSON.parseObject(execute.body());
 		JSONArray predicted_labels = result.getJSONArray("predicted_labels");
 		List<String> list = new ArrayList<>();
 		for (int i = 0; i < predicted_labels.size(); i++) {
 			list.add(predicted_labels.getString(i));
 		}
+		log.info("--------调用顶盖密闭模型结束--------");
 		return list;
 	}
 	
@@ -87,20 +92,14 @@
 	 * @param url 图片网络地址
 	 * @return
 	 */
-	private static List<String> cameraFaultModel(String url){
-		try {
-			String fileName = url.substring(url.lastIndexOf("."));
-			URLConnection urlConnection = new URL(url).openConnection();
-			urlConnection.connect();
-			InputStream inputStream = urlConnection.getInputStream();
-			File file = FileUtil.writeFromStream(inputStream, filePath + UUIDUtil.getTimeStr() + fileName);
-			inputStream.close();
-			return cameraFaultModel(file);
-		} catch (MalformedURLException e) {
-			throw new RuntimeException(e);
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
+	private static List<String> cameraFaultModel(String url) throws Exception{
+		String fileName = url.substring(url.lastIndexOf("."));
+		URLConnection urlConnection = new URL(url).openConnection();
+		urlConnection.connect();
+		InputStream inputStream = urlConnection.getInputStream();
+		File file = FileUtil.writeFromStream(inputStream, filePath + UUIDUtil.getTimeStr() + fileName);
+		inputStream.close();
+		return cameraFaultModel(file);
 	}
 	
 	
@@ -112,18 +111,21 @@
 	 * @return
 	 */
 	private static List<String> cameraFaultModel(File file){
+		log.info("--------调用摄像头故障模型开始--------");
 		HttpRequest post = HttpUtil.createPost("http://120.232.235.142:4000/predict");
-		post.form("file", file);
+		post.form("file1", file);
 		HttpResponse execute = post.execute();
 		int status = execute.getStatus();
 		if(200 != status){
 			log.error("摄像头故障模型调用失败:" + execute.body());
-			return null;
+			throw new RuntimeException("摄像头故障模型调用失败:" + execute.body());
 		}
-		JSONObject result = JSON.parseObject(execute.body());
-		String predicted_labels = result.getString("predicted_label");
+		log.info("调用摄像头故障模型结果:{}", execute.body());
+		JSONArray result = JSON.parseArray(execute.body());
+		String predicted_labels = result.getJSONObject(0).getString("predicted_label");
 		List<String> list = new ArrayList<>();
 		list.add(predicted_labels);
+		log.info("--------调用摄像头故障模型结束--------");
 		return list;
 	}
 	
@@ -134,20 +136,14 @@
 	 * @param url 图片网络地址
 	 * @return
 	 */
-	private static List<String> constructionWasteLoadModel(String url){
-		try {
-			String fileName = url.substring(url.lastIndexOf("."));
-			URLConnection urlConnection = new URL(url).openConnection();
-			urlConnection.connect();
-			InputStream inputStream = urlConnection.getInputStream();
-			File file = FileUtil.writeFromStream(inputStream, filePath + UUIDUtil.getTimeStr() + fileName);
-			inputStream.close();
-			return constructionWasteLoadModel(file);
-		} catch (MalformedURLException e) {
-			throw new RuntimeException(e);
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
+	private static List<String> constructionWasteLoadModel(String url) throws Exception{
+		String fileName = url.substring(url.lastIndexOf("."));
+		URLConnection urlConnection = new URL(url).openConnection();
+		urlConnection.connect();
+		InputStream inputStream = urlConnection.getInputStream();
+		File file = FileUtil.writeFromStream(inputStream, filePath + UUIDUtil.getTimeStr() + fileName);
+		inputStream.close();
+		return constructionWasteLoadModel(file);
 	}
 	
 	
@@ -165,7 +161,7 @@
 		int status = execute.getStatus();
 		if(200 != status){
 			log.error("建筑垃圾装载模型调用失败:" + execute.body());
-			return null;
+			throw new RuntimeException("建筑垃圾装载模型调用失败:" + execute.body());
 		}
 		JSONObject result = JSON.parseObject(execute.body());
 		String predicted_labels = result.getString("predicted_label");
@@ -187,22 +183,29 @@
 	 * @param modelEnum
 	 * @return
 	 */
-	public static boolean modelCheck(String url, ImageModelEnum modelEnum){
+	public static Map<String, Object> modelCheck(String url, ImageModelEnum modelEnum) throws Exception{
+		Map<String, Object> map = new HashMap<>();
 		switch (modelEnum){
 			case TOP_SEAL:
 				List<String> list1 = closedTopModel(url);
+				map.put("r", JSON.toJSONString(list1));
+				map.put("b", !(list1.contains("Loaded Cargo - Unsealed") || list1.contains("ttt")));
 				//其中包含装载未关闭,视为异常
-				return !(list1.contains("Loaded Cargo - Unsealed") || list1.contains("ttt"));
+				return map;
 			case CAMERA_FAULT:
 				List<String> list2 = cameraFaultModel(url);
+				map.put("r", JSON.toJSONString(list2));
+				map.put("b", list2.contains("normalcy"));
 				//其中包含正常,视为正常
-				return list2.contains("normalcy");
+				return map;
 			case CONSTRUCTION_WASTE_LOAD: // TODO 待完善
 				List<String> list3 = constructionWasteLoadModel(url);
+				map.put("r", JSON.toJSONString(list3));
+				map.put("b", list3.contains("normalcy"));
 				//其中包含正常,视为正常
-				return list3.contains("normalcy");
+				return map;
 		}
-		return false;
+		return null;
 	}
 	
 	

--
Gitblit v1.7.1