From 0a1ff7f86f00476c3f6e3ac7084be6f6f299de2f Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期五, 16 一月 2026 08:06:25 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/ReportQueryController.java |  118 +++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 99 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ReportQueryController.java b/src/main/java/com/zy/asrs/controller/ReportQueryController.java
index dc4f4ee..15acf9e 100644
--- a/src/main/java/com/zy/asrs/controller/ReportQueryController.java
+++ b/src/main/java/com/zy/asrs/controller/ReportQueryController.java
@@ -19,6 +19,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 鏃ュ織缁熻鎺у埗鍣ㄥ眰
@@ -93,31 +94,110 @@
 	public R queryViewLocMapRows(){
 		return R.ok().add(reportQueryMapper.getViewLocRowTotal());
 	}
+	@RequestMapping("/viewLocMapList/layers.action")
+	public R queryViewLocMapLevs(){
+		return R.ok().add(reportQueryMapper.getViewLocLevTotal());
+	}
 
 	@RequestMapping("/viewLocMapList.action")
-	public R queryViewLocMapListByPages(@RequestParam(defaultValue = "0")Integer row){
-		// 鑾峰彇鎺掔骇鏁版嵁
-		// 琛ㄦ牸鏍囬锛氬垪 ===>> 鍗囧簭
-		List<String> bays = reportQueryMapper.getViewLocBayCount(row);
-		// 锛佽〃鏍肩涓�鍒楁斁灞傜骇鏁�
-		bays.add(0, "");
-		// 琛ㄦ牸琛岋細灞� ====>> 鍊掑簭
-		List<String> levs = reportQueryMapper.getViewLocLevCount(row);
-		List<Map<String, Object>> body = new ArrayList<>();
-		for (String lev : levs){
-			// 鑾峰彇灞傜骇鏁版嵁
-			List<ViewLocMapDto> dtos = reportQueryMapper.getViewLocBays(row, Integer.parseInt(lev));
-			// 锛佽〃鏍肩涓�鍒楁斁灞傜骇鏁�
-			dtos.add(0, new ViewLocMapDto(null ,null, lev));
-			Map<String, Object> map = new HashMap<>();
-			map.put("loc", dtos);
-			body.add(map);
-		}
+	public R queryViewLocMapListByPages(
+			@RequestParam(required = false, defaultValue = "0") Integer row,
+			@RequestParam(required = false) Integer layer) {
+
 		Map<String, Object> result = new HashMap<>();
-		result.put("title", bays);
+		List<String> title = new ArrayList<>();
+		List<Map<String, Object>> body = new ArrayList<>();
+
+		if (layer != null && layer > 0) {
+			// 鈹�鈹� 鎸夊眰鏄剧ず鎵�鏈夋帓 脳 鎵�鏈夊垪 鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+
+			// 1. 琛ㄥご锛氭墍鏈� bay
+			List<String> allBays = reportQueryMapper.getAllBays(); // 鎴栫敓鎴� 1 鍒� maxBay
+			title.add(""); // 绗竴鍒楁斁鎺掑彿
+			title.addAll(allBays);
+
+			// 2. 鑾峰彇璇ュ眰鎵�鏈夊簱浣�
+			List<ViewLocMapDto> locs = reportQueryMapper.getLocMapByLayer(layer);
+
+			// 3. 鎸� row 鍒嗙粍锛堟帹鑽愮敤 Map 鎴� Stream 鍒嗙粍锛�
+			Map<Integer, List<ViewLocMapDto>> rowMap = locs.stream()
+					.collect(Collectors.groupingBy(ViewLocMapDto::getRow1));
+
+			// 4. 閬嶅巻鎵�鏈夋帓锛岀敓鎴愭瘡涓�琛�
+			List<Integer> allRows = reportQueryMapper.getAllRows();
+			for (Integer currentRow : allRows) {
+				List<ViewLocMapDto> rowData = rowMap.getOrDefault(currentRow, new ArrayList<>());
+
+				// 鎸� bay 鎺掑簭骞惰ˉ榻愮┖浣�
+				Map<Integer, ViewLocMapDto> bayMap = rowData.stream()
+						.collect(Collectors.toMap(ViewLocMapDto::getBay1, d -> d));
+
+				List<ViewLocMapDto> line = new ArrayList<>();
+				// 绗竴鍒楋細鎺掑彿
+				line.add(new ViewLocMapDto(null, null, String.valueOf(currentRow)));
+
+				// 濉厖鎵�鏈� bay
+				for (String bayStr : allBays) {
+					int bay = Integer.parseInt(bayStr);
+					ViewLocMapDto dto = bayMap.get(bay);
+					if (dto != null) {
+						line.add(dto);
+					} else {
+						// 鏃犲簱浣� 鈫� 琛ョ┖
+						line.add(new ViewLocMapDto(null, 0, null)); // 鎴栬嚜瀹氫箟绌虹姸鎬�
+					}
+				}
+
+				Map<String, Object> map = new HashMap<>();
+				map.put("loc", line);
+				body.add(map);
+			}
+		}
+		else {
+			// 鈹�鈹� 鎸夋帓妯″紡锛堝師鏈夐�昏緫锛� 鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+			title = reportQueryMapper.getViewLocBayCount(row);
+			title.add(0, "");
+
+			List<String> levs = reportQueryMapper.getViewLocLevCount(row);
+			body = new ArrayList<>();
+
+			for (String lev : levs) {
+				List<ViewLocMapDto> dtos = reportQueryMapper.getViewLocBays(row, Integer.parseInt(lev));
+				dtos.add(0, new ViewLocMapDto(null, null, lev));
+				Map<String, Object> map = new HashMap<>();
+				map.put("loc", dtos);
+				body.add(map);
+			}
+		}
+
+		result.put("title", title);
 		result.put("body", body);
 		return R.ok(result);
 	}
+//	@RequestMapping("/viewLocMapList.action")
+//	public R queryViewLocMapListByPages(@RequestParam(defaultValue = "0")Integer row){
+//		// 鑾峰彇鎺掔骇鏁版嵁
+//		// 琛ㄦ牸鏍囬锛氬垪 ===>> 鍗囧簭
+//		List<String> bays = reportQueryMapper.getViewLocBayCount(row);
+//		// 锛佽〃鏍肩涓�鍒楁斁灞傜骇鏁�
+//		bays.add(0, "");
+//		// 琛ㄦ牸琛岋細灞� ====>> 鍊掑簭
+//		List<String> levs = reportQueryMapper.getViewLocLevCount(row);
+//		List<Map<String, Object>> body = new ArrayList<>();
+//		for (String lev : levs){
+//			// 鑾峰彇灞傜骇鏁版嵁
+//			List<ViewLocMapDto> dtos = reportQueryMapper.getViewLocBays(row, Integer.parseInt(lev));
+//			// 锛佽〃鏍肩涓�鍒楁斁灞傜骇鏁�
+//			dtos.add(0, new ViewLocMapDto(null ,null, lev));
+//			Map<String, Object> map = new HashMap<>();
+//			map.put("loc", dtos);
+//			body.add(map);
+//		}
+//		Map<String, Object> result = new HashMap<>();
+//		result.put("title", bays);
+//		result.put("body", body);
+//		return R.ok(result);
+//	}
 
 
 	//------------------绔欑偣鏃ュ叆鍑哄簱娆℃暟缁熻--------------------------------------

--
Gitblit v1.9.1