# 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\,无分页支持 | | 影响 | 数据量大时性能问题严重,影响用户体验 | ### 🟡 #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 代码库状态。