|
@@ -796,88 +796,80 @@ public class ReportTableTask {
|
|
|
List<TableTemplateTableItem> tableTemplateItemList = reportTableDao.getTttiByGroup(tableTemplateId, itemGroupId, dataSourceId, bucketType);
|
|
|
List<RawData> rawDataList = new ArrayList<>();
|
|
|
List<CursorRawData> cursorRawDataList = new ArrayList<>();
|
|
|
- List<CursorRawData> sqlCurrentYmdhList = new ArrayList<>();
|
|
|
//获取所有数据项的数据
|
|
|
if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY) || bucketType.equals(ConstantStr.PERIOD_TIME_HOUR)
|
|
|
|| bucketType.equals(ConstantStr.PERIOD_TIME_MINUTE) || bucketType.equals(ConstantStr.PERIOD_TIME_SECOND)) {
|
|
|
String startBelongTime;
|
|
|
String endBelongTime;
|
|
|
|
|
|
- //从历史表中,查出历史数据
|
|
|
+ //从历史表中,查出历史数据;从临时表中,查出所有临时数据
|
|
|
if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY)) {
|
|
|
startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
-// rawDataList = rawDataDao.getTableDataByDay(itemGroupId, remainder, dataSourceId, itemName, startBelongTime, endBelongTime);
|
|
|
rawDataList = rawDataDao.getTableDataGroupByDay(itemGroupId, remainder, dataSourceId, tableTemplateItemList, startBelongTime, endBelongTime);
|
|
|
+ cursorRawDataList = rawDataDao.getTableCursorDataGroupByDay(itemGroupId, dataSourceId, tableTemplateItemList, startBelongTime, endBelongTime);
|
|
|
} else {
|
|
|
startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
-// rawDataList = rawDataDao.getTableData(itemGroupId, remainder, dataSourceId, itemName, startBelongTime, endBelongTime);
|
|
|
rawDataList = rawDataDao.getTableDataGroup(itemGroupId, remainder, dataSourceId, tableTemplateItemList, startBelongTime, endBelongTime);
|
|
|
+ cursorRawDataList = rawDataDao.getTableCursorDataGroup(itemGroupId, dataSourceId, tableTemplateItemList, startBelongTime, endBelongTime);
|
|
|
}
|
|
|
- //从临时表中,查出所有临时数据
|
|
|
- cursorRawDataList = rawDataDao.getTableCursorDataGroup(itemGroupId, dataSourceId, tableTemplateItemList);
|
|
|
- //查询出所有数据时间归属
|
|
|
- sqlCurrentYmdhList = rawDataDao.getCursorYmdhGroup(itemGroupId, dataSourceId, tableTemplateItemList, startBelongTime, endBelongTime);
|
|
|
} else {
|
|
|
throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前还未适配此种类型的取值模式");
|
|
|
}
|
|
|
|
|
|
- List<RawData> finalRawDataList = rawDataList;
|
|
|
- List<CursorRawData> finalCursorRawDataList = cursorRawDataList;
|
|
|
- List<CursorRawData> finalSqlCurrentYmdhList = sqlCurrentYmdhList;
|
|
|
- tableTemplateItemList.forEach(t -> {
|
|
|
+ for (TableTemplateTableItem t : tableTemplateItemList) {
|
|
|
//循环得到每个数据项的历史数据和临时数据,归属时间
|
|
|
Integer itemGroupId1 = t.getItemGroupId();
|
|
|
Integer dataSourceId1 = t.getDataSourceId();
|
|
|
String itemReadName = t.getItemReadName();
|
|
|
List<RawData> currentRawDataList = new ArrayList<>();
|
|
|
List<CursorRawData> currentCursorRawDataList = new ArrayList<>();
|
|
|
- List<String> currentSqlYmdhList = new ArrayList<>();
|
|
|
- finalRawDataList.forEach(rawData -> {
|
|
|
+ for (int i = 0; i < rawDataList.size(); i++) {
|
|
|
+ RawData rawData = rawDataList.get(i);
|
|
|
//生成历史数据
|
|
|
if (rawData.getItemGroupId().equals(itemGroupId1)
|
|
|
&& rawData.getDataSourceId().equals(dataSourceId1)
|
|
|
&& rawData.getItemName().equals(itemReadName)) {
|
|
|
currentRawDataList.add(rawData);
|
|
|
+ rawDataList.remove(i);
|
|
|
+ i--;
|
|
|
}
|
|
|
- });
|
|
|
- finalCursorRawDataList.forEach(currentRawData -> {
|
|
|
+ }
|
|
|
+ for (int i = 0; i < cursorRawDataList.size(); i++) {
|
|
|
+ CursorRawData cursorRawData = cursorRawDataList.get(i);
|
|
|
//生成临时数据
|
|
|
- if (currentRawData.getItemGroupId().equals(itemGroupId1)
|
|
|
- && currentRawData.getDataSourceId().equals(dataSourceId1)
|
|
|
- && currentRawData.getItemName().equals(itemReadName)) {
|
|
|
- currentCursorRawDataList.add(currentRawData);
|
|
|
+ if (cursorRawData.getItemGroupId().equals(itemGroupId1)
|
|
|
+ && cursorRawData.getDataSourceId().equals(dataSourceId1)
|
|
|
+ && cursorRawData.getItemName().equals(itemReadName)) {
|
|
|
+ currentCursorRawDataList.add(cursorRawData);
|
|
|
+ cursorRawDataList.remove(i);
|
|
|
+ i--;
|
|
|
}
|
|
|
- });
|
|
|
- finalSqlCurrentYmdhList.forEach(currentRawData -> {
|
|
|
- if (currentRawData.getItemGroupId().equals(itemGroupId1)
|
|
|
- && currentRawData.getDataSourceId().equals(dataSourceId1)
|
|
|
- && currentRawData.getItemName().equals(itemReadName)) {
|
|
|
- currentSqlYmdhList.add(currentRawData.getValueBelongTime());
|
|
|
+ }
|
|
|
+ //将所有数据组合成一个List<CursorRawData>
|
|
|
+ currentCursorRawDataList.addAll(ReportTask.genRawChangeCursor(currentRawDataList));
|
|
|
+ //对currentCursorRawDataList进行排序,使用dataValueTime排序
|
|
|
+ Collections.sort(currentCursorRawDataList, new Comparator<CursorRawData>() {
|
|
|
+ @Override
|
|
|
+ public int compare(CursorRawData o1, CursorRawData o2) {
|
|
|
+ return o1.getDataValueTime().compareTo(o2.getDataValueTime());
|
|
|
}
|
|
|
});
|
|
|
- //根据历史数据和临时数据,计算出此数据项在报表中应该展示的数据,map形式返回
|
|
|
-// Map<String, String> map = ReportTask.genAutoData(currentRawDataList, currentCursorRawDataList,
|
|
|
-// startTime, endTime, t.getValueTakingMode(), t.getBucketType(), t.getBucketValue());
|
|
|
- List<RawData> currentRawDataList1 = new ArrayList<>();
|
|
|
- if (Blank.isNotEmpty(currentSqlYmdhList)) {
|
|
|
- for (String sqlCurrentYmdh : currentSqlYmdhList) {
|
|
|
- currentRawDataList1 = ReportTask.genRawAddCursor(currentRawDataList, currentCursorRawDataList, itemGroupId, dataSourceId, sqlCurrentYmdh);
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+ //计算出数据项的值集合
|
|
|
Map<String, String> map = new HashMap<>();
|
|
|
Integer valueTakingMode = t.getValueTakingMode();
|
|
|
Integer bucketValue = t.getBucketValue();
|
|
|
- if (Blank.isNotEmpty(currentRawDataList1)) {
|
|
|
- String dataType = currentRawDataList1.get(0).getDataType();
|
|
|
+ if (Blank.isNotEmpty(currentCursorRawDataList)) {
|
|
|
+ String dataType = currentCursorRawDataList.get(0).getDataType();
|
|
|
if (dataType.equals("boolean")) {
|
|
|
- map = ReportTask.genBoolean(currentRawDataList1, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genBoolean(currentCursorRawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
} else {
|
|
|
try {
|
|
|
- map = ReportTask.genBigDecimal(currentRawDataList1, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genBigDecimal(currentCursorRawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
} catch (Exception e) {
|
|
|
- map = ReportTask.genString(currentRawDataList1, startTime, endTime, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -894,7 +886,7 @@ public class ReportTableTask {
|
|
|
reportTableItemList.add(new ReportTableItem(
|
|
|
reportTableId, itemId, xaxis, yaxis, standby, valueList, valueTimeList, valueIndexList
|
|
|
));
|
|
|
- });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -909,67 +901,103 @@ public class ReportTableTask {
|
|
|
//查询相关联的模板统计图,以及统计图的数据项相关信息
|
|
|
Integer reportChartId = reportChart.getId();
|
|
|
Integer templateChartId = reportChart.getTemplateChartId();
|
|
|
+ //获取报表统计图的模板统计图
|
|
|
TableTemplateChart tableTemplateChart = reportTableDao.getTtcById(templateChartId);
|
|
|
Integer valueTakingMode = tableTemplateChart.getValueTakingMode();
|
|
|
Integer valueType = tableTemplateChart.getValueType();
|
|
|
Integer bucketType = tableTemplateChart.getBucketType();
|
|
|
Integer bucketValue = tableTemplateChart.getBucketValue();
|
|
|
boolean flage = valueType.equals(ConstantStr.CALCULATED_VALUE);
|
|
|
- List<TableTemplateChartItem> tableTemplateChartItems = tableTemplateChart.getTableTemplateChartItemList();
|
|
|
+ //获取单个统计图的数据项信息,因为每个统计图的数据项配置一样,所以一起查询出来
|
|
|
+ List<TableTemplateChartItem> tableTemplateChartItemList = tableTemplateChart.getTableTemplateChartItemList();
|
|
|
List<ReportChartItem> reportChartItemList = new ArrayList<>();
|
|
|
- if (Blank.isNotEmpty(tableTemplateChartItems)) {
|
|
|
- for (TableTemplateChartItem ttci : tableTemplateChartItems) {
|
|
|
- Integer itemGroupId = ttci.getItemGroupId();
|
|
|
- if (Blank.isEmpty(itemGroupId)) {
|
|
|
- continue;
|
|
|
+ if (Blank.isNotEmpty(tableTemplateChartItemList)) {
|
|
|
+ TableTemplateChartItem tableTemplateChartItem = tableTemplateChartItemList.get(0);
|
|
|
+ Integer itemGroupId = tableTemplateChartItem.getItemGroupId();
|
|
|
+ Integer dataSourceId = tableTemplateChartItem.getDataSourceId();
|
|
|
+ Integer remainder = itemGroupId % ConstantStr.SUB_TABLE_NUM;
|
|
|
+ List<RawData> rawDataList = new ArrayList<>();
|
|
|
+ List<CursorRawData> cursorRawDataList = new ArrayList<>();
|
|
|
+ if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY) || bucketType.equals(ConstantStr.PERIOD_TIME_HOUR)
|
|
|
+ || bucketType.equals(ConstantStr.PERIOD_TIME_MINUTE) || bucketType.equals(ConstantStr.PERIOD_TIME_SECOND)) {
|
|
|
+ String startBelongTime;
|
|
|
+ String endBelongTime;
|
|
|
+
|
|
|
+ //从历史表中,查出历史数据;从临时表中,查出所有临时数据
|
|
|
+ if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY)) {
|
|
|
+ startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
+ endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
+ rawDataList = rawDataDao.getTableChartDataGroupByDay(itemGroupId, remainder, dataSourceId, tableTemplateChartItemList, startBelongTime, endBelongTime);
|
|
|
+ cursorRawDataList = rawDataDao.getTableChartCursorDataGroupByDay(itemGroupId, dataSourceId, tableTemplateChartItemList, startBelongTime, endBelongTime);
|
|
|
+ } else {
|
|
|
+ startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
+ endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
+ rawDataList = rawDataDao.getTableChartDataGroup(itemGroupId, remainder, dataSourceId, tableTemplateChartItemList, startBelongTime, endBelongTime);
|
|
|
+ cursorRawDataList = rawDataDao.getTableChartCursorDataGroup(itemGroupId, dataSourceId, tableTemplateChartItemList, startBelongTime, endBelongTime);
|
|
|
}
|
|
|
- Integer remainder = itemGroupId % ConstantStr.SUB_TABLE_NUM;
|
|
|
- Integer itemId = ttci.getItemId();
|
|
|
- String itemName = ttci.getItemName();
|
|
|
- Integer dataSourceId = ttci.getDataSourceId();
|
|
|
- Map<String, String> map = new HashMap<>();
|
|
|
- if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY) || bucketType.equals(ConstantStr.PERIOD_TIME_HOUR)
|
|
|
- || bucketType.equals(ConstantStr.PERIOD_TIME_MINUTE) || bucketType.equals(ConstantStr.PERIOD_TIME_SECOND)) {
|
|
|
- String startBelongTime;
|
|
|
- String endBelongTime;
|
|
|
- List<RawData> rawDataList = new ArrayList<>();
|
|
|
- if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY)) {
|
|
|
- startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
- endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
- rawDataList = rawDataDao.getTableDataByDay(itemGroupId, remainder, dataSourceId, itemName, startBelongTime, endBelongTime);
|
|
|
- } else {
|
|
|
- startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
- endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
- rawDataList = rawDataDao.getTableData(itemGroupId, remainder, dataSourceId, itemName, startBelongTime, endBelongTime);
|
|
|
+
|
|
|
+ for (TableTemplateChartItem t : tableTemplateChartItemList) {
|
|
|
+ Integer itemGroupId1 = t.getItemGroupId();
|
|
|
+ Integer dataSourceId1 = t.getDataSourceId();
|
|
|
+ Integer itemId = t.getItemId();
|
|
|
+ String itemReadName = t.getItemReadName();
|
|
|
+ List<RawData> currentRawDataList = new ArrayList<>();
|
|
|
+ List<CursorRawData> currentCursorRawDataList = new ArrayList<>();
|
|
|
+ for (int i = 0; i < rawDataList.size(); i++) {
|
|
|
+ RawData rawData = rawDataList.get(i);
|
|
|
+ //生成历史数据
|
|
|
+ if (rawData.getItemGroupId().equals(itemGroupId1)
|
|
|
+ && rawData.getDataSourceId().equals(dataSourceId1)
|
|
|
+ && rawData.getItemName().equals(itemReadName)) {
|
|
|
+ currentRawDataList.add(rawData);
|
|
|
+ rawDataList.remove(i);
|
|
|
+ i--;
|
|
|
+ }
|
|
|
}
|
|
|
- List<String> sqlCurrentYmdhList = rawDataDao.getCursorYmdh(itemGroupId, dataSourceId, itemName, startBelongTime, endBelongTime);
|
|
|
- if (Blank.isNotEmpty(sqlCurrentYmdhList)) {
|
|
|
- for (String sqlCurrentYmdh : sqlCurrentYmdhList) {
|
|
|
- List<CursorRawData> cursorRawDataList = rawDataDao.getTableCursorData(itemGroupId, dataSourceId, itemName, sqlCurrentYmdh);
|
|
|
- rawDataList = ReportTask.genRawAddCursor(rawDataList, cursorRawDataList, itemGroupId, dataSourceId, sqlCurrentYmdh);
|
|
|
+ for (int i = 0; i < cursorRawDataList.size(); i++) {
|
|
|
+ CursorRawData cursorRawData = cursorRawDataList.get(i);
|
|
|
+ //生成临时数据
|
|
|
+ if (cursorRawData.getItemGroupId().equals(itemGroupId1)
|
|
|
+ && cursorRawData.getDataSourceId().equals(dataSourceId1)
|
|
|
+ && cursorRawData.getItemName().equals(itemReadName)) {
|
|
|
+ currentCursorRawDataList.add(cursorRawData);
|
|
|
+ cursorRawDataList.remove(i);
|
|
|
+ i--;
|
|
|
}
|
|
|
}
|
|
|
- if (Blank.isNotEmpty(rawDataList)) {
|
|
|
- String dataType = rawDataList.get(0).getDataType();
|
|
|
+ //将所有数据组合成一个List<CursorRawData>
|
|
|
+ currentCursorRawDataList.addAll(ReportTask.genRawChangeCursor(currentRawDataList));
|
|
|
+ //对currentCursorRawDataList进行排序,使用dataValueTime排序
|
|
|
+ Collections.sort(currentCursorRawDataList, new Comparator<CursorRawData>() {
|
|
|
+ @Override
|
|
|
+ public int compare(CursorRawData o1, CursorRawData o2) {
|
|
|
+ return o1.getDataValueTime().compareTo(o2.getDataValueTime());
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ //计算出数据项的值集合
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
+ if (Blank.isNotEmpty(currentCursorRawDataList)) {
|
|
|
+ String dataType = currentCursorRawDataList.get(0).getDataType();
|
|
|
if (dataType.equals("boolean")) {
|
|
|
- map = ReportTask.genBoolean(rawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genBoolean(currentCursorRawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
} else {
|
|
|
try {
|
|
|
- map = ReportTask.genBigDecimal(rawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genBigDecimal(currentCursorRawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
} catch (Exception e) {
|
|
|
- map = ReportTask.genString(rawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- } else {
|
|
|
- throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前还未适配此种类型的取值模式");
|
|
|
+ String valueList = map.get(flage ? "valueList" : "orgValueList");
|
|
|
+ String valueTimeList = map.get("valueTimeList");
|
|
|
+ String valueIndexList = map.get("valueIndexList");
|
|
|
+ reportChartItemList.add(new ReportChartItem(
|
|
|
+ reportChartId, itemId, valueList, valueTimeList, valueIndexList
|
|
|
+ ));
|
|
|
}
|
|
|
- String valueList = map.get(flage ? "valueList" : "orgValueList");
|
|
|
- String valueTimeList = map.get("valueTimeList");
|
|
|
- String valueIndexList = map.get("valueIndexList");
|
|
|
- reportChartItemList.add(new ReportChartItem(
|
|
|
- reportChartId, itemId, valueList, valueTimeList, valueIndexList
|
|
|
- ));
|
|
|
+ } else {
|
|
|
+ throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前还未适配此种类型的取值模式");
|
|
|
}
|
|
|
}
|
|
|
reportChart.setReportChartItemList(reportChartItemList);
|
|
@@ -1080,88 +1108,80 @@ public class ReportTableTask {
|
|
|
List<TableTemplateTableItem> tableTemplateItemList = reportTableDao.getTttiByGroup(tableTemplateId, itemGroupId, dataSourceId, bucketType);
|
|
|
List<RawData> rawDataList = new ArrayList<>();
|
|
|
List<CursorRawData> cursorRawDataList = new ArrayList<>();
|
|
|
- List<CursorRawData> sqlCurrentYmdhList = new ArrayList<>();
|
|
|
//获取所有数据项的数据
|
|
|
if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY) || bucketType.equals(ConstantStr.PERIOD_TIME_HOUR)
|
|
|
|| bucketType.equals(ConstantStr.PERIOD_TIME_MINUTE) || bucketType.equals(ConstantStr.PERIOD_TIME_SECOND)) {
|
|
|
String startBelongTime;
|
|
|
String endBelongTime;
|
|
|
|
|
|
- //从历史表中,查出历史数据
|
|
|
+ //从历史表中,查出历史数据;从临时表中,查出所有临时数据
|
|
|
if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY)) {
|
|
|
startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
-// rawDataList = rawDataDao.getTableDataByDay(itemGroupId, remainder, dataSourceId, itemName, startBelongTime, endBelongTime);
|
|
|
rawDataList = rawDataDao.getTableDataGroupByDay(itemGroupId, remainder, dataSourceId, tableTemplateItemList, startBelongTime, endBelongTime);
|
|
|
+ cursorRawDataList = rawDataDao.getTableCursorDataGroupByDay(itemGroupId, dataSourceId, tableTemplateItemList, startBelongTime, endBelongTime);
|
|
|
} else {
|
|
|
startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
-// rawDataList = rawDataDao.getTableData(itemGroupId, remainder, dataSourceId, itemName, startBelongTime, endBelongTime);
|
|
|
rawDataList = rawDataDao.getTableDataGroup(itemGroupId, remainder, dataSourceId, tableTemplateItemList, startBelongTime, endBelongTime);
|
|
|
+ cursorRawDataList = rawDataDao.getTableCursorDataGroup(itemGroupId, dataSourceId, tableTemplateItemList, startBelongTime, endBelongTime);
|
|
|
}
|
|
|
- //从临时表中,查出所有临时数据
|
|
|
- cursorRawDataList = rawDataDao.getTableCursorDataGroup(itemGroupId, dataSourceId, tableTemplateItemList);
|
|
|
- //查询出所有数据时间归属
|
|
|
- sqlCurrentYmdhList = rawDataDao.getCursorYmdhGroup(itemGroupId, dataSourceId, tableTemplateItemList, startBelongTime, endBelongTime);
|
|
|
} else {
|
|
|
throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前还未适配此种类型的取值模式");
|
|
|
}
|
|
|
|
|
|
- List<RawData> finalRawDataList = rawDataList;
|
|
|
- List<CursorRawData> finalCursorRawDataList = cursorRawDataList;
|
|
|
- List<CursorRawData> finalSqlCurrentYmdhList = sqlCurrentYmdhList;
|
|
|
- tableTemplateItemList.forEach(t -> {
|
|
|
+ for (TableTemplateTableItem t : tableTemplateItemList) {
|
|
|
//循环得到每个数据项的历史数据和临时数据,归属时间
|
|
|
Integer itemGroupId1 = t.getItemGroupId();
|
|
|
Integer dataSourceId1 = t.getDataSourceId();
|
|
|
String itemReadName = t.getItemReadName();
|
|
|
List<RawData> currentRawDataList = new ArrayList<>();
|
|
|
List<CursorRawData> currentCursorRawDataList = new ArrayList<>();
|
|
|
- List<String> currentSqlYmdhList = new ArrayList<>();
|
|
|
- finalRawDataList.forEach(rawData -> {
|
|
|
+ for (int i = 0; i < rawDataList.size(); i++) {
|
|
|
+ RawData rawData = rawDataList.get(i);
|
|
|
//生成历史数据
|
|
|
if (rawData.getItemGroupId().equals(itemGroupId1)
|
|
|
&& rawData.getDataSourceId().equals(dataSourceId1)
|
|
|
&& rawData.getItemName().equals(itemReadName)) {
|
|
|
currentRawDataList.add(rawData);
|
|
|
+ rawDataList.remove(i);
|
|
|
+ i--;
|
|
|
}
|
|
|
- });
|
|
|
- finalCursorRawDataList.forEach(currentRawData -> {
|
|
|
+ }
|
|
|
+ for (int i = 0; i < cursorRawDataList.size(); i++) {
|
|
|
+ CursorRawData cursorRawData = cursorRawDataList.get(i);
|
|
|
//生成临时数据
|
|
|
- if (currentRawData.getItemGroupId().equals(itemGroupId1)
|
|
|
- && currentRawData.getDataSourceId().equals(dataSourceId1)
|
|
|
- && currentRawData.getItemName().equals(itemReadName)) {
|
|
|
- currentCursorRawDataList.add(currentRawData);
|
|
|
+ if (cursorRawData.getItemGroupId().equals(itemGroupId1)
|
|
|
+ && cursorRawData.getDataSourceId().equals(dataSourceId1)
|
|
|
+ && cursorRawData.getItemName().equals(itemReadName)) {
|
|
|
+ currentCursorRawDataList.add(cursorRawData);
|
|
|
+ cursorRawDataList.remove(i);
|
|
|
+ i--;
|
|
|
}
|
|
|
- });
|
|
|
- finalSqlCurrentYmdhList.forEach(currentRawData -> {
|
|
|
- if (currentRawData.getItemGroupId().equals(itemGroupId1)
|
|
|
- && currentRawData.getDataSourceId().equals(dataSourceId1)
|
|
|
- && currentRawData.getItemName().equals(itemReadName)) {
|
|
|
- currentSqlYmdhList.add(currentRawData.getValueBelongTime());
|
|
|
+ }
|
|
|
+ //将所有数据组合成一个List<CursorRawData>
|
|
|
+ currentCursorRawDataList.addAll(ReportTask.genRawChangeCursor(currentRawDataList));
|
|
|
+ //对currentCursorRawDataList进行排序,使用dataValueTime排序
|
|
|
+ Collections.sort(currentCursorRawDataList, new Comparator<CursorRawData>() {
|
|
|
+ @Override
|
|
|
+ public int compare(CursorRawData o1, CursorRawData o2) {
|
|
|
+ return o1.getDataValueTime().compareTo(o2.getDataValueTime());
|
|
|
}
|
|
|
});
|
|
|
- //根据历史数据和临时数据,计算出此数据项在报表中应该展示的数据,map形式返回
|
|
|
-// Map<String, String> map = ReportTask.genAutoData(currentRawDataList, currentCursorRawDataList,
|
|
|
-// startTime, endTime, t.getValueTakingMode(), t.getBucketType(), t.getBucketValue());
|
|
|
- List<RawData> currentRawDataList1 = new ArrayList<>();
|
|
|
- if (Blank.isNotEmpty(currentSqlYmdhList)) {
|
|
|
- for (String sqlCurrentYmdh : currentSqlYmdhList) {
|
|
|
- currentRawDataList1 = ReportTask.genRawAddCursor(currentRawDataList, currentCursorRawDataList, itemGroupId, dataSourceId, sqlCurrentYmdh);
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+ //计算出数据项的值集合
|
|
|
Map<String, String> map = new HashMap<>();
|
|
|
Integer valueTakingMode = t.getValueTakingMode();
|
|
|
Integer bucketValue = t.getBucketValue();
|
|
|
- if (Blank.isNotEmpty(currentRawDataList1)) {
|
|
|
- String dataType = currentRawDataList1.get(0).getDataType();
|
|
|
+ if (Blank.isNotEmpty(currentCursorRawDataList)) {
|
|
|
+ String dataType = currentCursorRawDataList.get(0).getDataType();
|
|
|
if (dataType.equals("boolean")) {
|
|
|
- map = ReportTask.genBoolean(currentRawDataList1, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genBoolean(currentCursorRawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
} else {
|
|
|
try {
|
|
|
- map = ReportTask.genBigDecimal(currentRawDataList1, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genBigDecimal(currentCursorRawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
} catch (Exception e) {
|
|
|
- map = ReportTask.genString(currentRawDataList1, startTime, endTime, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1176,13 +1196,13 @@ public class ReportTableTask {
|
|
|
String standby = t.getStandby();
|
|
|
//将数据项的信息放到集合中
|
|
|
reportTableItemList.add(new ReportTableItem(
|
|
|
- id, itemId, xaxis, yaxis, standby, valueList, valueTimeList, valueIndexList
|
|
|
+ id, itemId, valueType, xaxis, yaxis, standby, valueList, valueTimeList, valueIndexList
|
|
|
));
|
|
|
- });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
if (Blank.isNotEmpty(reportTableItemList)) {
|
|
|
- reportTable.setReportTableItemList(reportTableItemList);
|
|
|
+ reportTableDao.addReportTableItemList(reportTableItemList);
|
|
|
}
|
|
|
|
|
|
if (Blank.isNotEmpty(tableTemplateChartList)) {
|
|
@@ -1199,66 +1219,99 @@ public class ReportTableTask {
|
|
|
reportTableDao.addReportChart(reportChart);
|
|
|
Integer reportChartId = reportChart.getId();
|
|
|
//获取模板统计图中的数据项信息
|
|
|
- List<TableTemplateChartItem> ttciList = ttc.getTableTemplateChartItemList();
|
|
|
- if (Blank.isNotEmpty(ttciList)) {
|
|
|
- List<ReportChartItem> reportChartItemList = new ArrayList<>();
|
|
|
- for (int i = 0; i < ttciList.size(); i++) {
|
|
|
- TableTemplateChartItem ttci = ttciList.get(i);
|
|
|
- Integer itemGroupId = ttci.getItemGroupId();
|
|
|
- if (Blank.isEmpty(itemGroupId)) {
|
|
|
- continue;
|
|
|
+ List<TableTemplateChartItem> tableTemplateChartItemList = ttc.getTableTemplateChartItemList();
|
|
|
+ List<ReportChartItem> reportChartItemList = new ArrayList<>();
|
|
|
+ if (Blank.isNotEmpty(tableTemplateChartItemList)) {
|
|
|
+ TableTemplateChartItem tableTemplateChartItem = tableTemplateChartItemList.get(0);
|
|
|
+ Integer itemGroupId = tableTemplateChartItem.getItemGroupId();
|
|
|
+ Integer dataSourceId = tableTemplateChartItem.getDataSourceId();
|
|
|
+ Integer remainder = itemGroupId % ConstantStr.SUB_TABLE_NUM;
|
|
|
+ List<RawData> rawDataList = new ArrayList<>();
|
|
|
+ List<CursorRawData> cursorRawDataList = new ArrayList<>();
|
|
|
+ if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY) || bucketType.equals(ConstantStr.PERIOD_TIME_HOUR)
|
|
|
+ || bucketType.equals(ConstantStr.PERIOD_TIME_MINUTE) || bucketType.equals(ConstantStr.PERIOD_TIME_SECOND)) {
|
|
|
+ String startBelongTime;
|
|
|
+ String endBelongTime;
|
|
|
+
|
|
|
+ //从历史表中,查出历史数据;从临时表中,查出所有临时数据
|
|
|
+ if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY)) {
|
|
|
+ startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
+ endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
+ rawDataList = rawDataDao.getTableChartDataGroupByDay(itemGroupId, remainder, dataSourceId, tableTemplateChartItemList, startBelongTime, endBelongTime);
|
|
|
+ cursorRawDataList = rawDataDao.getTableChartCursorDataGroupByDay(itemGroupId, dataSourceId, tableTemplateChartItemList, startBelongTime, endBelongTime);
|
|
|
+ } else {
|
|
|
+ startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
+ endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
+ rawDataList = rawDataDao.getTableChartDataGroup(itemGroupId, remainder, dataSourceId, tableTemplateChartItemList, startBelongTime, endBelongTime);
|
|
|
+ cursorRawDataList = rawDataDao.getTableChartCursorDataGroup(itemGroupId, dataSourceId, tableTemplateChartItemList, startBelongTime, endBelongTime);
|
|
|
}
|
|
|
- Integer remainder = itemGroupId % ConstantStr.SUB_TABLE_NUM;
|
|
|
- Integer itemId = ttci.getItemId();
|
|
|
- String itemName = ttci.getItemName();
|
|
|
- Integer dataSourceId = ttci.getDataSourceId();
|
|
|
- Map<String, String> map = new HashMap<>();
|
|
|
- if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY) || bucketType.equals(ConstantStr.PERIOD_TIME_HOUR)
|
|
|
- || bucketType.equals(ConstantStr.PERIOD_TIME_MINUTE) || bucketType.equals(ConstantStr.PERIOD_TIME_SECOND)) {
|
|
|
- String startBelongTime;
|
|
|
- String endBelongTime;
|
|
|
- List<RawData> rawDataList = new ArrayList<>();
|
|
|
- if (bucketType.equals(ConstantStr.PERIOD_TIME_DAY)) {
|
|
|
- startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
- endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_DAY_STR.length());
|
|
|
- rawDataList = rawDataDao.getTableDataByDay(itemGroupId, remainder, dataSourceId, itemName, startBelongTime, endBelongTime);
|
|
|
- } else {
|
|
|
- startBelongTime = DateUtil.dateChangeStrYmdhms(startTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
- endBelongTime = DateUtil.dateChangeStrYmdhms(endTime).substring(0, ConstantStr.TIME_HOUR_STR.length());
|
|
|
- rawDataList = rawDataDao.getTableData(itemGroupId, remainder, dataSourceId, itemName, startBelongTime, endBelongTime);
|
|
|
+
|
|
|
+ for (TableTemplateChartItem t : tableTemplateChartItemList) {
|
|
|
+ Integer itemGroupId1 = t.getItemGroupId();
|
|
|
+ Integer dataSourceId1 = t.getDataSourceId();
|
|
|
+ Integer itemId = t.getItemId();
|
|
|
+ String itemReadName = t.getItemReadName();
|
|
|
+ List<RawData> currentRawDataList = new ArrayList<>();
|
|
|
+ List<CursorRawData> currentCursorRawDataList = new ArrayList<>();
|
|
|
+ for (int i = 0; i < rawDataList.size(); i++) {
|
|
|
+ RawData rawData = rawDataList.get(i);
|
|
|
+ //生成历史数据
|
|
|
+ if (rawData.getItemGroupId().equals(itemGroupId1)
|
|
|
+ && rawData.getDataSourceId().equals(dataSourceId1)
|
|
|
+ && rawData.getItemName().equals(itemReadName)) {
|
|
|
+ currentRawDataList.add(rawData);
|
|
|
+ rawDataList.remove(i);
|
|
|
+ i--;
|
|
|
+ }
|
|
|
}
|
|
|
- List<String> sqlCurrentYmdhList = rawDataDao.getCursorYmdh(itemGroupId, dataSourceId, itemName, startBelongTime, endBelongTime);
|
|
|
- if (Blank.isNotEmpty(sqlCurrentYmdhList)) {
|
|
|
- for (String sqlCurrentYmdh : sqlCurrentYmdhList) {
|
|
|
- List<CursorRawData> cursorRawDataList = rawDataDao.getTableCursorData(itemGroupId, dataSourceId, itemName, sqlCurrentYmdh);
|
|
|
- rawDataList = ReportTask.genRawAddCursor(rawDataList, cursorRawDataList, itemGroupId, dataSourceId, sqlCurrentYmdh);
|
|
|
+ for (int i = 0; i < cursorRawDataList.size(); i++) {
|
|
|
+ CursorRawData cursorRawData = cursorRawDataList.get(i);
|
|
|
+ //生成临时数据
|
|
|
+ if (cursorRawData.getItemGroupId().equals(itemGroupId1)
|
|
|
+ && cursorRawData.getDataSourceId().equals(dataSourceId1)
|
|
|
+ && cursorRawData.getItemName().equals(itemReadName)) {
|
|
|
+ currentCursorRawDataList.add(cursorRawData);
|
|
|
+ cursorRawDataList.remove(i);
|
|
|
+ i--;
|
|
|
}
|
|
|
}
|
|
|
- if (Blank.isNotEmpty(rawDataList)) {
|
|
|
- String dataType = rawDataList.get(0).getDataType();
|
|
|
+ //将所有数据组合成一个List<CursorRawData>
|
|
|
+ currentCursorRawDataList.addAll(ReportTask.genRawChangeCursor(currentRawDataList));
|
|
|
+ //对currentCursorRawDataList进行排序,使用dataValueTime排序
|
|
|
+ Collections.sort(currentCursorRawDataList, new Comparator<CursorRawData>() {
|
|
|
+ @Override
|
|
|
+ public int compare(CursorRawData o1, CursorRawData o2) {
|
|
|
+ return o1.getDataValueTime().compareTo(o2.getDataValueTime());
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ //计算出数据项的值集合
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
+ if (Blank.isNotEmpty(currentCursorRawDataList)) {
|
|
|
+ String dataType = currentCursorRawDataList.get(0).getDataType();
|
|
|
if (dataType.equals("boolean")) {
|
|
|
- map = ReportTask.genBoolean(rawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genBoolean(currentCursorRawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
} else {
|
|
|
try {
|
|
|
- map = ReportTask.genBigDecimal(rawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genBigDecimal(currentCursorRawDataList, startTime, endTime, valueTakingMode, bucketType, bucketValue);
|
|
|
} catch (Exception e) {
|
|
|
- map = ReportTask.genString(rawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
+ map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- } else {
|
|
|
- throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前还未适配此种类型的取值模式");
|
|
|
+ String valueList = map.get(flage ? "valueList" : "orgValueList");
|
|
|
+ String valueTimeList = map.get("valueTimeList");
|
|
|
+ String valueIndexList = map.get("valueIndexList");
|
|
|
+ reportChartItemList.add(new ReportChartItem(
|
|
|
+ reportChartId, itemId, valueList, valueTimeList, valueIndexList
|
|
|
+ ));
|
|
|
}
|
|
|
- String valueList = map.get(flage ? "valueList" : "orgValueList");
|
|
|
- String valueTimeList = map.get("valueTimeList");
|
|
|
- String valueIndexList = map.get("valueIndexList");
|
|
|
- reportChartItemList.add(new ReportChartItem(
|
|
|
- reportChartId, itemId, valueList, valueTimeList, valueIndexList
|
|
|
- ));
|
|
|
- }
|
|
|
- //添加报表统计图相关的数据项
|
|
|
- if (Blank.isNotEmpty(reportChartItemList)) {
|
|
|
- reportTableDao.addReportChartItem(reportChartItemList);
|
|
|
+ //添加报表统计图相关的数据项
|
|
|
+ if (Blank.isNotEmpty(reportChartItemList)) {
|
|
|
+ reportTableDao.addReportChartItem(reportChartItemList);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "目前还未适配此种类型的取值模式");
|
|
|
}
|
|
|
}
|
|
|
}
|