From 6695f10802abaf7dab97513c66db46995799425f Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期五, 20 十二月 2024 15:26:20 +0800
Subject: [PATCH] #优化地图
---
src/main/java/com/zy/asrs/mapper/AgvLocMastMapper.java | 8 +++
src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java | 12 ++++++
src/main/java/com/zy/asrs/controller/AgvMapController.java | 42 ++++++++++++++------
src/main/java/com/zy/asrs/service/AgvLocMastService.java | 4 ++
4 files changed, 52 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/AgvMapController.java b/src/main/java/com/zy/asrs/controller/AgvMapController.java
index 8aaff06..f945e1b 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMapController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMapController.java
@@ -62,20 +62,36 @@
//鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁
List<AgvLocMast> locMasts = agvLocMastService.selectLocByLevAndFloor(lev, floor);
- List<AgvLocMast> distinctRow = agvLocMastService.selectDistinctLocByLevAndFloor(lev, floor);
- List<Integer> integers = new ArrayList<>();
+ List<AgvLocMast> distinctRow = new ArrayList<>();
+ List<Integer> rowIntegers = new ArrayList<>();
int min = 0;
int i =1;
- for (AgvLocMast locMast : distinctRow) {
- if (min > locMast.getMapRow1()) {
- min = locMast.getMapRow1();
- }
- if (locMast.getRightSide() == 1) {
- integers.add(i);
- }
- i++;
+ if (lev == 1 && floor == 1) {
+ distinctRow = agvLocMastService.selectDistinctLocByLevAndFloorMapbay1(lev, floor);
+ for (AgvLocMast locMast : distinctRow) {
+ if (min > locMast.getMapBay1()) {
+ min = locMast.getMapBay1();
+ }
+ if (locMast.getRightSide() == 1) {
+ rowIntegers.add(i);
+ }
+ i++;
+ }
+ } else {
+ distinctRow = agvLocMastService.selectDistinctLocByLevAndFloorMaprow1(lev, floor);
+ for (AgvLocMast locMast : distinctRow) {
+ if (min > locMast.getMapRow1()) {
+ min = locMast.getMapRow1();
+ }
+ if (locMast.getRightSide() == 1) {
+ rowIntegers.add(i);
+ }
+ i++;
+
+ }
}
+
for (AgvLocMast locMast : locMasts) {
Integer row = locMast.getMapRow1();
if (row < 0) {
@@ -88,11 +104,11 @@
int x = bay;
int y = row;
if (floor == 3) {
- y = generateMap3Row(integers, row);
+ y = generateMap3Row(rowIntegers, row);
} else if (floor == 1 && lev == 1) {
- x = generateMap1Bay(integers, bay);
+ x = generateMap1Bay(rowIntegers, bay);
} else {
- y = generateMap4Row(integers, row);
+ y = generateMap4Row(rowIntegers, row);
}
ArrayList rowData = arrayLists.get(x);
diff --git a/src/main/java/com/zy/asrs/mapper/AgvLocMastMapper.java b/src/main/java/com/zy/asrs/mapper/AgvLocMastMapper.java
index 8251128..96cd0c1 100644
--- a/src/main/java/com/zy/asrs/mapper/AgvLocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/AgvLocMastMapper.java
@@ -35,6 +35,12 @@
List<String> queryContainerTypeByLocType1(@Param("locType1")Short locType1);
- @Select("SELECT distinct map_row1 as mapRow1,right_side as rightSide FROM agv_loc_mast WHERE lev1 = #{lev1} And floor = #{floor} order by map_row1")
+ @Select("SELECT distinct map_row1 as mapRow1,map_bay1 as mapBay1,right_side as rightSide FROM agv_loc_mast WHERE lev1 = #{lev1} And floor = #{floor} order by map_row1")
List<AgvLocMast> selectDistinctLocByLevAndFloor(@Param("lev1")Integer lev1,@Param("floor")Integer floor);
+
+ @Select("SELECT distinct map_row1 as mapRow1,right_side as rightSide FROM agv_loc_mast WHERE lev1 = #{lev1} And floor = #{floor} order by map_row1")
+ List<AgvLocMast> selectDistinctLocByLevAndFloorMaprow1(@Param("lev1")Integer lev1,@Param("floor")Integer floor);
+
+ @Select("SELECT distinct map_bay1 as mapBay1,right_side as rightSide FROM agv_loc_mast WHERE lev1 = #{lev1} And floor = #{floor} order by map_bay1")
+ List<AgvLocMast> selectDistinctLocByLevAndFloorMapbay1(@Param("lev1")Integer lev1,@Param("floor")Integer floor);
}
diff --git a/src/main/java/com/zy/asrs/service/AgvLocMastService.java b/src/main/java/com/zy/asrs/service/AgvLocMastService.java
index 5ea50b9..0623e67 100644
--- a/src/main/java/com/zy/asrs/service/AgvLocMastService.java
+++ b/src/main/java/com/zy/asrs/service/AgvLocMastService.java
@@ -35,4 +35,8 @@
List<AgvLocMast> selectDistinctLocByLevAndFloor(int lev, int floor);
+ List<AgvLocMast> selectDistinctLocByLevAndFloorMaprow1(int lev, int floor);
+
+ List<AgvLocMast> selectDistinctLocByLevAndFloorMapbay1(int lev, int floor);
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java
index 2a91852..9b308c5 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvLocMastServiceImpl.java
@@ -420,4 +420,16 @@
return this.agvLocMastMapper.selectDistinctLocByLevAndFloor(lev,floor);
}
+ @Override
+ public List<AgvLocMast> selectDistinctLocByLevAndFloorMaprow1(int lev, int floor) {
+
+ return this.agvLocMastMapper.selectDistinctLocByLevAndFloorMaprow1(lev,floor);
+ }
+
+ @Override
+ public List<AgvLocMast> selectDistinctLocByLevAndFloorMapbay1(int lev, int floor) {
+
+ return this.agvLocMastMapper.selectDistinctLocByLevAndFloorMapbay1(lev,floor);
+ }
+
}
--
Gitblit v1.9.1