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

198 lines
7.1 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.ruoyi.airline.controller;
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
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<AirlineFileGroupInfoDTO> list = iAirlineFileGroupInfoService.selectGroupInfoListById(groupId);
// List<AirlineFileGroupInfoVO> result = AirlineFileGroupInfoControllerConvert.fromList(list);
return getDataTable(list);
}
/**
* 获取航线文件分组列表,根据用户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);
}
/**
* kmz航线文件并转换成waypoint上传 ,仅仅返航URL
* <p>
* 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, groupId);
AirlineFileGroupInfoDTO infoDTO = new AirlineFileGroupInfoDTO();
infoDTO.setGroupId(groupId);
infoDTO.setAirlineFileDTO(dto);
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.to(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.to(vo);
Long result = iAirlineFileGroupInfoService.deleteGroupInfo(dto);
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("删除失败");
}
/***
* 移动分组详情到新分组
* @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("移动失败");
}
}