JavaProjectRepo/变更实现方案.md
2026-03-20 19:00:16 +08:00

47 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 变更实现方案
本方案旨在响应《变更需求.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. **分批推理**:遍历新的分组,分别加载对应的模型路径进行推理调用。
---