From 0916bb4ea987c0599b6af6bb8dd251a071770e05 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 23 十月 2025 14:32:15 +0800
Subject: [PATCH] 通用下拉选择框值从视图获取
---
src/main/java/com/zy/asrs/controller/MapController.java | 252 ++++++++++---------------------------------------
1 files changed, 53 insertions(+), 199 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/MapController.java b/src/main/java/com/zy/asrs/controller/MapController.java
index 762d8ad..e36642e 100644
--- a/src/main/java/com/zy/asrs/controller/MapController.java
+++ b/src/main/java/com/zy/asrs/controller/MapController.java
@@ -8,15 +8,18 @@
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.utils.LocMapConstants;
import com.zy.asrs.utils.Utils;
import com.zy.common.web.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
-import java.io.*;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
@RestController
@@ -27,207 +30,58 @@
@Autowired
private LocDetlService locDetlService;
- private static final List<String> DISABLE_LOC_NO = new ArrayList<String>() {{
-
- }};
-
@GetMapping("/map/getData/auth")
@ManagerAuth
- public String getMapData(@RequestParam Integer lev,@RequestParam Integer area) {
- try {
- String mapFilename = "map.json";
-// String fileName ="file:" + new ClassPathResource(mapFilename).getPath();
- //鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁
- List<LocMast> locMasts = locMastService.selectLocByLev(lev);
- switch (area){
- case 1:
- break;
- case 2:
- case 3:
- mapFilename = "DTBnode.json";
- locMasts = locMastService.selectNodeBLocByLev(lev);
- break;
- case 4:
- mapFilename = "DTCnode.json";
- locMasts = locMastService.selectNodeCLocByLev(lev);
- break;
- case 5:
- mapFilename = "DTDnode.json";
- locMasts = locMastService.selectNodeDLocByLev(lev);
- break;
- case 6:
- mapFilename = "DTEnode.json";
- locMasts = locMastService.selectNodeELocByLev(lev);
- break;
+ public String getMapData(@RequestParam String area, @RequestParam Integer lev) {
+ //鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁
+ List<LocMast> locMasts = locMastService.selectNodeLocByLev(area, lev);
- }
- String fileName = this.getClass().getClassLoader().getResource(mapFilename).getPath();//鑾峰彇鏂囦欢璺緞
-// File file = new File("D:\\workspace\\zy-asrs\\src\\main\\resources\\map.json");
- File file = new File(fileName);
- StringBuffer stringBuffer = new StringBuffer();
- if (file.isFile() && file.exists()) {
- InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "GBK");
- BufferedReader br = new BufferedReader(isr);
- String lineTxt = null;
- while ((lineTxt = br.readLine()) != null) {
- stringBuffer.append(lineTxt);
- }
- br.close();
-
- //瑙f瀽json鍦板浘鏁版嵁
- List<ArrayList> arrayLists = JSON.parseArray(stringBuffer.toString(), ArrayList.class);
- for (String locNo : DISABLE_LOC_NO) {//绂佺敤璁剧疆搴撲綅
- int row = Utils.getRow(locNo);
- int bay = Utils.getBay(locNo);
- if (row >= 2 && row <= 12) {
- row++;
- }else if (row == 13) {
- row += 2;
- }
- ArrayList rowData = arrayLists.get(row);
- Object o = rowData.get(bay);
- JSONObject jsonObject = JSON.parseObject(o.toString());
- jsonObject.put("value", 10);//灏嗙鐢ㄥ簱浣嶈繘琛岃缃�
- //鏇存柊list
- rowData.set(bay, jsonObject);
- arrayLists.set(row, rowData);
- }
-
-
-
- for (LocMast locMast : locMasts) {
-
- Integer row = locMast.getRow1();
- Integer bay = locMast.getBay1();
-
- switch (area){
- case 1:
- if (row % 4 == 0 || (row+1) % 4 == 0) {
- row=row+locMast.getCrnNo();
- }else{
- row=row+locMast.getCrnNo()-1;
- }
- bay=32-bay;
- break;
- case 2:
- case 3:
- if (row<=3 || row>=5){
- if (row%1==0){
- row=row+(row/1)-1;
- }else {
- row=row+((row+1)/1)-1;
- }
- }else {
- if (row%2==0){
- row=row+(row/2);
- }else {
- row=row+((row-1)/2);
- }
- }
- if (row == 9){
- row= row -1;
- }
-
- if (bay ==7) {
- bay=bay+2;
- }else{
- if (bay>7){
- bay=bay+locMast.getCrnNo()+1;
- }else {
- bay=bay+locMast.getCrnNo()-1;
- }
- }
- break;
- case 4:
- if (row<=11){
- if (row%2==0){
- row=row+(row/2)-1;
- }else {
- row=row+((row+1)/2)-1;
- }
- }else {
- if (row%2==0){
- row=row+(row/2);
- }else {
- row=row+((row-1)/2);
- }
- }
-
- if (bay % 10 == 0) {
- bay=bay+1;
- }else{
- if (bay>10){
- bay=bay+locMast.getCrnNo();
- }else {
- bay=bay+locMast.getCrnNo()-1;
- }
- }
- break;
- case 5:
- if (row<=11){
- if (row%2==0){
- row=row+(row/2)-1;
- }else {
- row=row+((row+1)/2)-1;
- }
- }else {
- if (row%2==0){
- row=row+(row/2);
- }else {
- row=row+((row-1)/2);
- }
- }
-
- if (bay % 7 == 0) {
- bay=bay+1;
- }else{
- if (bay>7){
- bay=bay+locMast.getCrnNo();
- }else {
- bay=bay+locMast.getCrnNo()-1;
- }
- }
- break;
-
-
-
- }
-
- if (area == 1 || area == 6){
- ArrayList rowData = arrayLists.get(row);
- Object o = rowData.get(bay);
- JSONObject jsonObject = JSON.parseObject(o.toString());
- jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙�
- jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵��
- //jsonObject.put("locSts$", locMast.getLocSts$());//搴撲綅鐘舵��
- //鏇存柊list
- rowData.set(bay, jsonObject);
- arrayLists.set(row, rowData);
- }else {
- ArrayList rowData = arrayLists.get(bay);
- Object o = rowData.get(row);
- JSONObject jsonObject = JSON.parseObject(o.toString());
- jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙�
- jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵��
- //jsonObject.put("locSts$", locMast.getLocSts$());//搴撲綅鐘舵��
- //鏇存柊list
- rowData.set(row, jsonObject);
- arrayLists.set(bay, rowData);
- }
-
-
-
- }
-
- return JSONObject.toJSONString(arrayLists);
- } else {
- System.out.println("鏂囦欢涓嶅瓨鍦�!");
- }
- } catch (IOException ioException) {
- ioException.printStackTrace();
+ // 鍔犺浇搴撳尯瀵瑰簲鍦板浘鏁版嵁
+ List<ArrayList> arrayLists;
+ switch (area) {
+ case "B":
+ arrayLists = LocMapConstants.B_LOC_MAP_FINAL;
+ break;
+ case "C":
+ arrayLists = LocMapConstants.C_LOC_MAP_FINAL;
+ break;
+ case "D":
+ arrayLists = LocMapConstants.D_LOC_MAP_FINAL;
+ break;
+ case "E":
+ arrayLists = LocMapConstants.E_LOC_MAP_FINAL;
+ break;
+ default:
+ arrayLists = LocMapConstants.A_LOC_MAP_FINAL;
+ break;
}
- return null;
+
+ // 闄搴撳尯澶栵紝鍏朵粬鍖烘病鏈夊眰锛岃�屼笖鎶婂垪瀛樺埌浜嗗眰鐨勬暟鎹噷锛岄渶瑕佽浆鎹㈠洖鏉�
+ if (!"A".equals(area)) {
+ locMasts = locMasts.stream().peek(locMast -> locMast.setBay1(locMast.getLev1())).collect(Collectors.toList());
+ }
+
+ for (LocMast locMast : locMasts) {
+
+ Integer row = locMast.getRow1();
+ Integer bay = locMast.getBay1();
+ // CDE鍙湁涓�鍒�,鎵�浠ュ垪鍙崇Щ
+ if ("C".equals(area) || "D".equals(area) || "E".equals(area)) {
+ ++ bay ;
+ }
+
+ ArrayList rowData = arrayLists.get(row);
+ Object o = rowData.get(bay);
+ JSONObject jsonObject = JSON.parseObject(o.toString());
+ jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙�
+ jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵��
+ //鏇存柊list
+ rowData.set(bay, jsonObject);
+ arrayLists.set(row, rowData);
+ }
+
+ return JSONObject.toJSONString(arrayLists);
}
@RequestMapping("/map/searchData/auth")
--
Gitblit v1.9.1