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

115 lines
4.2 KiB
Java
Raw Normal View History

2026-01-23 18:42:11 +08:00
package com.ruoyi.airline.controller;
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 com.ruoyi.common.security.annotation.RequiresPermissions;
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.io.IOException;
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}")
@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.toApiDomainList(list);
return getDataTable(result);
}
/**
* 获取航线文件分组列表,根据用户Id查询分组使用查询参数
*
* @param groupId 分组ID
* @return
*/
// @RequiresPermissions("airline:groupInfo:list")
@GetMapping
@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两个文件
*
*
2026-01-23 18:42:11 +08:00
* @param file
*/
@PostMapping("/parseAndUpload")
@Operation(summary = " kmz航线文件并转换成waypoint上传 ,仅仅返航URL")
public AjaxResult parseAndUpload(@RequestParam("file") MultipartFile file, Long groupId) throws BaseException {
2026-01-23 18:42:11 +08:00
AirlineFileDTO dto = iAirlineFileService.parseAndUplload(file);
AirlineFileDTO result = iAirlineFileService.save(dto);
AirlineFileGroupInfoDTO infoDTO = new AirlineFileGroupInfoDTO();
infoDTO.setGroupId(groupId);
infoDTO.setAirlineId(result.getId());
return success(iAirlineFileGroupInfoService.save(infoDTO));
}
/**
* 在当前分组下添加初始航线空的航线
*
* @param vo 实体对象
* @return
*/
@PostMapping()
@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不能为空");
}
AirlineFileGroupInfoDTO dto = AirlineFileGroupInfoControllerConvert.toDTO(vo);
Long result = iAirlineFileGroupInfoService.save(dto);
if (result > 0) {
return success(result);
}
throw new BaseException("新增失败");
2026-01-23 18:42:11 +08:00
}
}