Browse Source

调整nwp解析逻辑

tl 4 months ago
parent
commit
ade99f6e33
1 changed files with 135 additions and 171 deletions
  1. 135 171
      cpp-admin/src/main/java/com/cpp/web/service/datafactory/CloudFileParsing.java

+ 135 - 171
cpp-admin/src/main/java/com/cpp/web/service/datafactory/CloudFileParsing.java

@@ -107,101 +107,101 @@ public class CloudFileParsing {
                 }
                 // 如果文件名长度符合规则
 //                if (fileName.length() < 31) {
-                    String stationCode = findStationCode(fileName);
-                    if (!stationCode.equals("null")) {
-                        // 如果是短期文件
-                        if (file.getName().startsWith("DQ")) {
-
-                            try {
-                                //标准格式DQ_J01100_202410170118030.RB
-                                parsingLog.setFileType(FileTypeEnum.dq);
-                                // 解析短期文件
-                                List<BaseForecastCloudEntity> listDq = new ArrayList<>();
-                                listDq.addAll(fileAnalysisShortTerm(file, new Date(currentDate),stationCode));
-                                if (!listDq.isEmpty()) {
-                                    try {
-                                        parsingLog.setStationCode(stationCode);
-                                        BaseForecastCloudEntity base = listDq.get(0);
-                                        Date createTime  = base.getCreateTime();
-                                        String forecastModel = base.getForecastModel();
-
-                                        QueryWrapper queryWrapper = new QueryWrapper<ForecastPowerShortTermCloud>().between("create_time",DateTimeUtil.getDayStartTime(createTime.getTime()),DateTimeUtil.getDayLastTime(createTime.getTime())).eq("station_code",stationCode).eq("forecast_model",forecastModel);
-                                        forecastPowerShortTermCloudService.remove(queryWrapper);
-                                        forecastPowerShortTermCloudService.saveBatch(overhaulPlanService.getCorrectionData(listDq, FileTypeEnum.dq.name(), fileName, stationCode));
-                                        flag = true;
-                                    } catch (Exception e) {
-                                        log.error("保存短期数据报错:" + fileName, e);
-                                        parsingLog.setParsingDescribe("保存短期数据报错:" + fileName);
-                                        LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "保存短期数据报错:" + fileName, null);
-                                        flag = false;
-                                    }
-                                } else {
-                                    log.info(file.getName() + "文件数据内容为空、不能正常解析 、移除该文件:" + fileName);
-                                    parsingLog.setParsingDescribe("文件数据内容为空、不能正常解析 、移除该文件:" + fileName);
-                                    LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "文件数据内容为空、不能正常解析 、移除该文件::" + fileName, null);
+                String stationCode = findStationCode(fileName);
+                if (!stationCode.equals("null")) {
+                    // 如果是短期文件
+                    if (file.getName().startsWith("DQ")) {
+
+                        try {
+                            //标准格式DQ_J01100_202410170118030.RB
+                            parsingLog.setFileType(FileTypeEnum.dq);
+                            // 解析短期文件
+                            List<BaseForecastCloudEntity> listDq = new ArrayList<>();
+                            listDq.addAll(fileAnalysisShortTerm(file, new Date(currentDate), stationCode));
+                            if (!listDq.isEmpty()) {
+                                try {
+                                    parsingLog.setStationCode(stationCode);
+                                    BaseForecastCloudEntity base = listDq.get(0);
+                                    Date createTime = base.getCreateTime();
+                                    String forecastModel = base.getForecastModel();
+
+                                    QueryWrapper queryWrapper = new QueryWrapper<ForecastPowerShortTermCloud>().between("create_time", DateTimeUtil.getDayStartTime(createTime.getTime()), DateTimeUtil.getDayLastTime(createTime.getTime())).eq("station_code", stationCode).eq("forecast_model", forecastModel);
+                                    forecastPowerShortTermCloudService.remove(queryWrapper);
+                                    forecastPowerShortTermCloudService.saveBatch(overhaulPlanService.getCorrectionData(listDq, FileTypeEnum.dq.name(), fileName, stationCode));
+                                    flag = true;
+                                } catch (Exception e) {
+                                    log.error("保存短期数据报错:" + fileName, e);
+                                    parsingLog.setParsingDescribe("保存短期数据报错:" + fileName);
+                                    LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "保存短期数据报错:" + fileName, null);
                                     flag = false;
                                 }
-
-
-                            } catch (Exception e) {
+                            } else {
+                                log.info(file.getName() + "文件数据内容为空、不能正常解析 、移除该文件:" + fileName);
+                                parsingLog.setParsingDescribe("文件数据内容为空、不能正常解析 、移除该文件:" + fileName);
+                                LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "文件数据内容为空、不能正常解析 、移除该文件::" + fileName, null);
                                 flag = false;
-                                parsingLog.setParsingDescribe("解析DQ文件异常:" + fileName);
-                                LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "解析DQ文件失败:" + fileName, null);
-                                log.error("解析DQ文件失败:" + fileName, e);
                             }
+
+
+                        } catch (Exception e) {
+                            flag = false;
+                            parsingLog.setParsingDescribe("解析DQ文件异常:" + fileName);
+                            LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "解析DQ文件失败:" + fileName, null);
+                            log.error("解析DQ文件失败:" + fileName, e);
                         }
