浏览代码

修改nwp解析新格式

xusl 8 月之前
父节点
当前提交
fa00ff400a

+ 66 - 1
ipp-common/ipp-common-data/src/main/java/com/jiayue/ipp/common/data/entity/Nwp.java

@@ -262,5 +262,70 @@ public class Nwp extends NotLogicBaseEntity<Nwp> {
     @Digits(integer = 10, fraction = 2)
     private BigDecimal wd170 = new BigDecimal(-99);
 
-
+    /**
+     * 110米风速
+     */
+    @ApiModelProperty(value = "110米风速")
+    @Digits(integer = 10, fraction = 2)
+    private BigDecimal ws110 = new BigDecimal(-99);
+    /**
+     * 120米风速
+     */
+    @ApiModelProperty(value = "120米风速")
+    @Digits(integer = 10, fraction = 2)
+    private BigDecimal ws120 = new BigDecimal(-99);
+    /**
+     * 130米风速
+     */
+    @ApiModelProperty(value = "130米风速")
+    @Digits(integer = 10, fraction = 2)
+    private BigDecimal ws130 = new BigDecimal(-99);
+    /**
+     * 140米风速
+     */
+    @ApiModelProperty(value = "140米风速")
+    @Digits(integer = 10, fraction = 2)
+    private BigDecimal ws140 = new BigDecimal(-99);
+    /**
+     * 150米风速
+     */
+    @ApiModelProperty(value = "150米风速")
+    @Digits(integer = 10, fraction = 2)
+    private BigDecimal ws150 = new BigDecimal(-99);
+    /**
+     * 110米风向
+     */
+    @ApiModelProperty(value = "110米风向")
+    @Digits(integer = 10, fraction = 2)
+    private BigDecimal wd110 = new BigDecimal(-99);
+    /**
+     * 120米风向
+     */
+    @ApiModelProperty(value = "120米风向")
+    @Digits(integer = 10, fraction = 2)
+    private BigDecimal wd120 = new BigDecimal(-99);
+    /**
+     * 130米风向
+     */
+    @ApiModelProperty(value = "130米风向")
+    @Digits(integer = 10, fraction = 2)
+    private BigDecimal wd130 = new BigDecimal(-99);
+    /**
+     * 140米风向
+     */
+    @ApiModelProperty(value = "140米风向")
+    @Digits(integer = 10, fraction = 2)
+    private BigDecimal wd140 = new BigDecimal(-99);
+    /**
+     * 150米风向
+     */
+    @ApiModelProperty(value = "150米风向")
+    @Digits(integer = 10, fraction = 2)
+    private BigDecimal wd150 = new BigDecimal(-99);
+    /**
+     * 降水总量
+     */
+    @ApiModelProperty(value = "降水总量")
+    @Digits(integer = 10, fraction = 2)
+    private BigDecimal tpr = new BigDecimal(-99);
 }

+ 63 - 7
ipp-idp/src/main/java/com/jiayue/ipp/idp/service/an/DownloadService.java

