puzhibing
2026-09-30 ab268d1525563fc8f22af808a58bc13f125f2796
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package com.ruoyi.other.controller;
 
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.ruoyi.common.core.utils.WebUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.Logical;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.other.api.domain.TStationEarn;
import com.ruoyi.other.query.StationEarnQuery;
import com.ruoyi.other.query.StationEarnOverviewQuery;
import com.ruoyi.other.query.StationEarnStatisticsQuery;
import com.ruoyi.other.service.TStationEarnService;
import com.ruoyi.other.vo.StationEarnExportVO;
import com.ruoyi.other.vo.StationEarnOverviewVO;
import com.ruoyi.other.vo.StationEarnStatisticsVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
 
@Api(tags = "管理后台-电站收益统计")
@RestController
@RequestMapping("/station-earn")
public class TStationEarnController {
    @Resource private TStationEarnService stationEarnService;
 
    @RequiresPermissions(value = {"/stationEarn/list", "/energyReport/photovoltaic/select"}, logical = Logical.OR)
    @GetMapping("/pageList") @ApiOperation("分页查询电站收益")
    public AjaxResult<PageInfo<TStationEarn>> pageList(StationEarnQuery query) {
        return AjaxResult.success(stationEarnService.pageList(query));
    }
 
    @GetMapping("/statistics")
    @ApiOperation("前端发电量分析统计")
    public AjaxResult<StationEarnStatisticsVO> statistics(StationEarnStatisticsQuery query) {
        return AjaxResult.success(stationEarnService.statistics(query));
    }
 
    @GetMapping("/generationOverview")
    @ApiOperation("今日、本月和本年发电量概览")
    public AjaxResult<StationEarnOverviewVO> generationOverview(StationEarnOverviewQuery query) {
        return AjaxResult.success(stationEarnService.generationOverview(query));
    }
 
    @RequiresPermissions(value = {"/stationEarn/export"}, logical = Logical.OR)
    @GetMapping("/export") @ApiOperation("导出电站收益")
    @Log(title = "【电站收益统计】导出", businessType = BusinessType.EXPORT)
    public void export(StationEarnQuery query) throws Exception {
        List<TStationEarn> stationEarnList = stationEarnService.exportList(query == null ? new StationEarnQuery() : query);
        List<StationEarnExportVO> exportList = new ArrayList<>(stationEarnList.size());
        for (TStationEarn stationEarn : stationEarnList) {
            StationEarnExportVO exportVO = new StationEarnExportVO();
            BeanUtils.copyProperties(stationEarn, exportVO);
            exportVO.buildPlatformName(stationEarn.getPlatformId());
            exportVO.setSaveTime(stationEarn.getSaveTime() == null ? "" : stationEarn.getSaveTime().toString());
            exportList.add(exportVO);
        }
        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), StationEarnExportVO.class, exportList);
        HttpServletResponse response = WebUtils.response();
        response.setContentType("application/vnd.ms-excel;charset=UTF-8");
        response.setCharacterEncoding("utf-8");
        response.setHeader("Content-Disposition", "attachment;filename="
                + URLEncoder.encode("电站收益统计.xls", "UTF-8"));
        try (ServletOutputStream outputStream = response.getOutputStream()) {
            workbook.write(outputStream);
            outputStream.flush();
        } finally {
            workbook.close();
        }
    }
}