Commit Graph

571 Commits

Author SHA1 Message Date
chengkai3 2fccb89e49 [feat]:[FL-209][新建维度时维度类型改为下拉选择]
将新建维度表单中的维度类型字段从文本输入框改为下拉选择框,提升用户体验。

主要修改:
1. 将维度类型字段从 Input 改为 Select 组件
2. 使用 mode="tags" 支持选择现有类型或输入新类型
3. 支持搜索和清空功能
4. 修改 CreateDimensionValues 类型定义,支持字符串或数组
5. 修改 handleCreateDimension 函数,处理 tags 模式返回的数组

用户体验优化:
- 可以从现有维度类型中快速选择
- 支持搜索过滤
- 也可以输入新的维度类型
- 避免输入错误或不一致的类型名称

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:54:14 +08:00
chengkai3 dd978aa973 [feat]:[FL-209][维度管理页面添加按维度类型排序]
在维度管理页面的查询接口中添加排序参数,按维度类型升序排序。

主要修改:
- 在 dimensionsQueryParams 中添加 sort_by=dimension_type 参数
- 添加 sort_order=asc 参数,实现升序排序
- 确保查询结果按维度类型有序展示

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:49:18 +08:00
chengkai3 46a77c0dcc [fix]:[FL-211][文件管理页面的按钮样式跟系统不符]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:47:34 +08:00
chengkai3 6c1cead3d9 fix:[FL-207][修改为文件视图模式-逐级下钻导航]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:37:11 +08:00
chengkai3 148ce356ee fix:[FL-210][去掉系统消息页面的刷新按钮]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:36:16 +08:00
chengkai3 d370750dec [fix]:[FL-209][维度管理页面一致性优化]
统一维度管理页面与用户管理页面的风格、样式和交互规范,实现系统风格一致性。

