# RuoYi-Vue
**Repository Path**: zl919/RuoYi-Vue
## Basic Information
- **Project Name**: RuoYi-Vue
- **Description**: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: http://ruoyi.vip
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 31788
- **Created**: 2025-12-09
- **Last Updated**: 2025-12-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
RuoYi v3.9.0
基于SpringBoot+Vue前后端分离的Java快速开发框架
## 平台简介
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
* 前端采用Vue、Element UI。
* 后端采用Spring Boot、Spring Security、Redis & Jwt。
* 权限认证使用Jwt,支持多终端认证系统。
* 支持加载动态权限菜单,多方式轻松权限控制。
* 高效率开发,使用代码生成器可以一键生成前后端代码。
* 提供了技术栈([Vue3](https://v3.cn.vuejs.org) [Element Plus](https://element-plus.org/zh-CN) [Vite](https://cn.vitejs.dev))版本[RuoYi-Vue3](https://gitcode.com/yangzongzhuan/RuoYi-Vue3),保持同步更新。
* 提供了单应用版本[RuoYi-Vue-fast](https://gitcode.com/yangzongzhuan/RuoYi-Vue-fast),Oracle版本[RuoYi-Vue-Oracle](https://gitcode.com/yangzongzhuan/RuoYi-Vue-Oracle),保持同步更新。
* 不分离版本,请移步[RuoYi](https://gitee.com/y_project/RuoYi),微服务版本,请移步[RuoYi-Cloud](https://gitee.com/y_project/RuoYi-Cloud)
* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)
## 内置功能
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
3. 岗位管理:配置系统用户所属担任职务。
4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
7. 参数管理:对系统动态配置常用参数。
8. 通知公告:系统通知公告信息发布维护。
9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
10. 登录日志:系统登录日志记录查询包含登录异常。
11. 在线用户:当前系统中活跃用户状态监控。
12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
14. 系统接口:根据业务代码自动生成相关的api接口文档。
15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
16. 缓存监控:对系统的缓存信息查询,命令统计等。
17. 在线构建器:拖动表单元素生成相应的HTML代码。
18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
## **医院门诊管理系统 - 代码结构总览**
```
前端
ruoyi-ui/
├── src/
│ ├── api/
│ │ └── hospital/
│ │ ├── appointment.js # 预约API
│ │ ├── doctor.js # 医生API
│ │ └── patient.js # 患者API
│ ├── views/
│ │ ├── hospital/ # 医院管理端页面
│ │ │ ├── appointment/
│ │ │ │ └── index.vue # 预约管理页面
│ │ │ └── doctor/
│ │ │ └── index.vue # 医生管理页面
│ │ └── patient/ # 患者端页面
│ │ ├── appointment/
│ │ │ └── index.vue # 我的预约页面
│ │ └── profile/
│ │ └── index.vue # 我的信息页面
后端
ruoyi-admin/
└── src/
└── main/
├── java/
│ └── com/
│ └── ruoyi/
│ ├── controller/hospital/
│ │ ├── AppointmentController.java
│ │ ├── DoctorController.java
│ │ └── PatientController.java
│ ├── domain/hospital/
│ │ ├── Appointment.java
│ │ ├── Doctor.java
│ │ └── Patient.java
│ ├── mapper/hospital/
│ │ ├── AppointmentMapper.java
│ │ ├── DoctorMapper.java
│ │ └── PatientMapper.java
│ └── service/hospital/
│ ├── IAppointmentService.java
│ ├── IDoctorService.java
│ ├── IPatientService.java
│ └── impl/
│ ├── AppointmentServiceImpl.java
│ ├── DoctorServiceImpl.java
│ └── PatientServiceImpl.java
└── resources/mapper/hospital/
├── AppointmentMapper.xml
├── DoctorMapper.xml
└── PatientMapper.xml
```
### 1. **实体类(Domain)**
定义了系统的核心业务对象:
- **Appointment.java** - 预约实体
- **Doctor.java** - 医生实体
- **Patient.java** - 患者实体
- **Schedule.java** - 排班实体
- **Diagnosis.java** - 诊断报告实体
- **UserVO.java** - 用户视图对象
- **BatchScheduleRequest.java** - 批量排班请求对象
### 2. **数据访问层(Mapper层)**
包含接口和XML映射文件:
#### **Mapper接口**:
- `AppointmentMapper.java` - 预约数据访问接口
- `DoctorMapper.java` - 医生数据访问接口
- `PatientMapper.java` - 患者数据访问接口
- `ScheduleMapper.java` - 排班数据访问接口
- `DiagnosisMapper.java` - 诊断报告数据访问接口
#### **XML映射文件**:
- `AppointmentMapper.xml`
- `DoctorMapper.xml`
- `PatientMapper.xml`
- `ScheduleMapper.xml`
- `DiagnosisMapper.xml`
### 3. **服务层(Service层)**
业务逻辑处理:
#### **Service接口**:
- `IAppointmentService.java` - 预约服务接口
- `IDoctorService.java` - 医生服务接口
- `IPatientService.java` - 患者服务接口
- `IScheduleService.java` - 排班服务接口
- `IDiagnosisService.java` - 诊断报告服务接口
- `IDashboardService.java` - 仪表盘服务接口
#### **Service实现**:
- `AppointmentServiceImpl.java`
- `DoctorServiceImpl.java`
- `PatientServiceImpl.java`
- `ScheduleServiceImpl.java`
- `DiagnosisServiceImpl.java`
- `DashboardServiceImpl.java`
### 4. **控制层(Controller层)**
处理HTTP请求:
- `AppointmentController.java` - 预约管理控制器
- `DoctorController.java` - 医生管理控制器
- `PatientController.java` - 患者管理控制器
- `ScheduleController.java` - 排班管理控制器
- `DiagnosisController.java` - 诊断报告控制器
### 5. **数据库相关**
- **ry-vue.sql** - 完整的MySQL数据库建表脚本,包含:
- 系统基础表(sys_*)
- 医院业务表(hospital_*)
- Quartz定时任务表(qrtz_*)
## **核心业务模块功能**
### **1. 预约管理模块**
- 患者预约挂号
- 医生排班查询
- 预约状态管理(待确认、已确认、已完成、已取消)
### **2. 医生管理模块**
- 医生信息维护
- 科室医生查询
- 医生排班管理
### **3. 患者管理模块**
- 患者信息管理
- 患者档案维护
- 个人预约查询
### **4. 排班管理模块**
- 医生排班设置
- 批量排班生成
- 排班状态管理
### **5. 仪表盘模块**
- 管理员仪表盘(统计数据)
- 医生仪表盘(今日预约、待处理诊断)
- 患者仪表盘(我的预约、健康记录)
## 🔗 **表结构核心关联**
text
```
sys_user (系统用户表)
├── hospital_doctor (医生信息表) - user_id关联
└── hospital_patient (患者信息表) - user_id关联
hospital_doctor
├── hospital_schedule (医生排班表) - doctor_id关联
└── hospital_appointment (预约表) - doctor_id关联
hospital_patient
└── hospital_appointment (预约表) - patient_id关联
hospital_appointment
└── hospital_diagnosis (诊断报告表) - appointment_id关联
```
## ⚙️ **技术特点**
1. **基于RuoYi-Vue框架** - 使用Spring Boot + MyBatis + Vue.js
2. **RBAC权限控制** - 基于角色(admin、doctor、patient)的权限管理
3. **模块化设计** - 各业务模块独立,便于维护和扩展
4. **前后端分离** - 前端使用Vue.js,后端提供RESTful API
5. **完整的业务流** - 从预约→排班→就诊→诊断的全流程管理
## **运行项目**
1. #### 运行后端程序
运行RuoYi-Vue\bin\run.bat文件
2. #### 运行前端程序
运行RuoYi-Vue\ruoyi-ui\bin\run-web.bat文件
#### 管理员账号
用户名:admin
密码:admin123
#### 医生账号
用户名:张医生
密码:111111
#### 患者账号
用户名:张三
密码:111111