30 lines
9.0 KiB
JSON
30 lines
9.0 KiB
JSON
{
|
||
"projectId": 42,
|
||
"generationId": "codegen_47766ceaaeab4da19614e0d5bfc5a26e",
|
||
"language": "C++",
|
||
"status": "completed",
|
||
"fileIds": [
|
||
693
|
||
],
|
||
"outputDir": "/app/agents/ai_agents/project-files/codegen-runs/codegen_47766ceaaeab4da19614e0d5bfc5a26e",
|
||
"relativeOutputDir": "codegen-runs/codegen_47766ceaaeab4da19614e0d5bfc5a26e",
|
||
"generatedFiles": [
|
||
"CMakeLists.txt",
|
||
"README.md",
|
||
"events.ndjson",
|
||
"include/app.hpp",
|
||
"src/app.cpp",
|
||
"src/main.cpp",
|
||
"tests/basic_test.cpp"
|
||
],
|
||
"analysisSummary": "### 业务目标\n事件与任务管理软件(ETMS)作为战场任务规划系统(BTPS)的核心组件,旨在实现从战场临机事件感知到作战任务草案生成的全流程支持。系统通过接入、处理和展示战场态势事件,辅助指挥员在人机协同或自主模式下快速响应突发情况,提升作战决策效率与任务生成自动化水平。主要服务对象为作战指挥部门,部署于野战指挥所服务器集群,运行于内场模拟环境并向实战化场景演进。\n\n---\n\n### 功能清单\n1. **事件接收与校验** \n - 监听消息队列(MQTT/Kafka),接收上游模块推送的原始事件数据(JSON格式)。 \n - 校验数据完整性,返回ACK/NACK信号,支持重试与丢弃机制。\n\n2. **事件处理与存储** \n - 对合法事件进行清洗、格式化并写入数据库(t_event表)。 \n - 支持事件状态流转:Received → Processed → Pending Task/Rejected → Task Generated。\n\n3. **事件列表前端展示** \n - 分页查询事件数据,以列表形式渲染至前端界面。 \n - 按事件等级着色标识,支持滚动加载、排序及查看详情。\n\n4. **事件操作与排序** \n - 提供“处理”、“拒绝”等交互按钮,操作后即时反馈提示。 \n - 支持按威胁度、距离等维度自定义排序待处理事件列表。\n\n5. **任务生成准备** \n - 接收标记为“待处理”的事件列表,建立事件与潜在任务的映射关系。 \n - 触发任务生成流程前的数据上下文构建。\n\n6. **任务模板管理** \n - 接收并解析上级系统推送的任务模板集合(JSON/XML),增量更新本地模板库(t_task_template表)。 \n - 支持模板列表的搜索、排序与详情查看(含子任务树状结构)。\n\n7. **知识库版本选择** \n - 查询可用先验知识库版本列表(t_kb_version表),供用户选择锁定用于模板生成的版本。\n\n8. **人环模式下模板选择** \n - 在人机协同模式中,允许用户手动选择任务模板,并将选择结果传递至任务实例化模块。\n\n9. **自主推荐模式提示** \n - 在自主执行模式下,系统自动推荐匹配的任务模板,提供采纳、忽略或手动选择选项。\n\n10. **任务请求发送** \n - 组装任务生成请求报文,通过HTTP协议发送至外部任务规划引擎,触发正式任务规划流程。\n\n---\n\n### 数据结构\n#### 核心数据库表\n| 表名 | 字段说明 |\n|------|--------|\n| `t_event`(事件表) | id, event_id, event_type, timestamp, level, longitude, latitude, description, status, create_time |\n| `t_task_template`(任务模板表) | 模板ID、名称、类型、参数配置、子任务结构、创建时间、版本号等 |\n| `t_kb_version`(知识库版本表) | 版本ID、描述、生效时间、状态(启用/禁用)、创建人 |\n\n#### 缓存与文件存储\n- **Redis缓存**:用于缓存热点事件数据、会话信息及临时处理队列,提升高并发查询性能。\n- **MinIO对象存储**:存储完整的任务模板定义文件(JSON/XML),通过唯一ID索引,支持CDN加速访问。\n- **本地文件系统**:存放频繁读取的模板元数据副本及系统日志文件。\n\n#### 主要数据元素(接口级)\n| 接口 | 数据元素 | 类型 | 大小 | 描述 |\n|------|----------|------|------|------|\n| SRS-ETMS_I_EVT_RAW | eventId, eventType, timestamp, location | String, Enum, Long, Object | ≤64B, 2B, 8B, Variable | 原始事件数据流 |\n| SRS-ETMS_O_REQ_TSK | 事件引用、初始任务参数 | JSON对象 | - | 任务生成请求报文 |\n\n---\n\n### 接口或命令\n#### 外部接口\n| 接口标识 | 名称 | 方向 | 协议 | 数据格式 | 特征 |\n|--------|------|------|-------|---------|------|\n| SRS-ETMS_I_EVT_RAW | 接收原始事件数据 | 输入 | MQTT/TCP | JSON | 实时传输,带ACK/NACK控制 |\n| SRS-ETMS_O_REQ_TSK | 发送任务生成请求 | 输出 | HTTP POST | JSON | OAuth2.0认证,HTTPS加密 |\n| RESTful API | 用户指令与配置输入 | 输入 | HTTP | JSON | 接收用户操作指令 |\n| WebSocket | 实时事件推送 | 输出 | WebSocket | JSON Array | 向前端推送事件更新与状态变更 |\n\n#### 内部服务调用\n- **RPC调用**:各微服务单元间通过内部RPC协议协作(如gRPC或Dubbo)。\n- **消息总线**:使用Kafka/RabbitMQ实现异步事件通知与解耦通信。\n\n#### 前端交互接口\n| 功能 | 接口名称 | 方向 | 数据类型 | 描述 |\n|------|----------|------|----------|------|\n| 事件列表查询 | Query API | 输入 | JSON | 分页、筛选参数 |\n| 列表数据输出 | List Data | 输出 | JSON Array | 渲染前端列表 |\n| 自定义排序 | Sort Rule / Sort Field | 输入 | String | 排序维度(如威胁度、时间) |\n| 模板选择 | Select Template | 输入 | String | 用户选定的模板ID |\n| 版本选择 | Selected Ver | 输出 | String | 锁定的知识库版本ID |\n\n---\n\n### 约束\n1. **技术栈约束** \n - 开发语言:Java(基于Spring Boot框架) \n - 运行环境:Linux(CentOS/Kylin),JVM平台 \n - 数据库:PostgreSQL集群(主从架构),Redis缓存集群 \n - 存储:MinIO对象存储 + 本地文件系统 \n - 前端框架:Vue.js \n\n2. **安全约束** \n - 数据传输全程采用HTTPS/TLS加密 \n - 敏感字段(地理位置、部队番号)使用AES-256或国密SM4算法加密存储 \n - 身份认证采用JWT令牌机制,会话超时控制 \n - 基于角色的访问控制(RBAC),限制敏感操作权限 \n\n3. **性能约束** \n - 用户操作响应时间 ≤ 200ms \n - 支持上千个事件并发涌入场景下的稳定接收与处理 \n - 列表查询延迟 < 500ms(万级数据量) \n\n4. **部署与环境适应性** \n - 部署于Kubernetes集群,支持弹性伸缩 \n - 兼容低配置服务器,适应野战环境网络波动 \n - 支持离线缓存机制,网络恢复后自动同步数据 \n\n5. **标准合规性** \n - 符合GJB 438C-2021《军用软件开发文档通用要求》 \n - 界面设计符合GJB相关人机交互标准(颜色、字体、控件样式) \n\n6. **可维护性要求** \n - 代码注释率 ≥ 30% \n - 日志系统集成ELK栈,支持多维度检索 \n - 配置中心支持动态参数调整,无需重启服务 \n\n---\n\n### 测试建议\n1. **功能测试**\n - 验证事件接收、处理、入库全流程是否完整,异常数据能否被正确拦截。\n - 测试任务模板增删改查、版本切换、排序与搜索功能的准确性。\n - 模拟用户在人环模式下选择模板的操作路径,验证推荐逻辑与状态传递。\n\n2. **性能测试**\n - 使用JMeter模拟高并发事件注入(如1000+/秒),监测系统吞吐量、延迟及资源占用。\n - 通过Prometheus+Grafana监控CPU、内存、GC频率、数据库连接池使用情况。\n - 测试分页查询、列表渲染在大数据量下的响应速度。\n\n3. **可靠性测试**\n - 模拟网络中断、数据库宕机等故障场景,验证重试机制、心跳检测与节点切换能力。\n - 测试事务一致性,确保部分失败不会导致脏数据写入。\n\n4. **安全性测试**\n - 扫描API接口是否存在SQL注入、XSS漏洞。\n - 验证JWT令牌有效性与过期机制,防止会话劫持。\n - 检查敏感数据是否加密存储与传输。\n\n5. **兼容性测试**\n - 在不同Linux发行版(CentOS、Kylin)上验证软件运行稳定性。\n - 测试前端界面在多种终端分辨率下的显示一致性。\n\n6. **可测试性增强措施**\n - 内置自检程序:启动时检查数据库连接、中间件状态与配置完整性。\n - 关键节点埋点日志:记录输入输出与执行耗时,便于追踪问题。\n - 提供Mock服务:模拟上游事件源与下游任务引擎,支持独立单元与集成测试。\n\n7. **回归测试策略**\n - 建立自动化测试套件,覆盖核心业务流程。\n - 每次版本迭代后执行全量或增量回归测试,确保原有功能不受影响。",
|
||
"eventLogFile": "/app/agents/ai_agents/project-files/codegen-runs/codegen_47766ceaaeab4da19614e0d5bfc5a26e/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"
|
||
} |