|
@@ -111,7 +111,7 @@ public class ReportTableTask {
|
|
|
reportTableDao.addReportTableItemList(reportTableItemList);
|
|
|
}
|
|
|
//添加模板数据项信息
|
|
|
- reportTableDao.addTableTemplateItem(tableTemplateItemList);
|
|
|
+ reportTableDao.addTableTemplateTableItem(tableTemplateItemList);
|
|
|
}
|
|
|
//保存模板统计图相关的数据项信息,以及报表统计图相关的信息
|
|
|
if (Blank.isNotEmpty(tableTemplateChartList)) {
|
|
@@ -164,7 +164,7 @@ public class ReportTableTask {
|
|
|
List<TableTemplateChart> tableTemplateChartList = tableTemplate.getTableTemplateChartList();
|
|
|
|
|
|
//根据模板修改相应的报表
|
|
|
-// reportTable.setReportTableName(tableTemplate.getTemplateName());
|
|
|
+ reportTable.setReportTableName(tableTemplate.getTemplateName());
|
|
|
reportTable.setReportTableData(tableTemplate.getTemplateData());
|
|
|
reportTable.setVersion(tableTemplate.getVersion());
|
|
|
String reportTableId = reportTable.getId();
|
|
@@ -199,7 +199,7 @@ public class ReportTableTask {
|
|
|
reportTableDao.addReportTableItemList(reportTableItemList);
|
|
|
}
|
|
|
//添加模板数据项信息
|
|
|
- reportTableDao.addTableTemplateItem(tableTemplateItemList);
|
|
|
+ reportTableDao.addTableTemplateTableItem(tableTemplateItemList);
|
|
|
}
|
|
|
|
|
|
List<TableTemplateChart> tableTemplateCharts = reportTableDao.getTtcByTemplateId(tableTemplateId);
|
|
@@ -296,7 +296,7 @@ public class ReportTableTask {
|
|
|
}
|
|
|
}
|
|
|
//自动报表只需要添加模板的数据项信息,定时器执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
|
|
|
- reportTableDao.addTableTemplateItem(tableTemplateItemList);
|
|
|
+ reportTableDao.addTableTemplateTableItem(tableTemplateItemList);
|
|
|
}
|
|
|
if (Blank.isNotEmpty(tableTemplateChartList)) {
|
|
|
for (TableTemplateChart ttc : tableTemplateChartList) {
|
|
@@ -330,9 +330,15 @@ public class ReportTableTask {
|
|
|
Integer tableTemplateId = tableTemplate.getId();
|
|
|
List<TableTemplateTableItem> tableTemplateItemList = tableTemplate.getTableTemplateItemList();
|
|
|
List<TableTemplateChart> tableTemplateChartList = tableTemplate.getTableTemplateChartList();
|
|
|
-
|
|
|
+ //修改相应报表之前,将原来的报表data数据,赋值给子报表中最早创建的一条
|
|
|
+ String chOrgTableId = reportTableDao.getChTableIdByVersion(reportTable.getId(), reportTable.getVersion());
|
|
|
+ if (Blank.isNotEmpty(chOrgTableId)) {
|
|
|
+ if (reportTableDao.updateReportTableDataById(chOrgTableId, reportTable.getReportTableData()) <= 0) {
|
|
|
+ throw new CustomException(ResultEnum.SERVER_ERROR.getRespCode(), "报表传递数据失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
//根据模板修改相应的报表
|
|
|
-// reportTable.setReportTableName(tableTemplate.getTemplateName());
|
|
|
+ reportTable.setReportTableName(tableTemplate.getTemplateName());
|
|
|
reportTable.setReportTableData(tableTemplate.getTemplateData());
|
|
|
reportTable.setVersion(tableTemplate.getVersion());
|
|
|
if (reportTableDao.updateReportTable(reportTable) <= 0) {
|
|
@@ -352,7 +358,7 @@ public class ReportTableTask {
|
|
|
}
|
|
|
}
|
|
|
//自动报表只需要添加模板的数据项信息,定时器执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
|
|
|
- reportTableDao.addTableTemplateItem(tableTemplateItemList);
|
|
|
+ reportTableDao.addTableTemplateTableItem(tableTemplateItemList);
|
|
|
}
|
|
|
|
|
|
List<TableTemplateChart> tableTemplateCharts = reportTableDao.getTtcByTemplateId(tableTemplateId);
|
|
@@ -434,7 +440,7 @@ public class ReportTableTask {
|
|
|
}
|
|
|
}
|
|
|
//事件驱动报表只需要添加模板的数据项信息,驱动执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
|
|
|
- reportTableDao.addTableTemplateItem(tableTemplateItemList);
|
|
|
+ reportTableDao.addTableTemplateTableItem(tableTemplateItemList);
|
|
|
} else {
|
|
|
throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "事件驱动报表中,不能没有数据项");
|
|
|
}
|
|
@@ -452,20 +458,26 @@ public class ReportTableTask {
|
|
|
if (Blank.isEmpty(eventNum)) {
|
|
|
throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "事件驱动显示数量设置不能为空");
|
|
|
}
|
|
|
+ //修改相应报表之前,将原来的报表data数据,赋值给子报表中最早创建的一条
|
|
|
+ String chOrgTableId = reportTableDao.getChTableIdByVersion(reportTable.getId(), reportTable.getVersion());
|
|
|
+ if (Blank.isNotEmpty(chOrgTableId)) {
|
|
|
+ if (reportTableDao.updateReportTableDataById(chOrgTableId, reportTable.getReportTableData()) <= 0) {
|
|
|
+ throw new CustomException(ResultEnum.SERVER_ERROR.getRespCode(), "报表传递数据失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
//根据模板修改相应的报表
|
|
|
-// reportTable.setReportTableName(tableTemplate.getTemplateName());
|
|
|
+ reportTable.setReportTableName(tableTemplate.getTemplateName());
|
|
|
reportTable.setReportTableData(tableTemplate.getTemplateData());
|
|
|
reportTable.setVersion(tableTemplate.getVersion());
|
|
|
if (reportTableDao.updateReportTable(reportTable) <= 0) {
|
|
|
throw new CustomException(ResultEnum.SERVER_ERROR.getRespCode(), "修改数据报表失败");
|
|
|
}
|
|
|
- String reportTableId = reportTable.getId();
|
|
|
|
|
|
+ //获取上个版本模板表格的数据项信息
|
|
|
+ List<TableTemplateTableItem> tttiByTemplate = reportTableDao.getTttiByTemplateId(tableTemplateId);
|
|
|
//删除模板表格数据相关的数据项信息
|
|
|
reportTableDao.delTtiByTtId(tableTemplateId);
|
|
|
- //删除报表表格数据相关的数据项信息
|
|
|
- reportTableDao.delRtiByRtId(reportTableId);
|
|
|
if (Blank.isNotEmpty(tableTemplateItemList)) {
|
|
|
for (TableTemplateTableItem t : tableTemplateItemList) {
|
|
|
t.setTableTemplateId(tableTemplateId);
|
|
@@ -474,7 +486,17 @@ public class ReportTableTask {
|
|
|
}
|
|
|
}
|
|
|
//事件驱动报表只需要添加模板的数据项信息,驱动执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
|
|
|
- reportTableDao.addTableTemplateItem(tableTemplateItemList);
|
|
|
+ reportTableDao.addTableTemplateTableItem(tableTemplateItemList);
|
|
|
+ //删除事件驱动报表模板上个版本的配置信息
|
|
|
+ redisUtil.del(ConstantStr.CURRENT_NUM + tableTemplateId);
|
|
|
+ redisUtil.del(ConstantStr.TABLE_ID + tableTemplateId);
|
|
|
+ List<String> itemIdKeyList = new ArrayList<>();
|
|
|
+ tttiByTemplate.forEach(t -> {
|
|
|
+ itemIdKeyList.add(tableTemplateId + ConstantStr.REPORT_TABLE_ITEM + t.getItemReadName());
|
|
|
+ });
|
|
|
+ if (Blank.isNotEmpty(itemIdKeyList)) {
|
|
|
+ redisUtil.del(itemIdKeyList.stream().toArray(String[]::new));
|
|
|
+ }
|
|
|
} else {
|
|
|
throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "事件驱动报表中,不能没有数据项");
|
|
|
}
|
|
@@ -490,6 +512,7 @@ public class ReportTableTask {
|
|
|
List<TableTemplateTableItem> tableTemplateItemList = tableTemplate.getTableTemplateItemList();
|
|
|
Integer eventNum = tableTemplate.getEventNum();
|
|
|
Integer isGenCountTime = tableTemplate.getIsGenCountTime();
|
|
|
+ //判断设备报表传入的参数是否符合条件
|
|
|
if (Blank.isEmpty(eventNum, isGenCountTime)) {
|
|
|
throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "显示数量,是否生成计算时间不能为空");
|
|
|
}
|
|
@@ -531,6 +554,7 @@ public class ReportTableTask {
|
|
|
throw new CustomException(ResultEnum.SERVER_ERROR.getRespCode(), "生成数据报表失败");
|
|
|
}
|
|
|
|
|
|
+ //检验、保存设备报表模板的数据信息配置
|
|
|
if (Blank.isNotEmpty(tableTemplateItemList)) {
|
|
|
int startCount = 0;
|
|
|
int endCount = 0;
|
|
@@ -556,7 +580,7 @@ public class ReportTableTask {
|
|
|
throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "结束时间项只能有一个");
|
|
|
}
|
|
|
//事件驱动报表只需要添加模板的数据项信息,驱动执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
|
|
|
- reportTableDao.addTableTemplateItem(tableTemplateItemList);
|
|
|
+ reportTableDao.addTableTemplateTableItem(tableTemplateItemList);
|
|
|
} else {
|
|
|
throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "事件驱动报表中,不能没有数据项");
|
|
|
}
|
|
@@ -594,7 +618,16 @@ public class ReportTableTask {
|
|
|
throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "变量类型只能为单变量或者双变量");
|
|
|
}
|
|
|
|
|
|
+ //修改相应报表之前,将原来的报表data数据,赋值给子报表中最早创建的一条
|
|
|
+ String chOrgTableId = reportTableDao.getChTableIdByVersion(reportTable.getId(), reportTable.getVersion());
|
|
|
+ if (Blank.isNotEmpty(chOrgTableId)) {
|
|
|
+ if (reportTableDao.updateReportTableDataById(chOrgTableId, reportTable.getReportTableData()) <= 0) {
|
|
|
+ throw new CustomException(ResultEnum.SERVER_ERROR.getRespCode(), "报表传递数据失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//根据模板生成相应的报表
|
|
|
+ reportTable.setReportTableName(tableTemplate.getTemplateName());
|
|
|
reportTable.setReportTableData(tableTemplate.getTemplateData());
|
|
|
reportTable.setIsGenCountTime(tableTemplate.getIsGenCountTime());
|
|
|
reportTable.setVersion(tableTemplate.getVersion());
|
|
@@ -602,6 +635,10 @@ public class ReportTableTask {
|
|
|
throw new CustomException(ResultEnum.SERVER_ERROR.getRespCode(), "生成数据报表失败");
|
|
|
}
|
|
|
|
|
|
+ //获取上个版本模板表格的数据项信息
|
|
|
+ List<TableTemplateTableItem> tttiByTemplate = reportTableDao.getTttiByTemplateId(tableTemplateId);
|
|
|
+ //删除模板表格数据相关的数据项信息
|
|
|
+ reportTableDao.delTtiByTtId(tableTemplateId);
|
|
|
if (Blank.isNotEmpty(tableTemplateItemList)) {
|
|
|
int startCount = 0;
|
|
|
int endCount = 0;
|
|
@@ -627,7 +664,23 @@ public class ReportTableTask {
|
|
|
throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "结束时间项只能有一个");
|
|
|
}
|
|
|
//事件驱动报表只需要添加模板的数据项信息,驱动执行的时候,会根据模板的数据项信息,自动生成报表的数据项信息
|
|
|
- reportTableDao.addTableTemplateItem(tableTemplateItemList);
|
|
|
+ reportTableDao.addTableTemplateTableItem(tableTemplateItemList);
|
|
|
+ //删除事件驱动报表模板上个版本的配置信息
|
|
|
+ redisUtil.del(ConstantStr.START_NUM + tableTemplateId);
|
|
|
+ redisUtil.del(ConstantStr.END_NUM + tableTemplateId);
|
|
|
+ redisUtil.del(ConstantStr.TABLE_ID + tableTemplateId);
|
|
|
+ List<String> itemIdKeyList = new ArrayList<>();
|
|
|
+ tttiByTemplate.forEach(t -> {
|
|
|
+ if (Blank.isNotEmpty(t.getTimeItemType())) {
|
|
|
+ itemIdKeyList.add(tableTemplateId + ConstantStr.REPORT_TABLE_ITEM + t.getItemReadName() + ConstantStr.REPORT_TABLE_ITEM + t.getTimeItemType());
|
|
|
+ } else {
|
|
|
+ itemIdKeyList.add(tableTemplateId + ConstantStr.REPORT_TABLE_ITEM + t.getItemReadName());
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (Blank.isNotEmpty(itemIdKeyList)) {
|
|
|
+ redisUtil.del(itemIdKeyList.stream().toArray(String[]::new));
|
|
|
+ }
|
|
|
} else {
|
|
|
throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "设备报表不能没有数据项");
|
|
|
}
|
|
@@ -872,6 +925,8 @@ public class ReportTableTask {
|
|
|
map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
Integer valueType = t.getValueType();
|
|
|
boolean flage = valueType.equals(ConstantStr.CALCULATED_VALUE);
|
|
@@ -988,6 +1043,8 @@ public class ReportTableTask {
|
|
|
map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
String valueList = map.get(flage ? "valueList" : "orgValueList");
|
|
|
String valueTimeList = map.get("valueTimeList");
|
|
@@ -1184,6 +1241,8 @@ public class ReportTableTask {
|
|
|
map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
Integer valueType = t.getValueType();
|
|
|
boolean flage = valueType.equals(ConstantStr.CALCULATED_VALUE);
|
|
@@ -1298,6 +1357,8 @@ public class ReportTableTask {
|
|
|
map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ map = ReportTask.genString(currentCursorRawDataList, startTime, endTime, bucketType, bucketValue);
|
|
|
}
|
|
|
String valueList = map.get(flage ? "valueList" : "orgValueList");
|
|
|
String valueTimeList = map.get("valueTimeList");
|
|
@@ -1333,37 +1394,40 @@ public class ReportTableTask {
|
|
|
ReportTable reportTable = reportTableDao.getReportTableByTemplate(tableTemplate);
|
|
|
String chTableId = reportTableDao.getEventChTableId(reportTable.getId());
|
|
|
if (Blank.isNotEmpty(chTableId)) {
|
|
|
- List<ReportTableItem> chReportTableItemList = reportTableDao.getTableItemListById(chTableId);
|
|
|
- if (Blank.isNotEmpty(chReportTableItemList)) {
|
|
|
- for (ReportTableItem reportTableItem : chReportTableItemList) {
|
|
|
- Integer timeItemType = reportTableItem.getTimeItemType();
|
|
|
- String itemReadName = reportTableItem.getItemReadName();
|
|
|
- if (Blank.isNotEmpty(timeItemType)) {
|
|
|
- if (timeItemType.equals(ConstantStr.END_TIME_ITEM)) {
|
|
|
- String valueIndexList = reportTableItem.getValueIndexList();
|
|
|
- int length = valueIndexList.split(",").length;
|
|
|
- if (eventNum == length) {
|
|
|
- redisUtil.set(ConstantStr.START_NUM + tableTemplateId, 0);
|
|
|
- } else {
|
|
|
- redisUtil.set(ConstantStr.END_NUM + tableTemplateId, length);
|
|
|
- redisUtil.set(ConstantStr.TABLE_ID + tableTemplateId, chTableId);
|
|
|
+ ReportTable chReportTable = reportTableDao.getReportTableById(chTableId);
|
|
|
+ if (reportTable.getVersion() == chReportTable.getVersion()) {
|
|
|
+ List<ReportTableItem> chReportTableItemList = reportTableDao.getTableItemListById(chTableId);
|
|
|
+ if (Blank.isNotEmpty(chReportTableItemList)) {
|
|
|
+ for (ReportTableItem reportTableItem : chReportTableItemList) {
|
|
|
+ Integer timeItemType = reportTableItem.getTimeItemType();
|
|
|
+ String itemReadName = reportTableItem.getItemReadName();
|
|
|
+ if (Blank.isNotEmpty(timeItemType)) {
|
|
|
+ if (timeItemType.equals(ConstantStr.END_TIME_ITEM)) {
|
|
|
+ String valueIndexList = reportTableItem.getValueIndexList();
|
|
|
+ int length = valueIndexList.split(",").length;
|
|
|
+ if (eventNum == length) {
|
|
|
+ redisUtil.set(ConstantStr.START_NUM + tableTemplateId, 0);
|
|
|
+ } else {
|
|
|
+ redisUtil.set(ConstantStr.END_NUM + tableTemplateId, length);
|
|
|
+ redisUtil.set(ConstantStr.TABLE_ID + tableTemplateId, chTableId);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- if (timeItemType.equals(ConstantStr.START_TIME_ITEM)) {
|
|
|
- String valueIndexList = reportTableItem.getValueIndexList();
|
|
|
- int length = valueIndexList.split(",").length;
|
|
|
- if (eventNum == length) {
|
|
|
- Object start0 = redisUtil.get(ConstantStr.START_NUM + tableTemplateId);
|
|
|
- if (Blank.isEmpty(start0)) {
|
|
|
+ if (timeItemType.equals(ConstantStr.START_TIME_ITEM)) {
|
|
|
+ String valueIndexList = reportTableItem.getValueIndexList();
|
|
|
+ int length = valueIndexList.split(",").length;
|
|
|
+ if (eventNum == length) {
|
|
|
+ Object start0 = redisUtil.get(ConstantStr.START_NUM + tableTemplateId);
|
|
|
+ if (Blank.isEmpty(start0)) {
|
|
|
+ redisUtil.set(ConstantStr.START_NUM + tableTemplateId, length);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
redisUtil.set(ConstantStr.START_NUM + tableTemplateId, length);
|
|
|
}
|
|
|
- } else {
|
|
|
- redisUtil.set(ConstantStr.START_NUM + tableTemplateId, length);
|
|
|
}
|
|
|
+ redisUtil.set(tableTemplateId + ConstantStr.REPORT_TABLE_ITEM + itemReadName + ConstantStr.REPORT_TABLE_ITEM + timeItemType, reportTableItem);
|
|
|
+ } else {
|
|
|
+ redisUtil.set(tableTemplateId + ConstantStr.REPORT_TABLE_ITEM + itemReadName, reportTableItem);
|
|
|
}
|
|
|
- redisUtil.set(tableTemplateId + ConstantStr.REPORT_TABLE_ITEM + itemReadName + ConstantStr.REPORT_TABLE_ITEM + timeItemType, reportTableItem);
|
|
|
- } else {
|
|
|
- redisUtil.set(tableTemplateId + ConstantStr.REPORT_TABLE_ITEM + itemReadName, reportTableItem);
|
|
|
}
|
|
|
}
|
|
|
}
|