From 10f91cf8cc7f5ebe1cb4d9f06bd9cf4693277dc6 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 21 十一月 2024 09:17:45 +0800 Subject: [PATCH] # --- zy-acs-flow/src/i18n/en.js | 3 ++- zy-acs-flow/src/i18n/zh.js | 3 ++- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java | 24 ++++++++++++++++++++++++ zy-acs-flow/src/page/agv/show/AgvShowAside.jsx | 27 ++++++++++++++++++++++++++- 4 files changed, 54 insertions(+), 3 deletions(-) diff --git a/zy-acs-flow/src/i18n/en.js b/zy-acs-flow/src/i18n/en.js index ff8e64d..85718e7 100644 --- a/zy-acs-flow/src/i18n/en.js +++ b/zy-acs-flow/src/i18n/en.js @@ -578,7 +578,8 @@ detail: 'DETAIL', task: 'TASK', error: 'ERROR', - } + }, + remove: 'remove from map', } }, segment: { diff --git a/zy-acs-flow/src/i18n/zh.js b/zy-acs-flow/src/i18n/zh.js index ab0c193..73fa487 100644 --- a/zy-acs-flow/src/i18n/zh.js +++ b/zy-acs-flow/src/i18n/zh.js @@ -577,7 +577,8 @@ detail: '鏁版嵁閲囬泦', task: '浠诲姟缁熻', error: '寮傚父鏃ュ織', - } + }, + remove: '浠庡湴鍥句腑绉婚櫎', } }, segment: { diff --git a/zy-acs-flow/src/page/agv/show/AgvShowAside.jsx b/zy-acs-flow/src/page/agv/show/AgvShowAside.jsx index adcc9d6..10a1187 100644 --- a/zy-acs-flow/src/page/agv/show/AgvShowAside.jsx +++ b/zy-acs-flow/src/page/agv/show/AgvShowAside.jsx @@ -10,6 +10,8 @@ UrlField, useRecordContext, useTranslate, + Button as RaButton, + useNotify, } from 'react-admin'; import { Link as RouterLink, useLocation } from 'react-router-dom'; import { @@ -26,11 +28,29 @@ import { formatDistance } from 'date-fns'; import StatusField from "../../components/StatusField"; import AccessTimeIcon from '@mui/icons-material/AccessTime'; +import RemoveCircleIcon from '@mui/icons-material/RemoveCircle'; +import request from '@/utils/request'; export const AgvShowAside = (props) => { const translate = useTranslate(); + const notify = useNotify(); const record = useRecordContext(); if (!record) return null; + + const removeFromMap = () => { + if (confirm(translate('common.msg.confirm.desc'))) { + request.post('/agv/remove/from/map', { ...record }).then(res => { + const { code, msg, data } = res.data; + if (code === 200) { + notify(msg, { type: 'success', messageArgs: { _: msg } }); + } else { + notify(msg, { type: 'error', messageArgs: { _: msg } }); + } + }).catch(error => { + notify(error, { type: 'error', messageArgs: { _: error } }); + }) + } + } return ( <Box width={400} display={{ xs: 'none', lg: 'block' }}> @@ -41,7 +61,12 @@ <Stack direction="row" spacing={1}> <EditButton /> </Stack> - <Stack direction="row" mt={1}> + <Stack direction="row" mt={.5}> + <RaButton label="page.agv.show.remove" onClick={removeFromMap}> + <RemoveCircleIcon /> + </RaButton> + </Stack> + <Stack direction="row" mt={.5}> <DeleteButton mutationMode="optimistic" /> </Stack> <Box mt={1} /> diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java index a1aedb9..3defd6e 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java @@ -1,6 +1,7 @@ package com.zy.acs.manager.manager.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zy.acs.framework.common.Cools; import com.zy.acs.framework.common.R; @@ -11,6 +12,7 @@ import com.zy.acs.manager.common.domain.PageParam; import com.zy.acs.manager.common.domain.PageResult; import com.zy.acs.manager.common.utils.ExcelUtil; +import com.zy.acs.manager.core.service.astart.MapDataDispatcher; import com.zy.acs.manager.manager.controller.result.AgvResult; import com.zy.acs.manager.manager.entity.Agv; import com.zy.acs.manager.manager.entity.AgvDetail; @@ -39,6 +41,8 @@ private CodeService codeService; @Autowired private TaskService taskService; + @Autowired + private MapDataDispatcher mapDataDispatcher; // @PreAuthorize("hasAuthority('manager:agv:list')") // @PostMapping("/agv/page") @@ -171,4 +175,24 @@ ExcelUtil.build(ExcelUtil.create(agvService.list(), Agv.class), response); } + @PreAuthorize("hasAuthority('manager:agv:remove')") + @OperationLog("Remove Agv From Map") + @PostMapping("/agv/remove/from/map") + public R removeFromMap(@RequestBody Agv agv) { + AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId()); + if (null != agvDetail) { + LambdaUpdateWrapper<AgvDetail> wrapper = new LambdaUpdateWrapper<>(); + wrapper.set(AgvDetail::getCode, null) + .set(AgvDetail::getLastCode, null) + .set(AgvDetail::getUpdateBy, getLoginUserId()) + .set(AgvDetail::getUpdateTime, new Date()) + .eq(AgvDetail::getId, agvDetail.getId()); + if (!agvDetailService.update(null, wrapper)) { + return R.error("Remove Fail"); + } + mapDataDispatcher.modifyDynamicMatrix(MapDataDispatcher.MAP_DEFAULT_LEV, null, agv.getUuid(), true); + } + return R.ok("Remove Success").add(agv); + } + } -- Gitblit v1.9.1