| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -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))))); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
				 | 
				
					
  |