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 |  230 +++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 188 insertions(+), 42 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ReportQueryController.java b/src/main/java/com/zy/asrs/controller/ReportQueryController.java
index fc5f5ab..15acf9e 100644
--- a/src/main/java/com/zy/asrs/controller/ReportQueryController.java
+++ b/src/main/java/com/zy/asrs/controller/ReportQueryController.java
@@ -2,18 +2,24 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
+import com.core.common.R;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.ReportQueryMapper;
+import com.zy.asrs.service.LocDetlService;
 import com.zy.common.web.BaseController;
-import com.core.annotations.ManagerAuth;
-import com.core.common.R;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 鏃ュ織缁熻鎺у埗鍣ㄥ眰
@@ -24,6 +30,8 @@
 @RequestMapping("/report")
 public class ReportQueryController extends BaseController {
 
+	@Autowired
+	private LocDetlService locDetlService;
 	@Autowired
 	private ReportQueryMapper reportQueryMapper;
 
@@ -45,7 +53,7 @@
 
 	// 瀵煎嚭
 	@RequestMapping(value = "/viewStockUseExport.action")
-	@ManagerAuth
+	@ManagerAuth(memo = "搴撲綅浣跨敤缁熻瀵煎嚭")
 	public R viewStockUseExport(@RequestBody JSONObject param){
 		List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
 		List<ViewStockUseBean> list = reportQueryMapper.getViewStockUseAll(new ViewStockUseBean());
@@ -53,7 +61,6 @@
 	}
 
 	//------------------搴撳瓨婊炵暀缁熻--------------------------------------
-	@ResponseBody
 	@RequestMapping("/viewStayTimeList.action")
 	public Map<String,Object> queryViewStayTimeListByPages(@RequestParam(defaultValue = "1")Integer curr,
 														   @RequestParam(defaultValue = "10")Integer limit,
@@ -61,6 +68,10 @@
 		ViewStayTimeBean bean = new ViewStayTimeBean();
 		bean.setPageSize(limit);
 		bean.setPageNumber(curr);
+		String locNo = String.valueOf(param.get("loc_no"));
+		if (!Cools.isEmpty(locNo) && !locNo.equals("null")) {
+			bean.setLoc_no(locNo);
+		}
 		List<ViewStayTimeBean> list = reportQueryMapper.queryViewStayTimeList(bean);
 		int count = reportQueryMapper.getViewStayTimeCount(bean);
 		Page<ViewStayTimeBean> page = new Page<>();
@@ -71,7 +82,7 @@
 
 	// 瀵煎嚭
 	@RequestMapping(value = "/viewStayTimeExport.action")
-	@ManagerAuth
+	@ManagerAuth(memo = "搴撳瓨婊炵暀缁熻瀵煎嚭")
 	public R viewStayTimeExport(@RequestBody JSONObject param){
 		List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
 		List<ViewStayTimeBean> list = reportQueryMapper.getViewStayTimeAll(new ViewStayTimeBean());
@@ -79,30 +90,114 @@
 	}
 
 	//-----------------搴撳瓨MAP鍥�--------------------------------------
+	@RequestMapping("/viewLocMapList/rows.action")
+	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 = "1")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);
+//	}
 
 
 	//------------------绔欑偣鏃ュ叆鍑哄簱娆℃暟缁熻--------------------------------------
@@ -123,7 +218,7 @@
 
 	//excel瀵煎嚭
 	@RequestMapping("/viewInOutExport.action")
