From 4c7e3f113b80e37c52163c30b80b9256f0bee5e3 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 17 十一月 2025 13:34:39 +0800
Subject: [PATCH] #
---
src/main/webapp/views/locMap/locMap.html | 110 +++-----------------------
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 6 +
src/main/java/com/zy/asrs/controller/ConsoleController.java | 44 +++++-----
src/main/java/com/zy/asrs/controller/LocMastController.java | 3
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 52 +++++++++++-
src/main/resources/mapper/LocMastMapper.xml | 4 +
src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 3
src/main/java/com/zy/core/MainProcess.java | 2
src/main/java/com/zy/core/enums/RedisKeyType.java | 2
src/main/java/com/zy/asrs/service/LocMastService.java | 3
src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java | 4
11 files changed, 107 insertions(+), 126 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index b45fedb..5d19fb7 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -1,5 +1,7 @@
package com.zy.asrs.controller;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
@@ -10,20 +12,16 @@
import com.zy.asrs.domain.vo.CrnDetailVo;
import com.zy.asrs.domain.vo.CrnLatestDataVo;
import com.zy.asrs.domain.vo.StationLatestDataVo;
-import com.zy.asrs.entity.BasCrnpErr;
-import com.zy.asrs.entity.BasMap;
-import com.zy.asrs.entity.DeviceConfig;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.BasCrnpErrService;
-import com.zy.asrs.service.BasMapService;
-import com.zy.asrs.service.DeviceConfigService;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
import com.zy.common.CodeRes;
import com.zy.common.model.MapNode;
-import com.zy.common.model.enums.NavigationMapType;
import com.zy.common.utils.RedisUtil;
+import com.zy.core.News;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.CrnModeType;
+import com.zy.core.enums.MapNodeType;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.protocol.CrnProtocol;
@@ -56,6 +54,8 @@
private BasMapService basMapService;
@Autowired
private RedisUtil redisUtil;
+ @Autowired
+ private LocMastService locMastService;
@PostMapping("/system/running/status")
@ManagerAuth(memo = "绯荤粺杩愯鐘舵��")
@@ -264,11 +264,7 @@
@GetMapping("/map/lev/list")
@ManagerAuth
public R getMapLevList() {
- List<BasMap> basMaps = basMapService.selectList(new EntityWrapper<BasMap>().orderBy("lev", true));
- ArrayList<Integer> levList = new ArrayList<>();
- for (BasMap basMap : basMaps) {
- levList.add(basMap.getLev());
- }
+ List<Integer> levList = locMastService.getLevList();
return R.ok().add(levList);
}
@@ -276,14 +272,20 @@
* 鑾峰彇鍦板浘鏁版嵁
*/
@GetMapping("/map/{lev}/auth")
- @ManagerAuth
- public R getMapFromRedis(@PathVariable Integer lev) {
- Object data = redisUtil.get(RedisKeyType.MAP.key + lev);
- if (data == null) {
- return R.error();
+ public R getLocMap(@PathVariable Integer lev) {
+ Object object = redisUtil.get(RedisKeyType.LOC_MAP_BASE.key);
+ if (object == null) {
+ return R.error("鍦板浘鏈垵濮嬪寲");
}
-
- return R.ok();
+ List<List<HashMap<String, Object>>> mapNodeList = (List<List<HashMap<String, Object>>>) object;
+ List<LocMast> locMastList = locMastService.selectLocByLev(lev);
+ for (LocMast locMast : locMastList) {
+ String[] locType = locMast.getLocType().split("-");
+ HashMap<String, Object> mapNode = mapNodeList.get(Integer.parseInt(locType[0])).get(Integer.parseInt(locType[1]));
+ mapNode.put("locSts", locMast.getLocSts());
+ mapNode.put("locNo", locMast.getLocNo());
+ }
+ return R.ok().add(mapNodeList);
}
}
diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 9f2d29e..d3beb2f 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -188,10 +188,13 @@
LocMast locMast = new LocMast();
int row = (int) map.get("row");
int bay = (int) map.get("bay");
+ int mapX = (int) map.get("mapX");
+ int mapY = (int) map.get("mapY");
locMast.setLocNo(Utils.getLocNo(row, bay, finalLev));
locMast.setRow1(row);
locMast.setBay1(bay);
locMast.setLev1(finalLev);
+ locMast.setLocType(Utils.getLocNo(mapX, mapY, finalLev));
locMast.setStatus(1);
locMast.setAppeTime(new Date());
locMastService.insert(locMast);
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 388b99a..1588dd6 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -21,4 +21,7 @@
List<LocMast> selectEmptyLocNos(@Param("locNos") List<String> locNos);
List<LocMast> selectNotEmptyLocNos(@Param("locNos") List<String> locNos);
+
+ //鏌ヨ鎵�鏈夋ゼ灞�
+ List<Integer> getLevList();
}
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index de5270c..92edc4c 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -17,4 +17,7 @@
List<LocMast> selectEmptyLocNos(List<String> locNos);
List<LocMast> selectNotEmptyLocNos(List<String> locNos);
+
+ //鏌ヨ鎵�鏈夋ゼ灞�
+ List<Integer> getLevList();
}
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index 3fabe71..84f3c58 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -1,7 +1,6 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.core.common.Cools;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.mapper.LocMastMapper;
import com.zy.asrs.service.LocMastService;
@@ -41,4 +40,9 @@
}
return this.baseMapper.selectNotEmptyLocNos(locNos);
}
+
+ @Override
+ public List<Integer> getLevList() {
+ return this.baseMapper.getLevList();
+ }
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index a2afd87..89b3b41 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1,13 +1,22 @@
package com.zy.asrs.service.impl;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
import com.zy.asrs.entity.BasMap;
+import com.zy.asrs.entity.LocMast;
import com.zy.asrs.service.BasMapService;
+import com.zy.asrs.utils.Utils;
+import com.zy.common.utils.RedisUtil;
+import com.zy.core.enums.MapNodeType;
+import com.zy.core.enums.RedisKeyType;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
/**
@@ -19,14 +28,47 @@
@Autowired
private BasMapService basMapService;
+ @Autowired
+ private RedisUtil redisUtil;
- // 鍒濆鍖栧簱浣嶅湴鍥�
+ //鍒濆鍖栧簱浣嶅湴鍥炬暟鎹粨鏋�
public void initLocMap() {
- List<BasMap> basMaps = basMapService.selectList(new EntityWrapper<BasMap>().orderBy("lev", true));
- ArrayList<Integer> levList = new ArrayList<>();
- for (BasMap basMap : basMaps) {
- levList.add(basMap.getLev());
+ Object object = redisUtil.get(RedisKeyType.LOC_MAP_BASE.key);
+ if (object != null) {
+ return;
}
+
+ BasMap basMap = basMapService.selectOne(new EntityWrapper<BasMap>().eq("lev", 1));
+ if (Cools.isEmpty(basMap)){
+ //缂哄皯鍒濆鍖栧簱浣嶅湴鍥�
+ return;
+ }
+
+ List<List<JSONObject>> dataList = JSON.parseObject(basMap.getData(), List.class);
+ List<List<HashMap<String, Object>>> mapNodeList = new ArrayList<>();
+ for (int i = 0; i < dataList.size(); i++) {
+ List<JSONObject> row = dataList.get(i);
+ List<HashMap<String, Object>> mapNodeRow = new ArrayList<>();
+
+ for (int j = 0; j < row.size(); j++) {
+ JSONObject map = row.get(j);
+
+ HashMap<String, Object> mapNode = new HashMap<>();
+ mapNode.put("id", i + "-" + j);
+
+ String nodeType = map.getString("type");
+ if("shelf".equals(nodeType)) {
+ mapNode.put("value", MapNodeType.NORMAL_PATH.id);
+ }else {
+ mapNode.put("value", MapNodeType.DISABLE.id);
+ }
+
+ mapNodeRow.add(mapNode);
+ }
+ mapNodeList.add(mapNodeRow);
+ }
+
+ redisUtil.set(RedisKeyType.LOC_MAP_BASE.key, mapNodeList);
}
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index fcb313a..0ddb41a 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -41,7 +41,7 @@
continue;
}
- // 鍒濆鍖栧簱浣嶅湴鍥�
+ // 鍒濆鍖栧簱浣嶅湴鍥炬暟鎹粨鏋�
mainService.initLocMap();
// 闂撮殧
diff --git a/src/main/java/com/zy/core/enums/RedisKeyType.java b/src/main/java/com/zy/core/enums/RedisKeyType.java
index 8c44cd7..b62c040 100644
--- a/src/main/java/com/zy/core/enums/RedisKeyType.java
+++ b/src/main/java/com/zy/core/enums/RedisKeyType.java
@@ -17,7 +17,7 @@
LOG_LIMIT("log_limit_"),
SYSTEM_CONFIG_MAP("system_config_map"),
- MAP("map_"),
+ LOC_MAP_BASE("loc_map_base"),
;
public String key;
diff --git a/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java b/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java
index 4629f30..694ef52 100644
--- a/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java
+++ b/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java
@@ -167,7 +167,7 @@
}
}
idx++;
- Thread.sleep(500L);
+ Thread.sleep(500);
} while (idx < 5);
if (command.getAckFinish() == 0) {
@@ -184,7 +184,7 @@
}
}
i++;
- Thread.sleep(500L);
+ Thread.sleep(500);
} while (i < 5);
}
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 85017c4..153d314 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -56,4 +56,8 @@
and loc_sts not in ('O')
order by row1
</select>
+
+ <select id="getLevList" resultType="java.lang.Integer">
+ select distinct lev1 from asr_loc_mast
+ </select>
</mapper>
diff --git a/src/main/webapp/views/locMap/locMap.html b/src/main/webapp/views/locMap/locMap.html
index bf5fa32..a8a34d1 100644
--- a/src/main/webapp/views/locMap/locMap.html
+++ b/src/main/webapp/views/locMap/locMap.html
@@ -238,101 +238,22 @@
}
});
},
- getShuttleStateInfo() {
- this.sendWs(JSON.stringify({
- "url": "/shuttle/table/shuttle/state",
- "data": {}
- }))
- },
- setShuttleStateInfo(res) {
- // 鍥涘悜绌挎杞︿俊鎭〃鑾峰彇
- let that = this
- if (res.code == 200) {
- let currentLevShuttle = []//褰撳墠妤煎眰灏忚溅闆嗗悎
- res.data.forEach((item,idx) => {
- if (item != null && item.point != undefined && item.point != null) {
- if (item.point.z == that.currentLev) {
- currentLevShuttle.push(item);
- }
- }
- })
- that.shuttleList = res.data
- if (that.shuttleColorList.length == 0) {
- let colorList = []//闅忔満灏忚溅棰滆壊
- res.data.forEach((item,idx) => {
- colorList[item.shuttleNo] = that.colorRGB()
- })
- that.shuttleColorList = colorList
- }
-
- const result = this.findShuttleDiffList(this.currentLevShuttleList, currentLevShuttle);
- if (!result) {
- //灏忚溅瀛樺湪鍙樺姩锛岄噸鏂版覆鏌撳叏閮ㄥ皬杞�
- pixiShuttleMap.forEach((shuttle,index) => {
- pixiApp.stage.removeChild(shuttle)
- pixiShuttleMap.delete(index)
- })
-
- currentLevShuttle.forEach((item,index) => {
- pixiApp.loader.load((loader, resources) => {
- // 绾圭悊鍒涘缓灏忚溅
- const shuttle = new PIXI.Sprite(resources.shuttle.texture);
- shuttle.width = width
- shuttle.height = height
- shuttle.x = (item.wcsPoint.y - 0) * width;//鏇存柊鍧愭爣x
- shuttle.y = (item.wcsPoint.x - 1) * height;//鏇存柊鍧愭爣y
- shuttle.updateMoveStatus = true;//鍔ㄧ敾鎵ц瀹屾垚
- shuttle.interactive = true; // 蹇呴』瑕佽缃墠鑳芥帴鏀朵簨浠�
- shuttle.buttonMode = true; // 璁╁厜鏍囧湪hover鏃跺彉涓烘墜鍨嬫寚閽�
- shuttle.on('pointerdown', (e) => {
- this.drawerShuttle = true;
- this.drawerShuttleData = item;
- })
- pixiApp.stage.addChild(shuttle);
- pixiShuttleMap.set(item.shuttleNo, shuttle);
- })
-
- if (item.moveAdvancePath != null && item.moveAdvancePath.length > 0) {//瀛樺湪棰勮璺緞锛岃繘琛屾覆鏌�
- this.addMoveAdvancePath(item.moveAdvancePath, item.shuttleNo);//娣诲姞棰勮璺緞
- }
-
- })
- }else {
- //灏忚溅涓嶅瓨鍦ㄥ彉鍔紝娓叉煋灏忚溅浣嶇疆
- currentLevShuttle.forEach((item,index) => {
- this.updateShuttleXY(item)
- })
-
- const resultPath = this.findShuttlePathDiffList(JSON.parse(JSON.stringify(this.currentLevShuttleList)), JSON.parse(JSON.stringify(currentLevShuttle)));
- if (!resultPath) {
- //棰勮璺緞瀛樺湪鍙樺姩锛屾覆鏌撹矾寰�
- currentLevShuttle.forEach((item,index) => {
- //鍒犻櫎棰勮璺緞
- this.removeMoveAdvancePath(item.shuttleNo);
- if (item.moveAdvancePath != null && item.moveAdvancePath.length > 0) {//瀛樺湪棰勮璺緞锛岃繘琛屾覆鏌�
- this.addMoveAdvancePath(item.moveAdvancePath, item.shuttleNo);//娣诲姞棰勮璺緞
- }
- })
- }
- }
- that.currentLevShuttleList = currentLevShuttle;
- }
- },
//鑾峰彇鍦板浘鏁版嵁
getMap(lev) {
- this.sendWs(JSON.stringify({
- "url": "/console/locMap/auth",
- "data": lev
- }))
- },
- setMap(res) {
- //鑾峰彇鍦板浘鏁版嵁
- let data = res.data
- let tmp = []
- for (let i = 1; i < data.length - 1; i++) {
- tmp.push(data[i])
- }
- this.createMapData(tmp)
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/console/map/" + lev + "/auth",
+ headers: {
+ 'token': localStorage.getItem('token')
+ },
+ data: {},
+ method: 'get',
+ success: function(res) {
+ //鑾峰彇鍦板浘鏁版嵁
+ let data = res.data
+ that.createMapData(data)
+ }
+ })
},
changeFloor(lev) {
this.currentLev = lev
@@ -365,7 +286,7 @@
pixiApp.loader.add('shuttle', '../static/images/sxcar.png');
// 浠嶨raphics瀵硅薄鍒涘缓涓�涓汗鐞�
- graphicsF = pixiApp.renderer.generateTexture(getContainer(1000));
+ graphicsF = pixiApp.renderer.generateTexture(getContainer(1000));
graphics0 = pixiApp.renderer.generateTexture(getContainer(0));
graphics3 = pixiApp.renderer.generateTexture(getContainer(3));
graphics4 = pixiApp.renderer.generateTexture(getContainer(4));
@@ -478,7 +399,6 @@
this.reloadMap = false
pixiStageList = [map.length]//鍒濆鍖栧垪琛�
pixiStaMap = new Map();//閲嶇疆
-
objectsContainer.removeChildren()
map.forEach((item,index) => {
pixiStageList[index] = [item.length]
--
Gitblit v1.9.1