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