From b05b01b00756c0ddd3f0749026cb4cf59cb96de9 Mon Sep 17 00:00:00 2001 From: daiyongfei <974332738@qq.com> Date: Thu, 26 Jun 2025 10:27:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=AE=BE=E5=A4=87=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DeviceTypeServiceImpl.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/fys-system/src/main/java/com/fuyuanshen/modules/system/service/impl/DeviceTypeServiceImpl.java b/fys-system/src/main/java/com/fuyuanshen/modules/system/service/impl/DeviceTypeServiceImpl.java index c97a44a..a532b28 100644 --- a/fys-system/src/main/java/com/fuyuanshen/modules/system/service/impl/DeviceTypeServiceImpl.java +++ b/fys-system/src/main/java/com/fuyuanshen/modules/system/service/impl/DeviceTypeServiceImpl.java @@ -177,7 +177,24 @@ public class DeviceTypeServiceImpl extends ServiceImpl ids) { - deviceTypeMapper.deleteBatchIds(ids); + // 查询所有与 device 关联的 deviceType IDs + List deviceList = deviceMapper.selectList(new QueryWrapper().in("device_type", ids)); + // 提取与 device 关联的 deviceType IDs + List filteredIds = deviceList.stream() + .map(Device::getDeviceType) + .distinct() + .collect(Collectors.toList()); + // 从原始 ids 中移除已关联 device 的 id(即过滤掉能查到结果的 id) + List idsToBeDeleted = ids.stream() + .filter(id -> !filteredIds.contains(id)) + .collect(Collectors.toList()); + if (idsToBeDeleted.isEmpty()) { + throw new BadRequestException("选中设备类型已绑定设备,请先解绑设备!!!"); + } + // 删除过滤后的 id 列表 + deviceTypeMapper.deleteBatchIds(idsToBeDeleted); + deviceTypeGrantsMapper.delete(new QueryWrapper().in("device_type_id", idsToBeDeleted)); + }