主要修改:
1. 移除新增按钮的图标,与用户管理页面保持一致
2. 修改导入的图标,使用 EditOutlined 替代 PlusOutlined
3. 统一筛选表单样式,使用 rowGap: 12 并添加表单项宽度设置
4. 新增移动端响应式卡片视图支持,包含无限滚动加载
5. 统一分页配置,默认 pageSize 改为 20,pageSizeOptions 改为 [10, 20, 50, 100]
6. 统一 Modal 确认按钮文本为"创建维度项"
7. 添加表格滚动高度动态计算逻辑,支持自适应视口
8. 新增 CSS 样式类支持卡片视图和暗黑主题
9. 添加表格容器类名和 CSS 变量支持

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:33:04 +08:00
chengkai3 90d1e4f788 [feat]:[FL-208][优化worker监控页面]
1. 预取配置硬编码显示为1
2. 移除自动刷新功能,刷新按钮改为主题色
3. 移除"生成时间、执行节点、在线、离线"统计信息展示
4. 修复队列列"默认队列"重复显示问题
5. 修复执行节点列内容超长时的溢出问题

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:32:19 +08:00
chengkai3 d66f768d44 feat:[FL-207][给ATP模型管理增加树形视图]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 14:18:27 +08:00
chengkai3 3dc29afbd4 [feat]:[FL-206][优化维度管理功能]
- 维度类型改为允许手动输入创建
- 字段标签优化:编码→维度编码,名称→维度名称,父节点ID→父维度
- 父维度改为下拉选择,支持搜索
- 添加循环引用检查,防止选择自己的子孙节点作为父节点
- 表格中父维度显示为"名称 (编码)"格式

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 13:58:11 +08:00
chengkai3 0b05398306 [refactor]:[FL-206][移除维度管理树形视图]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 13:54:31 +08:00
chengkai3 fb0800ce22 fix:[FL-202][ATP模型管理改造] 将loading显示位置从右上角移至列表
- 移除右上角的 Spin 组件
- 表格 loading 状态改为 assetsQuery.isLoading || assetsQuery.isFetching
- 对齐用户管理页面的 loading 显示方式

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 12:26:51 +08:00
chengkai3 4bc1eab0f1 fix:[FL-202][ATP模型管理改造] 移除上传表单提示文案
- 移除"支持选择整个目录,将保留原始目录结构"提示文本

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 11:31:17 +08:00
chengkai3 069be0968e feat:[FL-202][ATP模型管理改造] 列表显示值格式化为中文
- 新增 formatDimensionValue 函数,将原始数据值映射为用户友好的中文显示格式
- 表格列渲染使用格式化函数:电压等级带单位(35kV)、塔型显示中文(干字塔)、场景显示中文(反击)、避雷器组合显示标签(M1)
- 卡片视图同步使用格式化函数显示
- 匹配新建表单下拉选项中的展示格式

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 11:16:48 +08:00
chengkai3 5f0b4b0256 [fix]:[FL-205][模型删除时同步删除存储文件]
- 更新 delete_asset 函数,在删除数据库记录前先删除物理文件
- 遍历模型的所有 release,逐个删除其存储路径下的文件
- 使用 try-except 确保文件删除失败不会阻塞数据库清理
- 新增测试用例 test_delete_asset_removes_storage_files 验证文件删除功能

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 11:15:06 +08:00
chengkai3 a9fabc380d [fix]:[FL-205][移除资产代码层级并添加路径冲突校验]
- 从存储路径中移除 asset_code 层级
- 修改路径结构:/atp-library/{voltage_level}/{tower_type}/r{release_no}
- 新增 _check_storage_path_conflict 函数,检测路径冲突
- 在 create_release 和 create_release_from_archive 中添加冲突校验
- 当检测到路径已被其他模型占用时,返回 409 错误并提示详细信息
- 新增测试用例验证冲突检测功能

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 11:02:33 +08:00
chengkai3 6d52f24ef3 [feat]:[FL-206][新增维度管理功能]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 11:01:16 +08:00
chengkai3 31ee65f745 [fix]:[FL-202][移除ATP模型列表描述列]
- 从表格视图中移除"描述"列
- 从卡片视图中移除描述字段显示
- 更新搜索框placeholder,去掉"描述"字样

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 10:52:15 +08:00
chengkai3 5b98ec9b49 [fix]:[FL-202][简化ATP模型创建表单]
- 移除描述字段(description)的展示和填写
- 移除Select组件创建新选项的能力(去掉dropdownRender提示文字)
- 现在只能从预定义的选项中选择,不再支持自定义输入新值
- 更新表单验证提示文字,去掉"或新建"字样

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 10:41:38 +08:00
chengkai3 a1b93a91bb [fix]:[FL-202][优化ATP模型文件上传UI]
- 移除拖拽上传框(Upload.Dragger),改为普通按钮上传
- 隐藏默认文件列表(showUploadList={false})
- 自定义文件预览列表,限制高度200px,超出部分滚动显示
- 显示文件数量统计
- 优化视觉样式,使用浅灰背景和边框
- 移除InboxOutlined图标依赖

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 10:29:46 +08:00
chengkai3 b82e005b7c [feat]:[FL-205][ATP模型文件存储改造]
- 移除 releases 层级
- 新增 voltage_level(电压等级)和 tower_type(塔型)作为目录层级
- 修改存储路径结构:/atp-library/{voltage_level}/{tower_type}/{asset_code}/r{release_no}
- 更新相关测试用例

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 10:27:52 +08:00
chengkai3 081c201b2e [fix]:[FL-202][修复ATP模型表单下拉框行为]
将CreatableSingleSelect组件替换为标准的Select组件:
- 使用showSearch支持搜索
- 选中值后下拉菜单自动关闭(单选框正常行为)
- 保留通过输入创建新选项的能力
- 添加提示文本"可直接输入新建选项"