@@ -228,15 +228,16 @@ public class DownloadService {
                                 String[] datas = lineTxt.split("\t");
                                 if (datas.length >= 35 && datas[0].startsWith("#")) {
                                     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                                    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
-                                    SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
+                                    //过滤当天的数据
+                                    //if (sdf.parse(datas[5]).getTime() >= TimeUtils.getMillisecondsSubDay() + 24 * 60 * 60 *
+                                    // 1000) {
                                     nwpData = new Nwp();
-                                    nwpData.setForecastManufactor(parsingUrl.getForecastManufactor());
+
                                     //将截取的文件放入nwpData中
                                     nwpData.setStationCode(parsingUrl.getStationCode());
-                                    nwpData.setScDate(sdf1.parse(datas[2]));
-//                                    nwpData.setScTime(sdf.parse(datas[3]));
-                                    nwpData.setPreDate(sdf1.parse(datas[4]));
+//                                    nwpData.setScDate(datas[2]);
+//                                    nwpData.setScTime(datas[3]);
+//                                    nwpData.setPreDate(datas[4]);
                                     nwpData.setPreTime(sdf.parse(datas[5]));//采集时间 与 短期预测时间关联
                                     nwpData.setT(NumberUtils.subtract(new BigDecimal(datas[6]), new BigDecimal("273.15")));//温度
 
@@ -264,6 +265,61 @@ public class DownloadService {
                                     nwpData.setWd90(new BigDecimal(datas[32]).setScale(2, RoundingMode.HALF_UP));
                                     nwpData.setWd100(new BigDecimal(datas[33]).setScale(2, RoundingMode.HALF_UP));
                                     nwpData.setWd170(new BigDecimal(datas[34]).setScale(2, RoundingMode.HALF_UP));
+                                    if (datas.length > 35) {
+                                        //nwp 新增解析内容
+//                                        nwpData.setWs20(new BigDecimal(datas[35]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWs40(new BigDecimal(datas[36]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWs60(new BigDecimal(datas[37]).setScale(2, RoundingMode.HALF_UP));
+                                        nwpData.setWs110(new BigDecimal(datas[38]).setScale(2, RoundingMode.HALF_UP));
+                                        nwpData.setWs120(new BigDecimal(datas[39]).setScale(2, RoundingMode.HALF_UP));
+                                        nwpData.setWs130(new BigDecimal(datas[40]).setScale(2, RoundingMode.HALF_UP));
+                                        nwpData.setWs140(new BigDecimal(datas[41]).setScale(2, RoundingMode.HALF_UP));
+                                        nwpData.setWs150(new BigDecimal(datas[42]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWs160(new BigDecimal(datas[43]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWs180(new BigDecimal(datas[44]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWs190(new BigDecimal(datas[45]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWs200(new BigDecimal(datas[46]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWd20(new BigDecimal(datas[47]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWd40(new BigDecimal(datas[48]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWd60(new BigDecimal(datas[49]).setScale(2, RoundingMode.HALF_UP));
+                                        nwpData.setWd110(new BigDecimal(datas[50]).setScale(2, RoundingMode.HALF_UP));
+                                        nwpData.setWd120(new BigDecimal(datas[51]).setScale(2, RoundingMode.HALF_UP));
+                                        nwpData.setWd130(new BigDecimal(datas[52]).setScale(2, RoundingMode.HALF_UP));
+                                        nwpData.setWd140(new BigDecimal(datas[53]).setScale(2, RoundingMode.HALF_UP));
+                                        nwpData.setWd150(new BigDecimal(datas[54]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWd160(new BigDecimal(datas[55]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWd180(new BigDecimal(datas[56]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWd190(new BigDecimal(datas[57]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setWd200(new BigDecimal(datas[58]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT10(new BigDecimal(datas[59]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT20(new BigDecimal(datas[60]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT30(new BigDecimal(datas[61]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT40(new BigDecimal(datas[62]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT50(new BigDecimal(datas[63]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT60(new BigDecimal(datas[64]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT70(new BigDecimal(datas[65]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT80(new BigDecimal(datas[66]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT90(new BigDecimal(datas[67]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT100(new BigDecimal(datas[68]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT110(new BigDecimal(datas[69]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT120(new BigDecimal(datas[70]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT130(new BigDecimal(datas[71]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT140(new BigDecimal(datas[72]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT150(new BigDecimal(datas[73]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT160(new BigDecimal(datas[74]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT170(new BigDecimal(datas[75]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT180(new BigDecimal(datas[76]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT190(new BigDecimal(datas[77]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setT200(new BigDecimal(datas[78]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setDniCalcd(new BigDecimal(datas[79]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setSolarZenith(new BigDecimal(datas[80]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setClearskyGhi(new BigDecimal(datas[81]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setLcc(new BigDecimal(datas[82]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setMcc(new BigDecimal(datas[83]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setHcc(new BigDecimal(datas[84]).setScale(2, RoundingMode.HALF_UP));
+//                                        nwpData.setTcc(new BigDecimal(datas[85]).setScale(2, RoundingMode.HALF_UP));
+                                        nwpData.setTpr(new BigDecimal(datas[86]).setScale(2, RoundingMode.HALF_UP));
+                                    }
                                     listNwp.add(nwpData);
                                 }
                             }
@@ -277,7 +333,7 @@ public class DownloadService {
                                 lambdaQueryWrapper.between(Nwp::getPreTime, startTime, endTime);
                                 nwpService.remove(lambdaQueryWrapper);
                                 nwpService.saveBatch(listNwp);
-                                log.info(parsingUrl.getStationCode() + "下" + fileName + "嘉越云端文件解析成功!");
+                                log.info(parsingUrl.getStationCode() + "下" + fileName + "嘉越云端NWP文件解析成功!");
                                 try {
                                     File file1 = new File(success + File.separator + fileName);
                                     if (file1.exists()) {