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