From a53c094d3bc62b0f855ef82ebb989a67db4b6e67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Fri, 6 Feb 2026 11:46:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(agv-station):=20=E6=B7=BB=E5=8A=A0AGV?= =?UTF-8?q?=E7=AB=99=E7=82=B9=E5=88=A0=E9=99=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 实现删除AGV站点的控制器方法,支持传入站点编码进行删除操作 - 添加删除前校验逻辑,确保站点处于禁用状态且无栈板占用 - 在服务层定义删除AGV站点的方法接口 - 完成删除功能的具体实现,包含参数验证、状态检查和数据库删除操作 - 添加详细的删除业务逻辑,包括禁用状态验证和栈板数量检查 - 实现删除失败时的异常处理和错误消息返回 --- .../controller/AgvStationController.java | 19 +++++++ .../service/AgvStationService.java | 13 +++++ .../service/impl/AgvStationServiceImpl.java | 53 +++++++++++++++++++ 3 files changed, 85 insertions(+) diff --git a/src/main/java/com/gaotao/modules/automatedWarehouse/controller/AgvStationController.java b/src/main/java/com/gaotao/modules/automatedWarehouse/controller/AgvStationController.java index bcdb657..6b1eea5 100644 --- a/src/main/java/com/gaotao/modules/automatedWarehouse/controller/AgvStationController.java +++ b/src/main/java/com/gaotao/modules/automatedWarehouse/controller/AgvStationController.java @@ -65,6 +65,25 @@ public class AgvStationController { return R.ok(); } + /** + * @Description 删除AGV站点 - rqrq + *

删除前校验:

+ * + * @param data 站点信息(包含stationCode) + * @return R + * @author rqrq + * @date 2025/02/06 + */ + @PostMapping(value="/delete") + @ResponseBody + public R delete(@RequestBody AgvStationData data) throws Exception { + agvStationService.deleteAgvStation(data); + return R.ok(); + } + /** * @Description 获取区域类型下拉选项 - rqrq * @return R diff --git a/src/main/java/com/gaotao/modules/automatedWarehouse/service/AgvStationService.java b/src/main/java/com/gaotao/modules/automatedWarehouse/service/AgvStationService.java index 432f8c1..c1a1b1c 100644 --- a/src/main/java/com/gaotao/modules/automatedWarehouse/service/AgvStationService.java +++ b/src/main/java/com/gaotao/modules/automatedWarehouse/service/AgvStationService.java @@ -41,6 +41,19 @@ public interface AgvStationService extends IService { */ void updateAgvStation(AgvStationData data) throws Exception; + /** + * @Description 删除AGV站点 - rqrq + *

删除前校验:

+ * + * @param data 站点信息(包含stationCode) + * @author rqrq + * @date 2025/02/06 + */ + void deleteAgvStation(AgvStationData data) throws Exception; + /** * @Description 获取区域类型下拉选项 - rqrq * @return List diff --git a/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AgvStationServiceImpl.java b/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AgvStationServiceImpl.java index d69a4c3..f1c725f 100644 --- a/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AgvStationServiceImpl.java +++ b/src/main/java/com/gaotao/modules/automatedWarehouse/service/impl/AgvStationServiceImpl.java @@ -221,6 +221,59 @@ public class AgvStationServiceImpl extends ServiceImpl删除前校验:

+ *
    + *
  • 站点必须是禁用状态(active='N')
  • + *
  • 站点下不能有栈板
  • + *
+ * @param data 站点信息(包含stationCode) + * @author rqrq + * @date 2025/02/06 + */ + @Override + public void deleteAgvStation(AgvStationData data) throws Exception { + System.out.println("开始删除AGV站点 - rqrq,站点编码:" + data.getStationCode()); + + // 校验参数 - rqrq + if (!StringUtils.hasText(data.getStationCode())) { + throw new RuntimeException("站点编码不能为空"); + } + + String stationCode = data.getStationCode(); + + // 查询站点信息 - rqrq + AgvStation station = this.lambdaQuery() + .eq(AgvStation::getStationCode, stationCode) + .one(); + + if (station == null) { + throw new RuntimeException("站点不存在:" + stationCode); + } + + // 1. 校验站点必须是禁用状态 - rqrq + if (!"N".equals(station.getActive())) { + String errorMsg = "只有禁用状态的站点才能删除,请先禁用该站点"; + System.out.println("删除站点失败 - rqrq:" + errorMsg); + throw new RuntimeException(errorMsg); + } + + // 2. 校验站点下不能有栈板 - rqrq + Integer palletCount = this.baseMapper.countPalletByLocationCode(stationCode); + if (palletCount != null && palletCount > 0) { + String errorMsg = "该站点下还有 " + palletCount + " 个栈板,不允许删除"; + System.out.println("删除站点失败 - rqrq:" + errorMsg); + throw new RuntimeException(errorMsg); + } + + // 3. 执行删除 - rqrq + System.out.println("校验通过,执行删除操作 - rqrq"); + this.removeById(station.getId()); + + System.out.println("删除AGV站点完成 - rqrq"); + } + /** * @Description 获取状态描述 - rqrq * @param statusDb 状态值