JavaProjectRepo/变更实现方案.md

47 lines
2.2 KiB
Markdown
Raw Normal View History

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