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

2.2 KiB
Raw Permalink Blame History

变更实现方案

本方案旨在响应《变更需求.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 后端实现

  1. 实体类更新:在 Scenario.java 中添加 BigDecimal keffThreshold 字段。
  2. 接口调整ScenarioController 的新增/修改接口自动支持该字段(基于 MyBatis-Plus
  3. 结果返回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 后端实现

  1. 实体类更新Scenario.java 添加 String deviceAlgoConfig 字段。
  2. 推理服务重构 (DeviceInferService)
    • 当前逻辑:按 deviceType 分组 -> 获取全局 algorithmType -> 加载模型 -> 批量推理。
    • 新逻辑
      1. 解析 deviceAlgoConfig JSON。
      2. 遍历所有设备,确定每个设备的算法类型(优先取设备配置,无配置则取情景默认)。
      3. 重分组:将设备按 (deviceType, algorithmType) 组合进行分组。例如:{ "CylindricalTank_GPR": [dev1, dev2], "CylindricalTank_MLP": [dev3] }
      4. 分批推理:遍历新的分组,分别加载对应的模型路径进行推理调用。