37 lines
19 KiB
JSON
37 lines
19 KiB
JSON
{
|
||
"projectId": 42,
|
||
"generationId": "codegen_af1ed1d727e14f1cb7e99c1a9f65e3f6",
|
||
"language": "C++",
|
||
"status": "completed",
|
||
"fileIds": [
|
||
981
|
||
],
|
||
"outputDir": "D:\\workspace\\agent\\DocumentGenerateAgent\\agents\\ai_agents\\project-files\\codegen-runs\\codegen_af1ed1d727e14f1cb7e99c1a9f65e3f6",
|
||
"relativeOutputDir": "codegen-runs/codegen_af1ed1d727e14f1cb7e99c1a9f65e3f6",
|
||
"generatedFiles": [
|
||
"CMakeLists.txt",
|
||
"README.md",
|
||
"events.ndjson",
|
||
"include/app.hpp",
|
||
"include/distribution_monitor.hpp",
|
||
"include/event_handler.hpp",
|
||
"include/plan_manager.hpp",
|
||
"include/template_manager.hpp",
|
||
"src/distribution_monitor.cpp",
|
||
"src/event_handler.cpp",
|
||
"src/main.cpp",
|
||
"src/plan_manager.cpp",
|
||
"src/template_manager.cpp",
|
||
"tests/basic_test.cpp"
|
||
],
|
||
"analysisSummary": "### **业务目标** \n开发任务规划软件(TPS),作为战场任务规划系统的核心处理单元,实现从事件感知到任务生成、计划重配置、方案分发与执行监控的闭环管理。系统需支持高实时性、高可靠性的人机协同或自主任务规划能力,满足现代战争快节奏、高动态的指挥需求,提升任务规划效率和战场响应速度。\n\n---\n\n### **功能清单** \n\n1. **事件接收与处理**\n - 接收来自上游系统的临机事件和规划事件数据包(JSON/XML格式)\n - 支持TCP/IP自定义协议通信,具备心跳机制与断点续传能力\n - 数据合法性校验、缓存入队、确认反馈及异常处理\n\n2. **事件标准化处理**\n - 对原始事件进行过滤、时间戳/坐标系转换、封装为标准内部模型\n - 添加元数据(接收时间、处理节点ID等)\n - 处理延迟不超过500ms,失败时保留快照并报警\n\n3. **事件展示与交互**\n - 前端展示标准化事件列表,支持排序、分页、虚拟滚动\n - 提供“处理”“拒绝”操作按钮,状态变更可同步至后端\n - 列表加载时间≤1秒,失败时提供刷新机制\n\n4. **任务生成**\n - 接收待处理事件列表并在界面展示,支持多选\n - 用户选择事件并填写参数后生成任务草案\n - 至少选择一个事件方可提交,生成失败提示错误并保留输入\n\n5. **模板管理**\n - 接收推送的任务模板集合(JSON/XML),支持增量/全量更新\n - 页面可视化展示模板库,支持按版本、名称、更新时间排序\n - 展示模板详细信息及子任务需求树状结构\n - 支持人环模式下用户手动选择模板,锁定版本\n - 自主模式下运行匹配算法自动推荐最优模板\n - 支持先验知识库配置调整与参数合法性验证\n\n6. **计划管理**\n - 集中式计划列表管理,支持基于用户偏好的加权排序\n - 计划详情可视化展示,HITL节点触发人工干预通知\n - 支持计划重配置操作,可视化高亮变更部分\n - 分布式计划聚合管理,构建依赖关系图,运行一致性检查\n\n7. **方案分发**\n - 将最终任务方案分发至卫星、无人机、雷达等作战资产\n - 支持异构通信协议(军用数据链、UDP/TCP),含ACK确认与重传机制\n - 实时更新分发状态(成功/失败/发送中),失败支持重发\n\n8. **状态监控**\n - 实时接收资产遥测数据,解析并更新UI状态\n - 监控看板展示主计划与子任务状态,异常状态码触发报警\n - 数据刷新频率≥1Hz,通信中断显示最后已知状态并标记“数据陈旧”\n\n9. **通用质量特性支持**\n - 可靠性:模块化设计、双机热备、看门狗机制\n - 安全性:RBAC权限控制、输入验证、国密加密、多因素认证\n - 维护性:统一编码规范、注释率>30%、配置驱动、在线升级\n - 测试性:独立测试接口、自检功能、模拟数据工具、日志级别可调\n - 环境适应性:宽温宽湿运行、降级策略、电磁兼容设计\n\n---\n\n### **数据结构** \n\n#### **核心数据库表**\n\n**1. 事件表(Event)**\n| 字段名称 | 字段代码 | 类型 | 说明 |\n|--------|--------|------|------|\n| 事件ID | event_id | VARCHAR(64) | 主键,唯一标识 |\n| 事件类型 | event_type | VARCHAR(20) | 如“临机”“规划” |\n| 发生时间 | occur_time | DATETIME | 事件实际发生时间 |\n| 事件标题 | title | VARCHAR(255) | 简要描述 |\n| 事件描述 | description | TEXT | 详细内容 |\n| 位置坐标 | location | VARCHAR(100) | WGS-84或其他坐标系 |\n| 优先级 | priority | INT | 数值越大优先级越高 |\n| 状态 | status | VARCHAR(20) | 如“未处理”“已处理”“拒绝” |\n| 创建时间 | create_time | DATETIME | 系统记录时间 |\n\n**2. 任务模板表(TaskTemplate)**\n| 字段名称 | 字段代码 | 类型 | 说明 |\n|--------|--------|------|------|\n| 模板ID | template_id | VARCHAR(64) | 主键 |\n| 模板名称 | name | VARCHAR(100) | 显示名称 |\n| 版本号 | version | VARCHAR(20) | 如v1.0.0 |\n| 内容路径 | content_path | VARCHAR(255) | 文件存储路径 |\n| 适用场景 | scenario | VARCHAR(50) | 如“侦察”“打击” |\n| 是否启用 | enabled | BOOLEAN | 控制是否可用 |\n| 创建时间 | create_time | DATETIME | 记录时间 |\n\n**3. 模板版本表(TemplateVersion)**\n| 字段名称 | 字段代码 | 类型 | 说明 |\n|--------|--------|------|------|\n| ID | id | BIGINT | 自增主键 |\n| 模板ID | template_id | VARCHAR(64) | 关联模板 |\n| 版本号 | version | VARCHAR(20) | 版本标识 |\n| 发布时间 | release_time | DATETIME | 上线时间 |\n| 过期时间 | expire_time | DATETIME | 可为空 |\n| 状态 | status | VARCHAR(20) | “有效”“过期”“草稿” |\n\n**4. 任务计划表(TaskPlan)**\n| 字段名称 | 字段代码 | 类型 | 说明 |\n|--------|--------|------|------|\n| 计划ID | plan_id | VARCHAR(64) | 主键 |\n| 名称 | name | VARCHAR(100) | 计划名称 |\n| 关联事件 | event_ids | TEXT | JSON数组形式 |\n| 使用模板 | template_id | VARCHAR(64) | 引用模板 |\n| 当前状态 | status | VARCHAR(20) | “草案”“执行中”“完成”等 |\n| 创建时间 | create_time | DATETIME | 时间戳 |\n| 更新时间 | update_time | DATETIME | 最后修改时间 |\n\n**5. 计划节点表(PlanNode)**\n| 字段名称 | 字段代码 | 类型 | 说明 |\n|--------|--------|------|------|\n| 节点ID | node_id | VARCHAR(64) | 主键 |\n| 计划ID | plan_id | VARCHAR(64) | 外键关联 |\n| 节点类型 | type | VARCHAR(20) | “任务”“决策”“HITL”等 |\n| 内容 | content | TEXT | 描述或指令 |\n| 执行顺序 | order_index | INT | 排序依据 |\n| 状态 | status | VARCHAR(20) | 执行状态 |\n| 是否需人工干预 | hitl_required | BOOLEAN | 标记HITL节点 |\n\n**6. 分发日志表(DistributionLog)**\n| 字段名称 | 字段代码 | 类型 | 说明 |\n|--------|--------|------|------|\n| 日志ID | log_id | BIGINT | 主键 |\n| 方案ID | plan_id | VARCHAR(64) | 对应计划 |\n| 目标资产 | asset_type | VARCHAR(50) | 卫星/无人机等 |\n| 分发时间 | send_time | DATETIME | 发送时刻 |\n| 状态 | status | VARCHAR(20) | “成功”“失败”“重试” |\n| 重试次数 | retry_count | INT | 最大3次 |\n| 响应码 | ack_code | VARCHAR(20) | ACK/NACK等 |\n\n**7. 状态日志表(StatusLog)**\n| 字段名称 | 字段代码 | 类型 | 说明 |\n|--------|--------|------|------|\n| 日志ID | log_id | BIGINT | 主键 |\n| 资产ID | asset_id | VARCHAR(64) | 唯一标识 |\n| 状态码 | status_code | VARCHAR(20) | 如“OK”“ERROR_01” |\n| 详细信息 | detail_info | TEXT | 错误描述 |\n| 时间戳 | timestamp | DATETIME | 数据采集时间 |\n| 数据来源 | source | VARCHAR(50) | 数据链路标识 |\n\n---\n\n### **接口或命令** \n\n| 接口标识 | 名称 | 方向 | 协议 | 数据类型 | 功能描述 |\n|--------|------|------|-------|----------|-----------|\n| SRS-TPS_I_EVT_IN | 事件数据接口 | 输入 | TCP/IP + 自定义应用层协议 | JSON/XML | 接收原始事件数据包,支持心跳与断点续传 |\n| SRS-TPS_I_TMP_IN | 模板数据接口 | 输入 | HTTPS + RESTful API | JSON/XML | 接收模板集合,带数字签名验证 |\n| SRS-TPS_O_TASK_OUT | 任务分发接口 | 输出 | 军用数据链 / UDP/TCP | 二进制/JSON | 发送任务方案,含ACK确认与重传机制 |\n| SRS-TPS_I_STAT_IN | 状态遥测接口 | 输入 | 军用数据链 / UDP | 二进制 | 接收高频小包遥测数据,含时间戳与校验和 |\n\n---\n\n### **约束** \n\n1. **运行环境约束**\n - 操作系统:银河麒麟V10 SP2及以上\n - 硬件平台:国产八核处理器(≥2.5GHz)、32GB ECC内存、512GB SSD + 2TB RAID5存储\n - 网络:100Mbps以上带宽\n\n2. **性能约束**\n - 事件处理延迟 ≤ 500ms\n - 事件列表加载时间 ≤ 1秒\n - 状态监控刷新频率 ≥ 1Hz\n - 并发用户数 ≥ 10,事务吞吐量 ≥ 50 TPS\n\n3. **安全约束**\n - 静态数据采用国密算法加密\n - 传输过程使用HTTPS或加密数据链\n - RBAC权限控制,最小权限原则\n - 支持多因素认证与会话超时管理\n\n4. **可靠性约束**\n - 关键模块双机热备\n - MTBF ≥ 1000小时,MTTR ≤ 30分钟\n - 看门狗机制保障核心进程存活\n\n5. **维护性约束**\n - 注释率 > 30%\n - 支持配置文件动态生效\n - 在线平滑升级,不影响正在执行任务\n\n6. **环境适应性约束**\n - 通过高低温、湿热、振动、电磁兼容试验(GJB 151B)\n - 支持在带宽受限或资源紧张时降级运行\n\n---\n\n### **测试建议** \n\n1. **单元测试**\n - 各模块提供独立测试接口,覆盖边界条件与异常路径\n - 使用JUnit/TestNG对`process()`、`generate()`等核心方法进行覆盖率≥90%的测试\n\n2. **集成测试**\n - 验证事件接收→处理→展示全流程数据一致性\n - 模拟模板推送与版本切换,验证增量更新逻辑\n - 测试方案分发与ACK响应闭环,模拟网络丢包与重传\n\n3. **性能测试**\n - 使用JMeter模拟高并发事件流入,测试系统吞吐量与响应延迟\n - 使用LoadRunner模拟复杂计划生成与重配置场景,定位瓶颈\n\n4. **可靠性测试**\n - 模拟单节点宕机,验证双机热备切换能力\n - 注入异常数据包,验证系统容错与日志记录能力\n\n5. **安全性测试**\n - 进行SQL注入、XSS攻击模拟,验证输入过滤有效性\n - 检查敏感数据是否加密存储与传输\n - 审计权限控制逻辑,确保无越权访问\n\n6. **环境适应性测试**\n - 在高低温箱中运行系统,验证功能稳定性\n - 模拟低带宽网络,测试降级策略是否生效\n - 进行电磁干扰测试,确保通信正常\n\n7. **可用性测试**\n - 组织指挥员参与UAT,评估界面布局合理性与操作流畅度\n - 验证深色主题在强光/弱光环境下可视性\n - 检查关键操作是否有明确反馈与帮助提示\n\n---\n\n### **需求可追踪性明细** \n\n| 序号 | CSCI需求标识 | CSCI需求名称 | 需求描述 | 来源文档 | 实现/验证职责或业务方法 |\n|-----|--------------|----------------|----------|------------|----------------------------|\n| 1 | SRS-F-01-001 | 接收临机事件和规划事件 | 接收来自事件生成模块或上游情报系统的事件数据包,支持JSON/XML格式,通过TCP/IP协议传输,具备心跳机制和断点续传能力 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-01` 事件接收单元 → `receiveEvent()` 方法监听端口,解析数据,返回ACK,支持本地缓存 |\n| 2 | SRS-F-01-002 | 事件数据过滤转化封装 | 对接收到的事件数据进行字段过滤、时间戳与坐标系格式转换,并封装为标准内部事件模型,添加接收时间、处理节点ID等元数据 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-02` 事件处理单元 → `processEvent()` 方法执行过滤、转换、封装逻辑,输出标准化对象 |\n| 3 | SRS-F-01-003 | 前端展示事件列表 | 将标准化后的事件数据以表格或卡片形式在前端界面展示,包含事件ID、类型、时间、标题、优先级等字段 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-03` 事件展示单元 → `renderList()` 方法查询数据库并渲染HTML/JSON数据至前端 |\n| 4 | SRS-F-01-004 | 事件列表排序与操作 | 支持用户对事件列表按时间、优先级等字段进行排序,并提供“处理”“拒绝”等操作按钮,点击后弹出确认框并更新状态 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-03` 事件展示单元 → `queryEvents()` 接收排序参数,`updateStatus()` 处理状态变更请求 |\n| 5 | SRS-F-02-001 | 接收待处理事件列表 | 从事件处理模块获取尚未生成任务的事件集合,用于后续任务生成流程 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-04` 任务生成单元 → `getPendingEvents()` 方法调用事件服务获取待处理事件 |\n| 6 | SRS-F-02-002 | 展示待处理事件列表 | 在任务生成界面左侧区域展示待处理事件列表,支持多选操作 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-04` 任务生成单元 → 前端组件绑定事件列表数据,支持勾选交互 |\n| 7 | SRS-F-02-003 | 待处理事件自定义排序 | 允许用户根据常用程度、发生时间等维度对事件列表进行重新排序 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-04` 任务生成单元 → `generateTask()` 接收排序参数并调整显示顺序 |\n| 8 | SRS-F-02-004 | 生成作战任务并送交处理 | 用户选择一个或多个事件后,点击“生成任务”按钮,系统创建任务草案并提交至任务生成引擎处理 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-04` 任务生成单元 → `submitTask()` 方法组装参数,调用任务引擎生成草案 |\n| 9 | SRS-F-03-001 | 任务模板先验知识库版本选择 | 提供版本下拉框,允许用户选择已发布且未过期的任务模板版本 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-05` 模板管理单元 → `getConfig()` 返回可用版本列表,前端渲染下拉框 |\n| 10 | SRS-F-03-002 | 先验知识库配置调整 | 支持用户调整模板库相关配置参数,系统验证其合法性后更新本地或服务器端配置文件 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-05` 模板管理单元 → 配置服务接收参数,验证后持久化至配置中心 |\n| 11 | SRS-F-04-001 | 接收推送的任务模板集合数据 | 接收上级单位或云服务推送的任务模板集合数据包,解析后进行增量或全量更新 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-05` 模板管理单元 → `receiveTemplates()` 接口接收数据包,比对版本后更新存储 |\n| 12 | SRS-F-04-002 | 页面可视化展示任务模板集合 | 在模板库页面以网格视图展示所有可用模板,包括缩略图、名称和适用场景 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-05` 模板管理单元 → `getTemplateList()` 查询模板数据,前端渲染网格布局 |\n| 13 | SRS-F-04-003 | 任务模板列表自定义排序 | 支持用户按常用程度、更新时间或名称对模板列表进行排序 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-05` 模板管理单元 → 前端接收排序指令,调用排序算法重新排列 |\n| 14 | SRS-F-04-004 | 展示任务模板详细信息及子任务需求 | 点击模板项可展开详情弹窗,递归加载子任务树状结构 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-05` 模板管理单元 → 加载模板内容文件,解析JSON/XML结构并渲染树形控件 |\n| 15 | SRS-F-04-005 | 人环模式下用户选择任务模板 | 在人机协同模式下,用户可点击“选用此模板”按钮选择模板,系统记录选择结果并锁定版本 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-05` 模板管理单元 → `selectTemplate()` 接收用户选择,写入会话或任务上下文 |\n| 16 | SRS-F-04-006 | 自主执行模式下任务模板自动选择提示 | 在自主模式下,系统运行匹配算法计算各模板适配度,选出最高分模板并向用户发出提示 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-05` 模板管理单元 → 匹配引擎计算适配度,`notifyUser()` 发送推荐提示 |\n| 17 | SRS-F-05-001 | 集中式计划管理与偏好排序 | 支持集中管理所有任务计划,并根据用户设定的权重进行排序 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-06` 计划管理单元 → `sortPlans()` 接收权重参数,执行排序算法 |\n| 18 | SRS-F-05-002 | 计划详情可视化与HITL通知 | 可视化展示计划图谱,当遇到需人工干预节点时,推送通知给指定用户 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-06` 计划管理单元 → `notifyHITL()` 触发消息推送服务,前端标记HITL节点 |\n| 19 | SRS-F-05-003 | 计划重配置操作与可视化 | 支持对计划进行修改,执行重配置算法生成新计划,并以差异对比方式高亮显示变更部分 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-06` 计划管理单元 → `reconfigurePlan()` 执行算法,前端使用diff视图展示变化 |\n| 20 | SRS-F-05-004 | 分布式计划管理与算法处理 | 支持聚合多个来源的计划,构建依赖关系图,并运行一致性检查算法 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-06` 计划管理单元 → 聚合服务合并多源计划,一致性检查器验证逻辑冲突 |\n| 21 | SRS-F-06-001 | 方案驱动分发与状态响应 | 将任务方案分发至卫星、无人机、雷达等资产,监听ACK信号,更新状态指示灯 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-07` 方案分发单元 → `distributePlan()` 发送方案,`receiveAck()` 更新状态 |\n| 22 | SRS-F-06-002 | 驱动状态监控与异常信息展示 | 实时接收资产遥测数据,解析后更新监控看板,检测异常状态码时触发报警 | XXX-SRS-001 任务规划软件需求规格说明 | `SU-08` 状态监控单元 → `receiveTelemetry()` 解析数据,`triggerAlarm()` 报警 |",
|
||
"eventLogFile": "D:\\workspace\\agent\\DocumentGenerateAgent\\agents\\ai_agents\\project-files\\codegen-runs\\codegen_af1ed1d727e14f1cb7e99c1a9f65e3f6\\events.ndjson",
|
||
"repoSettings": {
|
||
"username": "root",
|
||
"password": "pAssW0rd",
|
||
"repoUrl": "http://47.108.255.216:3000/root/task_plan_execute_2.git",
|
||
"branch": "main"
|
||
},
|
||
"repoUrl": "http://47.108.255.216:3000/root/task_plan_execute_2.git",
|
||
"branch": "main"
|
||
} |