699 lines
32 KiB
Markdown
699 lines
32 KiB
Markdown
# Ether 项目需求一致性评估报告
|
||
|
||
> **评估日期**: 2026-04-23
|
||
> **评估范围**: AUTH / MDM / ASSET / OPS / FINANCE 五大领域
|
||
> **数据来源**: REVERSE-AUTH.md / REVERSE-MDM.md / REVERSE-ASSET.md / REVERSE-OPS.md / REVERSE-FINANCE.md 差异对比章节
|
||
|
||
---
|
||
|
||
## 一、评估概述
|
||
|
||
### 1.1 评估方法
|
||
|
||
本评估基于代码反推设计文档与原始需求文档的逐项对比,采用以下方法:
|
||
|
||
1. **逐项比对**:将每个领域的反推设计文档中"差异对比"章节的每一行差异记录,按照统一评估标准进行分类
|
||
2. **分类统计**:按领域 × 评估等级进行交叉统计,计算数量和占比
|
||
3. **严重度排序**:根据差异对核心业务功能的影响程度,识别关键差异和风险点
|
||
4. **改进建议**:基于差异分析结果,按优先级提出改进建议
|
||
|
||
### 1.2 评估范围
|
||
|
||
| 领域 | 反推文档 | 原需求文档 | 差异对比项数 |
|
||
|------|---------|-----------|------------|
|
||
| AUTH(认证) | REVERSE-AUTH.md | 05-AUTH.md | 47 |
|
||
| MDM(主数据) | REVERSE-MDM.md | 02-SPACE_NODE_DESIGN.md | 33 |
|
||
| ASSET(资产) | REVERSE-ASSET.md | 03-ASSET.md | 50 |
|
||
| OPS(运营) | REVERSE-OPS.md | 02-OPERATIONS.md | 57 |
|
||
| FINANCE(财务) | REVERSE-FINANCE.md | 04-FINANCE.md | 33 |
|
||
| **合计** | | | **220** |
|
||
|
||
### 1.3 评估标准定义
|
||
|
||
| 标识 | 等级 | 定义 | 判定依据 |
|
||
|------|------|------|---------|
|
||
| ✅ | 符合 | 代码实现与需求文档完全一致 | 字段/接口/规则完全匹配,或双方均未实现 |
|
||
| 🟡 | 部分符合 | 代码实现与需求文档部分一致,存在差异但不影响核心功能 | 字段名不同但语义一致、枚举值扩展、实现方式不同但效果等价 |
|
||
| ❌ | 不符合 | 代码实现与需求文档不一致,影响核心功能 | 核心字段缺失、关键枚举值不同、核心逻辑未实现 |
|
||
| ⏳ | 未实现 | 需求文档中有定义但代码未实现 | 实体/接口/功能完全不存在于代码中 |
|
||
| ➕ | 超出实现 | 代码实现了但需求文档中未定义 | 新增实体/接口/功能,属于需求文档未覆盖的扩展 |
|
||
|
||
---
|
||
|
||
## 二、一致性评估矩阵表
|
||
|
||
### 2.1 AUTH(认证领域)
|
||
|
||
#### 实体差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| Role.type(SYSTEM/CUSTOM) | 🟡 | 实际使用三级分类 SYSTEM/PROJECT/DEPARTMENT |
|
||
| Role 业务属性(businessType/terminalType/isFrontline) | ⏳ | 未实现角色业务属性扩展 |
|
||
| Role.status(enabled Boolean) | 🟡 | 实际使用 RoleStatus 枚举(ENABLED/DISABLED) |
|
||
| Permission 完整结构 | 🟡 | 简化权限结构,用 parentCode 替代 parentId,缺少菜单路由属性 |
|
||
| Permission.type(枚举) | 🟡 | 实际使用 String 类型而非枚举 |
|
||
| UserRole 关联(含 projectId/isDefault) | 🟡 | 简化为 M2M 中间表,去掉项目隔离和默认角色标记 |
|
||
| OperationLog 表结构 | 🟡 | 不同表名和字段结构,增加目标追踪和租户ID |
|
||
| VisitorCredential 实体 | ⏳ | 访客凭证未在认证模块实现 |
|
||
| EnterpriseUser 扩展实体 | ➕ | 新增企业员工扩展 |
|
||
| ProjectStaff 扩展实体 | ➕ | 新增项目员工扩展 |
|
||
| ProjectStaffRole 关联 | ➕ | 新增项目级角色分配 |
|
||
| Resident 住户实体 | ➕ | 新增住户实体 |
|
||
| ResidentSpace 住户房屋关联 | ➕ | 新增住户房屋绑定 |
|
||
| Space 房屋空间实体 | ➕ | 新增房屋空间实体 |
|
||
| UserProject 用户项目关联 | ➕ | 新增用户项目多对多 |
|
||
| DataAccess 数据访问授权 | ➕ | 新增细粒度数据访问控制 |
|
||
| Dept 部门实体 | ➕ | 新增树形部门结构 |
|
||
| SysConfig 系统配置 | ➕ | 新增键值对配置 |
|
||
| User.userType | ➕ | 新增用户类型区分 |
|
||
| User.deptId | ➕ | 新增部门关联 |
|
||
|
||
#### API 差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| API 路径前缀(/api/v1/auth) | 🟡 | 实际去掉版本号 v1 |
|
||
| 认证接口(changePassword/userPermissions) | 🟡 | 缺少独立端点,/me 替代 currentUser |
|
||
| 用户状态修改独立端点 | 🟡 | 合并到通用更新接口 |
|
||
| 权限树端点(GET /permissions/tree) | ⏳ | 未实现 |
|
||
| 权限校验端点(POST /check) | ⏳ | 未实现 |
|
||
| 用户菜单端点(GET /users/{id}/menus) | ⏳ | 未实现 |
|
||
| 用户权限查询端点(GET /users/{id}/permissions) | ⏳ | 未实现 |
|
||
| 部门管理 API | ➕ | 新增完整 CRUD + 树 + 成员查询 |
|
||
| 项目成员管理 API | ➕ | 新增完整 CRUD + 可用成员查询 |
|
||
| 数据访问授权 API | ➕ | 新增 grant/revoke/query |
|
||
| 审计日志 API | ➕ | 新增完整查询 + 统计 + 筛选 |
|
||
| 系统配置 API | ➕ | 新增完整 CRUD + 批量更新 |
|
||
| 企业员工列表 API | ➕ | 新增 |
|
||
| 用户项目关联 API | ➕ | 新增完整 CRUD |
|
||
|
||
#### 业务规则差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| 13 个预定义角色 | 🟡 | 实际通过数据库动态管理,无硬编码预定义 |
|
||
| DataScopeHelper SQL 生成 | 🟡 | 实际用 DataScopeService 提供判断方法,未实现 SQL 自动注入 |
|
||
| 项目上下文传递 | ✅ | 基本一致,通过 X-Project-ID Header |
|
||
| 状态驱动权限 | ⏳ | 未在认证模块实现 |
|
||
| 访客凭证管理 | ⏳ | 完整的二维码生成/验证流程未实现 |
|
||
| 登录失败锁定 | ➕ | 新增 Redis 实现,5 次失败锁 10 分钟 |
|
||
| 密码强度校验 | ➕ | 新增完整强度规则 + 弱密码检测 |
|
||
| 旧密码兼容 | ➕ | 新增密码迁移策略 |
|
||
| 审计日志增强 | ➕ | 新增异步保存、30 天窗口、90 天归档 |
|
||
| 项目成员角色 | ➕ | 新增双层角色分配机制 |
|
||
| 部门类型 | ➕ | 新增 5 种部门类型 |
|
||
| 住户认证 | ➕ | 新增 4 种认证状态 |
|
||
| 数据访问授权 | ➕ | 新增通用数据访问控制 |
|
||
|
||
---
|
||
|
||
### 2.2 MDM(主数据管理领域)
|
||
|
||
#### 数据模型差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| API 路径前缀(/api/v1/mdm) | 🟡 | 去掉版本号 v1 |
|
||
| code 字段 + UNIQUE 约束 | ❌ | 无 code 列,project_code 列名与实际存储不匹配 |
|
||
| PostGIS 字段(location/boundary) | ⏳ | 地图服务未实现,仅保留经纬度数值字段 |
|
||
| attributes 字段(JSONB) | 🟡 | 降级为 String(2000) 存储 JSON |
|
||
| 设备扩展字段 | ➕ | SpaceNode 内嵌设备扩展字段,isEquipment 标记 |
|
||
| NodeType 枚举 | ➕ | 增加 PUBLIC_ROOM(公共用房)类型 |
|
||
| 软删除 | ➕ | 实际采用 isDeleted 软删除 |
|
||
| 唯一约束(UNIQUE(project_id, code)) | ❌ | 空间编码唯一性未在数据库层面约束 |
|
||
| 索引(GIST/GIN) | 🟡 | 仅普通 B-tree 索引,无空间索引和 JSON 索引 |
|
||
|
||
#### API 接口差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| 树形查询(全局树) | 🟡 | 实际按项目维度查询,更合理 |
|
||
| 祖先节点查询 | ⏳ | 未实现 |
|
||
| 子孙节点查询 | ⏳ | 未实现(可通过 treePath LIKE 替代) |
|
||
| 移动节点 | ⏳ | 未实现 |
|
||
| 类型快捷查询 | 🟡 | 统一为按类型查询,更通用 |
|
||
| 批量更新 | ⏳ | 未实现 |
|
||
| 批量删除 | ⏳ | 未实现 |
|
||
| 导入模板下载 | ⏳ | 未实现 |
|
||
| 数据导出 | ⏳ | 未实现 |
|
||
| 地图相关 API(标注/边界/路径) | ⏳ | 地图服务完全未实现 |
|
||
| 统计分析 API | ⏳ | 空间统计接口缺失 |
|
||
| 删除前检查 | ➕ | 新增安全检查接口 |
|
||
| 级联删除 | ➕ | 新增级联删除接口 |
|
||
| 设备管理集成 | ➕ | 设备 CRUD 集成在 SpaceNodeController |
|
||
| Excel 导入 | 🟡 | 仅设备导入,空间节点批量导入未实现 |
|
||
| 楼层信息查询 | ➕ | 新增楼栋楼层信息接口 |
|
||
|
||
#### 前端差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| 地图模式(高德地图集成) | ⏳ | 地图功能完全未开发 |
|
||
| MapEditor 组件 | ⏳ | 未实现 |
|
||
| 空间编码自动生成 | ⏳ | 未实现 |
|
||
| 批量创建房间(模板) | 🟡 | 仅支持 DTO 列表批量创建 |
|
||
|
||
#### 业务规则差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| 设备模型(独立 Equipment) | ❌ | SpaceNode 内嵌设备扩展字段,与 module-asset 独立 Equipment 并存 |
|
||
| 项目统计(数据库视图) | 🟡 | 实际采用实体快照模式,需手动同步 |
|
||
| 空间编码自动生成 | ⏳ | 未实现 |
|
||
| PostGIS 空间查询 | ⏳ | 未使用空间数据库能力 |
|
||
|
||
---
|
||
|
||
### 2.3 ASSET(资产管理领域)
|
||
|
||
#### 数据模型差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| 设备类型枚举(8 种) | 🟡 | 实际 10 种,枚举值名称和数量均不同 |
|
||
| 设备状态枚举 | 🟡 | 枚举值名称不同(NORMAL→ACTIVE, FAULT→INACTIVE) |
|
||
| 专业扩展表 | ➕ | 新增 4 张扩展表(电梯/暖通/消防/能源) |
|
||
| 系统类型(9 种) | ➕ | 新增商业地产 8 大系统分类 |
|
||
| 归属管理 | ➕ | 新增 4 种归属类型 + 3 种主体 |
|
||
| 健康评分算法 | ➕ | 新增 MTBF/MTTR 完整算法 |
|
||
| 故障历史 | ➕ | 新增 4 级故障/4 种类型/4 种修复结果 |
|
||
| 设备照片/文档 | ➕ | 新增 JSONB 内嵌 |
|
||
| 维保计划 | 🟡 | 迁移至独立 API |
|
||
| 维保记录 | 🟡 | 升级为维保工单 |
|
||
| 设备编码字段(code) | 🟡 | 字段名改为 equipmentCode |
|
||
| 设备名称字段(name) | 🟡 | 字段名改为 equipmentName |
|
||
| 位置描述(locationDesc) | 🟡 | 字段名改为 installationLocation |
|
||
| 品牌字段(brand) | 🟡 | 使用 manufacturer 替代 |
|
||
| 规格字段(specifications) | ⏳ | 未实现 |
|
||
| 负责人(managerId/managerName/contactPhone) | ⏳ | 改为维保商字段 |
|
||
| 二维码(qrCode) | ⏳ | 未实现 |
|
||
| Excel 导入导出 | ➕ | 新增含校验的导入导出 |
|
||
| 批量删除 | ➕ | 新增 batch-delete 接口 |
|
||
| 财务信息 | ➕ | 实际更丰富 |
|
||
| 特种设备 | ➕ | 新增特种设备管理 |
|
||
| 能耗标准 | ➕ | 新增能耗标准字段 |
|
||
|
||
#### 功能差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| 设备 CRUD | ✅ | 一致 |
|
||
| 设备与空间关联 | ✅ | 一致 |
|
||
| 设备二维码 | ⏳ | 未实现 |
|
||
| 故障自动工单(事件驱动) | 🟡 | 部分实现,非事件驱动 |
|
||
| IoT 集成 | ⏳ | 未实现 |
|
||
| 维保到期提醒 | 🟡 | 仅前端展示,无后端定时提醒 |
|
||
| 设备健康预测 | ➕ | 超出原需求,完整算法+前端图表 |
|
||
| 归属主体管理 | ➕ | 超出原需求 |
|
||
| 专业扩展表 | ➕ | 超出原需求 |
|
||
| Excel 导入导出 | ➕ | 超出原需求 |
|
||
| MTBF/MTTR | ➕ | 超出原需求 |
|
||
| 设备照片/文档 | ➕ | 超出原需求 |
|
||
| 维保计划 | 🟡 | 架构调整至独立 API |
|
||
| 维保记录 | 🟡 | 升级为维保工单 |
|
||
|
||
#### 实现状态
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| 设备主表 CRUD | ✅ | 完成 |
|
||
| 4 张扩展表 | ➕ | 完成 |
|
||
| 健康评分算法 | ➕ | 完成 |
|
||
| 故障历史管理 | ➕ | 完成 |
|
||
| 归属主体管理 | ➕ | 完成 |
|
||
| Excel 导入导出 | ➕ | 完成 |
|
||
| 设备统计 | ✅ | 完成 |
|
||
| 前端设备列表 | ✅ | 完成 |
|
||
| 前端设备详情 | ✅ | 完成 |
|
||
| 前端健康预测 | ➕ | 完成 |
|
||
| 维保完成率计算 | 🟡 | TODO 标记,暂返回 1.0 |
|
||
| 设备二维码 | ⏳ | 未实现 |
|
||
| IoT 集成 | ⏳ | 未实现 |
|
||
| 故障自动工单(事件驱动) | ⏳ | 未实现 |
|
||
| 维保到期定时提醒 | ⏳ | 未实现 |
|
||
|
||
---
|
||
|
||
### 2.4 OPS(运营管理领域)
|
||
|
||
#### 状态机差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| 工单初始状态(CREATED) | 🟡 | 实际为 PENDING(合并创建与待分配) |
|
||
| 接单状态(ACCEPTED) | ⏳ | 不存在,ASSIGNED 直接进入 IN_PROGRESS |
|
||
| 关闭状态(CLOSED) | ❌ | 不存在,用 VERIFIED 替代 |
|
||
| 验收状态 | ➕ | 新增 VERIFIED(已验收) |
|
||
| 挂起状态(SUSPENDED) | ⏳ | 不存在,未支持挂起/恢复 |
|
||
| 退回状态(RETURNED) | ⏳ | 不存在,未支持退回重分配 |
|
||
| 取消状态 | ➕ | 新增 CANCELLED |
|
||
|
||
#### 实体差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| WorkOrderFlow(工单流转记录) | ⏳ | 未实现 |
|
||
| NotificationChannel(通知渠道) | ⏳ | 未实现 |
|
||
| NotificationTemplate(消息模板) | ⏳ | 未实现 |
|
||
| NotificationRule(通知规则) | ⏳ | 未实现 |
|
||
| NotificationHistory(通知历史) | ⏳ | 未实现 |
|
||
| WorkOrderItem(工单明细) | ➕ | 新增 |
|
||
| MaintenancePlan(维保计划) | ➕ | 新增 |
|
||
| MaintenanceTask(维保任务) | ➕ | 新增 |
|
||
| InspectionTemplate(巡检模板) | ➕ | 新增 |
|
||
| InspectionItem(巡检项) | ➕ | 新增 |
|
||
|
||
#### 字段差异(WorkOrder)
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| orderNo 格式 | 🟡 | WO2024021000001 → WO-YYYYMMDD-XXXX |
|
||
| orderType 枚举 | ❌ | 枚举值完全不同 |
|
||
| source 枚举 | ❌ | 枚举值完全不同 |
|
||
| 报修人信息(reporterId/Name/Phone/Address) | ⏳ | 未实现 |
|
||
| assigneeId(UUID 引用) | 🟡 | 实际用 String 而非用户 ID 引用 |
|
||
| 时间字段 | 🟡 | 字段名和粒度不同 |
|
||
| materialCost → partsCost | 🟡 | 字段名不同 |
|
||
| resultDescription | 🟡 | 拆分为 result + faultCause + solution |
|
||
| satisfactionScore/Comment | 🟡 | 简化为 rating + remark |
|
||
| images/attachments | 🟡 | 实际用 JSONB 数组 |
|
||
| attributes(JSONB) | ⏳ | 未实现扩展属性 |
|
||
| spaceNodeId → spaceId | 🟡 | 字段名不同 |
|
||
| planId/triggerType | ➕ | 新增,关联维保计划 |
|
||
| assignedVendor | ➕ | 新增,支持服务商 |
|
||
| laborCost/partsCost/totalCost | ➕ | 新增,费用明细 |
|
||
| signature | ➕ | 新增,签名确认 |
|
||
|
||
#### API 差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| API 版本(/api/v1/ops) | 🟡 | 实际为 /api/wo |
|
||
| 分页查询 | ❌ | 实际无分页,全量返回 |
|
||
| 接单接口(POST /{id}/accept) | ⏳ | 不存在 |
|
||
| 关闭接口(POST /{id}/close) | ❌ | 不存在,用 verify 替代 |
|
||
| 挂起/恢复接口 | ⏳ | 未实现 |
|
||
| 流转记录接口 | ⏳ | 未实现 |
|
||
| 通知 API | ⏳ | 消息通知系统未实现 |
|
||
| 统计 API | 🟡 | 嵌入工单 Controller 而非独立 |
|
||
| 工单明细 API | ➕ | 新增 |
|
||
| 维保任务 API | ➕ | 新增完整 CRUD + 状态流转 |
|
||
|
||
#### 业务规则差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| 工单编号格式 | 🟡 | 格式不同 |
|
||
| 通知触发 | ⏳ | 消息通知未实现 |
|
||
| SLA 监控 | ✅ | 双方均未实现 |
|
||
| 智能派单 | ✅ | 双方均未实现 |
|
||
| 维保优先级自动判定 | ➕ | 新增 |
|
||
| 设备联动更新 | ➕ | 新增 |
|
||
| 维保任务双完成接口 | ➕ | 新增 |
|
||
| 删除策略 | ❌ | WorkOrder 物理删除 vs MaintenanceTask 逻辑删除,不一致 |
|
||
|
||
#### 前端差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| 维保计划 API(两套) | ❌ | 前端分裂为两套 API |
|
||
| 维保计划触发类型 | ❌ | 前后端不一致 |
|
||
| 维保任务状态 | ❌ | 前后端不一致 |
|
||
| 巡检模板 | ➕ | 新增 |
|
||
| 巡检标准项 | ➕ | 新增 |
|
||
| 巡检记录 | ➕ | 新增 |
|
||
|
||
---
|
||
|
||
### 2.5 FINANCE(财务领域)
|
||
|
||
#### 实体差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| FeeItem 收费项目实体 | ⏳ | 完全缺失 |
|
||
| FeeBill 账单实体 | ⏳ | 完全缺失 |
|
||
| FeePayment 支付记录实体 | ⏳ | 完全缺失 |
|
||
| FeeRefund 退款实体 | ⏳ | 完全缺失 |
|
||
| fin_fee_item 表 | ⏳ | 完全缺失 |
|
||
| fin_fee_bill 表 | ⏳ | 完全缺失 |
|
||
| fin_fee_payment 表 | ⏳ | 完全缺失 |
|
||
| fin_fee_refund 表 | ⏳ | 完全缺失 |
|
||
| EnergyMeter 实体 | ➕ | 在 module-mdm 中实现,设计文档遗漏 |
|
||
| EnergyConsumption 实体 | ➕ | 在 module-mdm 中实现,设计文档遗漏 |
|
||
| ops_energy_meter 表 | ➕ | 已创建,设计文档遗漏 |
|
||
| ops_energy_consumption 表 | ➕ | 已创建,设计文档遗漏 |
|
||
|
||
#### 功能差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| 收费项目管理(CRUD) | ❌ | 设计文档标注已实现,实际未实现 |
|
||
| 账单生成 | ❌ | 设计文档标注已实现,实际未实现 |
|
||
| 账单状态流转 | ❌ | 设计文档标注已实现,实际未实现 |
|
||
| 支付处理 | ❌ | 设计文档标注已实现,实际未实现 |
|
||
| 费用催缴(定时任务) | ❌ | 设计文档标注已实现,实际未实现 |
|
||
| 滞纳金计算 | ❌ | 设计文档标注已实现,实际未实现 |
|
||
| 退款流程 | ✅ | 双方均未实现 |
|
||
| 支付网关对接 | ✅ | 双方均未实现 |
|
||
| 财务报表 | ✅ | 双方均未实现 |
|
||
| 能耗计量点管理 | ➕ | 设计文档遗漏 |
|
||
| 能耗抄表录入 | ➕ | 设计文档遗漏 |
|
||
| 能耗费用计算 | ➕ | 设计文档遗漏(简化实现) |
|
||
| 能耗统计分析 | ➕ | 设计文档遗漏(有缺陷) |
|
||
|
||
#### 枚举差异
|
||
|
||
| 需求项 | 评估 | 说明 |
|
||
|--------|------|------|
|
||
| FeeType 收费类型 | ⏳ | 完全缺失 |
|
||
| BillingMethod 计费方式 | ⏳ | 完全缺失 |
|
||
| BillStatus 账单状态 | ⏳ | 完全缺失 |
|
||
| PaymentMethod 支付方式 | ⏳ | 完全缺失 |
|
||
| PaymentStatus 支付状态 | ⏳ | 完全缺失 |
|
||
| RefundStatus 退款状态 | ⏳ | 完全缺失 |
|
||
| EnergyType 能源类型 | ➕ | 设计文档遗漏 |
|
||
| RecordMethod 记录方式 | ➕ | 设计文档遗漏 |
|
||
|
||
---
|
||
|
||
## 三、各领域一致性统计
|
||
|
||
### 3.1 AUTH(认证领域)
|
||
|
||
| 评估等级 | 数量 | 占比 |
|
||
|---------|------|------|
|
||
| ✅ 符合 | 1 | 2.1% |
|
||
| 🟡 部分符合 | 12 | 25.5% |
|
||
| ❌ 不符合 | 0 | 0% |
|
||
| ⏳ 未实现 | 8 | 17.0% |
|
||
| ➕ 超出实现 | 26 | 55.3% |
|
||
| **合计** | **47** | **100%** |
|
||
|
||
**特征分析**:AUTH 领域是超出实现最多的领域(55.3%),实际代码在用户扩展、项目成员管理、部门管理、数据访问授权、安全策略等方面远超原需求定义。但权限树、权限校验、用户菜单、访客凭证等原需求功能未实现。
|
||
|
||
### 3.2 MDM(主数据管理领域)
|
||
|
||
| 评估等级 | 数量 | 占比 |
|
||
|---------|------|------|
|
||
| ✅ 符合 | 0 | 0% |
|
||
| 🟡 部分符合 | 8 | 24.2% |
|
||
| ❌ 不符合 | 3 | 9.1% |
|
||
| ⏳ 未实现 | 14 | 42.4% |
|
||
| ➕ 超出实现 | 8 | 24.2% |
|
||
| **合计** | **33** | **100%** |
|
||
|
||
**特征分析**:MDM 领域未实现比例最高(42.4%),主要因为地图服务(PostGIS)、空间编码、统计分析、导入导出等功能完全缺失。空间编码唯一约束和设备模型不一致是不符合项的主要来源。
|
||
|
||
### 3.3 ASSET(资产管理领域)
|
||
|
||
| 评估等级 | 数量 | 占比 |
|
||
|---------|------|------|
|
||
| ✅ 符合 | 6 | 12.0% |
|
||
| 🟡 部分符合 | 13 | 26.0% |
|
||
| ❌ 不符合 | 0 | 0% |
|
||
| ⏳ 未实现 | 9 | 18.0% |
|
||
| ➕ 超出实现 | 22 | 44.0% |
|
||
| **合计** | **50** | **100%** |
|
||
|
||
**特征分析**:ASSET 领域超出实现比例较高(44.0%),在健康预测、归属管理、专业扩展表、导入导出等方面远超原需求。但设备二维码、IoT 集成、事件驱动工单等原需求功能未实现。无不符合项,差异主要体现在扩展和未实现。
|
||
|
||
### 3.4 OPS(运营管理领域)
|
||
|
||
| 评估等级 | 数量 | 占比 |
|
||
|---------|------|------|
|
||
| ✅ 符合 | 2 | 3.5% |
|
||
| 🟡 部分符合 | 12 | 21.1% |
|
||
| ❌ 不符合 | 9 | 15.8% |
|
||
| ⏳ 未实现 | 15 | 26.3% |
|
||
| ➕ 超出实现 | 19 | 33.3% |
|
||
| **合计** | **57** | **100%** |
|
||
|
||
**特征分析**:OPS 领域不符合项最多(9 项,15.8%),主要因为工单状态机完全重构、工单类型/来源枚举完全不同、分页查询缺失、前后端不一致等。消息通知系统(5 个实体)完全未实现是最大的缺失。实际实现侧重"运维工单+维保管理+巡检模板",与需求文档侧重"运营调度+消息通知"方向不同。
|
||
|
||
### 3.5 FINANCE(财务领域)
|
||
|
||
| 评估等级 | 数量 | 占比 |
|
||
|---------|------|------|
|
||
| ✅ 符合 | 3 | 9.1% |
|
||
| 🟡 部分符合 | 0 | 0% |
|
||
| ❌ 不符合 | 6 | 18.2% |
|
||
| ⏳ 未实现 | 14 | 42.4% |
|
||
| ➕ 超出实现 | 10 | 30.3% |
|
||
| **合计** | **33** | **100%** |
|
||
|
||
**特征分析**:FINANCE 领域是最严重的领域。核心财务功能(FeeItem/FeeBill/FeePayment/FeeRefund)完全未实现,但设计文档 04-FINANCE.md 标注为"已实现",存在严重的文档与代码不一致问题。仅能耗管理在 module-mdm 中有实现,但属于设计文档遗漏。
|
||
|
||
---
|
||
|
||
## 四、总体一致性统计
|
||
|
||
### 4.1 汇总统计
|
||
|
||
| 评估等级 | AUTH | MDM | ASSET | OPS | FINANCE | **合计** | **占比** |
|
||
|---------|------|-----|-------|-----|---------|---------|---------|
|
||
| ✅ 符合 | 1 | 0 | 6 | 2 | 3 | **12** | **5.5%** |
|
||
| 🟡 部分符合 | 12 | 8 | 13 | 12 | 0 | **45** | **20.5%** |
|
||
| ❌ 不符合 | 0 | 3 | 0 | 9 | 6 | **18** | **8.2%** |
|
||
| ⏳ 未实现 | 8 | 14 | 9 | 15 | 14 | **60** | **27.3%** |
|
||
| ➕ 超出实现 | 26 | 8 | 22 | 19 | 10 | **85** | **38.6%** |
|
||
| **合计** | 47 | 33 | 50 | 57 | 33 | **220** | **100%** |
|
||
|
||
### 4.2 一致性指标
|
||
|
||
| 指标 | 计算方式 | 数值 |
|
||
|------|---------|------|
|
||
| 完全一致率 | ✅ / 总计 | 5.5% |
|
||
| 基本一致率 | (✅ + 🟡) / 总计 | 25.9% |
|
||
| 偏差率 | ❌ / 总计 | 8.2% |
|
||
| 缺失率 | ⏳ / 总计 | 27.3% |
|
||
| 扩展率 | ➕ / 总计 | 38.6% |
|
||
| 需求覆盖率 | (✅ + 🟡 + ❌) / (✅ + 🟡 + ❌ + ⏳) | 53.3% |
|
||
|
||
### 4.3 各领域一致性对比
|
||
|
||
| 领域 | 完全一致率 | 基本一致率 | 偏差率 | 缺失率 | 扩展率 | 综合评级 |
|
||
|------|-----------|-----------|--------|--------|--------|---------|
|
||
| AUTH | 2.1% | 27.7% | 0% | 17.0% | 55.3% | 🟡 B(扩展丰富,部分缺失) |
|
||
| MDM | 0% | 24.2% | 9.1% | 42.4% | 24.2% | 🔴 D(缺失严重,偏差较大) |
|
||
| ASSET | 12.0% | 38.0% | 0% | 18.0% | 44.0% | 🟢 A-(超出预期,少量缺失) |
|
||
| OPS | 3.5% | 24.6% | 15.8% | 26.3% | 33.3% | 🟠 C(方向偏离,缺失较多) |
|
||
| FINANCE | 9.1% | 9.1% | 18.2% | 42.4% | 30.3% | 🔴 D(核心缺失,文档失真) |
|
||
|
||
---
|
||
|
||
## 五、关键差异分析(Top 10)
|
||
|
||
按严重程度从高到低排序:
|
||
|
||
### 🔴 #1 财务域核心功能完全缺失
|
||
|
||
| 维度 | 内容 |
|
||
|------|------|
|
||
| 领域 | FINANCE |
|
||
| 严重度 | 🔴 致命 |
|
||
| 现状 | FeeItem/FeeBill/FeePayment/FeeRefund 四大实体及所有相关功能均未在代码中实现 |
|
||
| 影响 | 物业收费、账单管理、支付处理等核心财务流程无法运行 |
|
||
| 文档问题 | 04-FINANCE.md 标注"已实现"与实际严重不符,存在文档失真 |
|
||
|
||
### 🔴 #2 运营域消息通知系统完全缺失
|
||
|
||
| 维度 | 内容 |
|
||
|------|------|
|
||
| 领域 | OPS |
|
||
| 严重度 | 🔴 致命 |
|
||
| 现状 | NotificationChannel/Template/Rule/History 四个实体全部未实现 |
|
||
| 影响 | 工单状态变更无法自动通知相关人员,运营调度效率低下 |
|
||
|
||
### 🔴 #3 运营域工单状态机与需求完全不同
|
||
|
||
| 维度 | 内容 |
|
||
|------|------|
|
||
| 领域 | OPS |
|
||
| 严重度 | 🔴 严重 |
|
||
| 现状 | 需求定义 7 状态(CREATED/ASSIGNED/ACCEPTED/IN_PROGRESS/COMPLETED/CLOSED/SUSPENDED),实际 6 状态(PENDING/ASSIGNED/IN_PROGRESS/COMPLETED/VERIFIED/CANCELLED) |
|
||
| 影响 | 缺少接单确认、挂起/恢复、退回重分配等关键流程环节 |
|
||
|
||
### 🔴 #4 运营域工单类型和来源枚举与需求完全不同
|
||
|
||
| 维度 | 内容 |
|
||
|------|------|
|
||
| 领域 | OPS |
|
||
| 严重度 | 🔴 严重 |
|
||
| 现状 | orderType 和 source 枚举值与需求完全不同,无法映射 |
|
||
| 影响 | 工单分类体系与业务需求不匹配,影响数据统计和流程路由 |
|
||
|
||
### 🔴 #5 MDM 域地图服务完全未实现
|
||
|
||
| 维度 | 内容 |
|
||
|------|------|
|
||
| 领域 | MDM |
|
||
| 严重度 | 🔴 严重 |
|
||
| 现状 | PostGIS 字段、地图标注/边界/路径 API、前端地图组件全部缺失 |
|
||
| 影响 | 无法在地图上展示和管理空间节点,影响空间可视化能力 |
|
||
|
||
### 🟠 #6 MDM 域空间编码机制缺失
|
||
|
||
| 维度 | 内容 |
|
||
|------|------|
|
||
| 领域 | MDM |
|
||
| 严重度 | 🟠 高 |
|
||
| 现状 | 无 code 字段、无自动编码规则、无 UNIQUE(project_id, code) 约束 |
|
||
| 影响 | 空间节点缺乏唯一编码,影响数据一致性和外部系统对接 |
|
||
|
||
### 🟠 #7 AUTH 域权限相关端点缺失
|
||
|
||
| 维度 | 内容 |
|
||
|------|------|
|
||
| 领域 | AUTH |
|
||
| 严重度 | 🟠 高 |
|
||
| 现状 | 权限树(/permissions/tree)、权限校验(/check)、用户菜单(/{id}/menus)、用户权限查询(/{id}/permissions)端点均未实现 |
|
||
| 影响 | 前端无法动态获取菜单和权限,影响 RBAC 体系的完整运作 |
|
||
|
||
### 🟠 #8 运营域工单分页查询缺失
|
||
|
||
| 维度 | 内容 |
|
||
|------|------|
|
||
| 领域 | OPS |
|
||
| 严重度 | 🟠 高 |
|
||
| 现状 | 工单列表全量返回 List\<WorkOrder\>,无分页支持 |
|
||
| 影响 | 数据量大时性能问题严重,影响用户体验 |
|
||
|
||
### 🟡 #9 ASSET 域设备二维码和 IoT 集成未实现
|
||
|
||
| 维度 | 内容 |
|
||
|------|------|
|
||
| 领域 | ASSET |
|
||
| 严重度 | 🟡 中 |
|
||
| 现状 | 设备二维码(qrCode)和 IoT 集成均未实现 |
|
||
| 影响 | 无法通过扫码快速定位设备,无法实时监控设备状态 |
|
||
|
||
### 🟡 #10 运营域前后端枚举和状态不一致
|
||
|
||
| 维度 | 内容 |
|
||
|------|------|
|
||
| 领域 | OPS |
|
||
| 严重度 | 🟡 中 |
|
||
| 现状 | 维保计划触发类型、维保任务状态、维保计划 API 前后端不一致 |
|
||
| 影响 | 前端展示与后端数据不匹配,可能导致功能异常 |
|
||
|
||
---
|
||
|
||
## 六、风险点识别
|
||
|
||
### 6.1 高风险
|
||
|
||
| 编号 | 风险点 | 领域 | 影响 | 触发条件 |
|
||
|------|--------|------|------|---------|
|
||
| R-01 | 财务域核心功能完全缺失 | FINANCE | 物业收费流程无法运行,业务闭环断裂 | 业主缴费、账单管理等场景 |
|
||
| R-02 | 设计文档标注与实际代码严重不符 | FINANCE | 开发人员误判实现状态,导致遗漏 | 依据设计文档评估进度时 |
|
||
| R-03 | 消息通知系统完全缺失 | OPS | 工单状态变更无法通知,运营效率低下 | 工单分配、完成、超时等场景 |
|
||
| R-04 | 工单状态机与需求不匹配 | OPS | 业务流程无法按需求执行 | 需要挂起/退回/接单确认的场景 |
|
||
| R-05 | 工单列表无分页 | OPS | 大数据量下性能崩溃 | 工单数量超过数百条 |
|
||
|
||
### 6.2 中风险
|
||
|
||
| 编号 | 风险点 | 领域 | 影响 | 触发条件 |
|
||
|------|--------|------|------|---------|
|
||
| R-06 | 地图服务未实现 | MDM | 空间可视化能力缺失 | 需要地图展示的场景 |
|
||
| R-07 | 空间编码唯一约束缺失 | MDM | 数据一致性风险 | 并发创建空间节点时 |
|
||
| R-08 | 权限相关端点缺失 | AUTH | RBAC 体系不完整 | 动态菜单/权限校验场景 |
|
||
| R-09 | 设备模型双体系并存 | MDM/ASSET | 数据不一致,维护成本高 | 跨模块设备查询时 |
|
||
| R-10 | 前后端枚举不一致 | OPS/ASSET | 前端展示错误 | 能源类型、维保状态等展示 |
|
||
| R-11 | 访客凭证未实现 | AUTH | 访客管理流程缺失 | 访客临时出入场景 |
|
||
| R-12 | 工单流转记录未实现 | OPS | 无法追溯工单处理历史 | 工单审计和纠纷处理 |
|
||
|
||
### 6.3 低风险
|
||
|
||
| 编号 | 风险点 | 领域 | 影响 | 触发条件 |
|
||
|------|--------|------|------|---------|
|
||
| R-13 | API 路径无版本号 | 全局 | 未来 API 升级兼容性问题 | API 版本迭代时 |
|
||
| R-14 | attributes 字段降级为 String | MDM | JSON 查询性能差 | 需要按属性筛选空间节点时 |
|
||
| R-15 | 健康评分查询错误实体 | ASSET | 设备年龄计算不准确 | 健康评分展示时 |
|
||
| R-16 | projectId 硬编码全零 UUID | ASSET | 多项目环境下数据错误 | 非默认项目查询健康评分时 |
|
||
| R-17 | OwnershipEntityController 绕过 Service 层 | ASSET | 不符合分层架构规范 | 代码审查和维护时 |
|
||
| R-18 | 维保完成率固定为 1.0 | ASSET | 健康评分不准确 | 维保完成率展示时 |
|
||
| R-19 | 删除策略不一致 | OPS | 数据恢复策略混乱 | 误删除恢复场景 |
|
||
| R-20 | 能耗按类型统计实现有缺陷 | FINANCE | 能耗分项统计不准确 | 能耗报表展示时 |
|
||
|
||
---
|
||
|
||
## 七、改进建议
|
||
|
||
### 7.1 P0 — 紧急(1-2 周内)
|
||
|
||
| 编号 | 建议 | 领域 | 关联风险 | 预估工作量 |
|
||
|------|------|------|---------|-----------|
|
||
| S-01 | 修正 04-FINANCE.md 实现状态标注 | FINANCE | R-02 | 0.5 天 |
|
||
| S-02 | 创建 module-finance 模块,实现 FeeItem/FeeBill/FeePayment 核心实体 | FINANCE | R-01 | 5 天 |
|
||
| S-03 | 实现工单列表分页查询 | OPS | R-05 | 1 天 |
|
||
| S-04 | 统一运营域前后端枚举值(触发类型、任务状态) | OPS | R-10 | 1 天 |
|
||
|
||
### 7.2 P1 — 重要(1 个月内)
|
||
|
||
| 编号 | 建议 | 领域 | 关联风险 | 预估工作量 |
|
||
|------|------|------|---------|-----------|
|
||
| S-05 | 实现消息通知系统(Channel/Template/Rule/History) | OPS | R-03 | 8 天 |
|
||
| S-06 | 补充工单状态机(增加 ACCEPTED/SUSPENDED/RETURNED 状态) | OPS | R-04 | 3 天 |
|
||
| S-07 | 实现 AUTH 域权限相关端点(权限树/权限校验/用户菜单/用户权限) | AUTH | R-08 | 3 天 |
|
||
| S-08 | 添加空间编码字段和唯一约束 | MDM | R-07 | 1 天 |
|
||
| S-09 | 统一设备模型(消除 MDM SpaceNode 内嵌设备与 ASSET Equipment 双体系) | MDM/ASSET | R-09 | 3 天 |
|
||
| S-10 | 实现账单自动生成和状态流转 | FINANCE | R-01 | 4 天 |
|
||
| S-11 | 实现工单流转记录(WorkOrderFlow) | OPS | R-12 | 2 天 |
|
||
|
||
### 7.3 P2 — 增强(2-3 个月内)
|
||
|
||
| 编号 | 建议 | 领域 | 关联风险 | 预估工作量 |
|
||
|------|------|------|---------|-----------|
|
||
| S-12 | 集成 PostGIS 实现地图服务 | MDM | R-06 | 10 天 |
|
||
| S-13 | 实现空间节点统计分析 API | MDM | - | 3 天 |
|
||
| S-14 | 实现空间节点导入导出功能 | MDM | - | 3 天 |
|
||
| S-15 | 实现设备二维码生成和扫描 | ASSET | R-09 | 2 天 |
|
||
| S-16 | 实现访客凭证管理 | AUTH | R-11 | 3 天 |
|
||
| S-17 | 修复健康评分查询错误实体和 projectId 硬编码问题 | ASSET | R-15, R-16 | 1 天 |
|
||
| S-18 | 修复能耗按类型统计缺陷,统一前后端能源类型枚举 | FINANCE | R-10, R-20 | 1 天 |
|
||
| S-19 | 实现支付记录 API 和线下收款登记 | FINANCE | R-01 | 2 天 |
|
||
|
||
### 7.4 P3 — 远期(3 个月以上)
|
||
|
||
| 编号 | 建议 | 领域 | 关联风险 | 预估工作量 |
|
||
|------|------|------|---------|-----------|
|
||
| S-20 | IoT 平台集成(设备状态监控+自动抄表) | ASSET/FINANCE | - | 10 天 |
|
||
| S-21 | 支付网关对接(微信支付/支付宝) | FINANCE | - | 5 天 |
|
||
| S-22 | 财务报表(收费统计/欠费分析/收入趋势) | FINANCE | - | 4 天 |
|
||
| S-23 | 智能派单和 SLA 监控 | OPS | - | 8 天 |
|
||
| S-24 | API 版本化改造(添加 v1 前缀) | 全局 | R-13 | 3 天 |
|
||
| S-25 | attributes 字段升级为 JSONB 类型 | MDM | R-14 | 2 天 |
|
||
|
||
---
|
||
|
||
## 八、结论
|
||
|
||
### 8.1 总体评估
|
||
|
||
Ether 项目代码实现与需求文档的一致性整体偏低(完全一致率仅 5.5%),但需要区分两种不同性质的偏差:
|
||
|
||
1. **正向偏差(超出实现 38.6%)**:代码在 AUTH、ASSET 领域远超原需求定义,体现了开发过程中的需求演化和功能增强。这类偏差通常是积极的,但也需要同步更新需求文档。
|
||
|
||
2. **负向偏差(不符合 8.2% + 未实现 27.3%)**:代码在 FINANCE、OPS、MDM 领域存在显著的功能缺失和逻辑偏差,特别是财务域核心功能完全缺失和运营域消息通知系统未实现,属于严重问题。
|
||
|
||
### 8.2 优先行动项
|
||
|
||
1. **立即修正** 04-FINANCE.md 的实现状态标注,消除文档失真
|
||
2. **紧急启动** module-finance 模块开发,补齐财务域核心功能
|
||
3. **尽快实现** 消息通知系统和工单状态机补全
|
||
4. **统一修复** 前后端枚举不一致问题
|
||
5. **逐步补齐** MDM 域地图服务和空间编码功能
|
||
|
||
### 8.3 文档治理建议
|
||
|
||
1. 建立需求文档与代码实现的定期同步机制
|
||
2. 需求文档中的实现状态标注必须经过代码验证
|
||
3. 超出需求文档的代码实现应反向补充到需求文档
|
||
4. 建议在每次迭代结束时进行一致性检查
|
||
|
||
---
|
||
|
||
> **报告生成说明**: 本报告基于 REVERSE-AUTH.md / REVERSE-MDM.md / REVERSE-ASSET.md / REVERSE-OPS.md / REVERSE-FINANCE.md 五份反推设计文档的差异对比章节生成,共分析 220 项差异对比数据。评估结果反映 2026-04-23 代码库状态。
|