From 920bb5635c88c2f2f9a21134c81ebbc344539987 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期二, 16 十二月 2025 11:07:06 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AreaGovernService.java | 9 +++++++++
zy-acs-flow/src/map/http.js | 4 ++--
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AreaService.java | 2 ++
zy-acs-flow/src/map/tool.js | 11 +++++++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java | 4 ++--
zy-acs-flow/src/map/areaSettings/index.jsx | 3 +++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AreaServiceImpl.java | 12 ++++++++++++
7 files changed, 41 insertions(+), 4 deletions(-)
diff --git a/zy-acs-flow/src/map/areaSettings/index.jsx b/zy-acs-flow/src/map/areaSettings/index.jsx
index b15b961..38af2ea 100644
--- a/zy-acs-flow/src/map/areaSettings/index.jsx
+++ b/zy-acs-flow/src/map/areaSettings/index.jsx
@@ -153,6 +153,9 @@
}
const success = await removeArea(id);
if (success) {
+ if (sprite) {
+ Tool.removeAreaSprite(sprite);
+ }
onCancel?.();
}
};
diff --git a/zy-acs-flow/src/map/http.js b/zy-acs-flow/src/map/http.js
index 934f21e..4754b48 100644
--- a/zy-acs-flow/src/map/http.js
+++ b/zy-acs-flow/src/map/http.js
@@ -447,9 +447,9 @@
return null;
};
-export const removeArea = async (areaId) => {
+export const removeArea = async (id) => {
try {
- const res = await request.post('/map/area/remove', { areaId });
+ const res = await request.post('/map/area/remove', { id });
const { code, msg } = res.data;
if (code === 200) {
notify.success(msg);
diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index 87f6c59..791f5c1 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -934,6 +934,17 @@
}
};
+export const removeAreaSprite = (sprite) => {
+ if (!sprite || sprite?.data?.type !== DEVICE_TYPE.AREA) {
+ return;
+ }
+ const parent = sprite.parent || mapContainer;
+ if (parent) {
+ parent.removeChild(sprite);
+ }
+ sprite.destroy({ children: true, texture: false, baseTexture: false });
+};
+
export const loadAreas = (curZone, setCurSprite) => {
if (!mapContainer) return;
clearAreas();
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AreaGovernService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AreaGovernService.java
index b29eb03..b8d9e60 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AreaGovernService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AreaGovernService.java
@@ -138,6 +138,15 @@
return codeList;
}
+ // reset and set new area
+ public Boolean removeArea(Long areaId) {
+ if (null == areaId) { return false; }
+ List<String> codeList = AREA_CODE.get(areaId);
+ AREA_CODE.get(areaId).clear();
+ AREA_CODE.remove(areaId);
+ return Boolean.TRUE;
+ }
+
public List<String> findCodesInArea(MapPointDto start, MapPointDto end) {
double minX = Math.min(start.getX(), end.getX());
double maxX = Math.max(start.getX(), end.getX());
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
index 570f825..babdeee 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
@@ -445,8 +445,7 @@
@GetMapping("/area/get")
public R areaGet(@RequestParam Long areaId) {
Area area = areaService.getById(areaId);
- MapAreaResult areaResult = new MapAreaResult();
- return R.ok().add(areaResult.sync(area));
+ return R.ok().add(new MapAreaResult().sync(area));
}
@PreAuthorize("hasAuthority('manager:loc:update')")
@@ -464,6 +463,7 @@
@PreAuthorize("hasAuthority('manager:loc:remove')")
@PostMapping("/area/remove")
public R areaRemove(@RequestBody MapAreaParam param) {
+ areaService.removeMapArea(param.getId(), getLoginUserId());
return R.ok();
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AreaService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AreaService.java
index 00f266c..b8a0bd2 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AreaService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AreaService.java
@@ -11,4 +11,6 @@
MapAreaResult modifyMapArea(MapAreaParam param, Long loginUserId);
+ void removeMapArea(Long id, Long loginUserId);
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AreaServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AreaServiceImpl.java
index 0ce1717..93ad8dd 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AreaServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AreaServiceImpl.java
@@ -97,6 +97,8 @@
}
if (needModify) {
+ area.setUpdateTime(new Date());
+ area.setUpdateBy(loginUserId);
if (!this.updateById(area)) {
throw new RuntimeException("failed to update Area");
}
@@ -105,4 +107,14 @@
return new MapAreaResult().sync(area);
}
+ @Override
+ public void removeMapArea(Long areaId, Long loginUserId) {
+ // area - agv
+ areaAgvService.remove(new LambdaQueryWrapper<AreaAgv>().eq(AreaAgv::getAreaId, areaId));
+ // cache
+ areaGovernService.removeArea(areaId);
+ // db
+ this.removeById(areaId);
+ }
+
}
--
Gitblit v1.9.1