| | |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springblade.common.constant.FileConstant; |
| | | import org.springblade.common.utils.ShapeFileUtil; |
| | | import org.springblade.common.utils.ZipUtil; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.tool.api.R; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | import springfox.documentation.annotations.ApiIgnore; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.validation.Valid; |
| | | import java.io.BufferedOutputStream; |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.zip.ZipOutputStream; |
| | | |
| | | /** |
| | | * 空间信息表 控制器 |
| | |
| | | public class GeomInfoController { |
| | | |
| | | private final IGeomInfoService geomInfoService; |
| | | |
| | | private final FileConstant fileConstant; |
| | | |
| | | /** |
| | | * 空间信息表 详情 |
| | |
| | | return geomInfoService.importShpZip(file); |
| | | } |
| | | |
| | | /** |
| | | * 导出 空间信息shp zip 包 |
| | | * @param ids |
| | | * @return |
| | | */ |
| | | @GetMapping("/exportShpZip") |
| | | @ApiOperationSupport(order = 9) |
| | | @ApiOperation(value = "导出 空间信息shp zip 包", notes = "传入ids") |
| | | public void exportShpZip(String ids, HttpServletResponse response) throws IOException { |
| | | List<GeomInfoVO> list = geomInfoService.getGeomInfoList(ids); |
| | | // 要导出的文件夹路径 |
| | | String sourceFolderPath = fileConstant.getZipTempSavePath(); |
| | | // 先生成文件 |
| | | List<Map<String,Object>> propertyList = new ArrayList<>(); |
| | | for (int i = 0; i < list.size(); i++) { |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("ID", list.get(i).getId()); |
| | | map.put("name", list.get(i).getName()); |
| | | map.put("geometry",list.get(i).getGeom()); |
| | | propertyList.add(map); |
| | | // 导出shp 文件 |
| | | ShapeFileUtil.exportShp(propertyList, list.get(i).getName(), list.get(i).getType(),sourceFolderPath); |
| | | } |
| | | // ZIP文件名 |
| | | String zipFileName = System.currentTimeMillis() + "_exported_shp.zip"; |
| | | response.setContentType("application/zip"); |
| | | response.setHeader("Content-Disposition", "attachment; filename=\"" + zipFileName + "\""); |
| | | try ( |
| | | BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream()); |
| | | ZipOutputStream zipOut = new ZipOutputStream(bos); |
| | | ) { |
| | | ZipUtil.zipFolder(sourceFolderPath, zipOut); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据传入的点线面数据-导出空间信息shp zip 包 |
| | | * @param geomInfoEntity |
| | | * @return |
| | | */ |
| | | @PostMapping("/exportShpZipByValue") |
| | | @ApiOperationSupport(order = 9) |
| | | @ApiOperation(value = "根据传入的点线面数据-导出空间信息shp zip 包", notes = "传入空间数据") |
| | | public void exportShpZipByValue(@RequestBody GeomInfoEntity geomInfoEntity,HttpServletResponse response) throws IOException { |
| | | // 要导出的文件夹路径 |
| | | String sourceFolderPath = fileConstant.getZipTempSavePath(); |
| | | // 先生成文件 |
| | | List<Map<String,Object>> propertyList = new ArrayList<>(); |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("ID", System.currentTimeMillis()); |
| | | map.put("name", geomInfoEntity.getName()); |
| | | map.put("geometry",geomInfoEntity.getGeom()); |
| | | propertyList.add(map); |
| | | // 导出shp 文件 |
| | | ShapeFileUtil.exportShp(propertyList, geomInfoEntity.getName(), geomInfoEntity.getType(),sourceFolderPath); |
| | | // ZIP文件名 |
| | | String zipFileName = System.currentTimeMillis() + "_exported_shp.zip"; |
| | | response.setContentType("application/zip"); |
| | | response.setHeader("Content-Disposition", "attachment; filename=\"" + zipFileName + "\""); |
| | | try ( |
| | | BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream()); |
| | | ZipOutputStream zipOut = new ZipOutputStream(bos); |
| | | ) { |
| | | ZipUtil.zipFolder(sourceFolderPath, zipOut); |
| | | } |
| | | } |
| | | |
| | | } |