You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

196 lines
5.5 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 医院物业 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