a-tuoheng-airline/src/main/java/com/ruoyi/airline/controller/AirlineFileGroupInfoControl...

198 lines
7.1 KiB
Java
Raw Normal View History

2026-01-23 18:42:11 +08:00
package com.ruoyi.airline.controller;
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
2026-01-23 18:42:11 +08:00
import com.ruoyi.airline.api.domain.AirlineFileGroupInfoVO;
import com.ruoyi.airline.controller.convert.AirlineFileGroupInfoControllerConvert;
import com.ruoyi.airline.service.api.IAirlineFileGroupInfoService;
import com.ruoyi.airline.service.api.IAirlineFileService;
import com.ruoyi.airline.service.dto.AirlineFileDTO;
import com.ruoyi.airline.service.dto.AirlineFileGroupInfoDTO;
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 io.swagger.v3.oas.annotations.Operation;
2026-01-24 11:29:55 +08:00
import io.swagger.v3.oas.annotations.tags.Tag;
2026-01-23 18:42:11 +08:00
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* 航线分组
*
* @author 拓恒
*/
@RestController
@RequestMapping("/fileGroupInfo")
2026-01-24 11:29:55 +08:00
@Tag(name = "分组航线管理")
2026-01-23 18:42:11 +08:00
public class AirlineFileGroupInfoController extends BaseController {
@Autowired
private IAirlineFileGroupInfoService iAirlineFileGroupInfoService;
@Autowired
private IAirlineFileService iAirlineFileService;
/**
* 获取航线文件分组列表,根据用户Id查询分组
*
* @param groupId 分组ID
* @return
*/
// @RequiresPermissions("airline:groupInfo:list")
@GetMapping("/{groupId}")
2026-01-28 09:11:59 +08:00
@Operation(summary = "编辑航线文件内容,生产航点新文件")
public TableDataInfo selectGroupInfoListById(@PathVariable("groupId") Long groupId) {
2026-01-23 18:42:11 +08:00
startPage();
List<AirlineFileGroupInfoDTO> list = iAirlineFileGroupInfoService.selectGroupInfoListById(groupId);
// List<AirlineFileGroupInfoVO> result = AirlineFileGroupInfoControllerConvert.fromList(list);
return getDataTable(list);
2026-01-23 18:42:11 +08:00
}
/**
* 获取航线文件分组列表,根据用户Id查询分组使用查询参数
*
* @param groupId 分组ID
* @return
*/
// @RequiresPermissions("airline:groupInfo:list")
@GetMapping
2026-01-28 09:11:59 +08:00
@Operation(summary = "编辑航线文件内容,生产航点新文件")
public TableDataInfo selectGroupInfoListByQueryId(@RequestParam("groupId") Long groupId) {
startPage();
List<AirlineFileGroupInfoDTO> list = iAirlineFileGroupInfoService.selectGroupInfoListById(groupId);
List<AirlineFileGroupInfoVO> result = AirlineFileGroupInfoControllerConvert.toApiDomainList(list);
return getDataTable(result);
}
2026-01-23 18:42:11 +08:00
/**
* kmz航线文件并转换成waypoint上传 ,仅仅返航URL
* <p>
* kmz类似zip一般情况下内部包含kml和wpml两个文件
*
* @param file
*/
2026-01-28 09:11:59 +08:00
@PostMapping("/parseAndUpload/{groupId}")
@Operation(summary = " kmz航线文件并转换成waypoint上传 ,仅仅返航URL")
2026-01-28 20:15:05 +08:00
public AjaxResult parseAndUpload(@RequestParam("file") MultipartFile file, @PathVariable("groupId") Long groupId) throws BaseException {
AirlineFileDTO dto = iAirlineFileService.parseAndUplload(file, groupId);
2026-01-23 18:42:11 +08:00
AirlineFileGroupInfoDTO infoDTO = new AirlineFileGroupInfoDTO();
infoDTO.setGroupId(groupId);
2026-01-28 11:20:39 +08:00
infoDTO.setAirlineFileDTO(dto);
2026-01-23 18:42:11 +08:00
return success(iAirlineFileGroupInfoService.save(infoDTO));
}
/**
* 在当前分组下添加初始航线空的航线
*
* @param vo 实体对象
* @return
*/
@PostMapping()
2026-01-28 09:11:59 +08:00
@Operation(summary = "在当前分组下添加初始航线,必须上传分组ID")
public AjaxResult add(@RequestBody AirlineFileGroupInfoVO vo) throws BaseException {
2026-01-23 18:42:11 +08:00
if (vo.getGroupId() == null) {
throw new BaseException("分组ID不能为空");
}
2026-01-28 20:15:05 +08:00
AirlineFileGroupInfoDTO dto = AirlineFileGroupInfoControllerConvert.to(vo);
Long result = iAirlineFileGroupInfoService.save(dto);
if (result > 0) {
return success(result);
}
throw new BaseException("新增失败");
2026-01-23 18:42:11 +08:00
}
2026-01-27 17:30:13 +08:00
/***
* 删除分组详情
* @param vo
* @return
* @throws BaseException
*/
@DeleteMapping("/delete")
2026-01-28 09:11:59 +08:00
@Operation(summary = "在当前分组下添加初始航线,必须上传分组ID")
2026-01-27 17:30:13 +08:00
public AjaxResult delete(@RequestBody AirlineFileGroupInfoVO vo) throws BaseException {
if (vo.getGroupId() == null) {
throw new BaseException("分组ID不能为空");
}
2026-01-28 20:15:05 +08:00
AirlineFileGroupInfoDTO dto = AirlineFileGroupInfoControllerConvert.to(vo);
Long result = iAirlineFileGroupInfoService.deleteGroupInfo(dto);
2026-01-27 17:30:13 +08:00
if (result > 0) {
return success(result);
}
throw new BaseException("删除失败");
}
/***
* 批量删除分组详情
* @param airLineIds
* @return
* @throws BaseException
*/
@DeleteMapping("/batchDelete/{groupId}")
@Operation(summary = "批量删除分组详情")
public AjaxResult delete(@RequestBody List<Long> airLineIds, @PathVariable("groupId") Long groupId) throws BaseException {
if (groupId == null) {
throw new BaseException("分组ID不能为空");
}
if (CollectionUtils.isEmpty(airLineIds)) {
throw new BaseException("没有需要删除的航线");
}
Long result = iAirlineFileGroupInfoService.deleteGroupInfoBatch(airLineIds, groupId);
if (result > 0) {
return success(result);
}
throw new BaseException("删除失败");
}
2026-01-28 20:15:05 +08:00
/***
* 移动分组详情到新分组
* @param vo
* @param groupId
* @return
* @throws BaseException
*/
@PostMapping("/move/{groupId}")
@Operation(summary = "移动分组详情到新分组")
public AjaxResult move(@RequestBody AirlineFileGroupInfoVO vo, @PathVariable("groupId") Long groupId) throws BaseException {
AirlineFileGroupInfoDTO dto = AirlineFileGroupInfoControllerConvert.to(vo);
Long result = iAirlineFileGroupInfoService.moveGroupInfo(
dto, groupId
);
if (result > 0) {
return success(result);
}
throw new BaseException("移动失败");
}
@PostMapping("/move/{groupId}/{newGroupId}")
@Operation(summary = "批量移动分组详情到新分组")
public AjaxResult batchMove(@RequestBody List<Long> airlines, @PathVariable("groupId") Long groupId, @PathVariable("newGroupId") Long newGroupId) throws BaseException {
if (groupId == null) {
throw new BaseException("原分组ID不能为空");
}
if (newGroupId == null) {
throw new BaseException("新分组ID不能为空");
}
if (CollectionUtils.isEmpty(airlines)) {
throw new BaseException("没有需要移动的航线");
}
Long result = iAirlineFileGroupInfoService.batchMoveGroupInfo(
airlines, groupId, newGroupId
);
if (result > 0) {
return success(result);
}
throw new BaseException("移动失败");
}
2026-01-27 17:30:13 +08:00
2026-01-23 18:42:11 +08:00
}