Browse Source

历史数据报表

wangyangyang 3 years ago
parent
commit
3bd0ae9427

+ 128 - 49
sms_water/src/main/java/com/huaxu/controller/DayMonthYearReportController.java

@@ -62,35 +62,6 @@ public class DayMonthYearReportController {
         Pagination<ReportDto> pages = new Pagination<>(iPage);
         return new AjaxMessage<>(ResultStatus.OK,pages);
     }
-
-    @ApiOperation(value = "按年月日统计报表")
-    @RequestMapping(value = "/getReportBySceneIdsNews", method = RequestMethod.POST)
-    @ResponseBody
-    public AjaxMessage<Pagination<ReportDto>> getReportBySceneIdsNews(@RequestBody ReportQueryDto queryDto) {
-        if (StringUtils.isEmpty(queryDto.getStartTime()) || StringUtils.isEmpty(queryDto.getEndTime())){
-            queryDto.setStartTime(null);
-            queryDto.setEndTime(null);
-        }
-        IPage<ReportDto> iPage = new Page<>(queryDto.getPageNum(), queryDto.getPageSize());
-        iPage = reportService.getReportBySceneIdsNew(iPage, queryDto);
-        Pagination<ReportDto> pages = new Pagination<>(iPage);
-        return new AjaxMessage<>(ResultStatus.OK,pages);
-    }
-
-    @ApiOperation(value = "按设备统计压力及流量年月日统计报表")
-    @RequestMapping(value = "/getDevicePressReportByDeviceIdsNew", method = RequestMethod.POST)
-    @ResponseBody
-    public AjaxMessage<Pagination<ReportDto>> getDevicePressReportByDeviceIdsNew(@RequestBody ReportQueryDto queryDto) {
-        if (StringUtils.isEmpty(queryDto.getStartTime()) || StringUtils.isEmpty(queryDto.getEndTime())){
-            queryDto.setStartTime(null);
-            queryDto.setEndTime(null);
-        }
-        IPage<ReportDto> iPage = new Page<>(queryDto.getPageNum(), queryDto.getPageSize());
-        iPage = reportService.getPipeDevicePressReportByDeviceIds(iPage, queryDto);
-        Pagination<ReportDto> pages = new Pagination<>(iPage);
-        return new AjaxMessage<>(ResultStatus.OK,pages);
-    }
-
     @ApiOperation(value = "按设备统计压力及流量年月日统计报表")
     @RequestMapping(value = "/getDevicePressReportByDeviceIds", method = RequestMethod.POST)
     @ResponseBody
@@ -118,18 +89,6 @@ public class DayMonthYearReportController {
 
         return new AjaxMessage<>(ResultStatus.OK,pages);
     }
-
-    @ApiOperation(value = "按设备统计水质年月日统计报表")
-    @RequestMapping(value = "/getDevicWaterReportByDeviceIdsNew", method = RequestMethod.POST)
-    @ResponseBody
-    public AjaxMessage<Pagination<ReportDto>> getDevicWaterReportByDeviceIdsNew(@RequestBody ReportQueryDto queryDto) {
-        queryDto.setType(3);
-        IPage<ReportDto> iPage = new Page<>(queryDto.getPageNum(), queryDto.getPageSize());
-        iPage = reportService.getPipeDevicePressReportByDeviceIds(iPage,queryDto);
-        Pagination<ReportDto> pages = new Pagination<>(iPage);
-        return new AjaxMessage<>(ResultStatus.OK,pages);
-    }
-
     @ApiOperation(value = "按设备统计水质年月日统计报表")
     @RequestMapping(value = "/getDevicWaterReportByDeviceIds", method = RequestMethod.POST)
     @ResponseBody
@@ -170,25 +129,123 @@ public class DayMonthYearReportController {
         return new AjaxMessage<>(ResultStatus.OK,pages);
     }
 
