Browse Source

modify some codes

master
xiaowuler 3 years ago
parent
commit
6c727cb8d6
  1. 23
      04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/jobhandler/TianQingRadarDataHandler.java
  2. 2
      04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/model/vo/TianQingFileVO.java
  3. 13
      04.系统编码/01.xxl-job/xxl-job-executor/src/main/java/com/ping/chuan/ahpmsdp/xxljobexecutor/template/CacheTemplate.java
  4. 12
      04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/domain/MomentData.java
  5. 27
      04.系统编码/03.radar-resolver/radar-core/src/main/java/com/xiaowuler/radar/core/weather/resolver/RadarReader.java
  6. BIN
      04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/MomentData.class
  7. BIN
      04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/TaskConfiguration.class
  8. BIN
      04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/resolver/RadarReader.class
  9. 2
      04.系统编码/03.radar-resolver/radar-core/target/maven-archiver/pom.properties
  10. BIN
      04.系统编码/03.radar-resolver/radar-core/target/radar-core-1.0.0-SNAPSHOT.jar

23
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<DealInfo> dealInfos = dealInfoService.findAllByTimeRange(paramInfo.getModeCode(), paramInfo.getMemberCode(), paramInfo.getElementCode(), startTime, endTime); List<DealInfo> dealInfos = dealInfoService.findAllByTimeRange(paramInfo.getModeCode(), paramInfo.getMemberCode(), paramInfo.getElementCode(), startTime, endTime);
Map<DealInfo, Map.Entry<MetaInfo, Coordinate>> results = download(tianQingResponse.getDs(), paramInfo.getElementCode(), dealInfos); Map<DealInfo, Map.Entry<MetaInfo, Coordinate>> results = download(tianQingResponse.getDs(), paramInfo.getMemberCode(), dealInfos);
XxlJobHelper.log("总共需要解析文件{}个", results.size()); XxlJobHelper.log("总共需要解析文件{}个", results.size());
for(Map.Entry<DealInfo, Map.Entry<MetaInfo, Coordinate>> entry : results.entrySet()){ for(Map.Entry<DealInfo, Map.Entry<MetaInfo, Coordinate>> entry : results.entrySet()){
@ -116,11 +116,11 @@ public class TianQingRadarDataHandler {
} }
} }
private Map<DealInfo, Map.Entry<MetaInfo, Coordinate>> download(List<TianQingFileVO> tianQingFileVOs, String elementCode, List<DealInfo> dealInfos){ private Map<DealInfo, Map.Entry<MetaInfo, Coordinate>> download(List<TianQingFileVO> tianQingFileVOs, String memberCode, List<DealInfo> dealInfos){
Date afterTime = Date.from(LocalDateTime.now().minusMinutes(10).atZone(ZoneId.systemDefault()).toInstant()); Date afterTime = Date.from(LocalDateTime.now().minusMinutes(10).atZone(ZoneId.systemDefault()).toInstant());
Map<DealInfo, Map.Entry<MetaInfo, Coordinate>> targetDealInfos = new HashMap<>(tianQingFileVOs.size()); Map<DealInfo, Map.Entry<MetaInfo, Coordinate>> targetDealInfos = new HashMap<>(tianQingFileVOs.size());
for(TianQingFileVO tianQingFileVO: tianQingFileVOs){ for(TianQingFileVO tianQingFileVO: tianQingFileVOs){
if (!tianQingFileVO.getProdCont().equals(elementCode)){ if (!tianQingFileVO.getRadarModel().equals(memberCode)){
continue; continue;
} }
@ -129,7 +129,7 @@ public class TianQingRadarDataHandler {
continue; continue;
} }
Map.Entry<MetaInfo, Coordinate> entry = CacheTemplate.findOne(dealInfo); Map.Entry<MetaInfo, Coordinate> entry = CacheTemplate.findRadar(dealInfo);
if (Objects.isNull(entry)){ if (Objects.isNull(entry)){
XxlJobHelper.log("meta_infos 未录入相关文件信息, {}", dealInfo.getFileName()); XxlJobHelper.log("meta_infos 未录入相关文件信息, {}", dealInfo.getFileName());
continue; continue;
@ -186,16 +186,15 @@ public class TianQingRadarDataHandler {
return null; return null;
} }
DealInfo dealInfo = new DealInfo(); 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())); 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("RADAR");
dealInfo.setModeCode(modes[0]); dealInfo.setElementCode(names[8]);
dealInfo.setElementCode(modes[1]); dealInfo.setInitialTime(dealInfo.getCreateTime());
dealInfo.setInitialTime(Date.from(LocalDateTime.parse(names[8], TimeConstant.YYYYMMDDHHMM).atZone(ZoneId.systemDefault()).toInstant()));
dealInfo.setHeight(BigDecimal.valueOf(1010)); dealInfo.setHeight(BigDecimal.valueOf(1010));
dealInfo.setTimeLength(Integer.parseInt(names[9].substring(0, 3))); dealInfo.setTimeLength(6);
dealInfo.setTimeInterval(Integer.parseInt(names[9].substring(3, 5))); dealInfo.setTimeInterval(6);
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.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); dealInfo.setFileName(fileName);
return dealInfo; return dealInfo;
} }

