# Ether 物业信息化平台 - 实现方案文档
> 本文档基于需求规格说明书、技术规范说明书和领域模型详细设计整理而成
> 创建日期: 2026-02-05
> 版本: v1.0
---
## 📋 系统概述
Ether 物业信息化平台是一个 **B端(管理端)+ G端(政府端)+ C端(客户端)** 的三端一体化物业管理系统,核心目标是实现"数据一网统管,业务一键闭环"。
### 建设范围
- **本期重点**: 全面覆盖B端内部管理流程,包括空间基础数据、综合工单体系、设施设备全生命周期管理、财务计费与收缴中心
- **协同范围**: 对接外部停车系统、支付网关及政府监管接口
---
## 🏗️ 一、系统架构设计
### 1.1 整体架构(微服务 + DDD)
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ 前端层 (Presentation) │
├─────────────────┬─────────────────┬─────────────────┬───────────────────────┤
│ B端PC管理后台 │ B端PDA移动作业 │ C端小程序 │ G端政府监管 │
│ Vue3 + AntdVue │ Uni-app + Antd │ 微信小程序 │ Web门户 │
│ │ Mobile │ │ │
└─────────────────┴─────────────────┴─────────────────┴───────────────────────┘
│
┌─────────────────────────────────────────────────────────────────────────────┐
│ API网关层 (Gateway) │
│ Spring Cloud Gateway + JWT认证 + 限流 + 签名验证 │
└─────────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────────────────┐
│ 核心业务服务层 (Core Services) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 空间主数据 │ │ 运营调度 │ │ 设施设备 │ │ 财务计费 │ │
│ │ Domain │ │ Domain │ │ Domain │ │ Domain │ │
│ │ (4.1) │ │ (4.2) │ │ (4.3) │ │ (4.4) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 权限与账户 │ │ 审批流程 │ │ 集成中心 │ │
│ │ Domain │ │ Domain │ │ Domain │ │
│ │ (4.5) │ │ (4.7) │ │ (4.6) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────────────────────┐
│ 基础设施层 (Infrastructure) │
│ PostgreSQL 15+ │ Redis │ RabbitMQ │ MinIO │ Elasticsearch │
└─────────────────────────────────────────────────────────────────────────────┘
```
### 1.2 领域驱动设计(DDD)六大领域
| 领域 | 职责 | 核心聚合根 |
|------|------|-----------|
| **空间与主数据领域** (4.1) | 物理数字孪生底座 | SpaceNode, PropertyBinding |
| **运营调度领域** (4.2) | 工单、巡检、排班、访客 | WorkOrder, InspectionTask |
| **设施设备领域** (4.3) | 资产台账、维保计划 | Equipment, MaintenancePlan |
| **财务计费领域** (4.4) | 账单、支付、退款 | FinancialBill, RefundOrder |
| **权限与账户领域** (4.5) | RBAC、访客凭证、项目隔离 | Account, VisitorCredential |
| **集成中心领域** (4.6) | 外部系统适配、IoT网关 | IntegrationLog, ProtocolAdapter |
---
## 💻 二、技术栈与开发语言
### 2.1 后端技术栈(Java)
| 技术/框架 | 版本 | 用途 |
|-----------|------|------|
| **Java** | 17+ (LTS) | 开发语言 |
| **Spring Boot** | 3.2.x | 基础框架 |
| **Spring Cloud Alibaba** | 2023.x | 微服务治理(Nacos, Sentinel, Seata) |
| **Spring Data JPA** | 3.2.x | ORM框架 |
| **QueryDSL** | 5.x | 类型安全查询 |
| **PostgreSQL Driver** | 42.7.x | 数据库驱动 |
| **PostGIS** | 3.4+ | 空间数据库扩展 |
| **Redis** | 7.x | 缓存 + 分布式锁 |
| **Redisson** | 3.25+ | Redis客户端 |
| **RabbitMQ** | 3.12+ | 消息队列 |
| **MinIO** | 2024.x | 对象存储 |
| **JWT (jjwt)** | 0.12.x | 身份认证 |
| **MapStruct** | 1.5.x | DTO映射 |
| **Lombok** | 1.18.x | 代码简化 |
| **Hibernate Validator** | 8.x | 参数校验 |
| **Swagger/OpenAPI** | 2.3.x | API文档 |
### 2.2 前端技术栈
#### B端PC管理后台
| 技术/框架 | 版本 | 用途 |
|-----------|------|------|
| **Vue** | 3.4.x | 框架 |
| **TypeScript** | 5.3+ | 开发语言 |
| **Vite** | 5.x | 构建工具 |
| **Ant Design Vue** | 4.x | UI组件库 |
| **Vue Router** | 4.x | 路由 |
| **Pinia** | 2.x | 状态管理 |
| **Axios** | 1.6.x | HTTP客户端 |
| **ECharts** | 5.x | 数据可视化 |
| **LogicFlow** | 1.2.x | 流程设计器 |
#### B端PDA移动作业端 / C端小程序
| 技术/框架 | 版本 | 用途 |
|-----------|------|------|
| **Uni-app** | 3.x | 跨端框架 |
| **Vue** | 3.x | 框架 |
| **Ant Design Mobile** | 5.x | 移动端UI |
| **uView UI** | 2.x | Uni-app组件库 |
### 2.3 数据库与中间件
| 组件 | 版本 | 用途 |
|------|------|------|
| **PostgreSQL** | 15+ | 主数据库 |
| **PostGIS** | 3.4+ | 空间数据扩展 |
| **pg_trgm** | - | 模糊搜索 |
| **ltree** | - | 树形结构 |
| **Redis** | 7.x | 缓存/会话/锁 |
| **RabbitMQ** | 3.12+ | 消息队列 |
| **MinIO** | 2024.x | 对象存储 |
| **Elasticsearch** | 8.x | 搜索引擎(可选) |
---
## 📦 三、外部资源与第三方服务
### 3.1 支付与财务
| 服务 | 类型 | 用途 |
|------|------|------|
| **微信支付** | 官方SDK | C端在线缴费 |
| **支付宝** | 官方SDK | C端在线缴费 |
| **税控接口** | 第三方 | 电子发票开具 |
| **集团财务ERP** | 内部对接 | 凭证同步 |
### 3.2 政府监管接口
| 服务 | 类型 | 用途 |
|------|------|------|
| **962121热线平台** | 政府API | 投诉工单同步 |
| **房管局监管系统** | 政府API | 异常处置、信息上报 |
| **市物业中心** | 数据共享协议 | 数据同步 |
### 3.3 IoT与硬件集成
| 服务/设备 | 类型 | 用途 |
|-----------|------|------|
| **停车系统** | 厂商API | 车牌识别、车位管理 |
| **门禁系统** | 硬件SDK | 访客通行、员工打卡 |
| **电梯监控系统** | MQTT/HTTP | 故障报警 |
| **消防IoT传感器** | MQTT | 实时监控 |
| **PDA设备** | Android SDK | 扫码、NFC、红外 |
| **NFC磁卡** | ISO 14443-A | 巡更打卡 |
### 3.4 地图与位置服务
| 服务 | 类型 | 用途 |
|------|------|------|
| **腾讯地图SDK** | 第三方 | 小程序地图展示 |
| **高德地图API** | 第三方 | Web端地图、地理编码 |
| **GPS定位服务** | 系统原生 | 打卡定位校验 |
### 3.5 消息推送与通讯
| 服务 | 类型 | 用途 |
|------|------|------|
| **企业微信API** | 第三方 | 内部通知、审批提醒 |
| **飞书API** | 第三方 | 内部通知(备选) |
| **微信订阅消息** | 官方 | C端消息推送 |
| **短信服务** | 第三方 | 验证码、告警通知 |
### 3.6 文件存储与处理
| 服务 | 类型 | 用途 |
|------|------|------|
| **MinIO** | 自建 | 文件对象存储 |
| **阿里云OSS** | 云厂商 | 备份/CDN(可选) |
| **FFmpeg** | 开源 | 视频压缩处理 |
| **ImageMagick** | 开源 | 图片压缩/水印 |
---
## 🔧 四、核心Maven依赖清单
### 4.1 父POM核心依赖
```xml
org.springframework.boot
spring-boot-starter-parent
3.2.5
com.alibaba.cloud
spring-cloud-alibaba-dependencies
2023.0.1.0
pom
import
```
### 4.2 各模块核心依赖
```xml
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-security
org.springframework.boot
spring-boot-starter-validation
org.springframework.boot
spring-boot-starter-data-jpa
org.postgresql
postgresql
42.7.3
org.hibernate.orm
hibernate-spatial
com.querydsl
querydsl-jpa
5.1.0
com.querydsl
querydsl-apt
5.1.0
org.springframework.boot
spring-boot-starter-data-redis
org.redisson
redisson-spring-boot-starter
3.27.0
org.springframework.boot
spring-boot-starter-amqp
io.jsonwebtoken
jjwt-api
0.12.5
io.jsonwebtoken
jjwt-impl
0.12.5
io.minio
minio
8.5.9
org.mapstruct
mapstruct
1.5.5.Final
org.projectlombok
lombok
1.18.32
com.alibaba
fastjson2
2.0.47
org.springframework.boot
spring-boot-starter-test
test
org.junit.jupiter
junit-jupiter
test
```
---
## 📱 五、前端NPM依赖清单
### 5.1 B端PC (Vue3)
```json
{
"dependencies": {
"vue": "^3.4.21",
"vue-router": "^4.3.0",
"pinia": "^2.1.7",
"ant-design-vue": "^4.2.0",
"@ant-design/icons-vue": "^7.0.1",
"axios": "^1.6.8",
"echarts": "^5.5.0",
"vue-echarts": "^6.6.9",
"@logicflow/core": "^1.2.18",
"@logicflow/extension": "^1.2.19",
"dayjs": "^1.11.10",
"lodash-es": "^4.17.21"
},
"devDependencies": {
"typescript": "^5.4.5",
"vite": "^5.2.8",
"vue-tsc": "^2.0.11",
"eslint": "^8.57.0",
"prettier": "^3.2.5"
}
}
```
### 5.2 移动端 (Uni-app)
```json
{
"dependencies": {
"vue": "^3.4.21",
"@dcloudio/uni-app": "3.0.0-alpha-4010520240409001",
"ant-design-mobile": "^5.35.0",
"uview-plus": "^3.2.24"
}
}
```
---
## 🗄️ 六、数据库设计要点
### 6.1 PostgreSQL扩展
```sql
-- 空间数据处理
CREATE EXTENSION IF NOT EXISTS "postgis";
-- 树形结构
CREATE EXTENSION IF NOT EXISTS "ltree";
-- 模糊搜索
CREATE EXTENSION IF NOT EXISTS "pg_trgm";
-- UUID生成
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
```
### 6.2 核心表结构
| 表名 | 领域 | 说明 |
|------|------|------|
| `base_space_node` | 空间主数据 | 空间节点(Ltree路径) |
| `base_room_detail` | 空间主数据 | 房产明细 |
| `base_ownership` | 空间主数据 | 权属关联 |
| `op_work_order` | 运营调度 | 综合工单 |
| `op_inspection_task` | 运营调度 | 巡检任务 |
| `op_shift_plan` | 运营调度 | 排班计划 |
| `op_attendance` | 运营调度 | 考勤记录 |
| `op_visitor_invite` | 运营调度 | 访客预约 |
| `ast_equipment` | 设施设备 | 设备台账 |
| `ast_maintenance_plan` | 设施设备 | 维保计划 |
| `fin_billing_account` | 财务计费 | 财务账户 |
| `fin_bill` | 财务计费 | 账单 |
| `fin_refund_order` | 财务计费 | 退款单 |
| `iam_account` | 权限账户 | 账户体系 |
| `hub_integration_log` | 集成中心 | 集成日志 |
---
## 🚀 七、部署架构
### 7.1 容器化部署
| 组件 | 镜像 | 说明 |
|------|------|------|
| **应用服务** | `ether-core-service:latest` | Spring Boot应用 |
| **集成中心** | `ether-hub-service:latest` | 外部对接服务 |
| **PostgreSQL** | `postgis/postgis:15-3.4` | 主数据库 |
| **Redis** | `redis:7-alpine` | 缓存 |
| **RabbitMQ** | `rabbitmq:3.12-management` | 消息队列 |
| **MinIO** | `minio/minio:latest` | 对象存储 |
| **Nginx** | `nginx:alpine` | 反向代理 |
### 7.2 Docker Compose 示例
```yaml
version: '3.8'
services:
ether-postgres:
image: postgis/postgis:15-3.4
environment:
POSTGRES_DB: ether_platform
POSTGRES_USER: ether_user
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
ether-redis:
image: redis:7-alpine
command: redis-server --requirepass ${REDIS_PASSWORD}
ports:
- "6379:6379"
ether-rabbitmq:
image: rabbitmq:3.12-management
environment:
RABBITMQ_DEFAULT_USER: ether
RABBITMQ_DEFAULT_PASS: ${MQ_PASSWORD}
ports:
- "5672:5672"
- "15672:15672"
ether-minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: etheradmin
MINIO_ROOT_PASSWORD: ${MINIO_PASSWORD}
ports:
- "9000:9000"
- "9001:9001"
volumes:
- minio_data:/data
volumes:
postgres_data:
minio_data:
```
---
## 📚 八、GitHub 参考资源
### 8.1 开源项目参考
| 项目 | 地址 | 参考价值 |
|------|------|----------|
| **pig** | https://github.com/pig-mesh/pig | Spring Cloud微服务脚手架 |
| **ruoyi-vue-pro** | https://github.com/YunaiV/ruoyi-vue-pro | 权限管理、工作流 |
| **jeecg-boot** | https://github.com/jeecgboot/jeecg-boot | 低代码平台、代码生成 |
| **eladmin** | https://github.com/elunez/eladmin | 后台管理系统 |
| **Ant Design Pro Vue** | https://github.com/vueComponent/ant-design-vue-pro | 前端模板 |
### 8.2 技术组件参考
| 组件 | 地址 |
|------|------|
| **Spring Boot** | https://github.com/spring-projects/spring-boot |
| **Spring Cloud Alibaba** | https://github.com/alibaba/spring-cloud-alibaba |
| **MapStruct** | https://github.com/mapstruct/mapstruct |
| **QueryDSL** | https://github.com/querydsl/querydsl |
| **Redisson** | https://github.com/redisson/redisson |
| **MinIO Java SDK** | https://github.com/minio/minio-java |
---
## ✅ 九、开发规范与约束
### 9.1 代码规范
- **JDK版本**: Java 17+
- **编码规范**: Alibaba Java Coding Guidelines
- **单元测试**: JUnit 5 + Mockito,覆盖率要求 > 80%
- **API文档**: OpenAPI 3.0 + Swagger UI
### 9.2 数据库规范
- **主键**: UUID v7 (使用 `gen_random_uuid()`)
- **金额字段**: `numeric(15,4)` 内部计算,`numeric(12,2)` 展示
- **JSON字段**: 使用 PostgreSQL `jsonb` 类型
- **空间字段**: 使用 `geometry(Point, 4326)`
### 9.3 安全规范
- **认证**: JWT Token,有效期2小时
- **鉴权**: RBAC模型,按钮级权限控制
- **签名**: HmacSHA256 接口签名
- **敏感数据**: 加密存储,禁止明文传输
### 9.4 项目上下文约束
- 所有API请求必须携带 `X-Project-ID` Header
- 后端必须执行 `(UserID + X-Project-ID + PermissionID)` 三位一体校验
- 禁止从用户全局Session中直接获取权限列表
---
## 📊 十、项目模块划分
```
Ether/
├── ether-common/ # 公共模块
│ ├── ether-common-core/ # 核心工具类
│ ├── ether-common-security/ # 安全组件
│ └── ether-common-mybatis/ # 数据访问
├── ether-gateway/ # 网关服务
├── ether-auth/ # 认证中心
├── ether-system/ # 系统管理
├── ether-mdm/ # 主数据服务 (4.1)
├── ether-ops/ # 运营调度服务 (4.2)
├── ether-asset/ # 设施设备服务 (4.3)
├── ether-finance/ # 财务计费服务 (4.4)
├── ether-iam/ # 权限账户服务 (4.5)
├── ether-bpm/ # 审批流程服务 (4.7)
├── ether-hub/ # 集成中心服务 (4.6)
└── ether-ui/ # 前端项目
├── ether-ui-admin/ # B端PC
├── ether-ui-mobile/ # PDA App
└── ether-ui-mp/ # C端小程序
```
---
## 📋 十一、核心业务闭环流程
### 11.1 工单闭环 (WorkOrderLoop)
1. 多渠道汇聚 (C端报修/IoT报警/现场发现)
2. 智能调度派单
3. 现场扫码签到
4. 处理过程上报
5. 验收评价
6. 绩效计算
### 11.2 设备故障自愈闭环 (IoT-Ops-AssetLoop)
1. IoT传感器感知异常
2. 设备状态变更为FAULT
3. 自动创建维修工单
4. 工单完成后恢复设备状态
5. 更新资产健康档案
### 11.3 访客通行闭环 (VisitorAccessLoop)
1. 业主发起预约
2. 生成动态二维码凭证
3. 下发至门禁硬件
4. 访客扫码通行
5. 实时提醒业主
### 11.4 财务调账闭环 (BPM-FinanceAdjustmentLoop)
1. 发起调账申请
2. 账单锁定
3. BPM审批流
4. 审批通过后生成审计流水
5. 财务平账
---
## 📝 十二、关键配置项
### 12.1 应用配置 (application.yml)
```yaml
spring:
application:
name: ether-platform
datasource:
url: jdbc:postgresql://localhost:5432/ether_platform
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
redis:
host: localhost
port: 6379
password: ${REDIS_PASSWORD}
rabbitmq:
host: localhost
port: 5672
username: ${MQ_USERNAME}
password: ${MQ_PASSWORD}
ether:
security:
jwt:
secret: ${JWT_SECRET}
expiration: 7200000 # 2小时
sign:
app-key: ${APP_KEY}
app-secret: ${APP_SECRET}
storage:
minio:
endpoint: http://localhost:9000
access-key: ${MINIO_ACCESS_KEY}
secret-key: ${MINIO_SECRET_KEY}
bucket-name: ether-files
lbs:
valid-radius: 50 # 打卡有效半径(米)
```
---
## 🔄 文档更新记录
| 版本 | 日期 | 更新内容 | 作者 |
|------|------|----------|------|
| v1.0 | 2026-02-05 | 初始版本 | - |
---
> **注意**: 本文档基于需求规格说明书、技术规范说明书和领域模型详细设计整理,开发过程中如有需求变更,请及时更新本文档。