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 | 191 ++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 169 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/ReportQueryController.java b/src/main/java/com/zy/asrs/controller/ReportQueryController.java
index 9b4bf8c..15acf9e 100644
--- a/src/main/java/com/zy/asrs/controller/ReportQueryController.java
+++ b/src/main/java/com/zy/asrs/controller/ReportQueryController.java
@@ -2,19 +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;
/**
* 鏃ュ織缁熻鎺у埗鍣ㄥ眰
@@ -25,6 +30,8 @@
@RequestMapping("/report")
public class ReportQueryController extends BaseController {
+ @Autowired
+ private LocDetlService locDetlService;
@Autowired
private ReportQueryMapper reportQueryMapper;
@@ -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<>();
@@ -83,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 = "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);
+// }
//------------------绔欑偣鏃ュ叆鍑哄簱娆℃暟缁熻--------------------------------------
@@ -146,11 +236,67 @@
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(memo = "鏃ュ叆搴撴槑缁嗙粺璁″鍑�")
public R viewWorkInExport(@RequestBody JSONObject param){
List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ @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);
@@ -173,6 +319,7 @@
@ManagerAuth(memo = "鏃ュ嚭搴撴槑缁嗙粺璁″鍑�")
public R viewWorkOutExport(@RequestBody JSONObject param){
List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ @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);
--
Gitblit v1.9.1