# 5.2.XX管理模块设计说明

## 5.2.1.XX设计说明。

### 5.2.1.1.模块描述。

本模块对应【操作执行-模型对比】功能开发，用于对轻量化后的模型与未轻量化模型进行细节对比，形成可视化的优化效果评估结果。  
对比维度覆盖模型规模、文件体积、处理耗时、删除/保留构件等核心指标。

### ·5.2.1.2.功能·。

1. 轻量化前后模型对比展示。
2. 文件大小对比（原始大小 vs 优化后大小）。
3. 构件变化对比（删除数量、保留数量、扫描总量）。
4. 性能与处理时长对比（执行耗时、任务状态）。
5. 异常信息与差异明细展示（错误项、分区统计、备份信息）。

### 5.2.1.3.性能。

1. 对比数据由任务结果直接返回，前端仅做展示计算，响应快。
2. 指标卡片+摘要区域分层渲染，适配大模型结果展示。
3. 结果页采用状态驱动更新，避免重复计算与重绘。

### 5.2.1.4.输入输出项·。

#### 1.字段输入输出。

输入字段：

1. `originalSize`（轻量化前文件大小）
2. `optimizedSize`（轻量化后文件大小）
3. `reduction`（体积减少比例）
4. `removedCount`（移除构件数）
5. `keptCount`（保留构件数）
6. `totalVisited`（扫描总构件数）
7. `processingTimeSeconds`（处理耗时）
8. `startedAt/completedAt`（开始与完成时间）
9. `zoneSummaries/errors/backupPath`（分区汇总、错误、备份路径）

输出字段：

1. `comparison_summary`（前后对比结论）
2. `size_delta`（文件体积变化）
3. `component_delta`（构件变化统计）
4. `performance_delta`（处理性能指标）

#### 2.界面交互输入输出。

输入交互：

1. 用户执行轻量化任务。
2. 任务完成后进入结果页查看对比信息。
3. 用户按需查看详细分区和错误明细。

输出交互：

1. 对比指标卡片展示。
2. 文件大小前后对比可视化。
3. 处理结果摘要与执行时间展示。
4. 失败/异常信息提示。

### 5.2.1.5.算法

模型对比算法：

1. 读取任务结果中的 `before/after` 指标字段。
2. 计算体积变化量和变化比例。
3. 汇总构件删除、保留与扫描统计。
4. 结合处理时长输出对比结论。
5. 追加异常摘要用于对比结果可信性说明。

### 5.2.1.6.流程逻辑

1. 用户发起模型轻量化操作。
2. 系统执行任务并返回结果数据。
3. 前端提取轻量化前后关键指标。
4. 页面输出对比卡片、大小对比和明细信息。
5. 用户据此判断轻量化效果并决定后续操作。

### ·5.2.1.7.接口。

任务执行接口：

1. `revitApi.executeShellOptimization(mode, backupOriginal)`
2. `revitApi.getTaskStatus(taskId)`
3. `pdmsApi.executeShrinkwrap(params)`

模型对比展示接口：

1. `taskResult` 数据对象（结果页统一输入）
2. `formatTime()`（时间格式化）

### 5.2.1.8.注释设计

1. 对比字段注释：明确前后值单位和统计口径。
2. 结果注释：区分“执行成功但有局部错误”与“执行失败”。
3. 体积比例注释：说明比例来源与计算方式。
4. 分区统计注释：说明每个区域统计的含义。

### 5.2.1.9.数据结构。

模型对比结果结构（示意）：

```
{
  "originalSize": "128.6MB",
  "optimizedSize": "74.5MB",
  "reduction": "42%",
  "removedCount": 268,
  "keptCount": 1312,
  "totalVisited": 1580,
  "processingTimeSeconds": 37,
  "startedAt": "2026-02-26T10:10:00",
  "completedAt": "2026-02-26T10:10:37",
  "backupPath": "D:\\backup\\model_backup.rvt",
  "zoneSummaries": {
    "/ZONE_A": 120,
    "/ZONE_B": 148
  },
  "errors": []
}
```
