Commit Graph

43 Commits

Author SHA1 Message Date
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 7ef266e4a0 feat:[FL-181][AI问答要支持function call]
实现AI问答的function call功能,支持调用系统接口进行查询。

改动内容:
1. 数据库扩展:
   - 在ai_chat_messages表增加tool_calls和tool_call_id字段
   - 创建数据库迁移文件

2. 模型和Schema更新:
   - AiChatMessage模型增加tool_calls(JSON)和tool_call_id字段
   - AiChatMessageSummary schema增加对应字段

3. Function Call实现:
   - 定义4个可调用函数:query_tower_models、query_lines、query_users、query_system_params
   - 实现_execute_function处理函数调用并返回格式化结果
   - 更新_call_openai_api支持tools参数

4. 消息流程更新:
   - 重构send_message支持完整的function call流程
   - 流程:用户消息 -> AI请求function call -> 执行函数 -> AI基于结果回复

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-22 23:59:13 +08:00
chengkai3 483fdb982b feat:[FL-165][给系统开发一个操作文档管理和展示功能]
- 创建后端数据库模型:DocumentChapter 和 Document,支持按章节组织的树形文档结构
- 创建数据库迁移文件:002_add_document_management.sql
- 创建 Pydantic schemas:定义文档和章节的请求/响应模型
- 创建后端服务层:document_service.py 实现 CRUD 和树形结构构建
- 创建 API 路由:/api/v1/documents 和 /api/v1/documents/chapters,支持完整的 RESTful 操作
- 创建前端类型定义:document.ts
- 创建文档管理页面:/admin/documents,包含章节树形目录和文档表格,支持增删改查
- 创建文档展示页面:/admin/docs-view,左侧目录树右侧内容展示,支持 Markdown 渲染
- 安装 react-markdown 依赖用于文档内容展示

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-20 23:22:03 +08:00
chengkai3 21f9839dd6 feat: [FL-166] 实现AI问答功能
- 后端实现:
  - 添加 ai_chat_conversations 和 ai_chat_messages 数据模型
  - 创建 AI 问答 API 路由(/api/v1/ai-chat)
  - 实现对话管理和消息发送服务
  - 集成 OpenAI API 进行对话交互
  - 支持流式对话历史和上下文管理

- 前端实现:
  - 创建 ChatGPT 风格的聊天界面(/admin/ai-chat)
  - 支持新建、选择、删除对话
  - 实现消息发送和实时显示
  - 使用 Ant Design 组件构建响应式 UI

- 系统参数配置:
  - ai_chat.openai_api_key: OpenAI API 密钥
  - ai_chat.model: 使用的 AI 模型(默认 gpt-3.5-turbo)
  - ai_chat.base_url: API 基础 URL(支持第三方兼容接口)

- 数据库迁移:
  - 002_add_ai_chat.sql: 创建对话和消息表
  - 003_add_ai_chat_params.sql: 添加系统参数默认配置

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-20 23:20:26 +08:00
chengkai3 86870f4610 feat: 高程管理重构 - 从数据集中心到文件中心
## 重构目标

将高程数据管理从"数据集中心"模式重构为"文件中心"模式,去掉 ElevationDataset 概念,
扁平化为 ElevationFileRecord,每条记录对应一个高程文件。

## 主要变更

### 数据库层
- 新增 `elevation_file_record` 表,合并原 dataset 核心字段
- 更新 `elevation_apply_job` 和 `elevation_data_import_job`,添加 `file_record_id` 字段
- 创建数据迁移脚本 `001_add_elevation_file_record.sql`
- 保留旧表用于向后兼容

### 后端 API
- 新增 `/api/v1/elevation/records` 路由组(推荐使用)
  - GET /records - 文件记录列表
  - POST /records - 上传文件并创建记录(上传即创建)
  - GET /records/{id} - 获取记录详情
  - PATCH /records/{id} - 更新记录
  - DELETE /records/{id} - 删除记录
  - POST /records/{id}/analyze - 触发分析
  - POST /records/{id}/terrain/build - 生成地形瓦片
  - GET /records/{id}/preview - 预览数据
- 保留 `/api/v1/elevation/datasets` 路由用于向后兼容
- Apply API 支持 `file_record_id` 和 `dataset_id` 双 ID

