34 lines
9.5 KiB
JSON
34 lines
9.5 KiB
JSON
{
|
||
"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 - 开发语言:Java(JVM平台)\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"
|
||
} |