|
|
# 医院物业 SaaS 管理后台
|
|
|
|
|
|
> 多租户医院物业管理平台,涵盖报修、巡检、保洁、考勤、合同、招标等核心业务模块,支持蓝牙打卡、微信小程序端操作。
|
|
|
|
|
|
## 技术栈
|
|
|
|
|
|
| 类别 | 技术 |
|
|
|
|------|------|
|
|
|
| 语言 | Java 17 |
|
|
|
| 框架 | Spring Boot 3.2.5 |
|
|
|
| ORM | MyBatis-Plus 3.5.5 |
|
|
|
| 安全 | Spring Security + JWT |
|
|
|
| 数据库 | MariaDB 10.6+ |
|
|
|
| 缓存 | Redis 7 |
|
|
|
| API 文档 | SpringDoc / Swagger |
|
|
|
| 构建工具 | Maven 3.9+ |
|
|
|
| 容器化 | Docker + Docker Compose |
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
|
```
|
|
|
backend/
|
|
|
├── src/main/java/com/hospital/mgmt/
|
|
|
│ ├── common/ # 通用组件
|
|
|
│ │ ├── annotation/ # 自定义注解(@AuditLog, @ReadOnly)
|
|
|
│ │ ├── base/ # 基础实体类
|
|
|
│ │ ├── context/ # 租户上下文(ThreadLocal)
|
|
|
│ │ ├── exception/ # 全局异常处理
|
|
|
│ │ └── result/ # 统一响应封装
|
|
|
│ ├── config/ # 配置类
|
|
|
│ ├── security/ # 安全模块(JWT、认证、租户拦截)
|
|
|
│ └── modules/ # 业务模块
|
|
|
│ ├── auth/ # 认证(登录/刷新Token)
|
|
|
│ ├── org/ # 组织架构(医院/物业/班组/员工)
|
|
|
│ ├── permission/ # 权限管理(用户/角色/权限配置)
|
|
|
│ ├── repair/ # 在线报修
|
|
|
│ ├── inspection/ # 巡检管理
|
|
|
│ ├── cleaning/ # 保洁管理
|
|
|
│ ├── evaluation/ # 服务评价
|
|
|
│ ├── attendance/ # 考勤打卡
|
|
|
│ ├── contract/ # 合同管理
|
|
|
│ ├── bidding/ # 分段招标
|
|
|
│ ├── device/ # 蓝牙设备管理
|
|
|
│ ├── audit/ # 操作日志
|
|
|
│ ├── system/ # 系统管理(字典/版本/模板)
|
|
|
│ └── plugin/ # IModulePlugin 扩展接口
|
|
|
├── src/main/resources/
|
|
|
│ ├── application.yml # 默认配置
|
|
|
│ ├── application-prod.yml # 生产配置
|
|
|
│ └── db/init.sql # 数据库初始化脚本
|
|
|
├── Dockerfile
|
|
|
└── pom.xml
|
|
|
```
|
|
|
|
|
|
## 快速开始
|
|
|
|
|
|
### 前置条件
|
|
|
|
|
|
- JDK 17+
|
|
|
- Maven 3.9+
|
|
|
- MariaDB 10.6+
|
|
|
- Redis 7+
|
|
|
|
|
|
### 1. 本地开发
|
|
|
|
|
|
```bash
|
|
|
# 克隆项目
|
|
|
git clone <repository-url>
|
|
|
cd 医院后勤管理
|
|
|
|
|
|
# 初始化数据库
|
|
|
mysql -uroot -proot < backend/src/main/resources/db/init.sql
|
|
|
|
|
|
# 修改配置(如需要)
|
|
|
# 编辑 backend/src/main/resources/application.yml 中的数据库和Redis连接信息
|
|
|
|
|
|
# 编译运行
|
|
|
cd backend
|
|
|
mvn clean package -DskipTests
|
|
|
java -jar target/hospital-mgmt-1.0.0.jar
|
|
|
```
|
|
|
|
|
|
应用启动后访问:
|
|
|
- API 基地址:`http://localhost:8080/api/v1`
|
|
|
- Swagger UI:`http://localhost:8080/api/v1/swagger-ui.html`
|
|
|
|
|
|
### 2. Docker Compose 部署(推荐)
|
|
|
|
|
|
```bash
|
|
|
# 复制环境变量模板并修改
|
|
|
cp .env.example .env
|
|
|
|
|
|
# 一键启动(MariaDB + Redis + 后端)
|
|
|
docker compose up -d
|
|
|
|
|
|
# 查看日志
|
|
|
docker compose logs -f backend
|
|
|
|
|
|
# 停止
|
|
|
docker compose down
|
|
|
```
|
|
|
|
|
|
### 3. 仅构建后端镜像
|
|
|
|
|
|
```bash
|
|
|
cd backend
|
|
|
docker build -t hospital-mgmt:1.0.0 .
|
|
|
```
|
|
|
|
|
|
## 环境变量
|
|
|
|
|
|
| 变量 | 说明 | 默认值 |
|
|
|
|------|------|--------|
|
|
|
| `DB_HOST` | MariaDB 主机 | localhost |
|
|
|
| `DB_PORT` | MariaDB 端口 | 3306 |
|
|
|
| `DB_NAME` | 数据库名 | hospital_mgmt |
|
|
|
| `DB_USER` | 数据库用户 | root |
|
|
|
| `DB_PASSWORD` | 数据库密码 | root |
|
|
|
| `REDIS_HOST` | Redis 主机 | localhost |
|
|
|
| `REDIS_PORT` | Redis 端口 | 6379 |
|
|
|
| `REDIS_PASSWORD` | Redis 密码 | (空) |
|
|
|
| `JWT_SECRET` | JWT 签名密钥 | (内置默认值) |
|
|
|
| `JAVA_OPTS` | JVM 参数 | -Xms256m -Xmx512m |
|
|
|
| `SPRING_PROFILES_ACTIVE` | Spring Profile | prod |
|
|
|
|
|
|
## 默认账号
|
|
|
|
|
|
| 角色 | 用户名 | 密码 |
|
|
|
|------|--------|------|
|
|
|
| 超级管理员 | superadmin | admin123 |
|
|
|
|
|
|
## 核心功能模块
|
|
|
|
|
|
### 在线报修
|
|
|
- 工单全生命周期:提交 → 智能派单 → 接单 → 处理 → 验收 → 评价
|
|
|
- 支持紧急催单、延期申请、协助工单
|
|
|
- 补录机制(需审批)
|
|
|
|
|
|
### 巡检管理
|
|
|
- 自定义巡检区域与计划
|
|
|
- 支持日/周/月/自定义频率
|
|
|
- 蓝牙打卡验证巡检人员位置
|
|
|
- 异常自动转报修工单
|
|
|
|
|
|
### 保洁管理
|
|
|
- 五级区域树结构管理
|
|
|
- 日保/深度/临时任务类型
|
|
|
- 排班与任务自动生成
|
|
|
- 抽检功能
|
|
|
|
|
|
### 考勤打卡
|
|
|
- 基于蓝牙 Beacon 的近距离验证
|
|
|
- 灵活配置上下班规则
|
|
|
- 异常申诉与补录审批
|
|
|
|
|
|
### 合同管理
|
|
|
- 合同全生命周期
|
|
|
- 付款节点管理与到期预警
|
|
|
- 合同变更审批流
|
|
|
|
|
|
### 分段招标
|
|
|
- 招标计划与标段管理
|
|
|
- 供应商资质审核
|
|
|
- 黑名单机制
|
|
|
|
|
|
### 服务评价
|
|
|
- 多模块统一评价体系
|
|
|
- 低评分自动通知
|
|
|
- 评价回复机制
|
|
|
|
|
|
### 权限管理
|
|
|
- RBAC + 四级数据权限(全院/医院/班组/个人)
|
|
|
- 用户级权限覆盖
|
|
|
- Redis 实时权限变更广播
|
|
|
|
|
|
### 蓝牙策略
|
|
|
- 各院区独立配置打卡策略
|
|
|
- 必选/可选/禁用三级配置
|
|
|
- 策略审批生效机制
|
|
|
|
|
|
### 扩展接口 (IModulePlugin)
|
|
|
- SPI 机制支持模块热插拔
|
|
|
- 自定义菜单、路由、权限、数据表
|
|
|
- 运行时模块启用/禁用
|
|
|
|
|
|
## API 规范
|
|
|
|
|
|
- RESTful 风格
|
|
|
- 统一响应格式:`{ code, message, data, timestamp }`
|
|
|
- 分页响应:`{ list, pagination: { page, pageSize, total, totalPages } }`
|
|
|
- 错误码:5 位数字(4xxxx 客户端错误,5xxxx 服务端错误)
|
|
|
|
|
|
## License
|
|
|
|
|
|
Private — Internal Use Only
|