Compare commits

2 Commits

Author SHA1 Message Date
00a4394b43 新增设备 2025-11-20 16:15:15 +08:00
2376a3b42a 修改设备类型 2025-11-20 10:11:14 +08:00
4 changed files with 40 additions and 3 deletions

View File

@ -137,4 +137,13 @@ public interface DeviceMapper extends BaseMapper<Device> {
List<DeviceUsageFrequencyVo> getDeviceUsageFrequency(@Param("days") int days);
List<OnlineStatusVo> queryOnlineStatusList();
/**
* 根据设备类型ID查询设备数量
*
* @param deviceTypeId 设备类型ID
* @return 设备数量
*/
int countByDeviceTypeId(@Param("deviceTypeId") Long deviceTypeId);
}

View File

@ -192,10 +192,21 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
throw new BadRequestException("设备IMEI已存在");
}
DeviceTypeGrants typeGrants = new DeviceTypeGrants();
if (deviceForm.getDeviceType() != null) {
DeviceTypeQueryCriteria queryCriteria = new DeviceTypeQueryCriteria();
queryCriteria.setDeviceTypeId(deviceForm.getDeviceType());
typeGrants = deviceTypeGrantsMapper.selectById(queryCriteria.getDeviceTypeId());
if (typeGrants == null) {
throw new Exception("设备类型不存在!!!");
}
}
// 检查设备类型是否存在,如果不存在则创建
DeviceType deviceType = null;
if (deviceForm.getDeviceType() != null) {
deviceType = deviceTypeMapper.selectById(deviceForm.getDeviceType());
deviceType = deviceTypeMapper.selectById(typeGrants.getDeviceTypeId());
} else if (deviceForm.getTypeName() != null) {
deviceType = deviceTypeMapper.selectOne(new QueryWrapper<DeviceType>().eq("type_name", deviceForm.getTypeName()));
}

View File

@ -224,6 +224,16 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceT
throw new RuntimeException("设备类型不存在");
}
if (!deviceType.getTypeName().equals(resources.getTypeName())) {
int count = deviceMapper.countByDeviceTypeId(deviceType.getId());
if (count > 0) {
throw new RuntimeException("该设备类型下已有绑定设备,无法修改设备类型名称!!!");
}
}
// List<Device> devices = deviceMapper.selectList(new QueryWrapper<Device>()
// .eq("device_type", deviceTypeGrants.getDeviceTypeId()));
// if (CollectionUtil.isNotEmpty(devices)) {

View File

@ -497,4 +497,11 @@
FROM device a left join device_type b on a.device_type = b.id where b.communication_mode in (0, 2) and a.online_status in (1,2)
</select>
<!-- 根据设备类型ID查询设备数量 -->
<select id="countByDeviceTypeId" resultType="int">
SELECT COUNT(*)
FROM device
WHERE device_type = #{deviceTypeId}
</select>
</mapper>