### 后端代码
- 新增 `elevation_file_record_service.py` (601 行),包含完整 CRUD 和操作逻辑
- 新增模型 `ElevationFileRecord`
- 新增 Schema:FileRecordSummary, CreateRequest, UpdateRequest 等
- 新增 Celery 任务:
  - `analyze_elevation_file_record_job`
  - `build_elevation_file_record_terrain_job`
- 新增执行函数:
  - `execute_file_record_analysis_job`
  - `execute_file_record_terrain_build_job`
- 更新模型字段,支持双 ID 关联

### 前端
- 新增简化页面 `/admin/elevation-records` (542 行)
- 从原 1760 行简化到 542 行
- 上传即创建,无需先建数据集
- 每行直接对应一个文件
- 操作更直观

### 文档
- 新增 `REFACTOR_SUMMARY.md` 完整重构说明
- 新增 `api/migrations/README.md` 迁移指南

## 用户体验改进

旧流程(4步):
1. 创建数据集(填编码+名称)
2. 导入文件到数据集
3. 分析数据集
4. 预览/地形/回填

新流程(2步):
1. 上传文件(填来源+分辨率)→ 自动创建+分析
2. 预览/地形/回填

## 向后兼容

- 保留旧表和旧 API,新旧系统可并存
- Apply Job 同时支持新旧 ID
- 提供平滑迁移路径

## 技术指标

- 代码简化:前端从 1760 行 → 542 行(-69%)
- 概念简化:去除"数据集"中间层
- API 数量:新增 8 个文件记录端点

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 09:01:16 +08:00
chengkai3 6519fee729 [feat]:[FL-172][用户管理页面新增用户时邮箱放最后,且不要必填]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-18 00:34:20 +08:00
chengkai3 9ba1cc4388 [feat]:[FL-118][增加密码错误5次禁止登录半小时功能]
- 在User模型添加failed_login_attempts和failed_login_locked_until字段
- 在database.py添加字段迁移兼容性函数_ensure_user_login_lockout_column_compatibility
- 修改auth_service.py的login_user函数实现登录锁定逻辑:
  * 检查账户是否处于锁定状态
  * 密码错误时递增失败计数
  * 失败5次后锁定账户30分钟
  * 登录成功后重置失败计数和锁定状态
- 添加单元测试test_login_lockout.py验证功能

Co-authored-by: multica-agent <github@multica.ai>
2026-06-14 01:07:26 +08:00
chengkai3 1d11bf9fc3 [feat]:[FL-109][增加系统消息发送功能]
- 后端:创建system_messages表模型和Schema
- 后端:实现消息创建、查询、标记已读的服务层
- 后端:新增REST API接口(需admin.system_message权限)
- 前端:完善系统消息抽屉弹窗,显示消息列表
- 前端:自动加载未读数量,支持标记已读
- 数据库:新增迁移脚本建表

