| | |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import lombok.AllArgsConstructor; |
| | | import org.apache.logging.log4j.util.Strings; |
| | | 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.springblade.core.tool.utils.Func; |
| | | import org.springblade.modules.yw.entity.GeomInfoEntity; |
| | | import org.springblade.modules.yw.service.IEmergencySpaceService; |
| | | import org.springblade.modules.yw.service.IFirmInfoService; |
| | | import org.springblade.modules.yw.service.IGeomInfoService; |
| | | import org.springblade.modules.yw.vo.EmergencySpaceVO; |
| | | import org.springblade.modules.yw.vo.GeomInfoVO; |
| | | 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; |
| | | |
| | | private final IEmergencySpaceService emergencySpaceService; |
| | | |
| | | /** |
| | | * 空间信息表 详情 |
| | |
| | | return geomInfoService.importShpZip(file); |
| | | } |
| | | |
| | | /** |
| | | * 导入 应急空间点位 shp zip 包文件解析空间信息 |
| | | * @param file |
| | | * @return |
| | | */ |
| | | @PostMapping("/importSpaceShpZip") |
| | | @ApiOperationSupport(order = 8) |
| | | @ApiOperation(value = "导入应急空间点位 shp zip 包文件解析空间信息", notes = "传入文件") |
| | | public R importSpaceShpZip(MultipartFile file) { |
| | | return geomInfoService.importSpaceShpZip(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 response |
| | | * @return |
| | | */ |
| | | @GetMapping("/exporEmergencySpaceShpZip") |
| | | @ApiOperationSupport(order = 9) |
| | | @ApiOperation(value = "根据传入的点线面数据-导出空间信息shp zip 包", notes = "传入空间数据") |
| | | public void exporEmergencySpaceShpZip(HttpServletResponse response) throws IOException { |
| | | Query query = new Query().setCurrent(1).setSize(100); |
| | | IPage<EmergencySpaceVO> emergencySpaceVOIPage |
| | | = emergencySpaceService.selectEmergencySpacePage(Condition.getPage(query), null); |
| | | // 查询应急空间数据 |
| | | List<EmergencySpaceVO> emergencySpaceVOList = emergencySpaceVOIPage.getRecords(); |
| | | List<Map<String,Object>> propertyList = new ArrayList<>(); |
| | | // 要导出的文件夹路径 |
| | | String sourceFolderPath = fileConstant.getZipTempSavePath(); |
| | | for (EmergencySpaceVO emergencySpaceVO : emergencySpaceVOList) { |
| | | // 先生成文件 |
| | | Map<String,Object> map = new HashMap<>(); |
| | | map.put("ID", emergencySpaceVO.getId()); |
| | | map.put("name", emergencySpaceVO.getName()); |
| | | if (!Strings.isBlank(emergencySpaceVO.getLng())){ |
| | | map.put("geometry","POINT("+emergencySpaceVO.getLng() +" " + emergencySpaceVO.getLat() + ")"); |
| | | } |
| | | map.put("firmId",emergencySpaceVO.getFirmId()); |
| | | map.put("firmName",emergencySpaceVO.getFirmName()); |
| | | propertyList.add(map); |
| | | } |
| | | // 导出shp 文件 |
| | | ShapeFileUtil.exportShp(propertyList, "yikj", "Point",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); |
| | | } |
| | | } |
| | | |
| | | } |