diff --git a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/jobhandler/TianQingRadarDataHandler.java b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/jobhandler/TianQingRadarDataHandler.java index b05d67e..ac79816 100644 --- a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/jobhandler/TianQingRadarDataHandler.java +++ b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/jobhandler/TianQingRadarDataHandler.java @@ -75,7 +75,7 @@ public class TianQingRadarDataHandler { } List dealInfos = dealInfoService.findAllByTimeRange(paramInfo.getModeCode(), paramInfo.getMemberCode(), paramInfo.getElementCode(), startTime, endTime); - Map> results = download(tianQingResponse.getDs(), paramInfo.getElementCode(), dealInfos); + Map> results = download(tianQingResponse.getDs(), paramInfo.getMemberCode(), dealInfos); XxlJobHelper.log("总共需要解析文件{}个", results.size()); for(Map.Entry> entry : results.entrySet()){ @@ -116,11 +116,11 @@ public class TianQingRadarDataHandler { } } - private Map> download(List tianQingFileVOs, String elementCode, List dealInfos){ + private Map> download(List tianQingFileVOs, String memberCode, List dealInfos){ Date afterTime = Date.from(LocalDateTime.now().minusMinutes(10).atZone(ZoneId.systemDefault()).toInstant()); Map> targetDealInfos = new HashMap<>(tianQingFileVOs.size()); for(TianQingFileVO tianQingFileVO: tianQingFileVOs){ - if (!tianQingFileVO.getProdCont().equals(elementCode)){ + if (!tianQingFileVO.getRadarModel().equals(memberCode)){ continue; } @@ -129,7 +129,7 @@ public class TianQingRadarDataHandler { continue; } - Map.Entry entry = CacheTemplate.findOne(dealInfo); + Map.Entry entry = CacheTemplate.findRadar(dealInfo); if (Objects.isNull(entry)){ XxlJobHelper.log("meta_infos 未录入相关文件信息, {}", dealInfo.getFileName()); continue; @@ -186,16 +186,15 @@ public class TianQingRadarDataHandler { return null; } DealInfo dealInfo = new DealInfo(); - dealInfo.setMemberCode(names[3]); + dealInfo.setMemberCode(names[7]); dealInfo.setCreateTime(Date.from(LocalDateTime.parse(names[4], TimeConstant.YYYYMMDDHHMMSS).atZone(ZoneId.systemDefault()).toInstant())); - String[] modes = names[7].split(SplitConstant.FILENAME_CUT_NEXT_RUNG); - dealInfo.setModeCode(modes[0]); - dealInfo.setElementCode(modes[1]); - dealInfo.setInitialTime(Date.from(LocalDateTime.parse(names[8], TimeConstant.YYYYMMDDHHMM).atZone(ZoneId.systemDefault()).toInstant())); + dealInfo.setModeCode("RADAR"); + dealInfo.setElementCode(names[8]); + dealInfo.setInitialTime(dealInfo.getCreateTime()); dealInfo.setHeight(BigDecimal.valueOf(1010)); - dealInfo.setTimeLength(Integer.parseInt(names[9].substring(0, 3))); - dealInfo.setTimeInterval(Integer.parseInt(names[9].substring(3, 5))); - dealInfo.setLocalPath(String.format("%s\\%s\\%s\\%s\\%s\\%s", "C:\\SaveFile\\Source", names[8].substring(0, 6), dealInfo.getModeCode(), dealInfo.getMemberCode(), dealInfo.getElementCode(), fileName)); + dealInfo.setTimeLength(6); + dealInfo.setTimeInterval(6); + dealInfo.setLocalPath(String.format("%s\\%s\\%s\\%s\\%s\\%s", "C:\\SaveFile\\Source", names[4].substring(0, 6), dealInfo.getModeCode(), dealInfo.getMemberCode(), dealInfo.getElementCode(), fileName)); dealInfo.setFileName(fileName); return dealInfo; } diff --git a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/model/vo/TianQingFileVO.java b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/model/vo/TianQingFileVO.java index db14941..69eef08 100644 --- a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/model/vo/TianQingFileVO.java +++ b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/model/vo/TianQingFileVO.java @@ -38,4 +38,6 @@ public class TianQingFileVO { private String prodCont; @JsonProperty("Data_Area") private String dataArea; + @JsonProperty("RADA_MODEL") + private String radarModel; } diff --git a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/template/CacheTemplate.java b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/template/CacheTemplate.java index dd9dfef..c757ffd 100644 --- a/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/template/CacheTemplate.java +++ b/04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/template/CacheTemplate.java @@ -60,6 +60,19 @@ public class CacheTemplate { return Map.entry(metaInfo, metaInfos.get(metaInfo)); } + public static Map.Entry findRadar(DealInfo dealInfo){ + MetaInfo metaInfo = metaInfos.keySet().stream().filter(m -> m.getHeight().equals(dealInfo.getHeight()) && m.getElementCode().startsWith(dealInfo.getElementCode()) && + m.getMemberCode().equals(dealInfo.getMemberCode()) && m.getModeCode().equals(dealInfo.getModeCode()) && + m.getTimeInterval() == dealInfo.getTimeInterval() && m.getTimeLength() == dealInfo.getTimeLength()) + .findFirst().orElse(null); + + if (Objects.isNull(metaInfo)){ + return null; + } + + return Map.entry(metaInfo, metaInfos.get(metaInfo)); + } + public static Map findWind(DealInfo dealInfo){ List targetMetaInfos = metaInfos.keySet().stream().filter(m -> m.getHeight().equals(dealInfo.getHeight()) && m.getElementCode().startsWith(dealInfo.getElementCode()) && m.getMemberCode().equals(dealInfo.getMemberCode()) && m.getModeCode().equals(dealInfo.getModeCode()) && diff --git a/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/domain/MomentData.java b/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/domain/MomentData.java index f9a6afb..a2ec058 100644 --- a/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/domain/MomentData.java +++ b/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/domain/MomentData.java @@ -13,7 +13,7 @@ import com.xiaowuler.radar.core.util.ByteUtils; */ @Data public class MomentData { - private double[] data; + private short[] data; public MomentData(ICustomInputStream ICustomInputStream, MomentHeader momentHeader) throws IOException { if (momentHeader.getBinLength() == 1){ @@ -24,21 +24,23 @@ public class MomentData { } private void oneByteConvert(byte[] bytes, int length, int scale, int offset){ - this.data = new double[length]; + this.data = new short[length]; for(int index = 0; index < length; index++){ - this.data[index] = (((short) (bytes[index] & 0xff) - offset) * 1.0 ) / scale; +// this.data[index] = (((short) (bytes[index] & 0xff) - offset) * 1.0 ) / scale; + this.data[index] = (short) (bytes[index] & 0xff); } } private void twoByteConvert(byte[] bytes, int length, int scale, int offset){ - this.data = new double[length]; + this.data = new short[length]; byte[] temp; for(int index = 0; index < length; index++){ int targetIndex = index * 2; temp = new byte[2]; temp[0] = bytes[targetIndex]; temp[1] = bytes[targetIndex + 1]; - this.data[index] = ((ByteUtils.bytes2Short(temp) - offset) * 1.0) / scale; +// this.data[index] = ((ByteUtils.bytes2Short(temp) - offset) * 1.0) / scale; + this.data[index] = ByteUtils.bytes2Short(temp); } } } diff --git a/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/resolver/RadarReader.java b/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/resolver/RadarReader.java index e22499d..113db2a 100644 --- a/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/resolver/RadarReader.java +++ b/04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/resolver/RadarReader.java @@ -65,18 +65,19 @@ public class RadarReader implements Serializable { } public List> getCoordinate(){ - CutConfiguration cutConfiguration = radarBlock.getCommonBlock().getCutConfigurations().get(0); - List radials = radarBlock.getRadialBlock().getRadials().stream().filter(r -> r.getRadialHeader().getElevationNumber() == 1).collect(Collectors.toList()); - List> result = new ArrayList<>(radials.size()); - for(Radial radial : radials){ - double[] values = radial.getMomentBlocks().get(0).getMomentData().getData(); - List rows = new ArrayList<>(values.length); - for(int index = 0, len = values.length; index < len; index ++){ - rows.add(calcLonLat((index + 1) * cutConfiguration.getLogResolution(), radial.getRadialHeader().getAzimuth(), radial.getRadialHeader().getElevation(), - radarBlock.getCommonBlock().getSiteConfiguration().getLongitude(), radarBlock.getCommonBlock().getSiteConfiguration().getLatitude())); - } - result.add(rows); - } - return result; +// CutConfiguration cutConfiguration = radarBlock.getCommonBlock().getCutConfigurations().get(0); +// List radials = radarBlock.getRadialBlock().getRadials().stream().filter(r -> r.getRadialHeader().getElevationNumber() == 1).collect(Collectors.toList()); +// List> result = new ArrayList<>(radials.size()); +// for(Radial radial : radials){ +// double[] values = radial.getMomentBlocks().get(0).getMomentData().getData(); +// List rows = new ArrayList<>(values.length); +// for(int index = 0, len = values.length; index < len; index ++){ +// rows.add(calcLonLat((index + 1) * cutConfiguration.getLogResolution(), radial.getRadialHeader().getAzimuth(), radial.getRadialHeader().getElevation(), +// radarBlock.getCommonBlock().getSiteConfiguration().getLongitude(), radarBlock.getCommonBlock().getSiteConfiguration().getLatitude())); +// } +// result.add(rows); +// } +// return result; + return null; } } diff --git a/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/MomentData.class b/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/MomentData.class index 4782fa5..396340a 100644 Binary files a/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/MomentData.class and b/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/MomentData.class differ diff --git a/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/TaskConfiguration.class b/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/TaskConfiguration.class index 81b2d0e..9afb418 100644 Binary files a/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/TaskConfiguration.class and b/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/TaskConfiguration.class differ diff --git a/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/resolver/RadarReader.class b/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/resolver/RadarReader.class index 118ed6b..14fb3f8 100644 Binary files a/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/resolver/RadarReader.class and b/04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/resolver/RadarReader.class differ diff --git a/04.系统编码/03.radar-resolver/radar-core/target/maven-archiver/pom.properties b/04.系统编码/03.radar-resolver/radar-core/target/maven-archiver/pom.properties index b96b8a1..b66d66c 100644 --- a/04.系统编码/03.radar-resolver/radar-core/target/maven-archiver/pom.properties +++ b/04.系统编码/03.radar-resolver/radar-core/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Fri Mar 18 13:55:01 CST 2022 +#Fri Mar 18 15:26:32 CST 2022 groupId=com.xiaowuler artifactId=radar-core version=1.0.0-SNAPSHOT diff --git a/04.系统编码/03.radar-resolver/radar-core/target/radar-core-1.0.0-SNAPSHOT.jar b/04.系统编码/03.radar-resolver/radar-core/target/radar-core-1.0.0-SNAPSHOT.jar index a8cee4b..519b6e5 100644 Binary files a/04.系统编码/03.radar-resolver/radar-core/target/radar-core-1.0.0-SNAPSHOT.jar and b/04.系统编码/03.radar-resolver/radar-core/target/radar-core-1.0.0-SNAPSHOT.jar differ