|
@@ -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
|
|
|
*/
|