/*
这段代码是一个用于处理能源报表的控制器。它使用了Spring框架和Apache POI库来处理和导出Excel报表。代码定义了多个处理报表的方法,包括查询历史数据、月度用水和电量报表、月度结算报表等,并提供导出报表的功能。
以下是每个方法的功能解释:
1. `selectHistoryDetailList`:根据查询类型(年份、月份、日、小时)查询历史数据,并返回结果列表。
2. `selectMonthDosageOfWaterList`:查询月度用水报表数据,并返回结果列表。
3. `selectMonthDosageOfElectricityList`:查询月度电量报表数据,并返回结果列表。
4. `selectMonthSettlementList`:查询月度结算报表数据,并返回结果列表。
5. `selectBuildingDosage`:查询建筑的数据,包括年、月、日的数据,并返回结果。
6. `selectYearTotal`:查询年度总报表数据,并返回结果。
7. `selectClassList`:查询类别列表,并返回结果。
8. `selectEnergyTypeList`:查询能源类型列表,并返回结果。
9. `selectSignalTypeList`:查询信号类型列表,并返回结果。
10. `selectSystemList`:查询系统列表,并返回结果。
11. `selectBuildingDistributionList`:查询建筑分布列表,并返回结果。
12. `selectBuildingMainMPValueList`:根据建筑ID查询主要数据列表,并返回结果。
13. `selectHomePageChartSettingList`:查询首页图表设置列表,并返回结果。
14. `exportHistoryDetail`:根据查询类型(年份、月份、日、小时)导出历史数据报表为Excel文件。
15. `exportMonthDosageOfWater`:导出月度用水报表为Excel文件。
16. `exportMonthDosageOfElectricity`:导出月度电量报表为Excel文件。
17. `exportMonthSettlement`:导出月度结算报表为Excel文件。
以上方法都需要相应的权限才能访问,例如`@PreAuthorize("@ss.hasPermi('energy:report_historyDetail:list')")`表示只有拥有`energy:report_historyDetail:list`权限的用户才能访问`selectHistoryDetailList`方法。
*/
package com.eim.project.energy.controller;
import com.eim.common.exception.CustomException;
import com.eim.common.utils.DateUtils;
import com.eim.framework.aspectj.lang.annotation.Log;
import com.eim.framework.aspectj.lang.enums.BusinessType;
import com.eim.framework.web.controller.BaseController;
import com.eim.framework.web.domain.AjaxResult;
import com.eim.framework.web.page.PageDomain;
import com.eim.framework.web.page.TableDataInfo;
import com.eim.framework.web.page.TableSupport;
import com.eim.project.energy.service.ReportService;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.*;
/**
* @author chenchen
*/
@RestController
@RequestMapping("/energy/report")
public class ReportController extends BaseController {
private static final Logger log = LoggerFactory.getLogger(ReportController.class);
@Autowired
private ReportService reportService;
@PreAuthorize("@ss.hasPermi('energy:report_historyDetail:list')")
@PostMapping("/historyDetail/list")
public TableDataInfo selectHistoryDetailList(@RequestBody Map<String, Object> map) {
startPage();
List<Map<String, Object>> yearDosageList = null;
int queryTypeId = (int) map.get("queryTypeId");
switch (queryTypeId) {
case 1:
yearDosageList = reportService.selectHistoryOfYearDosage(map);
break;
case 2:
yearDosageList = reportService.selectHistoryOfMonthDosage(map);
break;
case 3:
yearDosageList = reportService.selectHistoryOfDayDosage(map);
break;
case 4:
yearDosageList = reportService.selectHistoryOfHourDosage(map);
break;
default:
break;
}
return getDataTable(yearDosageList);
}
@PreAuthorize("@ss.hasPermi('energy:report_monthDosageOfWater:list')")
@PostMapping("/monthDosageOfWater/list")
public TableDataInfo selectMonthDosageOfWaterList(@RequestBody Map<String, Object> map) {
startPage();
List<Map<String, Object>> monthDosageOfWaterList = reportService.selectMonthDosageOfWater(map);
return getDataTable(monthDosageOfWaterList);
}
@PreAuthorize("@ss.hasPermi('energy:report_monthDosageOfElectricity:list')")
@PostMapping("/monthDosageOfElectricity/list")
public TableDataInfo selectMonthDosageOfElectricityList(@RequestBody Map<String, Object> map) {
startPage();
List<Map<String, Object>> monthDosageOfElectricityList = reportService.selectMonthDosageOfElectricity(map);
return getDataTable(monthDosageOfElectricityList);
}
@PreAuthorize("@ss.hasPermi('energy:report_monthSettlement:list')")
@PostMapping("/monthSettlement/list")
public TableDataInfo selectMonthSettlementList(@RequestBody Map<String, Object> map) {
startPage();
List<Map<String, Object>> monthSettlementList = reportService.selectMonthSettlement(map);
return getDataTable(monthSettlementList);
}
@PostMapping("/buildingDosage/list")
public AjaxResult selectBuildingDosage(@RequestBody Map<String, Object> map) {
List<Map<String, Object>> yearList = reportService.selectBuildingYearDosage(map);
List<Map<String, Object>> monthList = reportService.selectBuildingMonthDosage(map);
List<Map<String, Object>> dayList = reportService.selectBuildingDayDosage(map);
Map resultMap = new HashMap();
resultMap.put("yearDosage", null);
resultMap.put("monthDosage", null);
resultMap.put("dayDosage", null);
if (yearList != null && yearList.size() > 0) {
resultMap.put("yearDosage", yearList.get(0));
}
if (monthList != null && monthList.size() > 0) {
resultMap.put("monthDosage", monthList.get(0));
}
if (dayList != null && dayList.size() > 0) {
resultMap.put("dayDosage", dayList.get(0));
}
return AjaxResult.success(resultMap);
}
@GetMapping("/buildingDosage/list")
public AjaxResult selectBuildingDosage() {
List<Map<String, Object>> yearList = reportService.selectBuildingYearDosage(new HashMap<>());
List<Map<String, Object>> monthList = reportService.selectBuildingMonthDosage(new HashMap<>());
List<Map<String, Object>> dayList = reportService.selectBuildingDayDosage(new HashMap<>());
Map resultMap = new HashMap();
resultMap.put("yearDosage", null);
resultMap.put("monthDosage", null);
resultMap.put("dayDosage", null);
if (yearList != null && yearList.size() > 0) {
resultMap.put("yearDosage", yearList);
}
if (monthList != null && monthList.size() > 0) {
resultMap.put("monthDosage", monthList);
}
if (dayList != null && dayList.size() > 0) {
resultMap.put("dayDosage", dayList);
}
return AjaxResult.success(resultMap);
}
@GetMapping("/yearTotal")
public AjaxResult selectYearTotal() {
Map<String, Object> yearTotal = reportService.selectYearTotal();
return AjaxResult.success(yearTotal);
}
@GetMapping("/class/list")
public TableDataInfo selectClassList(
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Spring Boot框架的资源管理系统 项目简介 本项目是一个基于Spring Boot框架的资源管理系统,旨在提供一个高效、易用的平台来管理用户、部门、岗位、菜单、角色、字典、参数、通知公告、操作日志、登录日志、在线用户、定时任务、代码生成、系统接口、服务监控、在线构建器和连接池监视等功能。通过该系统,用户可以轻松进行用户管理、权限控制、数据管理等操作。 项目的主要特性和功能 1. 用户管理系统操作者的配置和管理。 2. 部门管理配置系统组织机构(公司、部门、小组),支持树结构展现和数据权限。 3. 岗位管理配置系统用户所属担任职务。 4. 菜单管理配置系统菜单,操作权限,按钮权限标识等。 5. 角色管理角色菜单权限分配、设置角色按机构进行数据范围权限划分。 6. 字典管理对系统中经常使用的一些较为固定的数据进行维护。 7. 参数管理对系统动态配置常用参数。 8. 通知公告系统通知公告信息发布维护。
资源推荐
资源详情
资源评论
收起资源包目录
基于Spring Boot框架的资源管理系统.zip (613个子文件)
run-tomcat.bat 279B
package.bat 152B
clean.bat 103B
.env.development 172B
.editorconfig 536B
.eslintignore 307B
401.gif 160KB
.gitignore 664B
.gitignore 279B
index.html 5KB
favicon.ico 6KB
ReportController.java 34KB
Convert.java 28KB
ExcelUtil.java 28KB
VerifyCodeUtils.java 21KB
HTMLFilter.java 20KB
UUID.java 16KB
ReflectUtils.java 16KB
ReportService.java 15KB
RyTask.java 14KB
SysUserServiceImpl.java 14KB
StringUtils.java 13KB
SysMenuServiceImpl.java 13KB
GenTableServiceImpl.java 12KB
RSAUtils.java 12KB
MeasuringPointController.java 12KB
VelocityUtils.java 12KB
ComputerSerialNumberUtil.java 11KB
HttpUtils.java 11KB
Base64.java 11KB
FileUploadUtils.java 11KB
CompanyController.java 11KB
BuildingController.java 10KB
MeterController.java 10KB
DruidProperties.java 10KB
DeviceController.java 10KB
PlantController.java 10KB
SysRoleServiceImpl.java 10KB
SysLoginController.java 10KB
SysUserController.java 10KB
SysDeptServiceImpl.java 10KB
GenTableColumn.java 9KB
SysRoleController.java 9KB
LogAspect.java 9KB
SysUser.java 9KB
GenUtils.java 9KB
Server.java 9KB
GenController.java 8KB
SysJobServiceImpl.java 8KB
TokenService.java 8KB
SysOperLog.java 8KB
GenTable.java 8KB
JobInvokeUtil.java 7KB
SysDeptController.java 7KB
IpUtils.java 7KB
PermissionService.java 7KB
DataScopeAspect.java 7KB
SecurityConfig.java 7KB
RedisCache.java 7KB
SysMenu.java 7KB
SysMenuController.java 7KB
DruidConfig.java 7KB
TestController.java 7KB
SysJob.java 7KB
SysRole.java 7KB
EscapeUtil.java 6KB
MyBatisConfig.java 6KB
SysProfileController.java 6KB
SysDictTypeController.java 6KB
SysDictData.java 6KB
SysPostController.java 6KB
MeasuringPoint.java 6KB
SysJobController.java 6KB
SysDictDataController.java 6KB
SysConfigController.java 6KB
LoginUser.java 6KB
SysDept.java 6KB
CommonController.java 6KB
ISysUserService.java 6KB
UnitPriceMapper.java 6KB
SysNoticeController.java 6KB
SysPostServiceImpl.java 6KB
AlarmLogController.java 6KB
GlobalExceptionHandler.java 6KB
DateUtils.java 5KB
ScheduleUtils.java 5KB
FileUtils.java 5KB
SwaggerConfig.java 5KB
SysJobLog.java 5KB
ISysDeptService.java 5KB
SysUserOnlineController.java 5KB
SysLoginService.java 5KB
SysDictTypeServiceImpl.java 5KB
SameUrlDataInterceptor.java 5KB
SysPost.java 5KB
MqttTestController.java 5KB
AsyncFactory.java 5KB
AbstractQuartzJob.java 5KB
StrFormatter.java 5KB
GenConstants.java 5KB
共 613 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
资源评论
t0_54coder
- 粉丝: 2375
- 资源: 1629
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Qt操作主/从视图及XML-实例:汽车管理系统
- 用python裁剪txt的代码
- 基于Java、CSS和HTML的StudentBookingSystem学生火车票订票系统设计源码
- self python script
- 基于Jupyter Notebook的Python代码设计源码分享
- 两挡AMT纯电动汽车仿真模型,可实现挡过程模拟 ABS TCS驱动防滑控制 电池管理等功能 模型可以输入WLTC CLTC等不同
- 9030B频谱仪编程手册
- 基于C#的AKStream全功能流媒体管理控制接口平台设计源码
- 光伏储能同步发电机simulink仿真模型 主电路:三相全桥逆变 直流侧电压800V 光伏模块:光伏板结合Boost电路应用MP
- 基于SpringBoot+Vue的影视管理后台系统设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功