+                    }
 
 
-                        if (file.getName().startsWith("NWP")) {
-
-                            try {
-                                parsingLog.setFileType(FileTypeEnum.nwp);
-                                List<NwpCloud> listNwp = fileAnalysisNwp(file, new Date(currentDate), stationCode);
-                                if (!listNwp.isEmpty()) {
-                                    try {
-                                        parsingLog.setStationCode(stationCode);
-                                        NwpCloud nwpCloud = listNwp.get(0);
-                                        Date createTime  = nwpCloud.getCreateTime();
-                                        String forecastModel = nwpCloud.getForecastModel();
-
-                                        QueryWrapper queryWrapper = new QueryWrapper<NwpCloud>().between("create_time",DateTimeUtil.getDayStartTime(createTime.getTime()),DateTimeUtil.getDayLastTime(createTime.getTime())).eq("station_code",stationCode).eq("forecast_model",forecastModel);
-
-                                        nwpCloudService.remove(queryWrapper);
-
-                                        nwpCloudService.saveBatch(listNwp);
-                                        flag = true;
-                                    } catch (Exception e) {
-                                        LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "保存NWP数据报错:" + fileName, null);
-                                        log.error("保存NWP数据报错:" + fileName, e);
-                                        parsingLog.setParsingDescribe("保存NWP数据报错:" + fileName);
-                                        flag = false;
-                                    }
-                                } else {
-                                    LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "文件数据内容为空、不能正常解析 、移除该文件:" + fileName, null);
-                                    parsingLog.setParsingDescribe("文件数据内容为空、不能正常解析 、移除该文件:" + fileName);
-                                    log.info(file.getName() + "文件数据内容为空、不能正常解析 、移除该文件");
+                    if (file.getName().startsWith("NWP")) {
+
+                        try {
+                            parsingLog.setFileType(FileTypeEnum.nwp);
+                            List<NwpCloud> listNwp = fileAnalysisNwp(file, new Date(currentDate), stationCode);
+                            if (!listNwp.isEmpty()) {
+                                try {
+                                    parsingLog.setStationCode(stationCode);
+                                    NwpCloud nwpCloud = listNwp.get(0);
+                                    Date createTime = nwpCloud.getCreateTime();
+                                    String forecastModel = nwpCloud.getForecastModel();
+
+                                    QueryWrapper queryWrapper = new QueryWrapper<NwpCloud>().between("create_time", DateTimeUtil.getDayStartTime(createTime.getTime()), DateTimeUtil.getDayLastTime(createTime.getTime())).eq("station_code", stationCode).eq("forecast_model", forecastModel);
+
+                                    nwpCloudService.remove(queryWrapper);
+
+                                    nwpCloudService.saveBatch(listNwp);
+                                    flag = true;
+                                } catch (Exception e) {
+                                    LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "保存NWP数据报错:" + fileName, null);
+                                    log.error("保存NWP数据报错:" + fileName, e);
+                                    parsingLog.setParsingDescribe("保存NWP数据报错:" + fileName);
                                     flag = false;
                                 }
-                            } catch (Exception e) {
-                                LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "解析NWP文件失败:" + fileName, null);
-                                log.error("解析NWP文件失败:" + fileName, e);
-                                parsingLog.setParsingDescribe("解析NWP文件失败:" + fileName);
+                            } else {
+                                LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "文件数据内容为空、不能正常解析 、移除该文件:" + fileName, null);
+                                parsingLog.setParsingDescribe("文件数据内容为空、不能正常解析 、移除该文件:" + fileName);
+                                log.info(file.getName() + "文件数据内容为空、不能正常解析 、移除该文件");
                                 flag = false;
                             }
