Compare commits
No commits in common. "bf42d6b13ee7853579ce4e79ceabd7e56fe6cb30" and "bf538371d72c15194e202409a99e10a29c74bdb2" have entirely different histories.
bf42d6b13e
...
bf538371d7
|
|
@ -1,5 +1,6 @@
|
||||||
package com.ruoyi.airline.service.impl;
|
package com.ruoyi.airline.service.impl;
|
||||||
|
|
||||||
|
import com.ruoyi.airline.api.domain.AirLinePointVO;
|
||||||
import com.ruoyi.airline.domain.api.IAirlineFileDomain;
|
import com.ruoyi.airline.domain.api.IAirlineFileDomain;
|
||||||
import com.ruoyi.airline.domain.model.AirlineFile;
|
import com.ruoyi.airline.domain.model.AirlineFile;
|
||||||
import com.ruoyi.airline.domain.model.kml.KmlInfo;
|
import com.ruoyi.airline.domain.model.kml.KmlInfo;
|
||||||
|
|
@ -23,7 +24,7 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
@ -65,15 +66,6 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
|
||||||
@Override
|
@Override
|
||||||
public AirlineFileDTO parseAndUplload(MultipartFile file) {
|
public AirlineFileDTO parseAndUplload(MultipartFile file) {
|
||||||
|
|
||||||
String originalFilename = file.getOriginalFilename();
|
|
||||||
String fileExtension = "";
|
|
||||||
if (originalFilename != null && originalFilename.lastIndexOf('.') > 0) {
|
|
||||||
fileExtension = originalFilename.substring(originalFilename.lastIndexOf('.') + 1).toLowerCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
if ("zip".equals(fileExtension) || "kmz".equals(fileExtension)) {
|
|
||||||
// 处理ZIP/KMZ文件
|
|
||||||
KmlInfo kmlInfo = new KmlInfo();
|
KmlInfo kmlInfo = new KmlInfo();
|
||||||
try (ArchiveInputStream archiveInputStream = new ZipArchiveInputStream(file.getInputStream());) {
|
try (ArchiveInputStream archiveInputStream = new ZipArchiveInputStream(file.getInputStream());) {
|
||||||
ArchiveEntry entry;
|
ArchiveEntry entry;
|
||||||
|
|
@ -92,10 +84,12 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
|
||||||
R<String> fileUrl = remoteFileService.uploadFileByData(UUID.randomUUID().toString(), "waypoints", WayPointUitls.kmz2waypoint(kmlInfo));
|
R<String> fileUrl = remoteFileService.uploadFileByData(UUID.randomUUID().toString(), "waypoints", WayPointUitls.kmz2waypoint(kmlInfo));
|
||||||
AirlineFileDTO dto = new AirlineFileDTO();
|
AirlineFileDTO dto = new AirlineFileDTO();
|
||||||
// 去除文件名中的后缀名
|
// 去除文件名中的后缀名
|
||||||
int pos = originalFilename.lastIndexOf(".");
|
String fileName = file.getName();
|
||||||
String fileNameWithoutExtension = pos > 0 ? originalFilename.substring(0, pos) : originalFilename;
|
int pos = fileName.lastIndexOf(".");
|
||||||
|
String fileNameWithoutExtension = pos > 0 ? fileName.substring(0, pos) : fileName;
|
||||||
List<AirlineFile> airlineFiles =iAirlineFileDomain.selectFileNameLike(fileNameWithoutExtension);
|
List<AirlineFile> airlineFiles =iAirlineFileDomain.selectFileNameLike(fileNameWithoutExtension);
|
||||||
|
|
||||||
|
|
||||||
List<String> fileNames = airlineFiles.stream().map(AirlineFile::getName).toList();
|
List<String> fileNames = airlineFiles.stream().map(AirlineFile::getName).toList();
|
||||||
String newFileName = FileUtils.generateUniqueFileName(fileNameWithoutExtension, fileNames);
|
String newFileName = FileUtils.generateUniqueFileName(fileNameWithoutExtension, fileNames);
|
||||||
dto.setFileName(newFileName);
|
dto.setFileName(newFileName);
|
||||||
|
|
@ -103,33 +97,12 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
|
||||||
dto.setAirVendor(kmlInfo.getDocument().getKmlMissionConfig().getDroneInfo().getDroneEnumValue());
|
dto.setAirVendor(kmlInfo.getDocument().getKmlMissionConfig().getDroneInfo().getDroneEnumValue());
|
||||||
dto.setAirType(kmlInfo.getDocument().getKmlMissionConfig().getDroneInfo().getDroneEnumValue());
|
dto.setAirType(kmlInfo.getDocument().getKmlMissionConfig().getDroneInfo().getDroneEnumValue());
|
||||||
return dto;
|
return dto;
|
||||||
}
|
|
||||||
} else if ("waypoints".equals(fileExtension)) {
|
|
||||||
// 直接处理Waypoints文件
|
|
||||||
AirlineFileDTO dto = new AirlineFileDTO();
|
|
||||||
// 去除文件名中的后缀名
|
|
||||||
int pos = originalFilename.lastIndexOf(".");
|
|
||||||
String fileNameWithoutExtension = pos > 0 ? originalFilename.substring(0, pos) : originalFilename;
|
|
||||||
List<AirlineFile> airlineFiles =iAirlineFileDomain.selectFileNameLike(fileNameWithoutExtension);
|
|
||||||
|
|
||||||
List<String> fileNames = airlineFiles.stream().map(AirlineFile::getName).toList();
|
|
||||||
String newFileName = FileUtils.generateUniqueFileName(fileNameWithoutExtension, fileNames);
|
|
||||||
dto.setFileName(newFileName);
|
|
||||||
|
|
||||||
// 直接读取文件内容并上传
|
|
||||||
R<String> fileUrl = remoteFileService.uploadFileByData(UUID.randomUUID().toString(), "waypoints", Arrays.toString(file.getBytes()));
|
|
||||||
dto.setFileUrl(fileUrl.getData());
|
|
||||||
dto.setAirVendor("");
|
|
||||||
dto.setAirType("");
|
|
||||||
return dto;
|
|
||||||
} else {
|
|
||||||
throw new BaseException("不支持的文件格式,请上传KMZ或Waypoints文件");
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new BaseException("文件处理失败");
|
throw new BaseException("Waypoints文件生成失败");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("航线文件处理失败", e);
|
log.error("kmz航线转换失败", e);
|
||||||
throw new BaseException("航线文件处理失败");
|
throw new BaseException("kmz航线转换失败");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue