|
@@ -1,7 +1,9 @@
|
|
package com.cpp.web.service.reprtdata.impl;
|
|
package com.cpp.web.service.reprtdata.impl;
|
|
|
|
|
|
-import com.cpp.system.service.ISysConfigService;
|
|
|
|
|
|
+import com.cpp.common.utils.spring.SpringUtils;
|
|
|
|
+import com.cpp.web.domain.station.ElectricField;
|
|
import com.cpp.web.service.reprtdata.ReportDataService;
|
|
import com.cpp.web.service.reprtdata.ReportDataService;
|
|
|
|
+import com.cpp.web.service.station.ElectricFieldService;
|
|
import com.cpp.web.utils.DateTimeUtil;
|
|
import com.cpp.web.utils.DateTimeUtil;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -12,15 +14,13 @@ import java.time.Instant;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.ZoneId;
|
|
import java.time.ZoneId;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Calendar;
|
|
|
|
-import java.util.Date;
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
@Slf4j
|
|
@Slf4j
|
|
public class ReportDataServiceImpl implements ReportDataService {
|
|
public class ReportDataServiceImpl implements ReportDataService {
|
|
|
|
+
|
|
// 当前文件类型应上报文件个数
|
|
// 当前文件类型应上报文件个数
|
|
@Override
|
|
@Override
|
|
public int shouldFileNum(String fileType, Long startTime, Long endTime, String stationCode) {
|
|
public int shouldFileNum(String fileType, Long startTime, Long endTime, String stationCode) {
|
|
@@ -36,13 +36,13 @@ public class ReportDataServiceImpl implements ReportDataService {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public List<String> shouldFileName(String fileType, Long startTime, Long endTime, String stationCode,String key) {
|
|
|
|
|
|
+ public List<String> shouldFileName(String fileType, Long startTime, Long endTime, String key) {
|
|
|
|
|
|
List<String> list = new ArrayList<>();
|
|
List<String> list = new ArrayList<>();
|
|
if ("rdq".equals(fileType) || "dq".equals(fileType) || "nwp".equals(fileType)) {
|
|
if ("rdq".equals(fileType) || "dq".equals(fileType) || "nwp".equals(fileType)) {
|
|
list = getDatesInRange(startTime + 24 * 60 * 60 * 1000L, endTime + 24 * 60 * 60 * 1000L);
|
|
list = getDatesInRange(startTime + 24 * 60 * 60 * 1000L, endTime + 24 * 60 * 60 * 1000L);
|
|
}
|
|
}
|
|
- if (!key.equals("true")){
|
|
|
|
|
|
+ if (!"".equals(key) && !key.equals("true")) {
|
|
if ("rcdq".equals(fileType) || "cdq".equals(fileType) || "status".equals(fileType) || "nbq".equals(fileType) || "qxz".equals(fileType) || "rp".equals(fileType) || "fj".equals(fileType) || "cft".equals(fileType)) {
|
|
if ("rcdq".equals(fileType) || "cdq".equals(fileType) || "status".equals(fileType) || "nbq".equals(fileType) || "qxz".equals(fileType) || "rp".equals(fileType) || "fj".equals(fileType) || "cft".equals(fileType)) {
|
|
if (new Date(endTime).after(new Date())) {
|
|
if (new Date(endTime).after(new Date())) {
|
|
list = getMin(startTime, new Date().getTime(), fileType);
|
|
list = getMin(startTime, new Date().getTime(), fileType);
|
|
@@ -50,7 +50,7 @@ public class ReportDataServiceImpl implements ReportDataService {
|
|
list = getMin(startTime, endTime, fileType);
|
|
list = getMin(startTime, endTime, fileType);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- }else {
|
|
|
|
|
|
+ } else {
|
|
if ("cdq".equals(fileType) || "status".equals(fileType) || "nbq".equals(fileType) || "qxz".equals(fileType) || "rp".equals(fileType) || "fj".equals(fileType) || "cft".equals(fileType)) {
|
|
if ("cdq".equals(fileType) || "status".equals(fileType) || "nbq".equals(fileType) || "qxz".equals(fileType) || "rp".equals(fileType) || "fj".equals(fileType) || "cft".equals(fileType)) {
|
|
if (new Date(endTime).after(new Date())) {
|
|
if (new Date(endTime).after(new Date())) {
|
|
list = getMin(startTime, new Date().getTime(), fileType);
|
|
list = getMin(startTime, new Date().getTime(), fileType);
|
|
@@ -63,6 +63,48 @@ public class ReportDataServiceImpl implements ReportDataService {
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public Map<String, List<String>> getFileResults(String fileType, long startTime, long endTime, String stationCode) {
|
|
|
|
+
|
|
|
|
+ Long calculateStartTime = startTime + 24 * 60 * 60 * 1000L;
|
|
|
|
+ Long calculateEndTime = endTime + 24 * 60 * 60 * 1000L;
|
|
|
|
+ Map<String, List<String>> resultMap = new HashMap<>();
|
|
|
|
+
|
|
|
|
+ ElectricField electricField = SpringUtils.getBean(ElectricFieldService.class).findByStationCode(stationCode);
|
|
|
|
+ String typeE = electricField.getElectricFieldTypeEnum();
|
|
|
|
+ Set<String> fileTypes = new HashSet<>();
|
|
|
|
+ if (typeE.equals("E1")) {
|
|
|
|
+ fileTypes = new HashSet<>(Arrays.asList("rcdq", "cdq", "status", "nbq", "qxz", "rp"));
|
|
|
|
+ } else {
|
|
|
|
+ fileTypes = new HashSet<>(Arrays.asList("rcdq", "cdq", "status", "rp", "fj", "cft"));
|
|
|
|
+ }
|
|
|
|
+ if ("".equals(fileType)) {
|
|
|
|
+ resultMap.put("rdq", getDatesInRange(calculateStartTime, calculateEndTime));
|
|
|
|
+ resultMap.put("dq", getDatesInRange(calculateStartTime, calculateEndTime));
|
|
|
|
+ resultMap.put("nwp", getDatesInRange(calculateStartTime, calculateEndTime));
|
|
|
|
+ for (String type : fileTypes) {
|
|
|
|
+ List<String> results = (new Date(System.currentTimeMillis()).after(new Date()))
|
|
|
|
+ ? getMin(startTime, new Date().getTime(), type)
|
|
|
|
+ : getMin(startTime, System.currentTimeMillis(), type);
|
|
|
|
+
|
|
|
|
+ resultMap.put(type, results);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if ("rdq".equals(fileType) || "dq".equals(fileType) || "nwp".equals(fileType)) {
|
|
|
|
+ resultMap.put(fileType, getDatesInRange(calculateStartTime, calculateEndTime));
|
|
|
|
+ }
|
|
|
|
+ if ("cdq".equals(fileType) || "status".equals(fileType) || "nbq".equals(fileType) || "qxz".equals(fileType) || "rp".equals(fileType) || "fj".equals(fileType) || "cft".equals(fileType)) {
|
|
|
|
+ if (new Date(endTime).after(new Date())) {
|
|
|
|
+ resultMap.put(fileType, getMin(startTime, new Date().getTime(), fileType));
|
|
|
|
+ } else {
|
|
|
|
+ resultMap.put(fileType, getMin(startTime, endTime, fileType));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return resultMap;
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取每一天 判断dq和nwp
|
|
* 获取每一天 判断dq和nwp
|
|
*
|
|
*
|
|
@@ -98,7 +140,7 @@ public class ReportDataServiceImpl implements ReportDataService {
|
|
*/
|
|
*/
|
|
public List<String> getMin(Long startTime, Long endTime, String fileType) {
|
|
public List<String> getMin(Long startTime, Long endTime, String fileType) {
|
|
List<String> list = new ArrayList<>();
|
|
List<String> list = new ArrayList<>();
|
|
- if ("cdq".equals(fileType)|| "rcdq".equals(fileType)){
|
|
|
|
|
|
+ if ("cdq".equals(fileType) || "rcdq".equals(fileType)) {
|
|
startTime = startTime + 15 * 60 * 1000L;
|
|
startTime = startTime + 15 * 60 * 1000L;
|
|
}
|
|
}
|
|
LocalDateTime start = LocalDateTime.ofInstant(Instant.ofEpochMilli(startTime), ZoneId.systemDefault());
|
|
LocalDateTime start = LocalDateTime.ofInstant(Instant.ofEpochMilli(startTime), ZoneId.systemDefault());
|
|
@@ -107,7 +149,7 @@ public class ReportDataServiceImpl implements ReportDataService {
|
|
LocalDateTime currentTime = start;
|
|
LocalDateTime currentTime = start;
|
|
while (!currentTime.isAfter(end)) {
|
|
while (!currentTime.isAfter(end)) {
|
|
String formattedTime = currentTime.format(formatter);
|
|
String formattedTime = currentTime.format(formatter);
|
|
- if ("cdq".equals(fileType) || "rcdq".equals(fileType)|| "status".equals(fileType)) {
|
|
|
|
|
|
+ if ("cdq".equals(fileType) || "rcdq".equals(fileType) || "status".equals(fileType)) {
|
|
currentTime = currentTime.plusMinutes(15);
|
|
currentTime = currentTime.plusMinutes(15);
|
|
} else {
|
|
} else {
|
|
currentTime = currentTime.plusMinutes(5);
|
|
currentTime = currentTime.plusMinutes(5);
|