| | |
| | | import com.dji.sample.territory.dao.ITbFjMapper; |
| | | import com.dji.sample.territory.model.entity.TbDkjbxxEntity; |
| | | import com.dji.sample.territory.model.entity.TbFjEntity; |
| | | import com.dji.sample.territory.model.entity.param.UploadUrlParam; |
| | | import com.dji.sample.territory.pojo.TerritoryConfigPojo; |
| | | import com.dji.sample.territory.service.ITbDkjbxxService; |
| | | import org.locationtech.jts.geom.Coordinate; |
| | |
| | | import java.io.*; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.net.URLConnection; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | |
| | | public class TbDkjbxxServiceImpl extends ServiceImpl<ITbDkjbxxMapper, TbDkjbxxEntity> implements ITbDkjbxxService { |
| | | @Autowired |
| | | private ITbDkjbxxMapper iTbDkjbxxMapper; |
| | | @Autowired |
| | | private TbFjServiceImpl tbFjService; |
| | | @Autowired |
| | | private PatchesConfigPojo patchesConfigPojo; |
| | | @Autowired |
| | |
| | | return convert(new File(destKMZFile)); |
| | | } |
| | | |
| | | @Override |
| | | public ResponseResult uploadUrl(String url) { |
| | | if (url.isEmpty()) { |
| | | throw new IllegalArgumentException("上传文件为空"); |
| | | } |
| | | downloadFile(url); |
| | | return ResponseResult.success(); |
| | | } |
| | | public File downloadFile(String fileUrl) { |
| | | File downloadedFile = null; |
| | | try { |
| | | URL url = new URL(fileUrl); |
| | | HttpURLConnection connection = (HttpURLConnection) url.openConnection(); |
| | | connection.setRequestMethod("GET"); |
| | | InputStream inputStream = connection.getInputStream(); |
| | | downloadedFile = new File(territoryConfigPojo.getPath()); |
| | | OutputStream outputStream = new FileOutputStream(downloadedFile); |
| | | byte[] buffer = new byte[1024]; |
| | | int bytesRead; |
| | | while ((bytesRead = inputStream.read(buffer)) != -1) { |
| | | outputStream.write(buffer, 0, bytesRead); |
| | | } |
| | | inputStream.close(); |
| | | outputStream.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | return downloadedFile; |
| | | } |
| | | |
| | | /** |
| | | * 将TbDkjbxxEntity类型的列表转换为LotInfo类型的列表。 |
| | | * |
| | |
| | | private List<LotInfo> dbConvertToEntity(List<TbDkjbxxEntity> list) { |
| | | List<LotInfo> infos = new ArrayList<>(); |
| | | for (TbDkjbxxEntity file : list) { |
| | | double[] coordinates = extractCoordinates(pointCGCStoWGS(file.getXzb(), file.getYzb())); |
| | | // 使用Builder模式构建LotInfo对象 |
| | | LotInfo.LotInfoBuilder builder = LotInfo.builder(); |
| | | if (file != null) { |
| | | // 从TbDkjbxxEntity实体中提取信息,构建LotInfo对象 |
| | | builder.bsm(file.getBsm()) |
| | | .bz(file.getBz()) |
| | | .dkmj(file.getDkmj()) |
| | | .dkmc(file.getDkmc()) |
| | | .dkbh(file.getDkbh()) |
| | | .xmc(file.getXmc()) |
| | | .xzb(coordinates[0]) |
| | | .sfbhzdk(file.getSfbhzdk()) |
| | | .sjlx(file.getSjlx()) |
| | | .dkfw(poylonCGCStoWGS(file.getDkfw())) |
| | | .xzqdm(file.getXzqdm()) |
| | | .yzb(coordinates[1]) |
| | | .kzxx(file.getKzxx()) |
| | | .dklx(file.getDklx()) |
| | | builder.bsm(file.getFId()) |
| | | .dkbh(file.getFTbbh()) |
| | | .dkfw(file.getFShape()) |
| | | .xzqdm(file.getFXzqdmsys()) |
| | | .build(); |
| | | // 将构建好的LotInfo对象添加到infos列表中 |
| | | infos.add(builder.build()); |