task_plan/generation.json

34 lines
9.5 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"projectId": 42,
"generationId": "codegen_5a1b9b15fdf349df8df115246afd64a2",
"language": "C++",
"status": "completed",
"fileIds": [
693
],
"outputDir": "/app/agents/ai_agents/project-files/codegen-runs/codegen_5a1b9b15fdf349df8df115246afd64a2",
"relativeOutputDir": "codegen-runs/codegen_5a1b9b15fdf349df8df115246afd64a2",
"generatedFiles": [
"CMakeLists.txt",
"README.md",
"events.ndjson",
"include/app.hpp",
"include/event_manager.hpp",
"include/task_template_manager.hpp",
"src/app.cpp",
"src/event_manager.cpp",
"src/main.cpp",
"src/task_template_manager.cpp",
"tests/basic_test.cpp"
],
"analysisSummary": "### 业务目标\n事件与任务管理软件ETMS作为战场任务规划系统BTPS的核心组件旨在实现从战场临机事件感知到作战任务草案生成的全流程支持。系统通过接入、处理和展示战场态势事件并结合任务模板知识库辅助指挥员在“人环协同”或“自主执行”模式下快速响应突发事件提升作战决策效率与响应速度。最终目标是构建一个高实时性、高可靠性、安全可控的任务生成准备平台支撑野战指挥所的高效运行。\n\n---\n\n### 功能清单\n1. **事件接收与解析**\n - 监听消息队列MQTT/Kafka接收上游模块推送的原始事件数据。\n - 解析JSON格式事件包校验字段完整性并返回ACK确认信号。\n\n2. **事件处理与存储**\n - 对接收到的事件进行清洗、格式化处理。\n - 将合法事件写入数据库t_event表状态标记为“Received”→“Processed”。\n\n3. **事件列表前端展示**\n - 分页查询事件数据,以列表形式在前端渲染。\n - 支持按创建时间倒序排列,不同事件等级用颜色标识。\n - 提供滚动加载、查看详情、操作反馈等功能。\n\n4. **事件排序与交互操作**\n - 支持用户对事件列表进行自定义排序(如按威胁度、距离等维度)。\n - 提供“处理”、“拒绝”按钮,操作后即时提示结果。\n\n5. **待处理事件筛选与准备**\n - 接收标记为“待处理”的事件集合,建立事件与潜在任务的映射关系。\n - 在界面上高亮显示紧迫事件,支持点击查看详情。\n\n6. **任务模板管理**\n - 接收并解析上级系统推送的任务模板集合JSON/XML格式。\n - 增量更新本地模板数据库t_task_template表支持模板元数据索引。\n\n7. **任务模板版本控制**\n - 查询可用的知识库版本列表t_kb_version表。\n - 支持用户选择特定先验知识库版本用于模板生成。\n\n8. **任务模板展示与排序**\n - 以前端卡片或网格视图展示所有可用模板。\n - 支持按名称、使用频率等字段自定义排序。\n\n9. **任务模板详情查看**\n - 展示模板的树状子任务结构,支持节点展开/折叠。\n - 显示参数配置说明及上下文帮助信息。\n\n10. **人机协同模式下的模板选择**\n - 用户可在界面手动选择任务模板。\n - 系统记录选择动作并传递至任务实例化模块。\n\n11. **自主推荐模式下的模板提示**\n - 系统根据事件特征自动推荐匹配模板。\n - 弹出提示框供用户确认是否采纳推荐方案。\n\n12. **任务生成请求发送**\n - 组装任务请求报文含事件引用、初始参数、选定模板ID。\n - 通过HTTP POST接口向任务规划引擎发送生成请求启用OAuth2.0认证与HTTPS加密。\n\n13. **系统配置与运维支持**\n - 提供过滤规则、白名单等后台配置界面。\n - 支持动态参数调整、日志检索、健康监控等维护功能。\n\n---\n\n### 数据结构\n#### 核心数据库表\n| 表名 | 字段 | 类型 | 说明 |\n|------|------|------|------|\n| `t_event` | id, event_id, event_type, timestamp, level, longitude, latitude, description, status, create_time | BIGINT, VARCHAR(64), VARCHAR(20), TIMESTAMP, INTEGER, DOUBLE, DOUBLE, TEXT, VARCHAR(20), TIMESTAMP | 存储原始战场事件数据状态流转Received → Processed → Pending Task → Task Generated |\n| `t_task_template` | template_id, name, version, content_path, metadata, create_time | VARCHAR, VARCHAR, VARCHAR, VARCHAR, JSON, TIMESTAMP | 存储任务模板元数据完整文件存于MinIO对象存储 |\n| `t_kb_version` | version_id, release_date, description, is_active | VARCHAR, DATE, TEXT, BOOLEAN | 记录知识库版本信息,支持多版本切换 |\n\n#### 缓存与文件存储\n- **Redis**:缓存热点事件数据、会话令牌、模板元数据,提升高并发读取性能。\n- **MinIO对象存储**存放完整的任务模板定义文件JSON/XML通过唯一ID索引访问。\n- **本地日志文件**记录系统运行日志配合ELK栈实现集中式日志分析。\n\n---\n\n### 接口或命令\n#### 外部接口\n| 接口标识 | 名称 | 方向 | 协议 | 数据格式 | 描述 |\n|--------|------|------|------|----------|------|\n| SRS-ETMS_I_EVT_RAW | 接收原始事件数据 | 输入 | MQTT主题订阅 | JSON | 上游事件生成模块推送事件流最大4KB含event_id、eventType、timestamp、location等字段 |\n| SRS-ETMS_O_REQ_TSK | 发送任务生成请求 | 输出 | HTTP POST | JSON | 向任务规划引擎提交任务请求包含事件引用、模板ID、初始参数启用OAuth2.0认证与HTTPS加密 |\n| RESTful API | 用户指令输入 | 输入 | HTTP | JSON | 接收用户分页查询、排序规则、模板选择等操作指令 |\n| WebSocket | 实时事件推送 | 输出 | WebSocket | JSON Array | 向前端实时推送事件列表更新、状态变更通知 |\n\n#### 内部服务调用\n- **RPC调用**各微服务间通过gRPC或Spring Cloud Feign进行同步通信。\n- **消息总线**使用Kafka发布领域事件如“事件已处理”实现异步解耦。\n\n#### 关键API示例\n- `GET /events?page=1&size=20`:获取分页事件列表\n- `POST /tasks/generate`:触发任务生成流程\n- `GET /templates?sort=usage_count`:获取排序后的模板列表\n- `PUT /events/{id}/status`:更新事件处理状态\n\n---\n\n### 约束\n1. **技术栈约束**\n - 开发语言JavaJVM平台\n - 框架Spring Boot + Vue.js 前后端分离架构\n - 数据库PostgreSQL主从集群 + Redis缓存集群\n - 中间件Kafka/MQTT消息队列、MinIO对象存储、Nginx反向代理\n\n2. **部署环境约束**\n - 操作系统CentOS、Kylin等主流Linux发行版\n - 部署方式Kubernetes容器化部署服务注册于同一集群\n - 网络安全仅允许指定IP访问防火墙限制非授权端口通信\n\n3. **性能约束**\n - 事件接收延迟 ≤ 500ms\n - 列表渲染响应时间 ≤ 1s万级数据量下\n - 支持≥1000并发用户访问\n - 数据备份保留周期 ≥ 30天\n\n4. **安全约束**\n - 数据传输全程启用HTTPS/TLS加密\n - 敏感字段地理位置、部队番号采用SM4/AES-256加密存储\n - 身份认证使用JWT令牌机制会话超时时间≤30分钟\n - 所有API参数需经过白名单过滤与SQL注入检测\n\n5. **标准合规约束**\n - 符合GJB 438C-2021文档规范要求\n - 界面设计遵循军用软件人机交互标准(色彩、字体、布局统一)\n\n6. **离线适应性**\n - 支持网络中断期间本地缓存事件数据,恢复后自动同步\n\n---\n\n### 测试建议\n1. **功能测试**\n - 验证事件接收单元能否正确解析JSON数据并返回ACK。\n - 测试事件状态流转逻辑是否符合设计路径。\n - 检查模板增删改查及版本切换功能是否正常。\n\n2. **性能测试**\n - 使用JMeter模拟上千个并发事件涌入场景测试系统吞吐量与延迟。\n - 利用Prometheus+Grafana监控CPU、内存、GC频率、接口耗时等指标。\n - 验证Redis缓存命中率及数据库读写分离效果。\n\n3. **可靠性测试**\n - 模拟网络中断、数据库宕机等异常情况,验证重试机制与故障转移能力。\n - 测试事务一致性,确保部分失败不会导致数据脏写。\n\n4. **安全性测试**\n - 进行渗透测试检查是否存在XSS、CSRF、SQL注入漏洞。\n - 验证JWT令牌有效性与权限控制策略是否严格。\n - 审计日志记录是否完整,敏感操作可追溯。\n\n5. **兼容性测试**\n - 在CentOS、Kylin等不同Linux系统上验证部署可行性。\n - 测试前端在多种分辨率终端上的显示一致性。\n\n6. **可维护性测试**\n - 验证配置中心是否支持不重启服务动态调整参数。\n - 检查ELK日志系统是否能按模块、级别、时间精准检索异常信息。\n\n7. **Mock集成测试**\n - 使用Mock服务模拟上游事件源与下游任务引擎独立测试ETMS核心逻辑。\n - 验证单元测试覆盖率 ≥ 80%,关键路径全部覆盖。\n\n8. **用户体验测试**\n - 组织指挥员参与原型评审,评估界面布局合理性与操作便捷性。\n - 验证悬停帮助提示、错误变红提醒等交互细节是否有效。",
"eventLogFile": "/app/agents/ai_agents/project-files/codegen-runs/codegen_5a1b9b15fdf349df8df115246afd64a2/events.ndjson",
"repoSettings": {
"username": "root",
"password": "pAssW0rd",
"repoUrl": "http://47.108.255.216:3000/root/task_plan.git",
"branch": "main"
},
"repoUrl": "http://47.108.255.216:3000/root/task_plan.git",
"branch": "main"
}