|
@@ -308,12 +308,22 @@ public class ReportTableServiceImpl implements ReportTableService {
|
|
|
return Result.ok(reportTable);
|
|
|
//如果是事件驱动报表主表
|
|
|
} else if (reportTableType.equals(ConstantStr.EVENT_DRIVEN_REPORT)) {
|
|
|
- String chTableId = reportTableDao.getEventChTableId(id);
|
|
|
- reportTable.setReportTableItemList(reportTableDao.getTableItemListById(chTableId));
|
|
|
+ Integer tableTemplateId = reportTable.getTableTemplateId();
|
|
|
+ List<TableTemplateTableItem> tttItemList = reportTableDao.getTttiByTemplateId(tableTemplateId);
|
|
|
+ List<ReportTableItem> reportTableItemList = new ArrayList<>();
|
|
|
+ if (Blank.isNotEmpty(tttItemList)) {
|
|
|
+ for (TableTemplateTableItem tttItem : tttItemList) {
|
|
|
+ ReportTableItem reportTableItem =
|
|
|
+ (ReportTableItem) redisUtil.get(tableTemplateId + ConstantStr.REPORT_TABLE_ITEM + tttItem.getItemReadName());
|
|
|
+ if (Blank.isNotEmpty(reportTableItem)) {
|
|
|
+ reportTableItemList.add(reportTableItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ reportTable.setReportTableItemList(reportTableItemList);
|
|
|
//如果是事件驱动报表子表
|
|
|
} else if (reportTableType.equals(ConstantStr.EVENT_GENERATE_REPORT)) {
|
|
|
reportTable.setReportTableItemList(reportTableDao.getTableItemListById(id));
|
|
|
- reportTable.setReportChartList(reportTableDao.getReportChartList(id));
|
|
|
reportTable.setUserGroupList(reportTableDao.getTableUserGroup(id));
|
|
|
return Result.ok(reportTable);
|
|
|
//如果是设备报表主表
|
|
@@ -595,6 +605,7 @@ public class ReportTableServiceImpl implements ReportTableService {
|
|
|
if (Blank.isEmpty(oldRunState)) {
|
|
|
return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "未知报表运行状态,请刷新重试");
|
|
|
}
|
|
|
+ reportTableDao.runAutoTableById(id, runState);
|
|
|
if (runState.equals(ConstantStr.START_UP)) {
|
|
|
if (Blank.isEmpty(cron)) {
|
|
|
return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "请先配置定时时间");
|
|
@@ -603,7 +614,6 @@ public class ReportTableServiceImpl implements ReportTableService {
|
|
|
return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此自动报表已经处于启动状态");
|
|
|
}
|
|
|
//新增定时器任务
|
|
|
- reportTableDao.runAutoTableById(id, runState);
|
|
|
SchedulingRunnable task = new SchedulingRunnable(ReportTableTask.class, "genAutoTableData", new Object[]{reportTable});
|
|
|
cronTaskRegister.addCronTask(task, cronId, cron);
|
|
|
return Result.ok("启动成功");
|
|
@@ -614,15 +624,29 @@ public class ReportTableServiceImpl implements ReportTableService {
|
|
|
if (oldRunState.equals(ConstantStr.STOP_IT)) {
|
|
|
return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此自动报表已经处于停止状态");
|
|
|
}
|
|
|
- reportTableDao.runAutoTableById(id, runState);
|
|
|
cronTaskRegister.removeCronTask(cronId);
|
|
|
return Result.ok("停止成功");
|
|
|
} else {
|
|
|
- throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "自动报表的状态只有启动和停止");
|
|
|
+ throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "自动报表的状态只有启动或停止");
|
|
|
}
|
|
|
} else if (reportTableType.equals(ConstantStr.EVENT_DRIVEN_REPORT) || reportTableType.equals(ConstantStr.DEVICE_REPORT)) {
|
|
|
- redisUtil.set(ConstantStr.TABLE_ID + id, true);
|
|
|
- return Result.ok("启动成功");
|
|
|
+ Integer oldRunState = reportTable.getRunState();
|
|
|
+ reportTableDao.runAutoTableById(id, runState);
|
|
|
+ if (runState.equals(ConstantStr.START_UP)) {
|
|
|
+ if (oldRunState.equals(ConstantStr.START_UP)) {
|
|
|
+ return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此报表已经处于启动状态");
|
|
|
+ }
|
|
|
+ redisUtil.set(ConstantStr.TABLE_ID + id, true);
|
|
|
+ return Result.ok("启动成功");
|
|
|
+ } else if (runState.equals(ConstantStr.STOP_IT)) {
|
|
|
+ if (oldRunState.equals(ConstantStr.STOP_IT)) {
|
|
|
+ return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "此报表已经处于停止状态");
|
|
|
+ }
|
|
|
+ redisUtil.set(ConstantStr.TABLE_ID + id, false);
|
|
|
+ return Result.ok("停止成功");
|
|
|
+ } else {
|
|
|
+ throw new CustomException(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "报表的状态只有启动或停止");
|
|
|
+ }
|
|
|
} else {
|
|
|
return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), "自动,事件驱动,设备报表才可以启动和停止");
|
|
|
}
|