③库存管理
1.库存查询
这个和上面类似,不过这里因为字段较少就没有设置详情,同时为了库存安全,这里并未提供增删改功能,只能供用户查询信息。
不过也提供筛选、导出和打印的功能
2.可视化展示
④其他管理
这里我只写了仓库增加和材料类型增加
1.材料种类添加
2.仓库创建
3.个人管理
①我的任务
此处会显示登录用户的未完成任务和已完成任务。
注:这里采取流式加载来懒加载数据
点击加载更多会向服务器请求另外所需数据,如果没有则会显示“没有更多了”
点击未完成任务,则会进入审核/验收页面
审核的话需要指定对应仓库的仓管员负责验收任务,同时写下备注,点击审核通过或者不通过。
验收只要写备注以及验收通过或者不通过。
②我的申请
在这里可以查看自己提交的申请
点击可以查看申请所处的流程阶段,实时查看自己的申请状况。
③个人信息管理
在这个页面,用户可以查看和修改自己的非敏感信息。
如果你要对你的绑定邮箱和密码进行修改,则需要进行额外的流程
4.网站管理
①公告
在这里可以发布公告
同时在首页可以查看对应公告
②人员管理
系统管理员可以查看对应的人员信息
可以筛选查询需要的信息
可以(批量)删除用户信息,也可以添加用户信息
或者编辑修改用户信息
还可以导出打印用户信息
五、代码结构
1.包结构
这里为了让更多人看懂代码,我讲讲我的代码结构和对应包的意义。
首先是典型的maven结构,main里面是源代码。
entity:数据库实体类,与数据库字段一一对应
pojo:封装实体类,用于封装数据库实体类给前端需要的数据
mapper:数据库层,专门与数据库打交道
service:业务层,封装业务逻辑
controller:控制层,控制对应数据和视图,以及做一些参数检查
aop:这里面放的是切面相关的类。这里我就放了一个日志切面类,用于记录日志的
config:配置包,放配置类。这里我放了springMVC的配置类
exception:异常类。这里我定义了自己的异常类MyException
exceptionHandler:异常处理类。这里我用于捕获抛出的异常,同时返回给前端对应的错误信息
intercepter:拦截器类。利用spring的拦截器,用于做用户鉴权与权限控制。
security:安全控制,这个包下我自己实现了一套token机制,详情看我另一篇博文手把手教你用Java实现一套简单的鉴权服务(SpringBoot,SSM)(万字长文)
utils:工具类,封装了一些常用操作
六、做项目时遇到的问题
1.静态资源被拦截
在测试项目过程中,我发现返回的页面都未加载出css下的public.css文件,一开始以为是maven配置的原因导致没把对应的静态文件输出target目录中,但是看了后发现静态文件已经加载进target目录中。
于是查看对应报错信息是404未找到,
可对应目录下有相应文件,于是我怀疑是被框架拦截了。
于是搜索相关信息,果然如此。
根据网络上的方法改来改去还是不行(主要是不明白为什么)。
认真思考推测问题的原因后,我把静态文件都放在了static目录下,同时在application.yml中加入了这句,
就是告诉springMVC,static开头的是静态文件,你别给我拦截了。
然后我在引用静态文件时都采用static开头的写法
做完之后问题成功解决!
2.layui框架动态表格分页的坑
这个也不算坑吧,可能也是我自己没理解,我误把count属性想成了这次请求返回的数据的数量,可实际上是所有数据的条数。仔细想想也确实该如此,不然前端怎么知道该分多少页呢?
3.部署的坑
部署的时候发现访问相应的网页,服务器上报模板未找到,搜了一下发现,返回的路径不该以/开头,当然这么说是不严谨的,这个取决于springMVC的配置
这里我配了/,所以路径前加/的话会有两个//,因此无法找到。
七、心得体会
项目从头到尾写下来,感觉锻炼最大的不是我的后端能力,而是我的前端能力!在写页面的过程中,我渐渐开始自己去读对应文档学习前端知识,去编写自己想要的页面,去实现自己想要的功能。最后回过头去看项目,感觉还算不错,而我也摸到了前端的一些门路(当然我前端菜鸟的身份依旧未变)。
最后,附上项目演示地址演示地址,账号123456@qq.com,密码123456。
此项目已开源至gitee,想拿项目去玩玩的可以点击这里查看gitee地址,如果觉得还不错不要忘了star哦!
注:目前项目部分功能并未开发完全,由于期末要上交实验报告,所以介绍的博文我提前发出来了。由于期末很忙(一边准备期末考试,一边安排协会事宜,安排实验室暑假集训)短时间内也并不会去开发完善功能。还有就是我租的阿里云服务器快到期了,到时候估计会重新租个华为云的服务器,所以演示地址可能会失效,如果失效了记得@我一下。