From 35fd1f14cbe260a2075f8b7df7bc927357e2b16e Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 18 十月 2024 15:51:39 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/http.js | 21 ++++++++++ zy-acs-flow/src/i18n/en.js | 1 zy-acs-flow/src/map/insight/agv/AgvMain.jsx | 18 ++++---- zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java | 21 +++++++++- zy-acs-flow/src/i18n/zh.js | 1 5 files changed, 50 insertions(+), 12 deletions(-) diff --git a/zy-acs-flow/src/i18n/en.js b/zy-acs-flow/src/i18n/en.js index 2f2e653..63b7c8f 100644 --- a/zy-acs-flow/src/i18n/en.js +++ b/zy-acs-flow/src/i18n/en.js @@ -646,6 +646,7 @@ disable: 'DISABLE', enable: 'ENABLE', reset: 'RESET', + restoreALl: 'Restore All', }, mode: { observer: 'OBSERVER', diff --git a/zy-acs-flow/src/i18n/zh.js b/zy-acs-flow/src/i18n/zh.js index 9f64ca9..5353584 100644 --- a/zy-acs-flow/src/i18n/zh.js +++ b/zy-acs-flow/src/i18n/zh.js @@ -645,6 +645,7 @@ disable: '绂佺敤', enable: '鍚敤', reset: '閲嶇疆', + restoreALl: '鎭㈠鎵�鏈�', }, mode: { observer: '瑙傚療妯″紡', diff --git a/zy-acs-flow/src/map/http.js b/zy-acs-flow/src/map/http.js index 2da92f2..ea579b8 100644 --- a/zy-acs-flow/src/map/http.js +++ b/zy-acs-flow/src/map/http.js @@ -166,3 +166,24 @@ console.error(error.message); }) } + +export const handleRestoreAgvAll = async (param, callback) => { + await request.post('/handler/restore/agv', param, { + headers: { + 'appKey': HANDLE_APP_KEY + } + }).then((res) => { + const { code, msg, data } = res.data; + if (code === 200) { + notify.success(msg); + if (callback) { + callback(data) + } + } else { + notify.error(msg); + } + }).catch((error) => { + notify.error(error.message); + console.error(error.message); + }) +} diff --git a/zy-acs-flow/src/map/insight/agv/AgvMain.jsx b/zy-acs-flow/src/map/insight/agv/AgvMain.jsx index 6039dfa..5e22aff 100644 --- a/zy-acs-flow/src/map/insight/agv/AgvMain.jsx +++ b/zy-acs-flow/src/map/insight/agv/AgvMain.jsx @@ -14,7 +14,7 @@ } from '@mui/material'; import { useNotification } from '../../Notification'; import AgvThree from './AgvThree'; -import { getAgvInfo } from '../../http'; +import { handleRestoreAgvAll } from '../../http'; import BoolValueIcon from '../BoolValueIcon'; import ConfirmButton from '../../../page/components/ConfirmButton'; @@ -99,15 +99,15 @@ return endThree; }, [info]); - const handleReset = () => { - alert(1) + const handleRestoreAll = () => { + handleRestoreAgvAll({ agvNo: info.agvNo }); } - const updateStatus = (status) => { + const updateStatus = () => { dataProvider.update('agv', { id: info.agvId, data: { - status: status === 0 ? 1 : 0 + status: info.status === 0 ? 1 : 0 } }).then(({ data }) => { fetchAgvInfo(curAgvNo); @@ -199,22 +199,22 @@ }} /> <ConfirmButton - label="page.map.action.reset" + label="page.map.action.restoreALl" color="primary" variant="contained" onConfirm={() => { - handleReset(); + handleRestoreAll(); }} /> {info && ( info.status === 1 ? <Button variant="contained" color="error" fullWidth onClick={() => { - updateStatus(info.status); + updateStatus(); }}> {translate('page.map.action.disable')} </Button> : <Button variant="contained" fullWidth onClick={() => { - updateStatus(info.status); + updateStatus(); }}> {translate('page.map.action.enable')} </Button> 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 0d31355..2573042 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 @@ -17,6 +17,7 @@ import com.zy.acs.manager.manager.enums.ActionStsType; import com.zy.acs.manager.manager.enums.LocStsType; import com.zy.acs.manager.manager.enums.TaskStsType; +import com.zy.acs.manager.manager.enums.TaskTypeType; import com.zy.acs.manager.manager.service.*; import com.zy.acs.manager.system.controller.BaseController; import lombok.extern.slf4j.Slf4j; @@ -190,9 +191,8 @@ return R.ok(); } - @RequestMapping(value = "/reset", method = {RequestMethod.GET, RequestMethod.POST}) - public R reset(@RequestHeader String appKey, - @RequestBody HandlerPublishParam param) { + @RequestMapping(value = "/restore/agv", method = {RequestMethod.GET, RequestMethod.POST}) + public R restoreAgv(@RequestHeader String appKey, @RequestBody HandlerPublishParam param) { if (Cools.isEmpty(appKey)) { return R.error(); } @@ -203,6 +203,18 @@ Agv agv = null; if (!Cools.isEmpty(param.getAgvNo())) { agv = agvService.selectByUuid(param.getAgvNo()); + List<Task> tasks = taskService.selectInSts(agv.getId(), TaskStsType.WAITING, TaskStsType.ASSIGN, TaskStsType.PROGRESS); + if (!Cools.isEmpty(tasks)) { + for (Task task : tasks) { + if (TaskTypeType.LOC_TO_LOC.toString().equals(task.getTaskTypeEl()) + || TaskTypeType.LOC_TO_STA.toString().equals(task.getTaskTypeEl()) + || TaskTypeType.STA_TO_LOC.toString().equals(task.getTaskTypeEl()) + || TaskTypeType.STA_TO_STA.toString().equals(task.getTaskTypeEl()) + ) { + return R.error("Restore Failed, because the agv has Tasks that are associated with Loc!"); + } + } + } } if (null != agv) { @@ -239,6 +251,8 @@ return R.error(); } + Agv agv = agvService.selectByUuid(param.getAgvNo()); + // block // Future<R> future = threadPoolRegulator.getInstance().submit(() -> { // mapDataDispatcher.modifyDynamicMatrix(null, null, param.getAgvNo(), true); @@ -249,6 +263,7 @@ // non-block CompletableFuture<?> completableFuture = CompletableFuture.supplyAsync(() -> { mapDataDispatcher.modifyDynamicMatrix(null, null, param.getAgvNo(), true); + avoidWaveCalculator.calcDynamicNodeByVehicle(agv, null); return R.ok(); }, threadPoolRegulator.getInstance()); -- Gitblit v1.9.1