fix:联调航线上传

This commit is contained in:
高大 2026-01-28 11:20:39 +08:00
parent bf42d6b13e
commit 272aaa637e
2 changed files with 16 additions and 11 deletions

View File

@ -80,10 +80,9 @@ public class AirlineFileGroupInfoController extends BaseController {
@Operation(summary = " kmz航线文件并转换成waypoint上传 ,仅仅返航URL")
public AjaxResult parseAndUpload(@RequestParam("file") MultipartFile file, @PathVariable("groupId")Long groupId) throws BaseException {
AirlineFileDTO dto = iAirlineFileService.parseAndUplload(file);
AirlineFileDTO result = iAirlineFileService.save(dto);
AirlineFileGroupInfoDTO infoDTO = new AirlineFileGroupInfoDTO();
infoDTO.setGroupId(groupId);
infoDTO.setAirlineId(result.getId());
infoDTO.setAirlineFileDTO(dto);
return success(iAirlineFileGroupInfoService.save(infoDTO));
}

View File

@ -89,16 +89,19 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
throw new BaseException("kmz文件内容缺失");
}
String globalHeight = kmlInfo.getDocument().getFolder().getGlobalHeight();
R<String> fileUrl = remoteFileService.uploadFileByData(UUID.randomUUID().toString(), "waypoints", WayPointUitls.kmz2waypoint(kmlInfo));
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);
String newFileName = originalFilename;
if (airlineFiles != null && airlineFiles.size() > 0) {
List<String> fileNames = airlineFiles.stream().map(AirlineFile::getName).toList();
newFileName = FileUtils.generateUniqueFileName(fileNameWithoutExtension, fileNames);
}
dto.setName(newFileName);
dto.setFileName(originalFilename);
R<String> fileUrl = remoteFileService.uploadFileByData(UUID.randomUUID().toString(), "waypoints", WayPointUitls.kmz2waypoint(kmlInfo));
dto.setFileUrl(fileUrl.getData());
dto.setAirVendor(kmlInfo.getDocument().getKmlMissionConfig().getDroneInfo().getDroneEnumValue());
dto.setAirType(kmlInfo.getDocument().getKmlMissionConfig().getDroneInfo().getDroneEnumValue());
@ -111,11 +114,14 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
int pos = originalFilename.lastIndexOf(".");
String fileNameWithoutExtension = pos > 0 ? originalFilename.substring(0, pos) : originalFilename;
List<AirlineFile> airlineFiles =iAirlineFileDomain.selectFileNameLike(fileNameWithoutExtension);
String newFileName = originalFilename;
List<String> fileNames = airlineFiles.stream().map(AirlineFile::getName).toList();
String newFileName = FileUtils.generateUniqueFileName(fileNameWithoutExtension, fileNames);
dto.setFileName(newFileName);
if (airlineFiles != null && airlineFiles.size() > 0) {
List<String> fileNames = airlineFiles.stream().map(AirlineFile::getName).toList();
newFileName = FileUtils.generateUniqueFileName(fileNameWithoutExtension, fileNames);
}
dto.setName(newFileName);
dto.setFileName(originalFilename);
// 直接读取文件内容并上传
R<String> fileUrl = remoteFileService.uploadFileByData(UUID.randomUUID().toString(), "waypoints", Arrays.toString(file.getBytes()));
dto.setFileUrl(fileUrl.getData());