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 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.util.List; /** * 航线分组 * * @author 拓恒 */ @RestController @RequestMapping("/fileGroupInfo") @Tag(name = "分组航线管理") 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) { startPage(); List list = iAirlineFileGroupInfoService.selectGroupInfoListById(groupId); List 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 list = iAirlineFileGroupInfoService.selectGroupInfoListById(groupId); List result = AirlineFileGroupInfoControllerConvert.toApiDomainList(list); return getDataTable(result); } /** * kmz航线文件,并转换成waypoint上传 ,仅仅返航URL *

* kmz类似zip,一般情况下内部包含kml和wpml两个文件 * * @param file */ @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(); 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 { 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("新增失败"); } /*** * 删除分组详情 * @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("删除失败"); } }