+                        } catch (Exception e) {
+                            LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, "解析NWP文件失败:" + fileName, null);
+                            log.error("解析NWP文件失败:" + fileName, e);
+                            parsingLog.setParsingDescribe("解析NWP文件失败:" + fileName);
+                            flag = false;
                         }
                     }
+                }
 
 
-                    if (flag) {
-                        parsingLog.setParsingFileStatus("成功");
-                        moveFile(file);
-                    } else {
-                        parsingLog.setParsingFileStatus("失败");
-                        LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, parsingLog.getParsingDescribe(), "");
-                        //移除文件备份到error文件下
-                        moveFileError(file);
-                    }
-                    parsingLogs.add(parsingLog);
+                if (flag) {
+                    parsingLog.setParsingFileStatus("成功");
+                    moveFile(file);
+                } else {
+                    parsingLog.setParsingFileStatus("失败");
+                    LogUtil.info(DataSourcesEnum.E2, AlarmEnum.E4, parsingLog.getParsingDescribe(), "");
+                    //移除文件备份到error文件下
+                    moveFileError(file);
+                }
+                parsingLogs.add(parsingLog);
 //                }
             }
             if (parsingLogs.size() > 0) {
@@ -221,7 +221,7 @@ public class CloudFileParsing {
      * @param file 文件路径
      * @return 样例集合
      */
-    private List<NwpCloud> fileAnalysisNwp(File file, Date currentDate,String stationCode) {
+    private List<NwpCloud> fileAnalysisNwp(File file, Date currentDate, String stationCode) {
         List<NwpCloud> listNwp = new ArrayList<>();
         if (file.renameTo(file)) {
             InputStreamReader readNwp = null;
@@ -233,28 +233,29 @@ public class CloudFileParsing {
                 NwpCloud nwpData;
                 BigDecimal nwpDirectRadiation = new BigDecimal("0.7"); //直接辐射
                 BigDecimal nwpDiffuseRadiation = new BigDecimal("0.3"); //散接辐射
-
-                String forecastModel = "";
+                String fileName = file.getName();
+                String forecastModel = fileName.split("_")[2];
 
 
                 while ((lineTxt = bufferedReaderNwp.readLine()) != null) {
                     //NWP文件按照Tab方式截取
                     String[] datas = lineTxt.split("\t");
 
-                    if (datas[0].startsWith("<集中")) {
-                        // 使用单引号分割字符串
-                        forecastModel = ParsingUtil.splitLineWithSpace(datas[0])[2].split("'")[1];
-                    }
+//                    if (datas[0].startsWith("<集中")) {
+//                        // 使用单引号分割字符串
+//                        forecastModel = ParsingUtil.splitLineWithSpace(datas[0])[2].split("'")[1];
+//                    }
 
 
-                    if (!stationCode.equals("") && !forecastModel.equals("") && datas.length >= 35 && datas[0].startsWith("#")) {
+                    if (datas.length > 3 && !datas[0].startsWith("@@")) {
+//                    if (!stationCode.equals("") && !forecastModel.equals("") && datas.length >= 35 && datas[0].startsWith("#")) {
                         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                         //过滤当天的数据
                         //if (sdf.parse(datas[5]).getTime() >= TimeUtils.getMillisecondsSubDay() + 24 * 60 * 60 *
                         // 1000) {
 
 
-                        Date time = sdf.parse(datas[5]);
+                        Date time = sdf.parse(datas[1]);
                         Integer howLongAgo = calcHowLongAgo(currentDate, time);
                         if (howLongAgo > 0) {
 
@@ -265,89 +266,52 @@ public class CloudFileParsing {
                             nwpData.setForecastModel(forecastModel);
                             nwpData.setStationCode(stationCode);
                             nwpData.setTime(time);//采集时间 与 短期预测时间关联
-                            nwpData.setT(NumberUtil.subtract(new BigDecimal(datas[6]), new BigDecimal("273.15")));//温度
-
-                            nwpData.setSenf(new BigDecimal(datas[11]).setScale(2, RoundingMode.HALF_UP));//感热
-                            nwpData.setSwr(new BigDecimal(datas[9]).setScale(2, RoundingMode.HALF_UP));//短波辐射(相当于总辐射)
-                            nwpData.setLwr(new BigDecimal(datas[10]).setScale(2, RoundingMode.HALF_UP));//短波辐射(相当于总辐射)
-                            nwpData.setPressure(new BigDecimal(datas[8]).setScale(2, RoundingMode.HALF_UP));//地表气压
-                            nwpData.setRh(new BigDecimal(datas[7]).setScale(2, RoundingMode.HALF_UP));//2m相对湿度
-                            nwpData.setDiffuseRadiation(new BigDecimal(datas[9]).multiply(nwpDiffuseRadiation).setScale(2, RoundingMode.HALF_UP));//散接辐射
-                            nwpData.setDirectRadiation(new BigDecimal(datas[9]).multiply(nwpDirectRadiation).setScale(2, RoundingMode.HALF_UP));//直接辐射
-
-                            nwpData.setWs10(new BigDecimal(datas[19]).setScale(2, RoundingMode.HALF_UP));
-                            nwpData.setWs30(new BigDecimal(datas[20]).setScale(2, RoundingMode.HALF_UP));
-                            nwpData.setWs50(new BigDecimal(datas[21]).setScale(2, RoundingMode.HALF_UP));
-                            nwpData.setWs70(new BigDecimal(datas[22]).setScale(2, RoundingMode.HALF_UP));
-                            nwpData.setWs80(new BigDecimal(datas[23]).setScale(2, RoundingMode.HALF_UP));
-                            nwpData.setWs90(new BigDecimal(datas[24]).setScale(2, RoundingMode.HALF_UP));
-                            nwpData.setWs100(new BigDecimal(datas[25]).setScale(2, RoundingMode.HALF_UP));
-                            nwpData.setWs170(new BigDecimal(datas[26]).setScale(2, RoundingMode.HALF_UP));
-                            nwpData.setWd10(new BigDecimal(datas[27]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setT(NumberUtil.subtract(new BigDecimal(datas[2]), new BigDecimal("273.15")));//温度
+
+                            nwpData.setSwr(new BigDecimal(datas[5]).setScale(2, RoundingMode.HALF_UP));//短波辐射(相当于总辐射)
+                            nwpData.setPressure(new BigDecimal(datas[4]).setScale(2, RoundingMode.HALF_UP));//地表气压
+                            nwpData.setRh(new BigDecimal(datas[3]).setScale(2, RoundingMode.HALF_UP));//2m相对湿度
+                            nwpData.setWs10(new BigDecimal(datas[6]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs20(new BigDecimal(datas[7]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs30(new BigDecimal(datas[8]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs40(new BigDecimal(datas[9]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs50(new BigDecimal(datas[10]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs60(new BigDecimal(datas[11]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs70(new BigDecimal(datas[12]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs80(new BigDecimal(datas[13]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs90(new BigDecimal(datas[14]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs100(new BigDecimal(datas[15]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs110(new BigDecimal(datas[16]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs120(new BigDecimal(datas[17]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs130(new BigDecimal(datas[18]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs140(new BigDecimal(datas[19]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs150(new BigDecimal(datas[20]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs160(new BigDecimal(datas[21]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs170(new BigDecimal(datas[22]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs180(new BigDecimal(datas[23]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs190(new BigDecimal(datas[24]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWs200(new BigDecimal(datas[25]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd10(new BigDecimal(datas[26]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd20(new BigDecimal(datas[27]).setScale(2, RoundingMode.HALF_UP));
                             nwpData.setWd30(new BigDecimal(datas[28]).setScale(2, RoundingMode.HALF_UP));
-                            nwpData.setWd50(new BigDecimal(datas[29]).setScale(2, RoundingMode.HALF_UP));
-                            nwpData.setWd70(new BigDecimal(datas[30]).setScale(2, RoundingMode.HALF_UP));
-                            nwpData.setWd80(new BigDecimal(datas[31]).setScale(2, RoundingMode.HALF_UP));
-                            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));
-
-                            }
+                            nwpData.setWd40(new BigDecimal(datas[29]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd50(new BigDecimal(datas[30]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd60(new BigDecimal(datas[31]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd70(new BigDecimal(datas[32]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd80(new BigDecimal(datas[33]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd90(new BigDecimal(datas[34]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd100(new BigDecimal(datas[35]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd110(new BigDecimal(datas[36]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd120(new BigDecimal(datas[37]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd130(new BigDecimal(datas[38]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd140(new BigDecimal(datas[39]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd150(new BigDecimal(datas[40]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd160(new BigDecimal(datas[41]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd170(new BigDecimal(datas[42]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd180(new BigDecimal(datas[43]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd190(new BigDecimal(datas[44]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setWd200(new BigDecimal(datas[45]).setScale(2, RoundingMode.HALF_UP));
+                            nwpData.setT(new BigDecimal(datas[46]).setScale(2, RoundingMode.HALF_UP));
                             listNwp.add(nwpData);
                         }
                     }