diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceController.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceController.java index 9633007..1ee2fb7 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceController.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/controller/DeviceController.java @@ -21,6 +21,7 @@ import com.fuyuanshen.equipment.excel.UploadDeviceDataListener; import com.fuyuanshen.equipment.mapper.DeviceMapper; import com.fuyuanshen.equipment.mapper.DeviceTypeMapper; import com.fuyuanshen.equipment.service.DeviceService; +import com.fuyuanshen.equipment.service.DeviceTypeService; import com.fuyuanshen.equipment.service.impl.DeviceExportService; import com.fuyuanshen.system.service.ISysOssService; import io.swagger.v3.oas.annotations.Operation; @@ -54,6 +55,7 @@ public class DeviceController { private final DeviceService deviceService; private final DeviceMapper deviceMapper; private final CustomerMapper customerMapper; + private final DeviceTypeService deviceTypeService; private final DeviceTypeMapper deviceTypeMapper; private final DeviceExportService exportService; @@ -179,7 +181,11 @@ public class DeviceController { ImportResult result = new ImportResult(); try { LoginUser loginUser = LoginHelper.getLoginUser(); - DeviceImportParams params = DeviceImportParams.builder().ossService(ossService).deviceService(deviceService).tenantId(loginUser.getTenantId()).file(file).filePath("").deviceMapper(deviceMapper).deviceTypeMapper(deviceTypeMapper).userId(loginUser.getUserId()).customerMapper(customerMapper).build(); + DeviceImportParams params = DeviceImportParams.builder().ossService(ossService) + .deviceService(deviceService).tenantId(loginUser.getTenantId()) + .file(file).filePath("").deviceMapper(deviceMapper).deviceTypeService(deviceTypeService) + .deviceTypeMapper(deviceTypeMapper).userId(loginUser.getUserId()) + .customerMapper(customerMapper).build(); // 创建监听器 UploadDeviceDataListener listener = new UploadDeviceDataListener(params); // 读取Excel diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/dto/DeviceExcelExportDTO.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/dto/DeviceExcelExportDTO.java index 28aa32c..b0fd5ec 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/dto/DeviceExcelExportDTO.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/dto/DeviceExcelExportDTO.java @@ -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.fuyuanshen.equipment.converter.IgnoreFailedImageConverter; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.net.URL; @@ -42,6 +43,10 @@ public class DeviceExcelExportDTO { @ColumnWidth(20) private String deviceMac; + @ExcelProperty("蓝牙名称") + @ColumnWidth(20) + private String bluetoothName; + @ExcelProperty("设备IMEI") @ColumnWidth(20) private String deviceImei; diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/form/DeviceForm.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/form/DeviceForm.java index 77713ed..2de4ca3 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/form/DeviceForm.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/form/DeviceForm.java @@ -40,6 +40,10 @@ public class DeviceForm { @Schema(title = "设备MAC") private String deviceMac; + @Schema(name = "蓝牙名称") + private String bluetoothName; + + @Schema(title = "设备IMEI") private String deviceImei; diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/excel/DeviceImportParams.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/excel/DeviceImportParams.java index 97d333d..1559817 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/excel/DeviceImportParams.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/excel/DeviceImportParams.java @@ -4,6 +4,7 @@ import com.fuyuanshen.customer.mapper.CustomerMapper; import com.fuyuanshen.equipment.mapper.DeviceMapper; import com.fuyuanshen.equipment.mapper.DeviceTypeMapper; import com.fuyuanshen.equipment.service.DeviceService; +import com.fuyuanshen.equipment.service.DeviceTypeService; import com.fuyuanshen.system.service.ISysOssService; import lombok.*; import org.springframework.web.multipart.MultipartFile; @@ -23,6 +24,7 @@ public class DeviceImportParams { private DeviceMapper deviceMapper; private CustomerMapper customerMapper; private DeviceTypeMapper deviceTypeMapper; + private DeviceTypeService deviceTypeService; private ISysOssService ossService; private MultipartFile file; private String filePath; diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/excel/UploadDeviceDataListener.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/excel/UploadDeviceDataListener.java index 7647eaa..70a0339 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/excel/UploadDeviceDataListener.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/excel/UploadDeviceDataListener.java @@ -1,12 +1,10 @@ package com.fuyuanshen.equipment.excel; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollectionUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.read.listener.ReadListener; import com.alibaba.fastjson2.JSON; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.fuyuanshen.common.core.domain.model.LoginUser; import com.fuyuanshen.common.satoken.utils.LoginHelper; import com.fuyuanshen.equipment.constants.DeviceConstants; @@ -14,7 +12,7 @@ import com.fuyuanshen.equipment.domain.Device; import com.fuyuanshen.equipment.domain.DeviceType; import com.fuyuanshen.equipment.domain.dto.DeviceExcelImportDTO; import com.fuyuanshen.equipment.domain.dto.ImportResult; -import com.fuyuanshen.equipment.domain.query.DeviceQueryCriteria; +import com.fuyuanshen.equipment.domain.form.DeviceForm; import com.fuyuanshen.equipment.handler.ImageWriteHandler; import com.fuyuanshen.system.domain.vo.SysOssVo; import lombok.extern.slf4j.Slf4j; @@ -30,13 +28,13 @@ import java.util.*; public class UploadDeviceDataListener implements ReadListener { // 存储图片数据的映射 - private final Map rowImageMap = new HashMap<>(); + private Map rowImageMap = new HashMap<>(); - private final DeviceImportParams params; + private DeviceImportParams params; - private final Map rowDeviceMap = new HashMap<>(); - private final Map rowDtoMap = new HashMap<>(); - private final List rowIndexList = new ArrayList<>(); + private Map rowDeviceMap = new HashMap<>(); + private Map rowDtoMap = new HashMap<>(); + private List rowIndexList = new ArrayList<>(); private int successCount = 0; private int failureCount = 0; @@ -105,7 +103,6 @@ public class UploadDeviceDataListener implements ReadListener deviceList = params.getDeviceMapper().findAll(criteria); - // if (!deviceList.isEmpty()) { - // throw new RuntimeException("设备MAC重复"); - // } - // device.setTenantId(params.getTenantId()); - // 设备类型 - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("type_name", device.getTypeName()); - // wrapper.eq("customer_id", params.getUserId()); - List deviceTypes = params.getDeviceTypeMapper().selectList(wrapper); - if (CollectionUtil.isNotEmpty(deviceTypes)) { - device.setDeviceType(deviceTypes.get(0).getId()); - } - device.setCurrentOwnerId(loginUser.getUserId()); - device.setOriginalOwnerId(loginUser.getUserId()); - device.setCreateByName(loginUser.getNickname()); - params.getDeviceService().save(device); + DeviceType deviceType = params.getDeviceTypeService().queryByName(device.getTypeName()); + // params.getDeviceService().save(device); + DeviceForm deviceForm = new DeviceForm(); + deviceForm.setDeviceName(device.getDeviceName()); + deviceForm.setDeviceType(deviceType.getId()); + deviceForm.setRemark(device.getRemark()); + deviceForm.setDeviceMac(device.getDeviceMac()); + deviceForm.setDeviceImei(device.getDeviceImei()); + deviceForm.setBluetoothName(device.getBluetoothName()); + deviceForm.setDevicePic(device.getDevicePic()); + params.getDeviceService().addDevice(deviceForm); successCount++; log.info("行 {} 数据插入成功", rowIndex); } catch (Exception e) { @@ -225,10 +213,8 @@ public class UploadDeviceDataListener implements ReadListener { */ IPage findAll(@Param("criteria") DeviceTypeQueryCriteria criteria, Page page); - /** * 查询所有设备类型 * @@ -44,4 +43,12 @@ public interface DeviceTypeMapper extends BaseMapper { */ DeviceType getAssignType(@Param("deviceType") Long deviceType, @Param("customerId") Long customerId); + /** + * 根据名称查询设备类型 + * + * @param criteria + * @return + */ + DeviceType queryByName(@Param("criteria") DeviceTypeQueryCriteria criteria); + } diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/DeviceTypeService.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/DeviceTypeService.java index aa2b622..9dfcdca 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/DeviceTypeService.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/DeviceTypeService.java @@ -41,6 +41,14 @@ public interface DeviceTypeService extends IService { */ List queryDeviceTypes(); + /** + * 根据设备类型名称查询设备类型 + * + * @param typeName 条件参数 + * @return List + */ + DeviceType queryByName(String typeName); + /** * 新增设备类型 * diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceExportService.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceExportService.java index 22650e3..5d95f48 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceExportService.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceExportService.java @@ -43,6 +43,8 @@ public class DeviceExportService { dto.setDeviceMac(device.getDeviceMac()); // 设备IMEI dto.setDeviceImei(device.getDeviceImei()); + // 蓝牙名称 + dto.setBluetoothName(device.getBluetoothName()); dto.setLongitude(device.getLongitude()); dto.setLatitude(device.getLatitude()); dto.setRemark(device.getRemark()); diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java index c4d4310..37d38a9 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceServiceImpl.java @@ -112,6 +112,7 @@ public class DeviceServiceImpl extends ServiceImpl impleme @Override public List queryAll(DeviceQueryCriteria criteria) { + criteria.setCurrentOwnerId(LoginHelper.getUserId()); return deviceMapper.findAll(criteria); } @@ -141,6 +142,9 @@ public class DeviceServiceImpl extends ServiceImpl impleme queryCriteria.setDeviceTypeId(deviceForm.getDeviceType()); queryCriteria.setCustomerId(LoginHelper.getUserId()); DeviceTypeGrants typeGrants = deviceTypeGrantsMapper.selectById(queryCriteria.getDeviceTypeId()); + if (typeGrants == null) { + throw new Exception("设备类型不存在!!!"); + } DeviceType deviceTypes = deviceTypeMapper.selectById(typeGrants.getDeviceTypeId()); if (deviceTypes == null) { throw new Exception("设备类型不存在!!!"); diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java index 28bbced..ee0a8a0 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceTypeServiceImpl.java @@ -78,6 +78,21 @@ public class DeviceTypeServiceImpl extends ServiceImpl + */ + @Override + public DeviceType queryByName(String typeName) { + DeviceTypeQueryCriteria criteria = new DeviceTypeQueryCriteria(); + criteria.setCustomerId(LoginHelper.getUserId()); + criteria.setTypeName(typeName); + DeviceType deviceType = deviceTypeMapper.queryByName(criteria); + return deviceType; + } + /** * 新增设备类型 diff --git a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml index 44aea49..a6cbfd8 100644 --- a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml +++ b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml @@ -75,7 +75,7 @@ select - d.id, d.customer_id, d.device_name, + d.id, d.customer_id, d.device_name,d.bluetooth_name, d.device_pic, d.device_mac, d.device_sn, d.create_by, d.update_by, d.create_time, d.update_time, d.longitude, d.latitude, d.remark from device d diff --git a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceTypeMapper.xml b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceTypeMapper.xml index 56f47cc..624c395 100644 --- a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceTypeMapper.xml +++ b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceTypeMapper.xml @@ -42,4 +42,14 @@ WHERE owner_customer_id = #{customerId} AND original_device_id = #{deviceType} + + + \ No newline at end of file