# OA **Repository Path**: huang_zou/OA ## Basic Information - **Project Name**: OA - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-06-09 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ##
`OA办公自动化系统` #### 简介:     OA( Office Automation System)办公自动化系统是一个企业用来管理日常事务的系统,它一般用来管理各种流程(报销、请假. . .)审批,通讯录、日程、文件管理、通知、公告等功能。OA系统可以实现更加简单、规范、高效地管理,提高企业的整体管理水平。 #### 技术:     后端:spring + springmvc + mybatis
    前端:bootstrap
    数据库:mysql
#### 开发环境:    idea2018.25、jdk8、tomcat9、mysql5.7

功能模块
![cd4356](https://img-blog.csdnimg.cn/20190923105313228.jpg)

数据库设计

![cd4356](https://img-blog.csdnimg.cn/20190923180138373.png?)

个人中心功能演示

![cd4356](https://img-blog.csdnimg.cn/20190924000529438.gif)

基本模块功能演示

![cd4356](https://img-blog.csdnimg.cn/20190924001544353.gif)

报销单模块功能演示

![cd4356](https://img-blog.csdnimg.cn/20190924004726544.gif)

#### 登 陆

![cd4356](https://img-blog.csdnimg.cn/20190924083602233.png)
关注点:
    Spring拦截器对url请求进行拦截验证(获取session来验证),用户未登陆 - - -> 重定向回登陆界面 - - -> 登陆(登陆成功后将员工信息添加到session中,并跳转到后台的个人信息界面;失败重定向回登陆界面

#### 个人中心模块
个人中心包含个人信息、密码设置、日志记录 和 登出功能
关注点:
*  获取session中员工信息,调用具体业务方法获取所需数据,然后对数据进行渲染。
*  登出 - - -> 删除session(session.setAttribute(“xxx”,null))
*  注:日志记录是没有删除和修改这种需求的,但我忘了,加了删除功能,这是不合理的。

#### 基本模块
基本模块包含:部门管理(部门信息、部门列表),员工管理(添加员工、员工列表) 基本模块其实就是对部门和员工的简单的增删改查操作 关注点:
*  所有登陆进OA系统的员工都可以查看部门列表和员工列表信息,但对员工 和 部门的增、删、改操作只有管理员角色才有权限进行

#### 报销单模块
报销单模块包含:添加报销单、个人报销单 和 待处理报销单 ![cd4356](https://img-blog.csdnimg.cn/20190924181141595.jpg)
添加报销单时,设置待处理人为创建人(状态 = 新创建)。点击提交后,待处理人改为员工所在部门的部门经理(状态 = 已提交)。部门经理通过审核后,如果报销金额 `>=10000` ,待处理人改为总经理,如果报销金额 `<10000` ,待处理人改为财务(状态 = 已通过)。财务审核后进行打款(状态 = 已打款)

个人报销单 - - -> 根据创建人id来查询报销单信息 ```xml ``` ```java public List getForSelf(String id) { return claimVoucherDao.selectByCreateId(id); } ``` ```java @RequestMapping("/self") public String self(HttpSession session, Map map){ Employee employee = (Employee) session.getAttribute("employee"); map.put("list",claimVoucherService.getForSelf(employee.getId())); return "claim_voucher_self"; } ```

待处理报销单 - - -> 根据待处理人id来查询报销单信息 ```xml ``` ```java public List getForDeal(String id) { return claimVoucherDao.selectByNextDealId(id); } ``` ```java @RequestMapping("/deal") public String deal(HttpSession session, Map map){ Employee employee = (Employee) session.getAttribute("employee"); map.put("list",claimVoucherService.getForDeal(employee.getId())); return "claim_voucher_deal"; } ```