177 lines
6.2 KiB
Java
177 lines
6.2 KiB
Java
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("移动失败");
|
||
}
|
||
|
||
|
||
}
|