Co-authored-by: multica-agent <github@multica.ai>
2026-06-13 23:27:29 +08:00
chengkai3 07735fb23f feat: [FL-104][高程数据管理中文件明细要展示各个文件的坐标范围]
- 添加 ElevationDatasetFileMeta 数据库模型存储文件级别坐标范围
- 更新 API schema 和 service,返回每个文件的 bbox 信息
- 修改高程数据分析任务,遍历目录所有文件并提取坐标范围
- 前端文件明细表格新增坐标范围列
- 创建数据库迁移脚本

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-13 07:59:08 +08:00
chengkai3 da9fd1cd3a [feat]:[FL-84][ATP模型管理改造11]
1. 为AtpAsset模型增加避雷器装设组合配置项(arrester_config)
2. 将release zip上传改为异步处理

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-06-12 12:48:46 +08:00
chengkai3 fac37ddb8d [fix/feat]:[FL-81][ATP模型管理改造为资产发布制]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-11 22:39:48 +08:00
chengkai3 61a1954034 [feat]:[FL-80][高程数据导入异步并支持进度回看]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-10 15:38:10 +08:00
chengkai3 2ad2405cd3 [fix/feat]:[FL-74][高程数据支持DEM地形瓦片预览和线路地形图]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-10 00:26:09 +08:00
chengkai3 4ce57708b4 [fix]:[FL-70][删除线路时,塔杆要一起删除]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-09 12:30:27 +08:00
chengkai3 d36aeb8636 [feat]:[FL-65][新增定时任务管理页面]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-09 12:00:59 +08:00
chengkai3 4e2b3dcdad [fix]:[FL-57][统一计算任务到 Celery worker]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-09 08:29:10 +08:00
chengkai3 2f0f24e137 [fix]:[FL-42][修正模型导入清单]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 12:54:00 +08:00
chengkai3 5a41cd4d3d [fix/feat]:[FL-42][清理题库 Markdown 导题 热搜遗留模块]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 12:48:12 +08:00
chengkai3 a6bb67752c [fix]:[FL-44][清理遗留聊天 / 模型注册模块]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 12:35:24 +08:00
chengkai3 dd8dd9244d [fix]:[FL-43][清理遗留需求协同待办日程JWT生成器模块]
Co-authored-by: multica-agent <github@multica.ai>
2026-06-08 12:32:11 +08:00
chengkml 98f97bec01 feat: migrate tower profile professional fields 2026-06-06 22:16:09 +08:00
chengkml 578d124607 feat: add fl analysis backend skeleton 2026-06-06 20:56:44 +08:00
chengkai3 3c4ad99d63 feat(tower-models): add tower model management with legacy data seed 2026-05-03 18:15:54 +08:00
Admin 7c121b8948 优化高程数据管理交互并补充分析进度与文件明细能力
Co-authored-by: multica-agent <github@multica.ai>
2026-05-03 15:24:47 +08:00
Admin df7c6ca14e 完成高程数据集优化并支持多文件导入自动分析
Co-authored-by: multica-agent <github@multica.ai>
2026-05-03 13:42:51 +08:00
chengkai3 0019aa0fba feat: add scheduler and flower monitoring with worker registry 2026-05-01 21:05:42 +08:00
Admin 9e68a91941 下线诗词本等7项多余功能并清理相关代码
Co-authored-by: multica-agent <github@multica.ai>
2026-05-01 19:43:49 +08:00
chengkai3 e5a33d7f9a feat: add elevation dataset management and line altitude apply jobs 2026-05-01 17:10:19 +08:00
Admin a2d32613ec 移除 users 审计人字段强制映射
Co-authored-by: multica-agent <github@multica.ai>
2026-05-01 12:17:25 +08:00
Admin 7f2fafde5e 修复 users 审计字段映射并兼容旧列名
Co-authored-by: multica-agent <github@multica.ai>
2026-05-01 12:11:36 +08:00
Admin 607512a1a4 修复 users 时间字段映射并兼容旧列名
Co-authored-by: multica-agent <github@multica.ai>
2026-05-01 11:57:35 +08:00
Admin 110fb79e60 修复用户状态列映射兼容问题
Co-authored-by: multica-agent <github@multica.ai>
2026-05-01 11:39:17 +08:00
Admin 8c9699cd46 fix(api): support configurable users password column mapping
Co-authored-by: multica-agent <github@multica.ai>
2026-05-01 11:21:57 +08:00
chengkml 4b8b6f7210 fix(api): support configurable users username column mapping 2026-05-01 10:18:13 +08:00
chengkai3 ba21ed8550 chore: sync workspace updates 2026-04-26 09:00:49 +08:00
chengkai3 db81bf41fc 前端框架修改 2026-04-26 00:14:25 +08:00
chengkai3 3fd15fbd21 前端框架修改 2026-04-24 15:50:52 +08:00
chengkai3 472234035d 前端框架修改 2026-04-23 09:41:54 +08:00
chengkai3 f99f1954f0 feat: add admin feature modules and page route mappings 2026-04-19 07:48:34 +08:00
chengkai3 a737e5f542 chore: sync workspace changes 2026-04-17 21:55:27 +08:00
chengkai3 1e3478265c feat(files): complete phase-1 file management flow 2026-04-12 20:48:23 +08:00
chengkai3 c777d9d32a feat: sync workspace updates 2026-04-12 16:00:20 +08:00
chengkai3 0eb656aaf2 feat: add CI/CD workflow and sync latest workspace changes 2026-04-12 00:03:30 +08:00