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核心依赖
<!-- Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.5</version>
</parent>
<!-- Spring Cloud Alibaba -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2023.0.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
4.2 各模块核心依赖
<!-- === Web & Security === -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- === Database === -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.3</version>
</dependency>
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-spatial</artifactId>
</dependency>
<!-- === QueryDSL === -->
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>5.1.0</version>
</dependency>
<!-- === Cache & MQ === -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.27.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<!-- === JWT === -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.12.5</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.12.5</version>
</dependency>
<!-- === MinIO === -->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.9</version>
</dependency>
<!-- === Tools === -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.5.Final</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.32</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.47</version>
</dependency>
<!-- === Testing === -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
📱 五、前端NPM依赖清单
5.1 B端PC (Vue3)
{
"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)
{
"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扩展
-- 空间数据处理
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 示例
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 开源项目参考
8.2 技术组件参考
✅ 九、开发规范与约束
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)
- 多渠道汇聚 (C端报修/IoT报警/现场发现)
- 智能调度派单
- 现场扫码签到
- 处理过程上报
- 验收评价
- 绩效计算
11.2 设备故障自愈闭环 (IoT-Ops-AssetLoop)
- IoT传感器感知异常
- 设备状态变更为FAULT
- 自动创建维修工单
- 工单完成后恢复设备状态
- 更新资产健康档案
11.3 访客通行闭环 (VisitorAccessLoop)
- 业主发起预约
- 生成动态二维码凭证
- 下发至门禁硬件
- 访客扫码通行
- 实时提醒业主
11.4 财务调账闭环 (BPM-FinanceAdjustmentLoop)
- 发起调账申请
- 账单锁定
- BPM审批流
- 审批通过后生成审计流水
- 财务平账
📝 十二、关键配置项
12.1 应用配置 (application.yml)
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 |
初始版本 |
- |
注意: 本文档基于需求规格说明书、技术规范说明书和领域模型详细设计整理,开发过程中如有需求变更,请及时更新本文档。