-	@ManagerAuth
+	@ManagerAuth(memo = "绔欑偣鏃ュ叆鍑哄簱娆℃暟缁熻瀵煎嚭")
 	public R viewInOutExport(@RequestBody JSONObject param){
 		List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
 		List<ViewInOutBean> list = reportQueryMapper.getViewInOutAll(new ViewInOutBean());
@@ -132,12 +227,7 @@
 
 	//------------------鏃ュ叆搴撴槑缁嗙粺璁�--------------------------------------
 	@RequestMapping("/viewWorkInList.action")
-	public Map<String,Object> viewWorkInList(@RequestParam(defaultValue = "1")Integer curr,
-											 @RequestParam(defaultValue = "10")Integer limit,
-											 @RequestParam Map<String, Object> param){
-		ViewWorkInBean bean = new ViewWorkInBean();
-		bean.setPageSize(limit);
-		bean.setPageNumber(curr);
+	public Map<String,Object> viewWorkInList(ViewWorkInBean bean){
 		List<ViewWorkInBean> list = reportQueryMapper.queryViewWorkInList(bean);
 		int count = reportQueryMapper.getViewWorkInCount(bean);
 		Page<ViewWorkInBean> page = new Page<>();
@@ -146,23 +236,76 @@
 		return R.ok(page);
 	}
 
+	/**
+	 * 鏃ュ叆搴撴眹鎬绘煡璇�
+	 * @return
+	 */
+	@RequestMapping("/viewWorkCountInList.action")
+	public R viewWorkCountInList(@RequestParam(defaultValue = "1")Integer curr,
+								 @RequestParam(defaultValue = "10")Integer limit,
+								 @RequestParam Map<String, Object> param){
+		String startTime = "1970.1.2";
+		String endTime = "2099.1.2";
+		if (!Cools.isEmpty(param.get("query_date"))) {
+			String  queryDate = (String) param.get("query_date");
+			String[] split = queryDate.split(" - ");
+			startTime= split[0].split(" ")[0].replace("-",".");
+			endTime = split[1].split(" ")[0].replace("-",".");
+		}
+		List<ViewWorkCountInView> allCountIn = reportQueryMapper.selectWorkCountIn(Integer.valueOf((String) param.get("pageNumber")), Integer.valueOf((String) param.get("pageSize")), (String) param.get("matnr"), startTime,endTime);
+		Integer total = reportQueryMapper.selectWorkCountInTotal((String) param.get("matnr"), startTime,endTime);
+		Page<ViewWorkCountInView> page = new Page<>();
+		page.setRecords(allCountIn);
+		page.setTotal(total);
+		Integer sum = reportQueryMapper.selectWorkCountInSum((String) param.get("matnr"), startTime,endTime);
+		HashMap<String, Object> result = new HashMap<>();
+		result.put("page",page);
+		result.put("sum",sum);
+		return R.ok(result);
+	}
+
+	/**
+	 * 鏃ュ嚭搴撴眹鎬�
+	 */
+	@RequestMapping("/viewWorkCountOutList.action")
+	public R viewWorkCountOutList(@RequestParam(defaultValue = "1")Integer curr,
+								  @RequestParam(defaultValue = "10")Integer limit,
+								  @RequestParam Map<String, Object> param){
+		String startTime = "1970.1.2";
+		String endTime = "2099.1.2";
+		if (!Cools.isEmpty(param.get("query_date"))) {
+			String  queryDate = (String) param.get("query_date");
+			String[] split = queryDate.split(" - ");
+			startTime= split[0].split(" ")[0].replace("-",".");
+			endTime = split[1].split(" ")[0].replace("-",".");
+		}
+		List<ViewWorkCountInView> allCountIn = reportQueryMapper.selectWorkCountOut(Integer.valueOf((String) param.get("pageNumber")), Integer.valueOf((String) param.get("pageSize")), (String) param.get("matnr"), startTime,endTime);
+		Integer total = reportQueryMapper.selectWorkCountOutTotal((String) param.get("matnr"), startTime,endTime);
+		Page<ViewWorkCountInView> page = new Page<>();
+		page.setRecords(allCountIn);
+		page.setTotal(total);
+		Integer sum = reportQueryMapper.selectWorkCountOutSum((String) param.get("matnr"), startTime,endTime);
+		HashMap<String, Object> result = new HashMap<>();
+		result.put("page",page);
+		result.put("sum",sum);
+		return R.ok(result);
+	}
+
 	//excel瀵煎嚭
 	@RequestMapping("/viewWorkInExport.action")
-	@ManagerAuth
+	@ManagerAuth(memo = "鏃ュ叆搴撴槑缁嗙粺璁″鍑�")
 	public R viewWorkInExport(@RequestBody JSONObject param){
 		List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
-		List<ViewWorkInBean> list = reportQueryMapper.getViewWorkInAll(new ViewWorkInBean());
+		@SuppressWarnings("unchecked")
+		ViewWorkInBean bean = Cools.conver((Map<? extends String, ?>) param.get("exportData"), ViewWorkInBean.class);
+		bean.setQuery_date(bean.getQuery_date());
+		List<ViewWorkInBean> list = reportQueryMapper.getViewWorkInAll(bean);
 		return R.ok(exportSupport(list, fields));
 	}
 
 	//------------------鏃ュ嚭搴撴槑缁嗙粺璁�--------------------------------------
 	@RequestMapping("/viewWorkOutList.action")
-	public R viewWorkOutList(@RequestParam(defaultValue = "1")Integer curr,
-						  @RequestParam(defaultValue = "10")Integer limit,
-						  @RequestParam Map<String, Object> param){
-		ViewWorkInBean bean = new ViewWorkInBean();
-		bean.setPageSize(limit);
-		bean.setPageNumber(curr);
+	public R viewWorkOutList(ViewWorkInBean bean){
 		List<ViewWorkInBean> list = reportQueryMapper.queryViewWorkOutList(bean);
 		int count = reportQueryMapper.getViewWorkOutCount(bean);
 		Page<ViewWorkInBean> page = new Page<>();
@@ -173,10 +316,13 @@
 
 	//excel瀵煎嚭
 	@RequestMapping("/viewWorkOutExport.action")
-	@ManagerAuth
+	@ManagerAuth(memo = "鏃ュ嚭搴撴槑缁嗙粺璁″鍑�")
 	public R viewWorkOutExport(@RequestBody JSONObject param){
 		List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
-		List<ViewWorkInBean> list = reportQueryMapper.getViewWorkOutAll(new ViewWorkInBean());
+		@SuppressWarnings("unchecked")
+		ViewWorkInBean bean = Cools.conver((Map<? extends String, ?>) param.get("exportData"), ViewWorkInBean.class);
+		bean.setQuery_date(bean.getQuery_date());
+		List<ViewWorkInBean> list = reportQueryMapper.getViewWorkOutAll(bean);
 		return R.ok(exportSupport(list, fields));
 	}
 

--
Gitblit v1.9.1