修复了原有实现中使用mode="tags"导致的下拉框不关闭问题

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 10:24:25 +08:00
chengkai3 b90776dd40 [fix]:[FL-202][调整ATP模型创建弹窗宽度]
移除width={760},使用Ant Design默认宽度(520px),与用户管理的用户新增表单保持一致

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 10:17:10 +08:00
chengkai3 383f0a43b7 [feat]:[FL-204][优化防雷计算任务创建表单]
1. 用弹窗代替抽屉:将 Drawer 改为 Modal
2. 调整表单布局:采用纵向排布
3. 优化字段顺序:任务名、任务类型、线路在前,依赖表单采用双列展示

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 10:03:21 +08:00
chengkai3 f866ee3fa8 fix:[FL-203][调度监控页面执行节点离线巡检日志不要展示]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 09:54:03 +08:00
chengkai3 f020bdc3c9 [feat]:[FL-202][ATP模型管理改造]
1. 表格列调整:只展示电压等级、塔型、场景、避雷器组合、描述、更新时间
2. 创建时支持上传目录,保留原始目录结构(使用jszip打包后上传)
3. 去掉编辑和详情查看功能

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-28 09:50:09 +08:00
chengkai3 463a128e68 [fix]:[FL-199][修复地闪密度页面遗留的 JSX 语法错误] 2026-06-27 23:21:45 +08:00
chengkai3 27ea9d7c8d [feat]:[FL-200][ATP模型管理功能优化]
移除ATP模型管理中版本和执行记录的展示功能:
- 列表页:移除"当前版本"列及版本/运行次数统计
- 详情页:移除版本列表卡片、新建版本、编辑版本、激活版本功能
- 详情页:移除运行记录卡片、运行/Dry Run功能
- 保留模型基本信息展示(编码、状态、业务维度、说明)
- 保留当前版本详情、目录文件清单展示

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 22:49:20 +08:00
chengkai3 91c9877e0a fix: 修复ATP模型编辑时下拉选项无法选择的问题
问题描述:
在编辑ATP模型时,下拉框中已选中的选项无法被重新选择。

根本原因:
CreatableSingleSelect组件使用了mode="tags"的Select,但onChange处理逻辑不够完善,
导致在某些情况下选择操作无法正确更新表单值。

解决方案:
1. 将value的规范化逻辑提取为独立变量,提高代码可读性
2. 改进onChange处理逻辑,明确处理空数组和非空数组的情况
3. 添加tokenSeparators配置,支持逗号分隔输入新值

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 22:42:50 +08:00
chengkai3 bb265387c9 [fix]:[FL-199][地闪密度统计页面优化]
- 移除 region_id 的配置和展示(导入表单、筛选条件、表格列、详情模态框)
- 移除"基于经纬度与电流幅值展示雷电空间分布,支持按地点、区域等条件筛选。"提示文本
- 调整导入表单和表格列顺序为:城市、地点标签、年份、备注
- 参考用户管理页面,修复分页组件在无数据时也能展示
- 保留新增的"查询"按钮功能和 shouldLoadData 状态管理

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 22:41:29 +08:00
chengkai3 dc023b1f3e [fix]:[FL-198][地闪密度页面进入时不应该调用GET /api/v1/lightning-currents,去掉这个调用动作]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 22:33:38 +08:00
chengkai3 cf68e6104b [fix]:[FL-197][修复 import-batches 接口无数据时返回 404 的问题]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 22:15:42 +08:00
chengkai3 fdbf8839c5 [fix]:[FL-196][nginx 动态 DNS 解析 + 部署流程中重启 nginx,防止容器重启后 502] 2026-06-27 18:17:00 +08:00
chengkai3 4cbd7262ae [fix]:[FL-196][移除 celery_app.py 中已删除的 atp_model_tasks 引用] 2026-06-27 18:04:20 +08:00
chengkai3 811b89bbb0 [fix]:[FL-196][补修 database.py init_db() 中残留的 atp_model 引用] 2026-06-27 17:56:13 +08:00
chengkai3 1ece40dd01 [fix]:[FL-196][修复 fl_analysis_external.py 中对已删除 atp_model 模块的引用]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 17:17:50 +08:00
chengkai3 e382fd6aa5 ci: trigger GitHub Actions 2026-06-27 16:06:04 +08:00
chengkai3 b8f61a72aa [feat]:[FL-194][删除AtpModel系统,保留AtpAsset]
- 删除AtpModel、AtpModelVersion、AtpSimulationRun模型及相关代码
- 删除/api/v1/atp/models API端点
- 将engine status功能迁移到atp_asset_service
- 更新路由和模型注册,移除atp_model引用
- 删除相关测试文件
- 更新fl_analysis_service使用atp_asset_service的_truncate_output

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 10:14:27 +08:00
chengkai3 16bdd76eaf fix: wine执行器在运行时自动配置D:驱动器映射以支持ATP $INCLUDE路径
tpbig.exe的ATP模板使用Windows绝对路径引用库文件:
  $INCLUDE, D:\ATP\110\ganzi\fanji\noM\short.lib, ...

需要wine的D:驱动器映射到ATP目录才能正确解析。

