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删除前校验:

+ * + * @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 状态值