From a957c1c914f6890c8a6a8c477495809b065fcbcf Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期五, 18 四月 2025 16:59:35 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/header/FakeFab.jsx                                                |    2 
 zy-acs-flow/src/map/http.js                                                           |   21 ++++++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java           |   15 +++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java |    6 ++-
 zy-acs-flow/src/map/MapPage.jsx                                                       |    2 +
 zy-acs-flow/src/map/header/RePositionBtn.jsx                                          |   40 ++++++++++++++++++++
 6 files changed, 83 insertions(+), 3 deletions(-)

diff --git a/zy-acs-flow/src/map/MapPage.jsx b/zy-acs-flow/src/map/MapPage.jsx
index 8082926..a92cbe7 100644
--- a/zy-acs-flow/src/map/MapPage.jsx
+++ b/zy-acs-flow/src/map/MapPage.jsx
@@ -25,6 +25,7 @@
 import PulseSignal from "../page/components/PulseSignal";
 import FakeFab from "./header/FakeFab";
 import RouteFab from "./header/RouteFab";
+import RePositionBtn from "./header/RePositionBtn";
 
 let player;
 let websocket;
@@ -282,6 +283,7 @@
                         >
                             {rcsStatus ? translate('page.map.action.shutdown') : translate('page.map.action.startup')}
                         </Button>
+                        <RePositionBtn />
                         <Button variant="contained" color="primary">
                             {translate('page.map.action.monitor')}
                         </Button>
diff --git a/zy-acs-flow/src/map/header/FakeFab.jsx b/zy-acs-flow/src/map/header/FakeFab.jsx
index 635c918..3fabf66 100644
--- a/zy-acs-flow/src/map/header/FakeFab.jsx
+++ b/zy-acs-flow/src/map/header/FakeFab.jsx
@@ -25,7 +25,7 @@
                     pass = true;
                 } else {
                     pass = false;
-                    if (!pwd) {
+                    if (pwd) {
                         alert('Incorrect password');
                     }
                 }
diff --git a/zy-acs-flow/src/map/header/RePositionBtn.jsx b/zy-acs-flow/src/map/header/RePositionBtn.jsx
new file mode 100644
index 0000000..2dedf87
--- /dev/null
+++ b/zy-acs-flow/src/map/header/RePositionBtn.jsx
@@ -0,0 +1,40 @@
+import React, { useState, useRef, useEffect, useMemo } from "react";
+import { useTranslate } from "react-admin";
+import {
+    Button,
+} from '@mui/material';
+import { handleRePositionAll } from "../http";
+
+const RePositionBtn = ({ onClick }) => {
+
+    const handleToggle = () => {
+        let pass = true;
+        const pwd = prompt("please enter password:");
+        if (pwd === 'xltys1995') {
+            pass = true;
+        } else {
+            pass = false;
+            if (pwd) {
+                alert('Incorrect password');
+            }
+        }
+        if (pass) {
+            handleRePositionAll(null, (res) => {
+                console.log(res);
+            });
+        }
+    }
+
+    return (
+        <Button
+            variant="contained"
+            color="primary"
+            onClick={handleToggle}
+            sx={{ mr: 2 }}
+        >
+            閲嶆柊瀹氫綅
+        </Button>
+    );
+}
+
+export default RePositionBtn;
\ No newline at end of file
diff --git a/zy-acs-flow/src/map/http.js b/zy-acs-flow/src/map/http.js
index 88ab8dc..fe7bd49 100644
--- a/zy-acs-flow/src/map/http.js
+++ b/zy-acs-flow/src/map/http.js
@@ -309,4 +309,25 @@
         console.error(error.message);
     }
     return false;
+}
+
+export const handleRePositionAll = async (param) => {
+    try {
+        const res = await request.post('/handler/rePositionAllAgv', param, {
+            headers: {
+                'appKey': HANDLE_APP_KEY
+            }
+        });
+        const { code, msg, data } = res.data;
+        if (code === 200) {
+            notify.success(msg);
+            return true;
+        } else {
+            notify.error(msg);
+        }
+    } catch (error) {
+        notify.error(error.message);
+        console.error(error.message);
+    }
+    return false;
 }
\ No newline at end of file
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
index ac1a177..ed7b01e 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
@@ -2,6 +2,8 @@
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.acs.common.constant.RedisConstant;
+import com.zy.acs.common.utils.RedisSupport;
 import com.zy.acs.common.utils.Utils;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.framework.common.R;
@@ -17,6 +19,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
@@ -32,6 +35,8 @@
 @RestController
 @RequestMapping("/api/handler")
 public class HandlerController extends BaseController {
+
+    private final RedisSupport redis = RedisSupport.defaultRedisSupport;
 
     public static final String APP_KEY = "xltys1995";
 
@@ -66,6 +71,16 @@
     @Autowired
     private PatrolService patrolService;
 
+    @PreAuthorize("hasAuthority('manager:loc:update')")
+    @PostMapping("/rePositionAllAgv")
+    public synchronized R rePositionAllAgv() {
+        final Integer MAP_DEFAULT_LEV = 1;
+        redis.deleteValue(RedisConstant.AGV_MAP_ASTAR_DYNAMIC_FLAG, String.valueOf(MAP_DEFAULT_LEV));
+//        avoidWaveCalculator.calcDynamicNodeWhenBoot();
+        return R.ok();
+    }
+
+
     @RequestMapping(value = "/control/agv", method = {RequestMethod.GET, RequestMethod.POST})
     @Transactional
     public R controlAgv(@RequestHeader String appKey,
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 c5f98be..513ab9b 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
@@ -13,16 +13,16 @@
 import com.zy.acs.manager.common.domain.MapDto;
 import com.zy.acs.manager.common.domain.MapRouteDto;
 import com.zy.acs.manager.common.exception.BusinessException;
-import com.zy.acs.manager.core.service.PatrolService;
 import com.zy.acs.manager.core.domain.BackpackDto;
+import com.zy.acs.manager.core.service.AvoidWaveCalculator;
 import com.zy.acs.manager.core.service.MapService;
+import com.zy.acs.manager.core.service.PatrolService;
 import com.zy.acs.manager.core.service.floyd.FloydNavigateService;
 import com.zy.acs.manager.manager.controller.param.MapDataParam;
 import com.zy.acs.manager.manager.controller.param.MapParam;
 import com.zy.acs.manager.manager.controller.result.MapAgvVo;
 import com.zy.acs.manager.manager.controller.result.MapPointVo;
 import com.zy.acs.manager.manager.controller.result.MapRouteVo;
-import com.zy.acs.manager.manager.entity.NavMap;
 import com.zy.acs.manager.manager.entity.*;
 import com.zy.acs.manager.manager.enums.AgvStsType;
 import com.zy.acs.manager.manager.enums.StatusType;
@@ -72,6 +72,8 @@
     private ConfigService configService;
     @Autowired
     private PatrolService patrolService;
+    @Autowired
+    private AvoidWaveCalculator avoidWaveCalculator;
 
     @PreAuthorize("hasAuthority('manager:loc:update')")
     @PostMapping("/startupOrShutdown")

--
Gitblit v1.9.1