当前位置:网站首页>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 第一人称角色模板 添加生命值和调试伤害
- UE4 第一人称角色模板 添加冲刺(加速)功能
- Defect detection (image processing part)
- 【已解决】Unity Coroutinue 协程未有效执行的问题
- The second council meeting of the Dragon Lizard Community was successfully held!Director general election, 4 special consultants joined
- 36-Jenkins-Job Migration
- ffmpeg enumeration decoders, encoders analysis
- What is the difference between SAP ERP and ORACLE ERP?
- 多御安全浏览器新版下载 | 功能优秀性能出众
- 商业智能BI业务分析思维:现金流量风控分析(一)营运资金风险
猜你喜欢

多御安全浏览器新版下载 | 功能优秀性能出众
![[Solved] Unity Coroutine coroutine is not executed effectively](/img/ab/035ef004a561fb98d3dd1d7d8b5618.png)
[Solved] Unity Coroutine coroutine is not executed effectively

Android interview question - how to write with his hands a non-blocking thread safe queue ConcurrentLinkedQueue?

Growth-based checkerboard corner detection method

Solana NFT开发指南
![Spark Basics [Introduction, Getting Started with WordCount Cases]](/img/90/ebe887db0f8c36895691dea05f62cf.png)
Spark Basics [Introduction, Getting Started with WordCount Cases]

MySql的索引学习和使用;(本人觉得足够详细)

测试薪资这么高?刚毕业就20K

用CH341A烧录外挂Flash (W25Q16JV)

Android 面试题——如何徒手写一个非阻塞线程安全队列 ConcurrentLinkedQueue?
随机推荐
21 Days Learning Challenge (2) Use of Graphical Device Trees
关于#SQL#的迭代、父子结构查询问题,如何解决?
冒泡排序与快速排序
冰蝎V4.0攻击来袭,安全狗产品可全面检测
10 years of testing experience, worthless in the face of the biological age of 35
Dive into how it works together by simulating Vite
From "useable" to "easy to use", domestic software is self-controllable and continues to advance
Queue Topic: Recent Requests
Walter talked little knowledge | "remote passthrough" that something
The most comprehensive exam questions for software testing engineers in 2022
sql怎么找字段里所有数据为空的字段
七夕节代码表白
[Paper Notes] MapReduce: Simplified Data Processing on Large Clusters
How to Add Category-Specific Widgets in WordPress
ffmpeg 像素格式基础知识
AI+PROTAC | dx/tx completes $5 million seed round
Defect detection (image processing part)
为什么pca分量没有关联
MySql index learning and use; (I think it is detailed enough)
从“能用”到“好用” 国产软件自主可控持续推进