47 lines
2.2 KiB
Markdown
47 lines
2.2 KiB
Markdown
# 变更实现方案
|
||
|
||
本方案旨在响应《变更需求.md》中提出的四项核心改进需求,涵盖前端展示、后端逻辑、数据库设计及与 Python 算法服务的交互。
|
||
|
||
## 1. 需求一:情景表添加 Keff 阈值设置字段
|
||
|
||
### 1.1 需求描述
|
||
在情景配置中新增 `keff` 阈值参数,并在仿真结果中对超过阈值的 `keff` 值进行红字高亮预警。
|
||
|
||
### 1.2 数据库变更
|
||
在 `scenario` 表中增加字段:
|
||
```sql
|
||
ALTER TABLE scenario ADD COLUMN keff_threshold decimal(8,6) COMMENT 'Keff预警阈值';
|
||
```
|
||
|
||
### 1.3 后端实现
|
||
1. **实体类更新**:在 `Scenario.java` 中添加 `BigDecimal keffThreshold` 字段。
|
||
2. **接口调整**:`ScenarioController` 的新增/修改接口自动支持该字段(基于 MyBatis-Plus)。
|
||
3. **结果返回**:`SimController` 返回仿真结果时,可以顺便在元数据中返回该阈值,或者前端单独查询情景详情获取。
|
||
|
||
|
||
|
||
## 2. 需求二:情景表支持按设备设置算法类型
|
||
|
||
### 2.1 需求描述
|
||
打破原有的“一情景一算法”限制,支持针对不同设备配置不同的算法模型(例如:圆柱槽使用 GPR,环形槽使用 MLP)。
|
||
|
||
### 2.2 数据库变更
|
||
在 `scenario` 表中增加字段,存储设备级算法配置(JSON 格式):
|
||
```sql
|
||
ALTER TABLE scenario ADD COLUMN device_algo_config JSON COMMENT '设备算法配置映射,格式:{"deviceId1":"GPR", "deviceId2":"MLP"}';
|
||
```
|
||
|
||
### 2.3 后端实现
|
||
1. **实体类更新**:`Scenario.java` 添加 `String deviceAlgoConfig` 字段。
|
||
2. **推理服务重构 (`DeviceInferService`)**:
|
||
* **当前逻辑**:按 `deviceType` 分组 -> 获取全局 `algorithmType` -> 加载模型 -> 批量推理。
|
||
* **新逻辑**:
|
||
1. 解析 `deviceAlgoConfig` JSON。
|
||
2. 遍历所有设备,确定每个设备的算法类型(优先取设备配置,无配置则取情景默认)。
|
||
3. **重分组**:将设备按 `(deviceType, algorithmType)` 组合进行分组。例如:`{ "CylindricalTank_GPR": [dev1, dev2], "CylindricalTank_MLP": [dev3] }`。
|
||
4. **分批推理**:遍历新的分组,分别加载对应的模型路径进行推理调用。
|
||
|
||
|
||
---
|
||
|