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