-    @ApiOperation(value = "获取自定义报表统计维度")
+
+    @ApiOperation(value = "【统计分析】--按年月日统计报表")
+    @RequestMapping(value = "/getReportBySceneIdsNews", method = RequestMethod.POST)
+    @ResponseBody
+    public AjaxMessage<Pagination<ReportDto>> getReportBySceneIdsNews(@RequestBody ReportQueryDto queryDto) {
+        if (StringUtils.isEmpty(queryDto.getStartTime()) || StringUtils.isEmpty(queryDto.getEndTime())){
+            queryDto.setStartTime(null);
+            queryDto.setEndTime(null);
+        }
+        IPage<ReportDto> iPage = new Page<>(queryDto.getPageNum(), queryDto.getPageSize());
+        iPage = reportService.getReportBySceneIdsNew(iPage, queryDto);
+        Pagination<ReportDto> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK,pages);
+    }
+
+
+    @ApiOperation(value = "【历史数据】--按日期获取历史数据统计报表")
+    @RequestMapping(value = "/getHistoryDataReportBySceneIdsNews", method = RequestMethod.POST)
+    @ResponseBody
+    public AjaxMessage<Pagination<ReportDto>> getHistoryDataReportBySceneIdsNews(@RequestBody ReportQueryDto queryDto) {
+        if (StringUtils.isEmpty(queryDto.getStartTime()) || StringUtils.isEmpty(queryDto.getEndTime())){
+            queryDto.setStartTime(null);
+            queryDto.setEndTime(null);
+        }
+        IPage<ReportDto> iPage = new Page<>(queryDto.getPageNum(), queryDto.getPageSize());
+        iPage = reportService.getHistoryDataReportBySceneIdsNews(iPage, queryDto);
+        Pagination<ReportDto> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK,pages);
+    }
+
+    @ApiOperation(value = "【统计分析】--按设备统计压力及流量年月日统计报表")
+    @RequestMapping(value = "/getDevicePressReportByDeviceIdsNew", method = RequestMethod.POST)
+    @ResponseBody
+    public AjaxMessage<Pagination<ReportDto>> getDevicePressReportByDeviceIdsNew(@RequestBody ReportQueryDto queryDto) {
+        if (StringUtils.isEmpty(queryDto.getStartTime()) || StringUtils.isEmpty(queryDto.getEndTime())){
+            queryDto.setStartTime(null);
+            queryDto.setEndTime(null);
+        }
+        IPage<ReportDto> iPage = new Page<>(queryDto.getPageNum(), queryDto.getPageSize());
+        iPage = reportService.getPipeDevicePressReportByDeviceIds(iPage, queryDto);
+        Pagination<ReportDto> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK,pages);
+    }
+
+    @ApiOperation(value = "【历史数据】--按设备统计压力及流量年月日统计报表")
+    @RequestMapping(value = "/getHistoryDataDevicePressReportByDeviceIdsNew", method = RequestMethod.POST)
+    @ResponseBody
+    public AjaxMessage<Pagination<ReportDto>> getHistoryDataDevicePressReportByDeviceIdsNew(@RequestBody ReportQueryDto queryDto) {
+        if (StringUtils.isEmpty(queryDto.getStartTime()) || StringUtils.isEmpty(queryDto.getEndTime())){
+            queryDto.setStartTime(null);
+            queryDto.setEndTime(null);
+        }
+        IPage<ReportDto> iPage = new Page<>(queryDto.getPageNum(), queryDto.getPageSize());
+        iPage = reportService.getPipeHistoryDataDevicePressReportByDeviceIds(iPage, queryDto);
+        Pagination<ReportDto> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK,pages);
+    }
+
+    @ApiOperation(value = "【统计分析】--按设备统计水质年月日统计报表")
+    @RequestMapping(value = "/getDevicWaterReportByDeviceIdsNew", method = RequestMethod.POST)
+    @ResponseBody
+    public AjaxMessage<Pagination<ReportDto>> getDevicWaterReportByDeviceIdsNew(@RequestBody ReportQueryDto queryDto) {
+        queryDto.setType(3);
+        IPage<ReportDto> iPage = new Page<>(queryDto.getPageNum(), queryDto.getPageSize());
+        iPage = reportService.getPipeDevicePressReportByDeviceIds(iPage,queryDto);
+        Pagination<ReportDto> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK,pages);
+    }
+
+    @ApiOperation(value = "【历史数据】--按设备统计水质年月日统计报表")
+    @RequestMapping(value = "/getHistoryDataDevicWaterReportByDeviceIdsNew", method = RequestMethod.POST)
+    @ResponseBody
+    public AjaxMessage<Pagination<ReportDto>> getHistoryDataDevicWaterReportByDeviceIdsNew(@RequestBody ReportQueryDto queryDto) {
+        queryDto.setType(3);
+        IPage<ReportDto> iPage = new Page<>(queryDto.getPageNum(), queryDto.getPageSize());
+        iPage = reportService.getPipeHistoryDataDevicePressReportByDeviceIds(iPage,queryDto);
+        Pagination<ReportDto> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK,pages);
+    }
+
+    @ApiOperation(value = "【统计分析】--获取自定义报表统计维度")
     @RequestMapping(value = "/getCustomDimension", method = RequestMethod.POST)
     @ResponseBody
     public AjaxMessage<List<ReportAttributeDto>> getCustomDimension(
             @ApiParam(value = "场景IDS", required = true) @RequestParam(required = true) Long[] ids
-           ) {
-        return new AjaxMessage<>(ResultStatus.OK, reportService.findAttributeNameList(ids, null));
+    ) {
+        return new AjaxMessage<>(ResultStatus.OK, reportService.findAttributeNameList(ids, null,0));
+    }
+
+    @ApiOperation(value = "【历史数据】--获取历史数据自定义报表统计维度")
+    @RequestMapping(value = "/getHistoryDataCustomDimension", method = RequestMethod.POST)
+    @ResponseBody
+    public AjaxMessage<List<ReportAttributeDto>> getHistoryDataCustomDimension(
+            @ApiParam(value = "场景IDS", required = true) @RequestParam(required = true) Long[] ids
+    ) {
+        return new AjaxMessage<>(ResultStatus.OK, reportService.findAttributeNameList(ids, null, 1));
     }
 
