分配设备

This commit is contained in:
2025-06-20 19:20:56 +08:00
parent b11d3ccd61
commit a02819261d
4 changed files with 44 additions and 5 deletions

View File

@ -0,0 +1,32 @@
package com.fuyuanshen.utils.enums;
/**
* @author: 默苍璃
* @date: 2025-06-2019:08
*/
/**
* 表示 NanoId 生成时使用的长度配置
*/
public enum NanoIdLengthEnum {
/**
* 默认设备类型 ID 长度
*/
DEVICE_TYPE_ID(10),
/**
* 更长的唯一标识符,用于高并发场景
*/
HIGH_CONCURRENCY(15);
private final int length;
NanoIdLengthEnum(int length) {
this.length = length;
}
public int getLength() {
return length;
}
}

View File

@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.converters.bytearray.ByteArrayImageConverter;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.fuyuanshen.modules.system.converter.IgnoreFailedImageConverter;
@ -43,6 +44,11 @@ public class DeviceExcelImportDTO {
@ColumnWidth(20)
private String deviceMac;
@ExcelProperty("设备IMEI")
@ColumnWidth(20)
@ApiModelProperty(value = "设备IMEI")
private String deviceImei;
@ExcelProperty("设备SN")
@ColumnWidth(20)
private String deviceSn;

View File

@ -31,6 +31,7 @@ import com.fuyuanshen.modules.system.service.DeviceTypeGrantsService;
import com.fuyuanshen.modules.system.service.UserService;
import com.fuyuanshen.modules.utils.NanoId;
import com.fuyuanshen.utils.*;
import com.fuyuanshen.utils.enums.NanoIdLengthEnum;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -267,7 +268,7 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
}
// 自定义16位id
Long generatedId = NanoId.generate(16);
Long generatedId = NanoId.generate(NanoIdLengthEnum.HIGH_CONCURRENCY.getLength());
// -- 记录分配历史
DeviceAssignments deviceAssignments = new DeviceAssignments();
@ -353,7 +354,7 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
deviceMapper.update(updateDevice, wrapper);
// 自定义16位id
Long generatedId = NanoId.generate(16);
Long generatedId = NanoId.generate(NanoIdLengthEnum.HIGH_CONCURRENCY.getLength());
// -- 授权设备类型给客户
// QueryWrapper<DeviceTypeGrants> deviceTypeGrantsQueryWrapper = new QueryWrapper<>();
// Long count = deviceTypeGrantsMapper.selectCount(deviceTypeGrantsQueryWrapper);
@ -384,7 +385,7 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
// 查询设备类型
DeviceType deviceType = deviceTypeMapper.selectById(device.getDeviceType());
// SnowflakeGenerator snowflakeGenerator = new SnowflakeGenerator();
Long id = NanoId.generate(16);
Long id = NanoId.generate(NanoIdLengthEnum.HIGH_CONCURRENCY.getLength());
deviceType.setId(id);
deviceType.setCreateTime(timestamp);
deviceType.setCreateBy(currentUser.getUsername());

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuyuanshen.modules.system.domain.DeviceTypeGrants;
import com.fuyuanshen.modules.system.mapper.DeviceTypeGrantsMapper;
import com.fuyuanshen.modules.utils.NanoId;
import com.fuyuanshen.utils.enums.NanoIdLengthEnum;
import lombok.RequiredArgsConstructor;
import com.fuyuanshen.modules.security.service.UserCacheManager;
import com.fuyuanshen.modules.security.service.dto.JwtUserDto;
@ -125,7 +126,7 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceT
@Override
@Transactional(rollbackFor = Exception.class)
public void create(DeviceType resources) {
Long deviceTypeId = NanoId.generate(16);
Long deviceTypeId = NanoId.generate(NanoIdLengthEnum.HIGH_CONCURRENCY.getLength());
resources.setId(deviceTypeId);
resources.setCustomerId(SecurityUtils.getCurrentUserId());
deviceTypeMapper.insert(resources);
@ -137,7 +138,6 @@ public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceT
deviceTypeGrants.setGrantorCustomerId(SecurityUtils.getCurrentUserId());
deviceTypeGrants.setGrantedAt(new Date());
deviceTypeGrantsMapper.insert(deviceTypeGrants);
}