修改内容:
1. api/app/services/wine_service.py - 新增 _ensure_wine_drive_mapping()
   在每次执行wine前自动创建dosdevices/d:: symlink指向ATP目录,
   并将templates/fanji/*.lib复制到DOS路径对应位置
2. 预创建 ATP/110/ganzi/fanji/noM/ 目录结构并放入库文件
2026-06-27 10:10:45 +08:00
chengkai3 0fa2a10c12 [fix]:[wine]补充ATP运行时文件(startup/graphics等)至pro-deploy 2026-06-27 09:52:55 +08:00
chengkai3 ba21d8ac6b feat:[FL-192][AI问答页面:无会话时展示引导界面,提供示例问题按钮]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 08:14:51 +08:00
chengkai3 5999dfe427 [fix]:[FL-195][优化文档查看页面:修复标题重复和树/内容间距问题]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 08:04:16 +08:00
chengkai3 7aaa663cc4 fix: [FL-193] 修复 lightning-distribution 页面 TypeScript 类型错误
- 修正 EventsModal 和 ScatterModal 组件中 fetchWithAuth 参数类型定义
- 添加缺失的 LightningImportBatchEventItem 类型导入
- 确保类型签名与 useAuth hook 返回的 fetchWithAuth 一致

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 07:50:43 +08:00
chengkai3 10780285f5 feat: [FL-191] 改造地闪密度统计页面为文件导入记录视图
## 改动摘要

### 后端改动
- 新增 `lightning_import.py` schema,定义文件导入批次相关数据结构
- 在 `lightning_service.py` 中实现 `list_lightning_import_batches` 和 `get_lightning_import_batch_events` 函数
- 在 `lightning.py` API 中新增两个端点:
  - `GET /lightning-currents/import-batches` - 获取文件导入批次列表
  - `GET /lightning-currents/import-batches/events` - 获取指定批次的事件明细

### 前端改动
- 修改 `page.tsx`,将表格展示从单个事件改为文件导入批次
- 新增 `EventsModal` 组件,用于查看批次的事件明细
- 新增 `ScatterModal` 组件,用于查看批次对应的散点图
- 每个批次记录提供「事件明细」和「散点图」按钮
- 更新类型定义,新增 `LightningImportBatchSummary` 等类型

### 数据分组逻辑
- 按 `source_file_name + create_date + region_id + location_tag + city` 进行分组
- 每个批次显示:文件名、导入时间、事件数、城市、地点标签、最大/平均电流

## 测试结果
-  Python 语法检查通过(lightning_service.py, lightning.py, lightning_import.py)
-  TypeScript 类型定义正确

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 07:37:39 +08:00
chengkai3 e6793cb119 [feat]:[wine]设置外执行器页面默认值 - tpbig.exe路径及测试算例参数 2026-06-27 07:37:13 +08:00
chengkai3 c218a9896e [feat]:[wine]添加Wine执行器配置 - tpbig.exe及ATP测试算例 2026-06-27 07:13:07 +08:00
chengkai3 51d7e5d403 docs:[FL-190][AI问答页面:未选中会话时发送消息报 'Conversation not found' 异常]
添加测试计划文档,验证 FL-189 中实现的修复逻辑:
- 未选中会话时自动创建新会话
- 使用消息内容生成会话标题
- 确保不会出现 "Conversation not found" 错误
- 包含多个测试场景和验证点

修复已在 FL-189 (commit 2e83cb8) 中完成。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 06:43:58 +08:00
chengkai3 2e83cb8e72 feat:[FL-189][AI问答页面:取消默认自动创建会话,改为首次问答时生成]
主要改动:
1. 移除页面加载时自动创建空会话的逻辑
2. 修改发送消息函数,支持在无会话时自动创建会话
3. 根据用户首条问题内容智能生成会话标题(截取前20字或首行)
4. 优化欢迎界面,支持无会话状态下直接输入问题
5. 保持手动新建会话功能不变

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 06:26:22 +08:00
chengkai3 c10d9d8095 [feat]:[FL-188][AI问答页面配色优化 — 适配暗黑主题]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-27 06:25:40 +08:00
chengkai3 4a245fd6d5 fix:[FL-187][修复AI问答页面删除最后一条会话时循环创建新会话的问题]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-25 00:03:36 +08:00
chengkai3 1a5fc18376 [fix]:[FL-186][AI问答页面的颜色要符合系统主题色]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-24 23:57:51 +08:00