-    @ApiOperation(value = "获取管网自定义报表统计维度")
+    @ApiOperation(value = "【统计分析】--获取管网自定义报表统计维度")
     @RequestMapping(value = "/getPipelineCustomDimension", method = RequestMethod.POST)
     @ResponseBody
     public AjaxMessage<List<ReportAttributeDto>> getPipelineCustomDimension(
             @ApiParam(value = "设备ID", required = true) @RequestParam(required = true) Long deviceId,
             @ApiParam(value = "类型:1压力,2流量,3水质", required = true) @RequestParam(required = true) Integer type) {
-        return new AjaxMessage<>(ResultStatus.OK, reportService.findPipeAttributeNameList(deviceId, type));
+        return new AjaxMessage<>(ResultStatus.OK, reportService.findPipeAttributeNameList(deviceId, type,0));
+    }
+
+    @ApiOperation(value = "【历史数据】--获取管网自定义报表统计维度")
+    @RequestMapping(value = "/getHistoryDataPipelineCustomDimension", method = RequestMethod.POST)
+    @ResponseBody
+    public AjaxMessage<List<ReportAttributeDto>> getHistoryDataPipelineCustomDimension(
+            @ApiParam(value = "设备ID", required = true) @RequestParam(required = true) Long deviceId,
+            @ApiParam(value = "类型:1压力,2流量,3水质", required = true) @RequestParam(required = true) Integer type) {
+        return new AjaxMessage<>(ResultStatus.OK, reportService.findPipeAttributeNameList(deviceId, type,1));
     }
 
-    @ApiOperation(value = "修改自定义报表统计维度")
+    @ApiOperation(value = "【统计分析/历史数据】--修改自定义报表统计维度")
     @RequestMapping(value = "/updateCustomDimension", method = RequestMethod.POST)
     @ResponseBody
     public AjaxMessage<List<ReportAttributeDto>> updateCustomDimension(@RequestBody @Valid List<ReportStatisticalDimensionDto> dataList) {
@@ -197,8 +254,8 @@ public class DayMonthYearReportController {
     }
 
     @RequestMapping(value = "/export/excel", method = RequestMethod.POST)
-    @ApiOperation(value = "报表导出")
-    public AjaxMessage<String> exportExcel(@RequestBody @Valid ReportQueryDto queryDto) {
+    @ApiOperation(value = "【统计分析】--报表导出")
+    public AjaxMessage<String> exportExcel(@RequestBody ReportQueryDto queryDto) {
         IPage<ReportDto> iPage = new Page<>(1, 1000000);
         if (StringUtils.isEmpty(queryDto.getStartTime()) || StringUtils.isEmpty(queryDto.getEndTime())){
             queryDto.setStartTime(null);
@@ -218,4 +275,26 @@ public class DayMonthYearReportController {
         return new AjaxMessage<>(ResultStatus.OK, filePath);
     }
 
+    @RequestMapping(value = "/export/historyDataExcel", method = RequestMethod.POST)
+    @ApiOperation(value = "【历史数据】--报表导出")
+    public AjaxMessage<String> historyDataExcel(@RequestBody ReportQueryDto queryDto) {
+        IPage<ReportDto> iPage = new Page<>(1, 1000000);
+        if (StringUtils.isEmpty(queryDto.getStartTime()) || StringUtils.isEmpty(queryDto.getEndTime())) {
+            queryDto.setStartTime(null);
+            queryDto.setEndTime(null);
+        }
+        if (queryDto.getType() == null) {
+            iPage = reportService.getHistoryDataReportBySceneIdsNews(iPage, queryDto);
+        } else {
+            iPage = reportService.getPipeHistoryDataDevicePressReportByDeviceIds(iPage, queryDto);
+        }
+        List<ReportDto> list = iPage.getRecords();
+        if (CollectionUtil.isEmpty(list)) {
+            return new AjaxMessage<>(ResultStatus.OK);
+        }
+        List<List<String>> reportTitle = ReportExcelUtil.toExcelTitleList(list.get(0).getReportTitle(), queryDto.getSceneType());
+        String filePath = ExcelUtil.writeSimpleExcelWithHeader(baseDir, SceneEnum.getMsg(queryDto.getSceneType()) + "报表", reportTitle, ReportExcelUtil.toReportExcelDto(list, queryDto.getSceneType()));
+        return new AjaxMessage<>(ResultStatus.OK, filePath);
+    }
+
 }