|
@@ -56,28 +56,16 @@ public class ReportDataController {
|
|
|
@GetMapping("/getData")
|
|
|
public R getData(String stationCode, String fileType, Long startTime, Long endTime) {
|
|
|
|
|
|
- // 获取场站类型
|
|
|
- ElectricField electricField = electricFieldService.findByStationCode(stationCode);
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
|
|
|
- String electricFieldTypeEnum = electricField.getElectricFieldTypeEnum();
|
|
|
+ String electricFieldType = electricFieldService.findByStationCode(stationCode).getElectricFieldTypeEnum();
|
|
|
|
|
|
- List<FileTypeEnum> fileTypeEnumList = new ArrayList<>();
|
|
|
List<ParsingLog> resultList = new ArrayList<>();
|
|
|
|
|
|
- if (null == fileType) {
|
|
|
- if (electricFieldTypeEnum.equals("E1")) {
|
|
|
- fileTypeEnumList = FileTypeEnum.getPhotovoltaicFileType();
|
|
|
- } else {
|
|
|
- fileTypeEnumList = FileTypeEnum.getWindFileType();
|
|
|
- }
|
|
|
- List<ParsingLog> parsingLogList = new ArrayList<>();
|
|
|
- for (FileTypeEnum fileTypeEnum : fileTypeEnumList) {
|
|
|
- parsingLogList = getAllFileName(fileTypeEnum.name(), startTime, endTime, stationCode);
|
|
|
- resultList.addAll(parsingLogList);
|
|
|
- }
|
|
|
- } else {
|
|
|
- resultList = getAllFileName(fileType, startTime, endTime, stationCode);
|
|
|
- }
|
|
|
+ if (null == fileType)
|
|
|
+ fileType = "";
|
|
|
+
|
|
|
+ resultList.addAll(getAllFileName(fileType, startTime, endTime, stationCode));
|
|
|
|
|
|
// 定义比较器
|
|
|
Comparator<ParsingLog> timestampComparator = new Comparator<ParsingLog>() {
|
|
@@ -94,7 +82,9 @@ public class ReportDataController {
|
|
|
};
|
|
|
// 排序
|
|
|
Collections.sort(resultList, timestampComparator);
|
|
|
- return R.ok(resultList);
|
|
|
+ map.put("data",resultList);
|
|
|
+ map.put("type",electricFieldType);
|
|
|
+ return R.ok(map);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -119,52 +109,75 @@ public class ReportDataController {
|
|
|
List<ParsingLog> resultList = new ArrayList<>();
|
|
|
String rCdqKey = iSysConfigService.selectConfigByKey("sync_regulation");
|
|
|
// 获取应上报文件名
|
|
|
- List<String> shouldFileName = reportDataService.shouldFileName(fileType, startTime, endTime, stationCode,rCdqKey);
|
|
|
+// List<String> shouldFileName = reportDataService.shouldFileName(fileType, startTime, endTime, rCdqKey);
|
|
|
+ Map<String, List<String>> map = reportDataService.getFileResults(fileType, startTime, endTime, stationCode);
|
|
|
List<ParsingLog> parsingLogList = parsingLogService.findByTimeBetweenAndFileTypeAndStationCode(new Date(startTime), new Date(endTime), fileType, stationCode);
|
|
|
+ if ("".equals(rCdqKey) || "true".equals(rCdqKey)) {
|
|
|
+ map.remove("rcdq");
|
|
|
+ }
|
|
|
if (parsingLogList.size() > 0) {
|
|
|
resultList.addAll(parsingLogList);
|
|
|
- for (String s : shouldFileName) {
|
|
|
- List<ParsingLog> collectList = parsingLogList.stream().filter(f -> f.getFileName().contains(s)).collect(Collectors.toList());
|
|
|
- if (collectList.size() == 0) {
|
|
|
- ParsingLog parsingLogs = new ParsingLog();
|
|
|
-
|
|
|
- if ("rdq".equals(fileType) || "dq".equals(fileType) || "nwp".equals(fileType)) {
|
|
|
- parsingLogs.setFileName("sign_" + s + "_0000_" + fileType.toUpperCase() + ".WPD");
|
|
|
+ for (Map.Entry<String, List<String>> entry : map.entrySet()) {
|
|
|
+ for (String item : entry.getValue()) {
|
|
|
+ List<ParsingLog> collectList = parsingLogList.stream().filter(f -> f.getFileName().contains(item) && f.getFileType().equals(FileTypeEnum.valueOf(entry.getKey()))//
|
|
|
+ ).collect(Collectors.toList());
|
|
|
+ if (collectList.size() == 0) {
|
|
|
+ resultList.add(collectRecords(entry.getKey(), rCdqKey, stationCode, item));
|
|
|
}
|
|
|
- if (!rCdqKey.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)) {
|
|
|
- parsingLogs.setFileName("sign_" + s + "_" + fileType.toUpperCase() + ".WPD");
|
|
|
- }
|
|
|
- }else {
|
|
|
- if ("cdq".equals(fileType) || "status".equals(fileType) || "nbq".equals(fileType) || "qxz".equals(fileType) || "rp".equals(fileType) || "fj".equals(fileType) || "cft".equals(fileType)) {
|
|
|
- parsingLogs.setFileName("sign_" + s + "_" + fileType.toUpperCase() + ".WPD");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- parsingLogs.setFileType(FileTypeEnum.valueOf(fileType));
|
|
|
- parsingLogs.setParsingFileStatus("失败");
|
|
|
- parsingLogs.setStationCode(stationCode);
|
|
|
- parsingLogs.setDataSources(DataSourcesEnum.E1);
|
|
|
- resultList.add(parsingLogs);
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
- } else {
|
|
|
- for (int i = 0; i < shouldFileName.size(); i++) {
|
|
|
- ParsingLog parsingLogs = new ParsingLog();
|
|
|
- if ("rdq".equals(fileType) || "dq".equals(fileType) || "nwp".equals(fileType)) {
|
|
|
- parsingLogs.setFileName("sign_" + shouldFileName.get(i) + "_0000_" + fileType.toUpperCase() + ".WPD");
|
|
|
+ } else if ("".equals(fileType)) {
|
|
|
+ for (Map.Entry<String, List<String>> entry : map.entrySet()) {
|
|
|
+ List<String> value = entry.getValue();
|
|
|
+ for (String item : value) {
|
|
|
+ resultList.add(collectRecords(entry.getKey(), rCdqKey, stationCode, item));
|
|
|
}
|
|
|
- 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)) {
|
|
|
- parsingLogs.setFileName("sign_" + shouldFileName.get(i) + "_" + fileType.toUpperCase() + ".WPD");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (Map.Entry<String, List<String>> entry : map.entrySet()) {
|
|
|
+ List<String> value = entry.getValue();
|
|
|
+ for (String item : value) {
|
|
|
+ resultList.add(collectRecords(fileType, rCdqKey, stationCode, item));
|
|
|
}
|
|
|
- parsingLogs.setParsingFileStatus("失败");
|
|
|
- parsingLogs.setStationCode(stationCode);
|
|
|
- parsingLogs.setFileType(FileTypeEnum.valueOf(fileType));
|
|
|
- parsingLogs.setDataSources(DataSourcesEnum.E1);
|
|
|
- resultList.add(parsingLogs);
|
|
|
}
|
|
|
+ resultList = resultList.stream().filter(f -> f.getFileType().name().equals(FileTypeEnum.valueOf(fileType))).collect(Collectors.toList());
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
return resultList;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 拼接未上报文件名
|
|
|
+ *
|
|
|
+ * @param fileType
|
|
|
+ * @param rCdqKey
|
|
|
+ * @param stationCode
|
|
|
+ * @param str
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ParsingLog collectRecords(String fileType, String rCdqKey, String stationCode, String str) {
|
|
|
+ ParsingLog parsingLogs = new ParsingLog();
|
|
|
+
|
|
|
+ List<String> rdqTypes = Arrays.asList("rdq", "dq", "nwp");
|
|
|
+ List<String> rcdqTypes = Arrays.asList("rcdq", "cdq", "status", "nbq", "qxz", "rp", "fj", "cft");
|
|
|
+
|
|
|
+ if (rdqTypes.contains(fileType)) {
|
|
|
+ parsingLogs.setFileName("sign_" + str + "_0000_" + fileType.toUpperCase() + ".WPD");
|
|
|
+ } else if (!"true".equals(rCdqKey) && !"".equals(rCdqKey)) {
|
|
|
+ if (rcdqTypes.contains(fileType)) {
|
|
|
+ parsingLogs.setFileName("sign_" + str + "_" + fileType.toUpperCase() + ".WPD");
|
|
|
+ }
|
|
|
+ } else if (rcdqTypes.stream().filter(t -> !"rcdq".equals(t)).collect(Collectors.toList()).contains(fileType)) {
|
|
|
+ parsingLogs.setFileName("sign_" + str + "_" + fileType.toUpperCase() + ".WPD");
|
|
|
+ }
|
|
|
+
|
|
|
+ parsingLogs.setFileType(FileTypeEnum.valueOf(fileType));
|
|
|
+ parsingLogs.setParsingFileStatus("失败");
|
|
|
+ parsingLogs.setStationCode(stationCode);
|
|
|
+ parsingLogs.setDataSources(DataSourcesEnum.E1);
|
|
|
+
|
|
|
+ return parsingLogs;
|
|
|
}
|
|
|
}
|