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();
|
}
|
}
|
}
|