基于springboot+vue实现的OA管理系统 (源码+L文+ppt)4-069
第四章 系统设计
4.1 系统总体结构设计
本系统是基于B/S架构的网站系统,全方面的对系统的资讯进行实时的更新,对系统进行实时的维护。它的主要功能包括员工管理、部门管理、工资发放管理、客户信息管理、日程安排管理、车辆信息管理、文件信息管理、工资日志管理、签到信息管理、通知公告管理、我的信息等。系统总体结构图如下所示:
图4-1 系统总体结构图
4.2 数据库设计
数据库的设计对于准确反映系统需求至关重要。它直接关系到整个系统最终的呈现结果。通过之前的分析梳理,我们已经明确了系统中需要包含的功能和要求。除了对数据库进行增加、删除、查询和修改等基础操作外,还需要理清实体间的对应关系。基于这些考虑,我们完成了表结构的设计与实现。
4.2.1 数据库逻辑设计
为了更直观阐明数据库的设计,使用 Vision 绘制的OA管理系统数据模型E-R实体属性图。将“管理员信息”作为实体,它的E-R图,如图4-2所示:
图4-2管理员信息的E-R图
根据系统需求,将“用户、工资发放、员工、文件信息、配置文件”等作为实体,它们的局部E-R图,如图4-3所示:
图4-3局部E-R图
4.2.2 数据库表设计
在 Mysql 2000 云数据库、网络后台数据库 等软硬件支持下,建立数据库表,不同数据表结构中存在字段名称、类型、长度、字段说明、主键和默认值等详细内容,具体数据库表信息如下表所示。
表4-1:地址
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
addtime | timestamp |
| 创建时间 |
| CURRENT_TIMESTAMP |
userid | bigint |
| 用户id |
|
|
address | varchar | 200 | 地址 |
|
|
name | varchar | 200 | 收货人 |
|
|
phone | varchar | 200 | 电话 |
|
|
isdefault | varchar | 200 | 是否默认地址[是/否] |
|
|
表4-2:通知公告
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
addtime | timestamp |
| 创建时间 |
| CURRENT_TIMESTAMP |
gonggaobiaoti | varchar | 200 | 公告标题 |
|
|
fabushijian | datetime |
| 发布时间 |
|
|
fujian | longtext | 4294967295 | 附件 |
|
|
gonggaoneirong | longtext | 4294967295 | 公告内容 |
|
|
clicktime | datetime |
| 最近点击时间 |
|
|
表4-3:token表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
userid | bigint |
| 用户id |
|
|
username | varchar | 100 | 用户名 |
|
|
tablename | varchar | 100 | 表名 |
|
|
role | varchar | 100 | 角色 |
|
|
token | varchar | 200 | 密码 |
|
|
addtime | timestamp |
| 新增时间 |
| CURRENT_TIMESTAMP |
expiratedtime | timestamp |
| 过期时间 |
| CURRENT_TIMESTAMP |
表4-4:日程安排
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
addtime | timestamp |
| 创建时间 |
| CURRENT_TIMESTAMP |
biaoti | varchar | 200 | 标题 |
|
|
leixing | varchar | 200 | 类型 |
|
|
yuangonggonghao | varchar | 200 | 员工工号 |
|
|
yuangongxingming | varchar | 200 | 员工姓名 |
|
|
bumen | varchar | 200 | 部门 |
|
|
dengjishijian | datetime |
| 登记时间 |
|
|
neirong | longtext | 4294967295 | 内容 |
|
|
表4-5:签到信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
addtime | timestamp |
| 创建时间 |
| CURRENT_TIMESTAMP |
yuangonggonghao | varchar | 200 | 员工工号 |
|
|
yuangongxingming | varchar | 200 | 员工姓名 |
|
|
bumen | varchar | 200 | 部门 |
|
|
qiandaoshijian | datetime |
| 签到时间 |
|
|
qiandaoleixing | varchar | 200 | 签到类型 |
|
|
beizhu | varchar | 200 | 备注 |
|
|
shibie | longtext | 4294967295 | 识别 |
|
|
表4-6:客户信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
addtime | timestamp |
| 创建时间 |
| CURRENT_TIMESTAMP |
kehumingcheng | varchar | 200 | 客户名称 |
|
|
kehudizhi | varchar | 200 | 客户地址 |
|
|
kehudianhua | varchar | 200 | 客户电话 |
|
|
youxiang | varchar | 200 | 邮箱 |
|
|
chuanzhen | varchar | 200 | 传真 |
|
|
表4-7:工作日志
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
addtime | timestamp |
| 创建时间 |
| CURRENT_TIMESTAMP |
yuangonggonghao | varchar | 200 | 员工工号 |
|
|
yuangongxingming | varchar | 200 | 员工姓名 |
|
|
bumen | varchar | 200 | 部门 |
|
|
gongzuorenwu | longtext | 4294967295 | 工作任务 |
|
|
jinzhan | longtext | 4294967295 | 进展 |
|
|
shijian | datetime |
| 时间 |
|
|
表4-8:工资发放
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
addtime | timestamp |
| 创建时间 |
| CURRENT_TIMESTAMP |
yuangonggonghao | varchar | 200 | 员工工号 |
|
|
yuangongxingming | varchar | 200 | 员工姓名 |
|
|
bumen | varchar | 200 | 部门 |
|
|
gongziyuefen | varchar | 200 | 工资月份 |
|
|
jibengongzi | int |
| 基本工资 |
|
|
jixiaogongzi | int |
| 绩效工资 |
|
|
jiabangongzi | int |
| 加班工资 |
|
|
baoxiaofeiyong | int |
| 报销费用 |
|
|
chidaozaotui | int |
| 迟到早退 |
|
|
qingjia | int |
| 请假 |
|
|
geshui | int |
| 个税 |
|
|
shebaodaijiao | int |
| 社保代缴 |
|
|
quanqinjiang | int |
| 全勤奖 |
|
|
gaowenbutie | int |
| 高温补贴 |
|
|
shifagongzi | varchar | 200 | 实发工资 |
|
|
dengjishijian | datetime |
| 登记时间 |
|
|
表4-9:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
name | varchar | 100 | 配置参数名称 |
|
|
value | varchar | 100 | 配置参数值 |
|
|
url | varchar | 500 | url |
|
|
表4-10:员工
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
addtime | timestamp |
| 创建时间 |
| CURRENT_TIMESTAMP |
yuangonggonghao | varchar | 200 | 员工工号 |
|
|
yuangongxingming | varchar | 200 | 员工姓名 |
|
|
mima | varchar | 200 | 密码 |
|
|
bumen | varchar | 200 | 部门 |
|
|
zhicheng | varchar | 200 | 职称 |
|
|
xingbie | varchar | 200 | 性别 |
|
|
lianxidianhua | varchar | 200 | 联系电话 |
|
|
touxiang | longtext | 4294967295 | 头像 |
|
|
表4-11:车辆信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
addtime | timestamp |
| 创建时间 |
| CURRENT_TIMESTAMP |
qichepinpai | varchar | 200 | 汽车品牌 |
|
|
qichexinghao | varchar | 200 | 汽车型号 |
|
|
chepaihaoma | varchar | 200 | 车牌号码 |
|
|
qicheyanse | varchar | 200 | 汽车颜色 |
|
|
cheliangzhuangtai | varchar | 200 | 车辆状态 |
|
|
qichetupian | longtext | 4294967295 | 汽车图片 |
|
|
xiangqing | longtext | 4294967295 | 详情 |
|
|
表4-12:文件信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
addtime | timestamp |
| 创建时间 |
| CURRENT_TIMESTAMP |
danganbianhao | varchar | 200 | 档案编号 |
|
|
wenjianbiaoti | varchar | 200 | 文件标题 |
|
|
yuangonggonghao | varchar | 200 | 员工工号 |
|
|
yuangongxingming | varchar | 200 | 员工姓名 |
|
|
bumen | varchar | 200 | 部门 |
|
|
wenjianneirong | longtext | 4294967295 | 文件内容 |
|
|
beizhu | longtext | 4294967295 | 备注 |
|
|
tijiaoshijian | datetime |
| 提交时间 |
|
|
表4-13:部门
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
addtime | timestamp |
| 创建时间 |
| CURRENT_TIMESTAMP |
bumen | varchar | 200 | 部门 |
|
|
表4-14:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint |
| 主键 | 主键 |
|
username | varchar | 100 | 用户名 |
|
|
password | varchar | 100 | 密码 |
|
|
image | varchar | 200 | 头像 |
|
|
role | varchar | 100 | 角色 |
| 管理员 |
addtime | timestamp |
| 新增时间 |
| CURRENT_TIMESTAMP |
4.3 本章小结
这一章着重介绍了整个系统的设计流程。确定了系统的功能结构,并在此基础上完成了数据库的设计。
第五章 详细设计与实现
本系统采用了java和Mysql相结合的结构,以及基于客户端管理模式即B/S模式,设计开发了这款基于SPRINGBOOT框架的OA管理系统。在配置文件中添加了编码方式来解决代码中中文的问题,本系统的设计开发,将CSS代码写在一个文件夹中,这样每个网页设计时,可以直接调用,既省时又省力。编写代码时,可以一边看着设计界面,一边编写CSS样式,为设计开发过程减轻了负担。
5.1系统登录功能实现
在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。管理员登录界面图5-1所示。
图5-1 管理员登录界面
5.2管理员功能实现
管理员进入主页面,主要功能包括对员工管理、部门管理、工资发放管理、客户信息管理、日程安排管理、车辆信息管理、文件信息管理、工资日志管理、签到信息管理、通知公告管理、我的信息等进行操作。管理员主页面如图5-2所示:
图5-2管理员主界面
员工管理功能在视图层(view层)进行交互,比如点击“查询、添加或删除”按钮或填写员工信息表单。这些员工表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除员工信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便员工管理功能可以看到最新的信息或相应的操作反馈。员工管理界面如图5-3所示:
图5-3员工管理界面
部门管理功能在视图层(view层)进行交互,比如点击“查询、添加或删除”按钮或填写部门信息表单。这些部门信息表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除部门信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便部门管理功能可以看到最新的信息或相应的操作反馈。部门管理界面如图5-4所示:
图5-4部门管理界面
工资发货管理功能在视图层(view层)进行交互,比如点击“查询、添加或删除”按钮或填写工资发货信息表单。这些工资发货信息表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除工资发货信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便工资发货管理功能可以看到最新的信息或相应的操作反馈。工资发货管理界面如图5-5所示:
图5-5工资发货管理界面
5.3员工功能实现
员工进入主页面,主要功能包括对工资发放管理、客户信息管理、日程安排管理、文件信息管理、工作日志管理、签到信息管理、通知公告管理、我的信息等进行操作。员工主页面如图5-6所示:
图5-6员工主界面