Jelajahi Sumber

内蒙古马吉拉光伏

fanxiaoyu 1 bulan lalu
induk
melakukan
875a77c13a

+ 47 - 18
in-cloud/src/main/java/com/jiayue/insu/incloud/service/impl/ApiServiceImpl.java

@@ -33,6 +33,7 @@ import org.springframework.util.DigestUtils;
 
 import java.io.*;
 import java.math.BigDecimal;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -164,7 +165,13 @@ public class ApiServiceImpl implements ApiService {
             // 从minIo获取文件
             File file = downLoadFileFromMinIo(station, "dq", requestJson.getStr("beginDate"), requestJson.getStr("endDate"), errMsg);
             // 解析短期文件
-            JSONObject fileResult = fileAnalysis(file, station, "dq", requestJson.getStr("beginDate"), requestJson.getStr("beginDate"));
+            JSONObject fileResult = null;
+            // 内蒙古马吉拉湖光伏电站 返回未来10天数据
+            if ("J00476".equals(station.getStationCode())) {
+                fileResult = fileAnalysis(file, station, "dq", requestJson.getStr("beginDate"), requestJson.getStr("beginDate"));
+            } else {
+                fileResult = fileAnalysis(file, station, "dq", requestJson.getStr("beginDate"), requestJson.getStr("beginDate"));
+            }
             // 如果解析文件成功,则放入data集合中
             if (JsonResultUtil.Type.success.value().equals(fileResult.get(JsonResultUtil.CODE_TAG))) {
                 result = fileResult;
@@ -302,6 +309,16 @@ public class ApiServiceImpl implements ApiService {
      * @return
      */
     public JSONObject fileAnalysis(File dqFile, Station station, String type, String startDate, String endDate) {
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String dateChange = startDate + " 00:00:00";
+        Long useStartTime = null;
+        try {
+            useStartTime = dateFormat.parse(dateChange).getTime();
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        Long useEndTime = useStartTime + 11 * 24 * 60 * 60 * 1000L;
         if (dqFile == null) {
             log.info("请求的文件不存在");
             return JsonResultUtil.failure("请求的文件不存在");
@@ -343,26 +360,37 @@ public class ApiServiceImpl implements ApiService {
                                 String thisDate = string_arr[2].split(" ")[0];
                                 // 如果是短期
                                 if ("dq".equals(type)) {
-                                    // 如果  当条日期<开始时间 || 当条日期>结束时间 跳过当次循环
-                                    if (thisDate.compareTo(startDate) < 0 || thisDate.compareTo(endDate) > 0) {
-                                        continue;
+                                    // 内蒙古马吉拉光伏电站返回未来10天数据
+                                    if ("J00476".equals(station.getStationCode())) {
+                                        // 如果  当条日期>开始时间 || 当条日期<结束时间 跳过当次循环
+                                        if (thisDate.compareTo(format.format(useStartTime)) <= 0 || thisDate.compareTo(format.format(useEndTime)) >= 0) {
+                                            continue;
+                                        }
+                                    } else {
+                                        // 如果  当条日期<开始时间 || 当条日期>结束时间 跳过当次循环
+                                        if (thisDate.compareTo(startDate) < 0 || thisDate.compareTo(endDate) > 0) {
+                                            continue;
+                                        }
                                     }
+
                                 }
                                 // 如果当条的日期和上调日期不一致,新建dayInfoJson(日数据json)
-                                if (!thisDate.equals(compareDate)) {
-                                    // 如果不是第一条,且和上一条日期不是同一天,则将上条日期的96条数据放入日json数据
-                                    if (!"".equals(compareDate)) {
-                                        dayInfoJson.set("datas", datas);
-                                        valuesArr.add(dayInfoJson);
-                                        datas = new JSONArray();
+                                if (!"J00476".equals(station.getStationCode())) {
+                                    if (!thisDate.equals(compareDate)) {
+                                        // 如果不是第一条,且和上一条日期不是同一天,则将上条日期的96条数据放入日json数据
+                                        if (!"".equals(compareDate)) {
+                                            dayInfoJson.set("datas", datas);
+                                            valuesArr.add(dayInfoJson);
+                                            datas = new JSONArray();
+                                        }
+                                        // 将当条日期放入compareDate
+                                        compareDate = thisDate;
+                                        // 新建日json数据
+                                        dayInfoJson = new JSONObject();
+                                        dayInfoJson.set("date", thisDate);
+                                        dayInfoJson.set("version", version);
+                                        dayInfoJson.set("recDate", recDate);
                                     }
-                                    // 将当条日期放入compareDate
-                                    compareDate = thisDate;
-                                    // 新建日json数据
-                                    dayInfoJson = new JSONObject();
-                                    dayInfoJson.set("date", thisDate);
-                                    dayInfoJson.set("version", version);
-                                    dayInfoJson.set("recDate", recDate);
                                 }
                                 // 每一条数据的json,放入预测数据和预测时间
                                 oneJson = new JSONObject();
@@ -1058,7 +1086,8 @@ public class ApiServiceImpl implements ApiService {
     }
 
     /**
-     *  接收实际功率数据
+     * 接收实际功率数据
+     *
      * @param requestJson
      * @return
      */