使用springBoot + SpringData JPA搭建的企业级OA脚手架
本项目为单应用版本,项目采用springboot2 + SpringData JPA搭建的企业OA脚手架,springSecurity做安全认证,内置基本组织结构、菜单管理、系统字典、流程控制、全局文档管理、全局异常记录。使用Quartz实现定时任务(包括静态定时任务和可配置定时任务)。使用velocity模板实现代码生成工具,减少重复代码开发量。 前台使用Thymeleaf模板引擎,jquery+bootstrap
JDK1.8
MySql5.5+
Redis
Mongodb
- idea安装lombok插件(否则会报没有get set方法错误)
- 将代码导入到idea中并等待maven导入jar
- 创建数据库、并修改application.yml中的数据库信息,数据库字符集:utf8;排序规则:utf8_general_ci
- 一些特殊表需要手动创建,导入sql文件夹下的文件(springSecurity记住我、定时任务)。
- 项目使用的是hibernate自动建表,所以业务类的表不需要手动创建。
- 找到主启动类keper-web/src/main/java/com/hanqian/kepler/KeplerApplication.JAVA启动
- 启动成功后会再数据库中自动创建相应业务表,第一次启动会创建一个系统管理员【admin/password】
- 用户管理:对用户进行职权配置以及账号锁定操作
- 部门管理:使用树结构进行部门的上下级创建修改
- 岗位管理:职务的配置
- 职责管理:【部门】+【岗位】=【职责】
- 职权管理:【职责】+【用户】=【职权】,实现一个用户可拥有多种职责
- 群组管理:配置多名用户成为一个小组,可配合后续业务或流程实现功能
- 系统字典:对系统内一些业务的常见选择数据进行维护
- 菜单管理:系统内菜单栏的配置以及查看权限
- 定时任务:可配置定时任务
- 代码生成:通过实体类自动生成基本功能业务代码
- 流程管理:配合@Flow注解通过表单构建的方式配置业务审批流程,和文档权限控制
- 文档管理:可删除或恢复所有通过流程创建的表单
- 微信管理:查看当前微信公众号信息以及配置公众号菜单栏
- 个人中心:用户修改自己的个人资料、头像、密码,和查看自己相关的文档
- kepler-common --------------------- 公共代码(工具类、公共代码)
- kepler-core ----------------------- 主要业务类代码(entity、dao、service)
- kepler-flow ----------------------- 流程引擎部分
- kepler-generator ------------------ 代码生成部分
- kepler-quartz --------------------- 定时任务(定时任务实例代码)
- kepler-web ------------------------ 控制层和前台页面(controller、html)
- sql ------------------------------- 需要手动导入的sql语句
name | description | page |
---|---|---|
SpringBoot JPA | orm | |
Spring Security | 安全框架 | |
Quartz | 定时任务 | |
hutool | 封装各种工具类 | https://hutool.cn/ |
justauth | 第三方登陆 | https://docs.justauth.whnb.wang/#/ |
WxJava | 微信 | https://gitee.com/binary/weixin-java-tools |
velocity | 代码生成模板 | https://blog.csdn.net/tttzzztttzzz/article/details/90720877 |
kkFileView | 附件预览 | https://gitee.com/kekingcn/file-online-preview |
name | description | page |
---|---|---|
bootstrap | ||
jquery | ||
jqGrid | 视图表格分页 | https://blog.mn886.net/jqGrid/ |
Thymeleaf | 前台模板引擎 | https://blog.csdn.net/pdw2009/article/details/44700897 |
ztree | 树插件 | http://www.treejs.cn/v3/api.php |
summernote | 编辑器 | https://summernote.org |
city-picker | 地域选择 | https://www.npmjs.com/package/city-picker-pc |
dropzone | 附件上传 | https://www.dropzonejs.com |
laydate | 时间选择器 | https://www.layui.com/doc/modules/laydate.html |
jquery-tmpl | 模板引擎 | https://blog.csdn.net/u010142437/article/details/84399222 |
layX | 弹窗插件 | https://gitee.com/monksoul/LayX |
lodash | JS工具类 | https://www.lodashjs.com/ |
echarts | 统计图模型 | https://echarts.apache.org/examples/zh/index.html |
mui | 手机端前台框架 | https://dev.dcloud.net.cn/mui/ui/ |
name | page |
---|---|
RuoYi | https://gitee.com/y_project/RuoYi |
weixin-java-mp-demo-springboot | https://gitee.com/binary/weixin-java-mp-demo-springboot |
spring-boot-demo | https://github.com/xkcoding/spring-boot-demo |
SmartWx | https://gitee.com/qingfengtaizi/wxmp |
【已完成】增加邮件服务【已完成】实现忘记密码功能,配合邮件服务【已完成】增加微信公众号框架,配合WxJava【已完成】可配置定时任务(参考【若依】项目)- 【未完成】第三方账号绑定,第三方登录(QQ登录、微信登录)
【已完成】微信公众号配置页面(参考https://gitee.com/qingfengtaizi/wxmp【已完成】各个菜单的查看权限(权限配置就和流程查看权限一样)【已完成】系统管理中增加服务器信息以及项目信息(参考【若依】项目)【已完成】代码自动生成(根据实体类属性)【已完成】增加消息提醒【已完成】mysql、mongodb数据定时备份【已完成】多标签页情况下的页面排版【已完成】个人中心我创建的文档、我参与过的文档【已完成】代码生成增加数据导入导出功能【已完成】excel导入前台增加进度信息【已完成】流程中增加撤回功能【已完成】流程审批增加附件上传【已完成】系统公共配置功能(登录类型开关、logo图片配置、企业名称....)- 【未完成】流程步骤 程序中的手动增加待办人、待办信息(为了处理非通过流程引擎走的流程)
- 【未完成】流程文档全局控制(可以手动修改任何一篇文档的流程审批信息,增加删除审批信息)
【已完成】自定义特殊按钮权限(比如合同管理的“合同结算”按钮,它的显示权限)【已完成】全局异常记录- 【未完成】添加websocket在线通知
- 【未完成】微信端页面排版
- 【未完成】手机端UI框架更换为MDUI https://gitee.com/zdhxiong/mdui
- 【未完成】代码生成目前是通过实体类生成,要改为通过页面配置方式生成
- 【未完成】Kepler项目完整开发文档