当前位置:网站首页>JeeSite新建报表
JeeSite新建报表
2022-08-05 03:42:00 【victor-gx】
JeeSite新建报表
一、新建报表
在jeesite
数据库新建报表report_ over_under_data
CREATE TABLE report_ over_under_data(
id VARCHAR(64) NOT NULL COMMENT '主键' ,
stat_month VARCHAR(10) COMMENT '日期' ,
report_number VARCHAR(10) COMMENT '报表' ,
remarks TEXT COMMENT '备注说明' ,
status VARCHAR(32) NOT NULL COMMENT '状态' ,
create_by VARCHAR(32) COMMENT '创建人' ,
create_date DATETIME COMMENT '创建时间' ,
update_by VARCHAR(32) COMMENT '更新人' ,
update_date DATETIME COMMENT '更新时间' ,
PRIMARY KEY (id)
) COMMENT = ' ';
二、生成代码
启动jeesite项目,登录超级管理员用户,系统管理 ——> 研发工具 ——> 代码生成工具
点击右上角新增,选择刚才新建的报表report_ over_under_data
,后点击下一步
在表中输入如下内容,点击保存并生成代码
此时在IDEA中,进入如下目录 web -> src -> main -> java -> com -> jeesite -> modules
,modules下会多一个report的文件夹,这个文件夹下存放的是java类,再进入 web -> src -> main -> resources -> mappings -> modules
,modules下同样会多一个report的文件夹,这个文件夹下存放的是xml文件,再进入 web -> src -> main -> resources -> views-> modules
,modules下同样会多一个report的文件夹,这个文件夹下存放的是html文件。
三、添加菜单选项
登录超级管理员用户,系统管理 -> 系统设置 -> 菜单管理
点击右上角新增,输入入下内容
链接内容,在新建的report文件下的web文件夹中的ReportOverUnderDataController
类中
权限标识同样在该类中
菜单权重尽量选择默认权重或者二级管理员,如果选择系统管理员,那么二级管理员将不会获得改权限,同样选择超级管理员,系统管理员和二级管理员均不会获得权限。
设置好后点保存。
然后重启项目。再次登录超级管理员用户,就会看到我们刚刚新建的菜单
四、测试功能
增
选择数据报告后,点击右上角新增,输入相关内容后,点击保存
保存后会回到数据报告界面,此时我们数据添加成功
删
点击右边删除按钮,此时数据也会删除,但是我们回到数据库查看,数据并没有被删除
但是我们会发现此时的status的数值为1,但我们将status的数值改为0,回到浏览器刷新页面,数据又回来了。
因为在页面的删除并不是真正物理意义的删除,只是逻辑删除,这样有利与数据恢复。
status数值为0表示正常,status数值为1表示删除,status数值为2表示停用
物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除的数据
逻辑删除:假删除,将对应数据中代表是否被删除字段的状态修改为“被删除状态”,之后在数据库中仍旧能看到此条数据记录
使用场景:可以进行数据恢复
改
点击右边绿色小笔按钮,更改数据后保存
查
我们在添加一组数据,点击右上角查询,输入我们要查询的内容,点击查询
我们再将test的status数值改为1,将test1的status数值改为2,再次查询test与test1
此时test1可查,test不可查。
正常、停用可查,删除不可查。
五、添加停用按钮
将reportOverUnderDataList.html
中第70-73行改为如下内容,
<% if(hasPermi('report:reportOverUnderData:edit')){ %>
actions.push('<a href="${ctx}/report/reportOverUnderData/form?id='+row.id+'" class="btnList" title="${text("编辑数据报表")}"><i class="fa fa-pencil"></i></a> ');
<% } %>
<% if(hasPermi('report:reportOverUnderData:edit')){ %>
if (row.status == Global.STATUS_NORMAL){
actions.push('<a href="${ctx}/report/reportOverUnderData/disable?id='+row.id+'" class="btnList" title="${text("停用数据报表")}" data-confirm="${text("确认要停用该报表吗?")}"><i class="glyphicon glyphicon-ban-circle"></i></a> ');
}else if (row.status == Global.STATUS_DISABLE || row.status == Global.STATUS_FREEZE || row.status == Global.STATUS_AUDIT){
actions.push('<a href="${ctx}/report/reportOverUnderData/enable?id='+row.id+'" class="btnList" title="${text("启用数据报表")}" data-confirm="${text("确认要启用该报表吗?")}"><i class="glyphicon glyphicon-ok-circle"></i></a> ');
}
<% } %>
<% if(hasPermi('report:reportOverUnderData:edit')){ %>
actions.push('<a href="${ctx}/report/reportOverUnderData/delete?id='+row.id+'" class="btnList" title="${text("删除数据报表")}" data-confirm="${text("确认要删除该数据报表吗?")}"><i class="fa fa-trash-o"></i></a> ');
<% } %>
在ReportOverUnderDataController.java
中添加如下代码
/** * 停用报表 */
@RequiresPermissions("report:reportOverUnderData:edit")
@RequestMapping(value = "disable")
@ResponseBody
public String disable(ReportOverUnderData reportOverUnderData, HttpServletRequest request, HttpServletResponse response, Model model) {
reportOverUnderData.setStatus(ReportOverUnderData.STATUS_DISABLE);
reportOverUnderDataService.updateStatus(reportOverUnderData);
return renderResult(Global.TRUE, text("停用报表''{0}''成功", reportOverUnderData.getReportNumber()));
}
/** * 启用报表 */
@RequiresPermissions("report:reportOverUnderData:edit")
@RequestMapping(value = "enable")
@ResponseBody
public String enable(ReportOverUnderData reportOverUnderData, HttpServletRequest request, HttpServletResponse response, Model model) {
reportOverUnderData.setStatus(ReportOverUnderData.STATUS_NORMAL);
reportOverUnderDataService.updateStatus(reportOverUnderData);
return renderResult(Global.TRUE, text("启用报表''{0}''成功", reportOverUnderData.getReportNumber()));
}
重启项目
测试停用功能
六、雪花算法
回到数据库,我们发现数据的id并不是递增的,而是一串随机的数据,这里的数据不是随机的,而是mybatisplus使用了雪花算法
核心思想:
长度共64bit(一个long型)。
首先是一个符号位,1bit标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0。
41bit时间截(毫秒级),存储的是时间截的差值(当前时间截 - 开始时间截),结果约等于69.73年。
10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID,可以部署在1024个节点)。
12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID)。
- 优点:整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞,并且效率较高。
边栏推荐
- UE4 后期处理体积 (角色受到伤害场景颜色变淡案例)
- MRTK3 develops Hololens application - gesture drag, rotate, zoom object implementation
- DEJA_VU3D - Cesium功能集 之 058-高德地图纠偏
- 引领数字医学高地,中山医院探索打造未来医院“新范式”
- Growth-based checkerboard corner detection method
- Burp installation and proxy settings
- Confessing the era of digital transformation, Speed Cloud engraves a new starting point for value
- 用Unity发布APP到Hololens2无坑教程
- Open-Falcon of operation and maintenance monitoring system
- leetcode-每日一题1403. 非递增顺序的最小子序列(贪心)
猜你喜欢
.NET Application -- Helloworld (C#)
IJCAI2022 | DictBert: Pre-trained Language Models with Contrastive Learning for Dictionary Description Knowledge Augmentation
Solana NFT开发指南
On governance and innovation, the 2022 OpenAtom Global Open Source Summit OpenAnolis sub-forum came to a successful conclusion
测试薪资这么高?刚毕业就20K
静态方法获取配置文件数据
Use CH341A to program external Flash (W25Q16JV)
YYGH-13-客服中心
Getting Started with Kubernetes Networking
2022高处安装、维护、拆除考试题模拟考试题库及在线模拟考试
随机推荐
AI+PROTAC | dx/tx completes $5 million seed round
结构体初解
UE4 通过互动(键盘按键)开门
On governance and innovation, the 2022 OpenAtom Global Open Source Summit OpenAnolis sub-forum came to a successful conclusion
You may use special comments to disable some warnings. Three ways to report errors
36-Jenkins-Job迁移
[GYCTF2020]EasyThinking
markdown如何换行——md文件
Beyond YOLO5-Face | YOLO-FaceV2 officially open source Trick+ academic point full
High Item 02 Information System Project Management Fundamentals
Open-Falcon of operation and maintenance monitoring system
Common open source databases under Linux, how many do you know?
Acid (ACID) Base (BASE) Principles for Database Design
测试薪资这么高?刚毕业就20K
BI业务分析思维:现金流量风控分析(二)信用、流动和投资风险
Call Alibaba Cloud oss and sms services
2022.8.4-----leetcode.1403
从企业的视角来看,数据中台到底意味着什么?
Redis1:Redis介绍、Redis基本特性、关系型数据库、非关系型数据库、数据库发展阶段
shell脚本:for循环与while循环