|
|
@ -8,9 +8,11 @@ import com.ping.chuan.ahpmsdp.xxljobexecutor.model.dao.DealInfo; |
|
|
|
import com.ping.chuan.ahpmsdp.xxljobexecutor.model.dao.MetaInfo; |
|
|
|
import com.ping.chuan.ahpmsdp.xxljobexecutor.model.domain.Coordinate; |
|
|
|
import com.ping.chuan.ahpmsdp.xxljobexecutor.model.domain.RadarBlock; |
|
|
|
import com.ping.chuan.ahpmsdp.xxljobexecutor.model.domain.RadialBlock; |
|
|
|
import com.ping.chuan.ahpmsdp.xxljobexecutor.service.IRadarService; |
|
|
|
import com.ping.chuan.ahpmsdp.xxljobexecutor.util.GZipUtils; |
|
|
|
|
|
|
|
import com.xiaowuler.radar.core.weather.domain.MomentBlock; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
@ -49,9 +51,9 @@ public class RadarService implements IRadarService { |
|
|
|
RadarReader radarReader = new RadarReader(); |
|
|
|
radarReader.read(entry.getKey().getLocalPath()); |
|
|
|
|
|
|
|
Map<String, byte[]> columns = toColumns(radarReader.getRadarBlock().getCommonBlock()); |
|
|
|
Map<String, List<Integer>> columns = toColumns(radarReader.getRadarBlock().getCommonBlock()); |
|
|
|
toColumns(columns, radarReader.getRadarBlock().getCommonBlock().getCutConfigurations(), radarReader.getRadarBlock().getRadialBlock().getRadials()); |
|
|
|
dataRepository.insert(keyspace, entry.getValue().getKey().toTableName(), entry.getKey().getInitialTime(), entry.getKey().getInitialTime(), radarReader.getRadarBlock().getCommonBlock().getSiteConfiguration().getSiteCode(), columns, 2); |
|
|
|
dataRepository.insert(keyspace, entry.getValue().getKey().toTableName(), entry.getKey().getInitialTime(), entry.getKey().getInitialTime(), radarReader.getRadarBlock().getCommonBlock().getSiteConfiguration().getSiteCode(), "dBT", columns, 1); |
|
|
|
entry.getKey().setState(StateConstant.SUCCESS); |
|
|
|
} catch (RadarReadException | IOException e) { |
|
|
|
entry.getKey().setState(StateConstant.FAILED); |
|
|
@ -62,19 +64,23 @@ public class RadarService implements IRadarService { |
|
|
|
return Objects.isNull(error) ? "文件解析成功" : "文件解析失败,%s".formatted(error); |
|
|
|
} |
|
|
|
|
|
|
|
private Map<String, byte[]> toColumns(CommonBlock commonBlock) throws IOException { |
|
|
|
private Map<String, List<Integer>> toColumns(CommonBlock commonBlock) throws IOException { |
|
|
|
return new LinkedHashMap<>(){{ |
|
|
|
put("site_configuration", GZipUtils.compress(mapper.writeValueAsBytes(commonBlock.getSiteConfiguration()))); |
|
|
|
put("task_configuration", GZipUtils.compress(mapper.writeValueAsBytes(commonBlock.getTaskConfiguration()))); |
|
|
|
put("generic_header", GZipUtils.compress(mapper.writeValueAsBytes(commonBlock.getGenericHeader()))); |
|
|
|
put("site_configuration", GZipUtils.toList(GZipUtils.compress(mapper.writeValueAsBytes(commonBlock.getSiteConfiguration())))); |
|
|
|
put("task_configuration", GZipUtils.toList(GZipUtils.compress(mapper.writeValueAsBytes(commonBlock.getTaskConfiguration())))); |
|
|
|
put("generic_header", GZipUtils.toList(GZipUtils.compress(mapper.writeValueAsBytes(commonBlock.getGenericHeader())))); |
|
|
|
}}; |
|
|
|
} |
|
|
|
|
|
|
|
private void toColumns(Map<String, byte[]> columns, List<CutConfiguration> cutConfigurations, List<Radial> radials) throws IOException { |
|
|
|
private void toColumns(Map<String, List<Integer>> columns, List<CutConfiguration> cutConfigurations, List<Radial> radials) throws IOException { |
|
|
|
for(int index = 0, len = cutConfigurations.size(); index < len; index++){ |
|
|
|
int num = index + 1; |
|
|
|
List<Radial> targetRadial = radials.stream().filter(r -> r.getRadialHeader().getElevationNumber() == num).collect(Collectors.toList()); |
|
|
|
columns.put("col_%s".formatted(index), GZipUtils.compress(mapper.writeValueAsBytes(new RadarBlock(cutConfigurations.get(index), targetRadial)))); |
|
|
|
List<RadialBlock> radialBlocks = targetRadial.stream().map(tr -> { |
|
|
|
MomentBlock momentBlock = tr.getMomentBlocks().stream().filter(mb -> mb.getMomentHeader().getDataType() == 1).findAny().orElse(null); |
|
|
|
return new RadialBlock(tr.getRadialHeader(), momentBlock); |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
columns.put("col_%s".formatted(index), GZipUtils.toList(GZipUtils.compress(mapper.writeValueAsBytes(new RadarBlock(cutConfigurations.get(index), radialBlocks))))); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|