From dc0601492c12ea8009ab0e47ff25ec0e78f60903 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期六, 02 十一月 2024 08:29:14 +0800 Subject: [PATCH] 添加查询建筑物涉水深度接口 --- src/main/java/com/se/simu/service/WaterService.java | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/se/simu/service/WaterService.java b/src/main/java/com/se/simu/service/WaterService.java index 7d6061a..871df44 100644 --- a/src/main/java/com/se/simu/service/WaterService.java +++ b/src/main/java/com/se/simu/service/WaterService.java @@ -1,11 +1,13 @@ package com.se.simu.service; +import cn.hutool.core.io.FileUtil; import cn.hutool.json.JSONUtil; import com.se.simu.config.PropertiesConfig; import com.se.simu.domain.po.DataPo; import com.se.simu.domain.po.SimuPo; import com.se.simu.domain.vo.*; import com.se.simu.helper.GdalHelper; +import com.se.simu.helper.StringHelper; import lombok.extern.slf4j.Slf4j; import org.gdal.gdal.Dataset; import org.gdal.gdal.gdal; @@ -13,6 +15,7 @@ import org.gdal.osr.SpatialReference; import org.gdal.osr.osr; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.io.File; @@ -20,6 +23,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * 鍐呮稘鏈嶅姟绫� @@ -171,4 +175,42 @@ public static boolean isValid(double val) { return !Double.isNaN(val) && val > Integer.MIN_VALUE; } + + public List<BuildingDepthVo> getBuildingDepthBySeid(String serviceName, String seid) { + List<BuildingDepthVo> list = readBuildingJson(serviceName); + if (CollectionUtils.isEmpty(list)) return null; + + return list.parallelStream() + .filter(b -> seid.equals(b.getSeid())) + .sorted((a, b) -> a.getTimestamp().compareTo(b.getTimestamp())) + .collect(Collectors.toList()); + } + + public List<BuildingDepthVo> getBuildingDepthByTime(String serviceName, Long timestamp) { + List<BuildingDepthVo> list = readBuildingJson(serviceName); + if (CollectionUtils.isEmpty(list)) { + return null; + } + + return list.parallelStream().filter(b -> timestamp.equals(b.getTimestamp())).collect(Collectors.toList()); + } + + private List<BuildingDepthVo> readBuildingJson(String serviceName) { + String filePath = config.getOutPath() + File.separator + serviceName + File.separator + "building.json"; + String json = getText(filePath); + if (StringHelper.isEmpty(json)) { + return null; + } + + return JSONUtil.toList(json, BuildingDepthVo.class); + } + + private String getText(String filePath) { + File file = new File(filePath); + if (!file.exists()) { + return null; + } + + return FileUtil.readUtf8String(file); + } } -- Gitblit v1.9.3