# OE_code **Repository Path**: ChanYeeSum/OE_code ## Basic Information - **Project Name**: OE_code - **Description**: OE_code - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-27 - **Last Updated**: 2026-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: officeease ## README # OfficeEase - 企业级在线协同办公系统 基于 SpringBoot + UniApp 的全栈企业办公小程序,集成人脸识别考勤、工作流审批、视频会议等功能。 ## 项目简介 OfficeEase 是一个功能完善的企业级在线协同办公系统,采用前后端分离架构,支持微信小程序端访问。系统涵盖员工管理、人脸考勤、会议管理、工作流审批、视频会议等核心业务场景,适合学习企业级 Java Web 项目的开发流程和最佳实践。 ## 技术栈 ### 后端服务 (officeease-wx-api) | 技术 | 版本 | 说明 | |-----|------|-----| | Java | 17 | 编程语言 | | Spring Boot | 2.6.3 | 应用框架 | | MyBatis | 2.1.3 | ORM 框架 | | Apache Shiro | 1.8.0 | 安全认证框架 | | JWT | 3.10.3 | Token 认证 | | MySQL | 8.0.26 | 关系型数据库 | | Redis | - | 缓存中间件 | | MongoDB | - | 文档数据库 | | RabbitMQ | - | 消息队列 | | Quartz | - | 定时任务调度 | | Swagger | 3.0.0 | API 文档 | | Druid | 1.1.13 | 数据库连接池 | | Hutool | 5.4.0 | Java 工具库 | ### 工作流引擎 (officeease-workflow) | 技术 | 版本 | 说明 | |-----|------|-----| | Spring Boot | 2.4.2 | 应用框架 | | Activiti | 7.0.0.GA | 工作流引擎 | | Drools | 7.51.0.Final | 规则引擎 | ### 人脸识别服务 (officeease-face-service) | 技术 | 版本 | 说明 | |-----|------|-----| | Python | 3.10+ | 编程语言 | | Flask | 2.0.0+ | Web 框架 | | DeepFace | 0.0.90+ | 人脸识别库 | | OpenCV | 4.5.0+ | 图像处理 | | Gunicorn | 21.0.0+ | WSGI 服务器 | ### 前端小程序 (officeease-wxminiprog) | 技术 | 说明 | |-----|-----| | UniApp | 跨平台小程序框架 | | Vue.js | 前端框架 | | uni-ui | UI 组件库 | | 腾讯位置服务 | GPS 定位 | | 腾讯云 TRTC | 实时音视频 | ## 项目结构 ``` OE_code/ ├── officeease-wx-api/ # 后端 API 服务 (Spring Boot) │ ├── src/main/java/ │ │ └── com/yeesum/officeease/wx/ │ │ ├── controller/ # 控制器层 │ │ ├── service/ # 业务逻辑层 │ │ ├── mapper/ # 数据访问层 │ │ ├── entity/ # 实体类 │ │ ├── config/ # 配置类 │ │ ├── exception/ # 异常处理 │ │ └── shiro/ # Shiro 安全配置 │ └── src/main/resources/ │ └── application.yml # 应用配置 │ ├── officeease-workflow/ # 工作流服务 (Activiti) │ ├── src/main/java/ │ │ └── com/yeesum/officeease/workflow/ │ │ ├── controller/ # 工作流控制器 │ │ └── service/ # 工作流服务 │ └── src/main/resources/ │ └── processes/ # BPMN 流程定义 │ ├── meeting.bpmn20.xml # 会议审批流程 │ ├── leave.bpmn20.xml # 请假审批流程 │ └── reim.bpmn20.xml # 报销审批流程 │ ├── officeease-face-service/ # 人脸识别服务 (Python/Flask) │ ├── src/face_service/ │ │ ├── api/ # API 路由 │ │ ├── core/ # 核心服务 │ │ └── main.py # 入口文件 │ ├── tests/ # 测试文件 │ └── pyproject.toml # Python 依赖配置 │ ├── officeease-wxminiprog/ # 微信小程序前端 (UniApp) │ ├── pages/ # 页面组件 │ │ ├── login/ # 登录页 │ │ ├── index/ # 首页 │ │ ├── checkin/ # 签到页 │ │ ├── meeting/ # 会议管理 │ │ ├── approval/ # 审批流程 │ │ ├── employee/ # 员工管理 │ │ ├── face_*/ # 人脸功能页面 │ │ └── video_meeting/ # 视频会议 │ ├── components/ # 公共组件 │ └── static/ # 静态资源 │ ├── face_ai/ # 微信小程序备用版本 (原生) │ └── docs/ ├── officeease.sql # 数据库初始化脚本 └── migration/ # 数据库迁移脚本 ``` ## 功能模块 ### 核心业务功能 | 模块 | 功能描述 | |-----|---------| | **用户认证** | JWT + Shiro 实现企业级单点登录,支持 Token 自动续期 | | **员工管理** | 员工增删改查、邀请码注册机制、部门管理 | | **人脸考勤** | 人脸识别签到、GPS 定位、考勤记录查询、周/月统计 | | **会议管理** | 会议创建/编辑/删除、线上/线下会议、参会人员通知 | | **视频会议** | 腾讯云 TRTC 实时音视频集成 | | **工作流审批** | 会议审批、请假审批、报销审批 (Activiti) | | **消息通知** | RabbitMQ 消息队列、异步通知推送 | | **人脸智能** | 人脸检测、注册、登录、关键点检测、属性分析 | ### 权限控制 系统采用 RBAC (Role-Based Access Control) 权限模型: | 角色 | 权限范围 | |-----|---------| | 超级管理员 | 系统全部权限 | | 总经理 | 部门经理及以下权限 | | 部门经理 | 本部门管理权限 | | 普通员工 | 基础功能权限 | ### 工作流引擎 支持三种审批流程: 1. **会议审批流程** ``` 创建会议 → 判断身份 ├── 总经理 → 直接通过 └── 非总经理 → 部门经理审批 ├── 非跨部门 → 通过 └── 跨部门 → 总经理审批 → 通过 ``` 2. **请假审批流程** - 多级审批 3. **报销审批流程** - 财务审批 ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - MySQL 8.0+ - Redis 6.0+ - MongoDB 4.0+ - RabbitMQ 3.8+ - Python 3.10+ (人脸服务) - Node.js 16+ (前端开发) ### 数据库初始化 ```bash # 1. 创建数据库 mysql -u root -p -e "CREATE DATABASE officeease DEFAULT CHARACTER SET utf8mb4;" # 2. 导入初始化脚本 mysql -u root -p officeease < docs/officeease.sql ``` ### 后端服务启动 ```bash # 进入后端项目目录 cd officeease-wx-api # 修改数据库配置 # 编辑 src/main/resources/application.yml # 启动服务 mvn spring-boot:run ``` ### 人脸服务启动 ```bash # 进入人脸服务目录 cd officeease-face-service # 创建虚拟环境 python -m venv .venv .venv\Scripts\activate # Windows # source .venv/bin/activate # Linux/Mac # 安装依赖 pip install -e . # 启动服务 python -m face_service.main ``` ### 前端小程序 ```bash # 使用 HBuilderX 或微信开发者工具打开 officeease-wxminiprog 目录 # 修改 API 地址配置 # 编译运行到微信小程序模拟器 ``` ## API 文档 后端服务启动后访问 Swagger 文档: - Swagger UI: `http://localhost:8080/swagger-ui/index.html` - API Docs: `http://localhost:8080/v2/api-docs` ### 人脸服务 API | 端点 | 方法 | 说明 | |-----|------|-----| | `/health` | GET | 健康检查 | | `/create_face_model` | POST | 创建人脸特征模型 | | `/checkin` | POST | 签到人脸验证 | | `/compare_faces` | POST | 人脸比对 | | `/face_detect` | POST | 人脸检测 | | `/face_register` | POST | 人脸注册 | | `/face_login` | POST | 人脸登录 | | `/face_landmark` | POST | 人脸关键点检测 | | `/face_attribute` | POST | 人脸属性分析 | ## Docker 部署 人脸服务支持 Docker 部署: ```bash cd officeease-face-service # 构建镜像 docker build -t officeease-face-service . # 运行容器 docker run -d -p 5000:5000 officeease-face-service ``` 或使用 docker-compose: ```bash docker-compose up -d ``` ## 架构亮点 - **前后端分离**: SpringBoot 提供 REST API,UniApp 调用 - **RBAC 权限控制**: 细粒度的角色-权限-用户映射 - **Token 自动续期**: 解决 JWT 过期问题的优雅方案 - **消息削峰填谷**: RabbitMQ 应对高并发消息推送 - **工作流驱动**: Activiti 实现审批流程自动化 - **微服务架构**: 人脸识别服务独立部署,支持 Docker - **多数据源**: MySQL + Redis + MongoDB 组合存储 ## 开发工具 | 工具 | 用途 | |-----|-----| | IntelliJ IDEA | Java 后端开发 | | HBuilderX | UniApp/小程序开发 | | 微信开发者工具 | 小程序调试预览 | | Navicat/DataGrip | 数据库管理 | | Postman | API 测试 | ## 改进方向 后续迭代方向: ### 认证授权升级 - **Sa-Token**: 替代 Shiro,更轻量级的 Java 权限认证框架,支持多账号登录、OAuth2.0 等 ### 实时通信 - **WebSocket**: 实现支付结果实时推送、消息实时通知,提升用户体验 ### 支付集成 - **微信支付 Native**: 集成微信支付,实现罚款单在线缴纳功能 - **支付回调处理**: 结合内网穿透工具实现本地开发调试 ### 文档生成与归档 - **PDF 生成**: 请假单、报销单自动生成 PDF,支持电子签字盖章 - **云存储归档**: 腾讯云 COS 存储请假单、医院病志等文件 ### 会议增强 - **NFC 签到**: 移动端扫描 NFC 标签签到(线下会议场景) - **甘特图组件**: 会议室日程可视化展示 - **周日历组件**: 会议时间日历化展示 - **屏幕共享**: Web 端视频会议支持屏幕广播推流 - **语音检测**: 动态显示参会人语音强弱 ### 其他优化 - **BPMN.js**: 流程图实时进度展示 - **罚款单自动生成**: Quartz 定时任务根据会议缺勤名单自动生成 ## 许可证 [MIT License](LICENSE) ## 贡献指南 欢迎提交 Issue 和 Pull Request。 --- **注意**: 本项目仅供学习交流使用,不建议直接用于生产环境。