2
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; private String prodCont;
@JsonProperty("Data_Area") @JsonProperty("Data_Area")
private String dataArea; private String dataArea;
@JsonProperty("RADA_MODEL")
private String radarModel;
} }

13
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)); return Map.entry(metaInfo, metaInfos.get(metaInfo));
} }
public static Map.Entry<MetaInfo, Coordinate> 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<MetaInfo, Coordinate> findWind(DealInfo dealInfo){ public static Map<MetaInfo, Coordinate> findWind(DealInfo dealInfo){
List<MetaInfo> targetMetaInfos = metaInfos.keySet().stream().filter(m -> m.getHeight().equals(dealInfo.getHeight()) && m.getElementCode().startsWith(dealInfo.getElementCode()) && List<MetaInfo> 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()) && m.getMemberCode().equals(dealInfo.getMemberCode()) && m.getModeCode().equals(dealInfo.getModeCode()) &&

12
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 @Data
public class MomentData { public class MomentData {
private double[] data; private short[] data;
public MomentData(ICustomInputStream ICustomInputStream, MomentHeader momentHeader) throws IOException { public MomentData(ICustomInputStream ICustomInputStream, MomentHeader momentHeader) throws IOException {
if (momentHeader.getBinLength() == 1){ if (momentHeader.getBinLength() == 1){
@ -24,21 +24,23 @@ public class MomentData {
} }
private void oneByteConvert(byte[] bytes, int length, int scale, int offset){ 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++){ 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){ private void twoByteConvert(byte[] bytes, int length, int scale, int offset){
this.data = new double[length]; this.data = new short[length];
byte[] temp; byte[] temp;
for(int index = 0; index < length; index++){ for(int index = 0; index < length; index++){
int targetIndex = index * 2; int targetIndex = index * 2;
temp = new byte[2]; temp = new byte[2];
temp[0] = bytes[targetIndex]; temp[0] = bytes[targetIndex];
temp[1] = bytes[targetIndex + 1]; 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);
} }
} }
} }

27
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<List<double[]>> getCoordinate(){ public List<List<double[]>> getCoordinate(){
CutConfiguration cutConfiguration = radarBlock.getCommonBlock().getCutConfigurations().get(0); // CutConfiguration cutConfiguration = radarBlock.getCommonBlock().getCutConfigurations().get(0);
List<Radial> radials = radarBlock.getRadialBlock().getRadials().stream().filter(r -> r.getRadialHeader().getElevationNumber() == 1).collect(Collectors.toList()); // List<Radial> radials = radarBlock.getRadialBlock().getRadials().stream().filter(r -> r.getRadialHeader().getElevationNumber() == 1).collect(Collectors.toList());
List<List<double[]>> result = new ArrayList<>(radials.size()); // List<List<double[]>> result = new ArrayList<>(radials.size());
for(Radial radial : radials){ // for(Radial radial : radials){
double[] values = radial.getMomentBlocks().get(0).getMomentData().getData(); // double[] values = radial.getMomentBlocks().get(0).getMomentData().getData();
List<double[]> rows = new ArrayList<>(values.length); // List<double[]> rows = new ArrayList<>(values.length);
for(int index = 0, len = values.length; index < len; index ++){ // for(int index = 0, len = values.length; index < len; index ++){
rows.add(calcLonLat((index + 1) * cutConfiguration.getLogResolution(), radial.getRadialHeader().getAzimuth(), radial.getRadialHeader().getElevation(), // rows.add(calcLonLat((index + 1) * cutConfiguration.getLogResolution(), radial.getRadialHeader().getAzimuth(), radial.getRadialHeader().getElevation(),
radarBlock.getCommonBlock().getSiteConfiguration().getLongitude(), radarBlock.getCommonBlock().getSiteConfiguration().getLatitude())); // radarBlock.getCommonBlock().getSiteConfiguration().getLongitude(), radarBlock.getCommonBlock().getSiteConfiguration().getLatitude()));
} // }
result.add(rows); // result.add(rows);
} // }
return result; // return result;
return null;
} }
} }

BIN
04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/MomentData.class

Binary file not shown.

BIN
04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/domain/TaskConfiguration.class

Binary file not shown.

BIN
04.系统编码/03.radar-resolver/radar-core/target/classes/com/xiaowuler/radar/core/weather/resolver/RadarReader.class

Binary file not shown.

2
04.系统编码/03.radar-resolver/radar-core/target/maven-archiver/pom.properties

@ -1,5 +1,5 @@
#Generated by Maven #Generated by Maven
#Fri Mar 18 13:55:01 CST 2022 #Fri Mar 18 15:26:32 CST 2022
groupId=com.xiaowuler groupId=com.xiaowuler
artifactId=radar-core artifactId=radar-core
version=1.0.0-SNAPSHOT version=1.0.0-SNAPSHOT

BIN
04.系统编码/03.radar-resolver/radar-core/target/radar-core-1.0.0-SNAPSHOT.jar

Binary file not shown.
Loading…
Cancel
Save