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);
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());
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());
Map<DealInfo, Map.Entry<MetaInfo, Coordinate>> 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<MetaInfo, Coordinate> entry = CacheTemplate.findOne(dealInfo);
Map.Entry<MetaInfo, Coordinate> 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;
}

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;
@JsonProperty("Data_Area")
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));
}
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){
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()) &&

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

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(){
CutConfiguration cutConfiguration = radarBlock.getCommonBlock().getCutConfigurations().get(0);
List<Radial> radials = radarBlock.getRadialBlock().getRadials().stream().filter(r -> r.getRadialHeader().getElevationNumber() == 1).collect(Collectors.toList());
List<List<double[]>> result = new ArrayList<>(radials.size());
for(Radial radial : radials){
double[] values = radial.getMomentBlocks().get(0).getMomentData().getData();
List<double[]> 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<Radial> radials = radarBlock.getRadialBlock().getRadials().stream().filter(r -> r.getRadialHeader().getElevationNumber() == 1).collect(Collectors.toList());
// List<List<double[]>> result = new ArrayList<>(radials.size());
// for(Radial radial : radials){
// double[] values = radial.getMomentBlocks().get(0).getMomentData().getData();
// List<double[]> 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;
}
}

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
#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

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

Binary file not shown.
Loading…
Cancel
Save