后台报表业务开发

【摘要】有现成的报表工具,何必再浪费时间去开发呢?

前言

最近项目组在开发《智能远程抄表预付费系统》,因为进度紧张,所以领导临时安排我写写报表业务。简单的说:报表就是用表格、图表等格式来动态显示数据。在业务上理解起来并不困难,唯一的问题就是需要梳理清各个数据库表的关系。
项目基于开源项目jeecg-boot 进行二次开发。

前端:Vue+使用开源项目jeecg-boot中封装的曲线、柱状图、饼状图、折线图等报表组件。
后端:Spring Boot+Mybatis Plus
数据库:PostgreSQL

1.熟悉相关表结构以及表与表之间的关系。
2.参考原型图和后台数据库写出查询数据的sql。
3.从mapper->service->controller在Java层面处理数据并返回json格式。

不要以为报表就是很简单的查出来几条sql数据,直接扔过去就ok了。其实,额额额,其实也差不多。不过呢,问题总会遇到的,下面我打算总结几个值得记录的问题。

注:为了保证公司业务的安全性,不会直接贴代码。创建几个简单的表,讲讲思路,达到效果就可以。

按日期分组(GROUP BY)查询统计时 空数据补0

  • 1.新建日期临时表 联合查询 UNION
  • 2.在Java中补充数据

同列分类求和并按其他列分组

userid type income
1 微信 4
2 支付宝 2
2 微信 6
1 支付宝 7

问题描述:如上表 INCOME,要分别统计每个用户微信、支付宝的收入总和,结果格式如下。(即按微信、支付宝分类,按照userid分group求和)

userid 微信 支付宝
1 xxx xxx
2 xxx xxx
1
2
3
4
SELECT userid,
SUM(CASE WHEN type='微信' THEN income ELSE 0 END) AS income_wx,
SUM(CASE WHEN type='支付宝' THEN income ELSE 0 END) AS income_ali
FROM INCOME GROUP BY userid

Java实现打印机打印账单

敬请期待…

结束语

评论