From ebd2f4397a92c6a5096de1b86d59154363344720 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期二, 13 五月 2025 08:48:15 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/AgvController.java |   82 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 74 insertions(+), 8 deletions(-)

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 2cefcc9..6947650 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,22 +1,27 @@
 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;
+import com.zy.acs.framework.exception.CoolException;
 import com.zy.acs.manager.common.annotation.OperationLog;
 import com.zy.acs.manager.common.domain.BaseParam;
 import com.zy.acs.manager.common.domain.KeyValVo;
 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.service.AgvDetailService;
-import com.zy.acs.manager.manager.service.AgvService;
+import com.zy.acs.manager.manager.entity.AgvDetail;
+import com.zy.acs.manager.manager.entity.AgvModel;
+import com.zy.acs.manager.manager.service.*;
 import com.zy.acs.manager.system.controller.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
@@ -30,6 +35,14 @@
     private AgvService agvService;
     @Autowired
     private AgvDetailService agvDetailService;
+    @Autowired
+    private AgvModelService agvModelService;
+    @Autowired
+    private CodeService codeService;
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private MapDataDispatcher mapDataDispatcher;
 
 //    @PreAuthorize("hasAuthority('manager:agv:list')")
 //    @PostMapping("/agv/page")
@@ -51,6 +64,7 @@
         PageParam<Agv, BaseParam> pageParam = new PageParam<>(baseParam, Agv.class);
         PageResult<AgvResult> page = agvService.pageRel(pageParam);
         for (AgvResult result : page.getRecords()) {
+            result.sync(agvDetailService.selectByAgvId(result.getId()), codeService, taskService, agvService);
         }
         return R.ok().add(page);
     }
@@ -70,19 +84,46 @@
     @PreAuthorize("hasAuthority('manager:agv:list')")
     @GetMapping("/agv/{id}")
     public R get(@PathVariable("id") Long id) {
-        return R.ok().add(agvService.getById(id));
+        Agv agv = agvService.getById(id);
+        if (null != agv) {
+            agv.setOnline(agvService.judgeOnline(agv.getId()));
+            if (agv.getUuid().equals("2")) { agv.setOnline(true); }
+            AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
+            if (null != agvDetail) {
+                agv.setAgvDetail(agvDetail);
+            }
+            AgvModel agvModel = agvModelService.getByAgvId(agv.getId());
+            if (null != agvModel) {
+                agv.setAgvModelData(agvModel);
+            }
+        }
+        return R.ok().add(agv);
     }
 
     @PreAuthorize("hasAuthority('manager:agv:save')")
     @OperationLog("Create Agv")
     @PostMapping("/agv/save")
+    @Transactional
     public R save(@RequestBody Agv agv) {
-        agv.setCreateBy(getLoginUserId());
-        agv.setCreateTime(new Date());
-        agv.setUpdateBy(getLoginUserId());
-        agv.setUpdateTime(new Date());
+        if (agvService.count(new LambdaQueryWrapper<Agv>()
+                .eq(Agv::getUuid, agv.getUuid())) > 0) {
+            return R.error("agv no has already exist !");
+        }
+        Long loginUserId = getLoginUserId();
+        Date now = new Date();
+        agv.setCreateBy(loginUserId);
+        agv.setCreateTime(now);
+        agv.setUpdateBy(loginUserId);
+        agv.setUpdateTime(now);
         if (!agvService.save(agv)) {
-            return R.error("Save Fail");
+            throw new CoolException("Save Fail");
+        }
+        AgvDetail agvDetail = new AgvDetail();
+        agvDetail.setAgvId(agv.getId());
+        agvDetail.setCreateBy(loginUserId);
+        agvDetail.setUpdateBy(loginUserId);
+        if (!agvDetailService.save(agvDetail)) {
+            throw new CoolException("Save Fail");
         }
         return R.ok("Save Success").add(agv);
     }
@@ -91,6 +132,11 @@
     @OperationLog("Update Agv")
     @PostMapping("/agv/update")
     public R update(@RequestBody Agv agv) {
+        if (agvService.count(new LambdaQueryWrapper<Agv>()
+                .eq(Agv::getUuid, agv.getUuid())
+                .ne(Agv::getId, agv.getId())) > 0) {
+            return R.error("Update Fail");
+        }
         agv.setUpdateBy(getLoginUserId());
         agv.setUpdateTime(new Date());
         if (!agvService.updateById(agv)) {
@@ -129,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