diff --git a/src/main/java/com/ruoyi/airline/controller/AirlineFileController.java b/src/main/java/com/ruoyi/airline/controller/AirlineFileController.java
index cbaef05..e04509a 100644
--- a/src/main/java/com/ruoyi/airline/controller/AirlineFileController.java
+++ b/src/main/java/com/ruoyi/airline/controller/AirlineFileController.java
@@ -7,20 +7,16 @@ import com.ruoyi.airline.service.dto.AirlineFileDTO;
import com.ruoyi.common.core.exception.base.BaseException;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
-import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
-import com.ruoyi.common.security.annotation.RequiresPermissions;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
-import java.util.List;
/**
* 航线文件Controller
@@ -49,14 +45,13 @@ public class AirlineFileController extends BaseController {
// @RequiresPermissions("airline:file:edit")
@Log(title = "修改航线属性", businessType = BusinessType.UPDATE)
@PutMapping("/edit")
- @Operation(summary = "编辑航线文件描述信息")
+ @Operation(summary = "编辑航线文件描述信息")
public AjaxResult edit(@RequestBody AirlineFileVO entity) {
AirlineFileDTO dto = AirlineFileControllerConvert.toDTO(entity);
return success(airlineFileService.save(dto));
}
-
/**
* 长江口
*
@@ -67,7 +62,7 @@ public class AirlineFileController extends BaseController {
// @RequiresPermissions("airline:file:parseAndUpload")
@Log(title = "创建航线", businessType = BusinessType.UPDATE)
@PostMapping("/createOrUpdate")
- @Operation(summary = "编辑航线文件内容,生产航点新文件")
+ @Operation(summary = "编辑航线文件内容,生产航点新文件")
public AjaxResult createOrUpdate(@RequestBody AirlineFileVO vo) {
AirlineFileDTO airlineFile = AirlineFileControllerConvert.toDTO(vo);
try {
diff --git a/src/main/java/com/ruoyi/airline/controller/AirlineFileGroupInfoController.java b/src/main/java/com/ruoyi/airline/controller/AirlineFileGroupInfoController.java
index f42923a..71cf08c 100644
--- a/src/main/java/com/ruoyi/airline/controller/AirlineFileGroupInfoController.java
+++ b/src/main/java/com/ruoyi/airline/controller/AirlineFileGroupInfoController.java
@@ -10,14 +10,12 @@ import com.ruoyi.common.core.exception.base.BaseException;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.TableDataInfo;
-import com.ruoyi.common.security.annotation.RequiresPermissions;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
-import java.io.IOException;
import java.util.List;
/**
@@ -46,7 +44,7 @@ public class AirlineFileGroupInfoController extends BaseController {
*/
// @RequiresPermissions("airline:groupInfo:list")
@GetMapping("/{groupId}")
- @Operation(summary = "编辑航线文件内容,生产航点新文件")
+ @Operation(summary = "编辑航线文件内容,生产航点新文件")
public TableDataInfo selectGroupInfoListById(@PathVariable("groupId") Long groupId) {
startPage();
List list = iAirlineFileGroupInfoService.selectGroupInfoListById(groupId);
@@ -62,7 +60,7 @@ public class AirlineFileGroupInfoController extends BaseController {
*/
// @RequiresPermissions("airline:groupInfo:list")
@GetMapping
- @Operation(summary = "编辑航线文件内容,生产航点新文件")
+ @Operation(summary = "编辑航线文件内容,生产航点新文件")
public TableDataInfo selectGroupInfoListByQueryId(@RequestParam("groupId") Long groupId) {
startPage();
List list = iAirlineFileGroupInfoService.selectGroupInfoListById(groupId);
@@ -76,12 +74,11 @@ public class AirlineFileGroupInfoController extends BaseController {
*
* kmz类似zip,一般情况下内部包含kml和wpml两个文件
*
- *
* @param file
*/
- @PostMapping("/parseAndUpload")
- @Operation(summary = " kmz航线文件,并转换成waypoint上传 ,仅仅返航URL")
- public AjaxResult parseAndUpload(@RequestParam("file") MultipartFile file, Long groupId) throws BaseException {
+ @PostMapping("/parseAndUpload/{groupId}")
+ @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();
@@ -97,7 +94,7 @@ public class AirlineFileGroupInfoController extends BaseController {
* @return
*/
@PostMapping()
- @Operation(summary = "在当前分组下添加初始航线,必须上传分组ID")
+ @Operation(summary = "在当前分组下添加初始航线,必须上传分组ID")
public AjaxResult add(@RequestBody AirlineFileGroupInfoVO vo) throws BaseException {
if (vo.getGroupId() == null) {
throw new BaseException("分组ID不能为空");
@@ -111,4 +108,25 @@ public class AirlineFileGroupInfoController extends BaseController {
}
+ /***
+ * 删除分组详情
+ * @param vo
+ * @return
+ * @throws BaseException
+ */
+ @DeleteMapping("/delete")
+ @Operation(summary = "在当前分组下添加初始航线,必须上传分组ID")
+ public AjaxResult delete(@RequestBody AirlineFileGroupInfoVO vo) throws BaseException {
+ if (vo.getGroupId() == null) {
+ throw new BaseException("分组ID不能为空");
+ }
+ AirlineFileGroupInfoDTO dto = AirlineFileGroupInfoControllerConvert.toDTO(vo);
+ Long result = iAirlineFileGroupInfoService.deleteGroupInf(dto);
+ if (result > 0) {
+ return success(result);
+ }
+ throw new BaseException("删除失败");
+ }
+
+
}
diff --git a/src/main/java/com/ruoyi/airline/controller/convert/AirlineFileGroupInfoControllerConvert.java b/src/main/java/com/ruoyi/airline/controller/convert/AirlineFileGroupInfoControllerConvert.java
index 4ec6447..79f08da 100644
--- a/src/main/java/com/ruoyi/airline/controller/convert/AirlineFileGroupInfoControllerConvert.java
+++ b/src/main/java/com/ruoyi/airline/controller/convert/AirlineFileGroupInfoControllerConvert.java
@@ -31,7 +31,9 @@ public class AirlineFileGroupInfoControllerConvert {
}
AirlineFileGroupInfoVO vo = new AirlineFileGroupInfoVO();
vo.setId(dto.getId());
+ vo.setAirlineId(dto.getAirlineId());
vo.setGroupId(dto.getGroupId());
+ vo.setAirlineFileVO(AirlineFileControllerConvert.toVO(dto.getAirlineFileDTO()));
vo.setCreateBy(dto.getCreateBy());
vo.setCreateTime(dto.getCreateTime());
@@ -54,6 +56,7 @@ public class AirlineFileGroupInfoControllerConvert {
AirlineFileGroupInfoDTO dto = new AirlineFileGroupInfoDTO();
dto.setId(vo.getId());
dto.setGroupId(vo.getGroupId());
+ dto.setAirlineId(vo.getAirlineId());
dto.setCreateBy(vo.getCreateBy());
dto.setCreateTime(vo.getCreateTime());
dto.setUpdateBy(vo.getUpdateBy());
diff --git a/src/main/java/com/ruoyi/airline/domain/api/IAirlineFileDomain.java b/src/main/java/com/ruoyi/airline/domain/api/IAirlineFileDomain.java
index a893f62..00137e4 100644
--- a/src/main/java/com/ruoyi/airline/domain/api/IAirlineFileDomain.java
+++ b/src/main/java/com/ruoyi/airline/domain/api/IAirlineFileDomain.java
@@ -17,4 +17,6 @@ public interface IAirlineFileDomain {
List selectFileListByIds(List ids);
Long save(AirlineFile model);
+
+ List selectFileNameLike(String name);
}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/domain/impl/AirlineFileDomainImpl.java b/src/main/java/com/ruoyi/airline/domain/impl/AirlineFileDomainImpl.java
index d22cc7a..02f1d8e 100644
--- a/src/main/java/com/ruoyi/airline/domain/impl/AirlineFileDomainImpl.java
+++ b/src/main/java/com/ruoyi/airline/domain/impl/AirlineFileDomainImpl.java
@@ -30,6 +30,12 @@ public class AirlineFileDomainImpl implements IAirlineFileDomain {
@Override
public Long save(AirlineFile model) {
AirlineFileEntity entity = AirlineFileDomainConvert.toEntity(model);
- return airlineFileMapper.save(entity);
+ airlineFileMapper.save(entity);
+ return entity.getId();
+ }
+
+ @Override
+ public List selectFileNameLike(String name) {
+ return AirlineFileDomainConvert.toModelList(airlineFileMapper.selectFileNameLike(name));
}
}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/mapper/AirlineFileMapper.java b/src/main/java/com/ruoyi/airline/mapper/AirlineFileMapper.java
index 05f5186..58c660a 100644
--- a/src/main/java/com/ruoyi/airline/mapper/AirlineFileMapper.java
+++ b/src/main/java/com/ruoyi/airline/mapper/AirlineFileMapper.java
@@ -16,4 +16,6 @@ public interface AirlineFileMapper {
Long save(AirlineFileEntity entity);
List selectFileListByIds(List ids);
+
+ List selectFileNameLike(String name);
}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/service/api/IAirlineFileGroupInfoService.java b/src/main/java/com/ruoyi/airline/service/api/IAirlineFileGroupInfoService.java
index 99e71c9..c25cd74 100644
--- a/src/main/java/com/ruoyi/airline/service/api/IAirlineFileGroupInfoService.java
+++ b/src/main/java/com/ruoyi/airline/service/api/IAirlineFileGroupInfoService.java
@@ -16,4 +16,5 @@ public interface IAirlineFileGroupInfoService {
Long save(AirlineFileGroupInfoDTO dto) throws BaseException;
+ Long deleteGroupInf(AirlineFileGroupInfoDTO dto) throws BaseException ;
}
diff --git a/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceGroupInfoImpl.java b/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceGroupInfoImpl.java
index e934103..587d85d 100644
--- a/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceGroupInfoImpl.java
+++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceGroupInfoImpl.java
@@ -37,14 +37,18 @@ public class AirlineFileServiceGroupInfoImpl implements IAirlineFileGroupInfoSer
@Override
public List selectGroupInfoListById(Long groupId) {
List models = iAirlineFileGroupInfoDomain.selectGroupInfoListById(groupId);
- models.forEach(model -> {
- model.setAirlineFile(iAirlineFileService.selectById(model.getAirlineId()));
- });
+ if (models != null) {
+ models.forEach(model -> {
+ model.setAirlineFile(iAirlineFileService.selectById(model.getAirlineId()));
+ });
+ }
return AirlineFileGroupInfoServiceConvert.toDtoList(models);
}
@Override
public Long save(AirlineFileGroupInfoDTO dto) throws BaseException {
+
+
AirlineFileDTO result = iAirlineFileService.save(dto.getAirlineFileDTO());
dto.setAirlineId(result.getId());
@@ -52,12 +56,23 @@ public class AirlineFileServiceGroupInfoImpl implements IAirlineFileGroupInfoSer
AirlineFileGroupInfo model = AirlineFileGroupInfoServiceConvert.toModel(dto);
// 检查唯一性:同一个分组下不能有相同的航线
- boolean exists = iAirlineFileGroupInfoDomain.existsByGroupIdAndAirlineId(model.getGroupId(), model.getAirlineId());
- if (exists) {
- throw new BaseException("该航线已存在于当前分组中");
- }
+
return iAirlineFileGroupInfoDomain.save(model);
}
+ @Override
+ public Long deleteGroupInf(AirlineFileGroupInfoDTO dto) throws BaseException {
+ // 检查参数
+ if (dto.getGroupId() == null || dto.getAirlineId() == null) {
+ throw new BaseException("分组ID和航线ID不能为空");
+ }
+
+ // 转换为模型
+ AirlineFileGroupInfo model = AirlineFileGroupInfoServiceConvert.toModel(dto);
+
+ // 调用domain层删除方法
+ return iAirlineFileGroupInfoDomain.deleteGroupInfo(model);
+ }
+
}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceImpl.java b/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceImpl.java
index a1eaa61..69e2007 100644
--- a/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceImpl.java
+++ b/src/main/java/com/ruoyi/airline/service/impl/AirlineFileServiceImpl.java
@@ -12,6 +12,7 @@ import com.ruoyi.airline.service.dto.AirLinePointDTO;
import com.ruoyi.airline.service.dto.AirlineFileDTO;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.base.BaseException;
+import com.ruoyi.common.core.utils.file.FileUtils;
import com.ruoyi.system.api.RemoteFileService;
import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.ArchiveInputStream;
@@ -23,6 +24,7 @@ import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
@@ -81,9 +83,19 @@ public class AirlineFileServiceImpl implements IAirlineFileService {
String globalHeight = kmlInfo.getDocument().getFolder().getGlobalHeight();
R fileUrl = remoteFileService.uploadFileByData(UUID.randomUUID().toString(), "waypoints", WayPointUitls.kmz2waypoint(kmlInfo));
AirlineFileDTO dto = new AirlineFileDTO();
+ // 去除文件名中的后缀名
+ String fileName = file.getName();
+ int pos = fileName.lastIndexOf(".");
+ String fileNameWithoutExtension = pos > 0 ? fileName.substring(0, pos) : fileName;
+ List airlineFiles =iAirlineFileDomain.selectFileNameLike(fileNameWithoutExtension);
+
+
+ List fileNames = airlineFiles.stream().map(AirlineFile::getName).toList();
+ String newFileName = FileUtils.generateUniqueFileName(fileNameWithoutExtension, fileNames);
+ dto.setFileName(newFileName);
dto.setFileUrl(fileUrl.getData());
- dto.setAirVendor("");
- dto.setAirType("");
+ dto.setAirVendor(kmlInfo.getDocument().getKmlMissionConfig().getDroneInfo().getDroneEnumValue());
+ dto.setAirType(kmlInfo.getDocument().getKmlMissionConfig().getDroneInfo().getDroneEnumValue());
return dto;
} catch (IOException e) {
diff --git a/src/main/resources/mapper/airline/AirlineFileGroupInfoMapper.xml b/src/main/resources/mapper/airline/AirlineFileGroupInfoMapper.xml
index 729061b..506c858 100644
--- a/src/main/resources/mapper/airline/AirlineFileGroupInfoMapper.xml
+++ b/src/main/resources/mapper/airline/AirlineFileGroupInfoMapper.xml
@@ -37,13 +37,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
set del_flag = 1,
deleted_by = #{deletedBy},
deleted_time = #{deletedTime}
- where id = #{id}
-
- and group_id = #{groupId}
-
-
- and airline_id = #{airlineId}
-
+
+
+ and group_id = #{groupId}
+
+
+ and airline_id = #{airlineId}
+
+
diff --git a/src/main/resources/mapper/airline/AirlineFileMapper.xml b/src/main/resources/mapper/airline/AirlineFileMapper.xml
index 87d45a1..fcd8fa2 100644
--- a/src/main/resources/mapper/airline/AirlineFileMapper.xml
+++ b/src/main/resources/mapper/airline/AirlineFileMapper.xml
@@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-
+
insert into airline_file (name, air_vendor, air_type, file_name, file_url, type, source, status, file_md5, create_by, create_time, update_by, update_time, remark)
values (#{name}, #{airVendor}, #{airType}, #{fileName}, #{fileUrl}, #{type}, #{source}, #{status}, #{fileMd5}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{remark})
@@ -39,4 +39,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
\ No newline at end of file