241 lines
16 KiB
Python
241 lines
16 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""
|
||
以《规则库设计与管理子系统*.docx》为版式与行文风格底稿,生成《方案自动化生成-*.docx》。
|
||
仅做 w:t 子串替换 + 顶层段落整段替换;不修改两份规则库参考文件本身。
|
||
|
||
段落谓词匹配 **原文**(子串替换之前)。
|
||
auto-solution-rule 子模块内部类设计、Drools 细节本文不展开;管理端 REST 仍按 Controller 描述。
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
from typing import Callable, List, Tuple
|
||
|
||
# 全局子串(长串优先),作用于全文 w:t(含表格)
|
||
SRS_SUBSTRINGS: List[Tuple[str, str]] = [
|
||
("规则库设计与管理子系统项目合同", "方案自动化生成系统项目合同"),
|
||
("规则库设计与管理子系统软件", "方案自动化生成系统软件"),
|
||
("规则库设计与管理子系统", "方案自动化生成系统"),
|
||
("规则库设计与子系统", "方案自动化生成系统"),
|
||
("方案自动生成", "方案自动化生成"),
|
||
]
|
||
|
||
SDD_SUBSTRINGS: List[Tuple[str, str]] = [
|
||
("规则库设计与管理子系统项目合同", "方案自动化生成系统项目合同"),
|
||
("规则库设计与管理子系统软件", "方案自动化生成系统软件"),
|
||
("规则库设计与管理子系统", "方案自动化生成系统"),
|
||
("规则库设计与子系统", "方案自动化生成系统"),
|
||
("方案自动生成", "方案自动化生成"),
|
||
("规则库软件外部接口", "方案自动化生成软件外部接口"),
|
||
("规则系统控制交互接口", "方案自动化生成系统控制交互接口"),
|
||
]
|
||
|
||
SRS_PARAGRAPH_PREDICATES: List[Tuple[Callable[[str], bool], str]] = [
|
||
(
|
||
lambda s: s.startswith("规则库设计与管理子系统主要由"),
|
||
(
|
||
"方案自动化生成系统(Maven 工程 auto-solution,版本 3.9.1)由以下 Maven 子模块协同构成:"
|
||
"auto-solution-admin 为 Spring Boot 管理端入口(com.solution.SolutionApplication),集中注册对外 REST Controller;"
|
||
"auto-solution-framework 提供安全认证(Spring Security、JWT 过滤器链)、Redis、MyBatis、Druid 数据源与全局异常、日志切面等横切能力;"
|
||
"auto-solution-common 提供 AjaxResult、TableDataInfo、分页、通用注解与工具类;"
|
||
"auto-solution-system 实现若依风格的系统管理域(用户、角色、菜单、部门、岗位、字典类型/数据、参数配置、通知公告、注册、个人资料等);"
|
||
"auto-solution-behaviour 承载行为树与节点建模(行为树 CRUD/复制/导出、按平台与场景查询指挥关系、节点实例 saveOrUpdate、节点连线、节点参数、节点模板与模板参数定义、节点命令枚举等);"
|
||
"auto-solution-scene 承载 AFSIM 场景与通信关系(场景列表/详情、保存场景 POST /api/system/scene/saveSceneConfig、场景下全部行为树与平台间关系查询);"
|
||
"auto-solution-algo 承载算法脚本元数据与执行入口(/api/algo/algorithm 列表/导入导出/CRUD 及 /run 调用外部脚本);"
|
||
"auto-solution-quartz 提供定时任务与执行日志(/monitor/job、/monitor/jobLog);"
|
||
"auto-solution-generator 提供基于 Velocity 的代码生成(/tool/gen)。"
|
||
"规则聚合配置、图谱、字典与参数元数据等 REST 由管理端 RuleController(/api/system/rule/config/**)发布,火力与平台元数据由 FireRuleController(/api/system/firerule/**)发布;"
|
||
"持久化、规则引擎与 Drools 协同细节在 auto-solution-rule 子模块内实现,本文不对该子模块作类级展开。"
|
||
"前端建模器 modeler 通过 axios 调用 /login、/getInfo、/logout 及 /api/** 业务接口;运维侧另具备 /system/**、/monitor/**、/common、/captchaImage 等管理台能力。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("支持对规则聚合数据进行配置与维护"),
|
||
(
|
||
"用户与会话:POST /login、POST /logout、GET /getInfo、GET /getRouters(SysLoginController);验证码 GET /captchaImage(CaptchaController);"
|
||
"注册 POST /register(SysRegisterController)。"
|
||
"系统管理(/system/**):用户 SysUserController、角色 SysRoleController、菜单 SysMenuController、部门 SysDeptController、岗位 SysPostController、"
|
||
"字典类型 SysDictTypeController、字典数据 SysDictDataController、参数配置 SysConfigController、通知 SysNoticeController、个人中心 SysProfileController。"
|
||
"公共文件:GET/POST /common/download、/common/upload、/common/uploads(CommonController)。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("(2)多形态规则表达与可视化展示"),
|
||
(
|
||
"(2)行为树与节点建模:行为树 GET/POST/PUT/DELETE /api/system/behaviortree/**(含 /list、/{id}、/copy、/export、按平台 /platform/{id}、从属 /underling/{platformId}、指挥员 /commander/{scenarioId}、更新树实例关联 PUT /behaviortreeId);"
|
||
"节点实例 /api/system/treenodeinstance(/list、/saveOrUpdate、导出等);节点连线 /api/system/nodeconnection;节点参数 /api/system/nodeparameter;"
|
||
"节点模板 /api/system/nodetemplate(含 /all、/listAll);模板参数定义 /api/system/templateparameterdef;节点命令枚举 GET /api/node/command/all(HbNodeCommandController)。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("(3)知识库源数据接入与全链路管理"),
|
||
(
|
||
"(3)仿真场景与通信:场景 GET /api/system/scene/list、GET /api/system/scene/{id}、POST /api/system/scene/saveSceneConfig;"
|
||
"场景下行为树 GET /api/system/scene/getAllTree/{id};场景下平台通信关系 GET /api/system/scene/getAllRelation/{id}。"
|
||
"火力与平台侧元数据(建模器通信用):GET /api/system/firerule/platforms/{scenarioId}、/platforms、/platforms/basic、GET /api/system/firerule/component/{platformId},武器/通信字典 GET /weapon、GET /comm,推演启动 POST /start,规则投递 POST /rule(以 FireRuleController 源码为准)。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("(4)领域知识与规则的结构化提取功能需求"),
|
||
(
|
||
"(4)规则聚合与算法扩展:规则聚合分页/图谱/四块图/详情与保存见 GET/POST/PUT/DELETE /api/system/rule/config/**;"
|
||
"规则主表 /api/system/rule 的 list/{id}/POST/PUT/DELETE 映射在 RuleController 内为块注释,当前未启用。"
|
||
"算法脚本:GET/POST/PUT/DELETE /api/algo/algorithm/** 与 POST /api/algo/algorithm/run。"
|
||
"auto-solution-rule 子模块内的领域对象、Mapper 与 Drools 规则加载不在本文展开。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("(5)规则库运维与资产化管理"),
|
||
(
|
||
"(5)平台运维与扩展:操作日志 /monitor/operlog、登录日志 /monitor/logininfor、在线用户 /monitor/online、服务监控 /monitor/server、缓存 /monitor/cache;"
|
||
"定时任务 /monitor/job、任务日志 /monitor/jobLog;代码生成 /tool/gen;联调示例 /test/user/**。"
|
||
"上述为管理端已装配、建模器未必全部调用的 B 类能力,与 A 类建模接口共同构成完整运维面。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: "规则库设计与子系统软件共分为" in s or s.startswith("规则库设计与管理子系统软件共分为"),
|
||
(
|
||
"方案自动化生成系统软件按业务域可划分为:用户与会话、系统管理、行为树与节点模板、仿真场景与通信、规则聚合配置与火力元数据、算法脚本、"
|
||
"定时任务与代码生成、监控与日志等;与表 1 及后续各小节功能需求叙述对应。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则聚合详情查询功能为规则建模与配置编辑提供数据加载能力"),
|
||
(
|
||
"规则聚合详情查询功能为规则建模与配置编辑提供数据加载能力;接口 GET /api/system/rule/config/{ruleCode},返回规则聚合主数据及参数、适用任务类型等,供建模器 rule-config 回显。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则聚合新增与修改保存功能负责将多维度规则建模结果持久化"),
|
||
(
|
||
"规则聚合新增与修改保存功能负责将多维度规则建模结果持久化;接口 POST /api/system/rule/config(新增)、PUT /api/system/rule/config(修改),请求体为 RuleConfig 结构。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则知识图谱查询与展示功能在规则聚合列表相同筛选"),
|
||
(
|
||
"规则知识图谱查询与展示功能在规则聚合列表相同筛选与分页条件下生成图谱数据;接口 GET /api/system/rule/config/graph。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("四块分区规则图谱查询与展示功能基于当前已启用的规则聚合数据"),
|
||
(
|
||
"四块分区规则图谱查询与展示功能基于当前已启用的规则聚合数据;接口 GET /api/system/rule/config/graph/four-blocks。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则参数元数据查询功能提供参数键、显示名称"),
|
||
(
|
||
"规则参数元数据查询功能提供参数键、显示名称、取值类型及校验约束等;接口 GET /api/system/rule/config/param-meta。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则字典数据查询功能按字典类型提供字典项列表查询"),
|
||
(
|
||
"规则字典数据查询功能按字典类型提供字典项列表查询;接口 GET /api/system/rule/config/dict/{dictType}。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则知识条目结构化提取功能用于将规则库中的规则主数据"),
|
||
(
|
||
"规则知识条目结构化提取功能用于将规则主数据与关联参数、任务类型等结构化分页返回;"
|
||
"当前以 GET /api/system/rule/config/list 为准(TableDataInfo)。"
|
||
"说明:GET /api/system/rule/list 等主表接口在 RuleController 中为块注释未启用。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则关系结构化提取与展示功能用于将规则条目之间的层级关系"),
|
||
(
|
||
"规则关系结构化提取与展示功能用于将规则条目之间的关联关系提取为图谱结构;"
|
||
"与 GET /api/system/rule/config/graph 及 auto-solution-rule 中图谱构建服务一致,不在本文展开实现类。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则聚合分页查询运维功能用于按条件分页查询规则聚合数据"),
|
||
(
|
||
"规则聚合分页查询运维功能用于按条件分页查询规则聚合数据;接口 GET /api/system/rule/config/list,与建模器侧栏列表一致。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则聚合删除运维功能用于按规则编码删除规则聚合数据"),
|
||
(
|
||
"规则聚合删除运维功能用于按规则编码删除规则聚合数据;接口 DELETE /api/system/rule/config/{ruleCodes}(路径变量以 Controller 定义为准)。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("本文与规则库设计与管理子系统合同之间的正向追踪表"),
|
||
"本版本不对正向/逆向追踪表作展开填写;需求与软设章节在文字中对应说明即可。",
|
||
),
|
||
(
|
||
lambda s: s.startswith("本文与规则库设计与管理子系统项目合同之间的逆向追踪性见下表"),
|
||
"同上。",
|
||
),
|
||
]
|
||
|
||
|
||
SDD_PARAGRAPH_PREDICATES: List[Tuple[Callable[[str], bool], str]] = [
|
||
(
|
||
lambda s: s.startswith("系统包含的功能模块有多维度规则建模"),
|
||
(
|
||
"系统包含的功能模块有:用户登录与会话、系统管理(用户/角色/菜单/部门/岗位/字典/配置/通知/个人中心)、"
|
||
"行为树与节点模板建模、仿真场景与通信关系、规则聚合与火力元数据接口、算法脚本、定时任务、代码生成、监控缓存与日志等;"
|
||
"主要软件部件与 Maven 子模块 auto-solution-admin、framework、common、system、behaviour、scene、algo、quartz、generator 对应,规则域持久化在 solution-rule 子模块。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则库设计与管理子系统主要由多维度规则建模"),
|
||
(
|
||
"方案自动化生成系统由各 Maven 子模块组成:"
|
||
"auto-solution-admin 为可执行 Jar 入口,扫描注册 com.solution.web.controller 下各业务 Controller;"
|
||
"auto-solution-framework 装配 SecurityConfig、RedisConfig、MyBatis、数据源与跨域、重复提交等过滤器;"
|
||
"auto-solution-system 提供 system 域 Service/Mapper(用户、角色、菜单等);"
|
||
"auto-solution-behaviour 提供行为树、节点实例、连线、参数、模板等域服务;"
|
||
"auto-solution-scene 提供场景与平台通信服务;"
|
||
"auto-solution-algo 提供算法实体与运行编排;"
|
||
"auto-solution-quartz、auto-solution-generator 分别以独立 Jar 被 admin 依赖并暴露 /monitor/job*、/tool/gen;"
|
||
"规则配置与执行相关 Bean 与 Drools 资源由 auto-solution-rule 提供并由 admin 引入,本文不展开该子模块内部包结构。"
|
||
"建模器 modeler 与若依管理端共用同一后端进程时,分别消费 /api/** 与 /system/**、/monitor/** 等路径。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("提供统一的规则聚合建模与配置管理能力"),
|
||
(
|
||
"提供统一的规则聚合建模与配置管理能力,并与行为树、场景、火力元数据、算法脚本等模块在同一管理端 Spring 容器中装配;"
|
||
"控制层按包划分:com.solution.web.controller.system、behaviour、scene、rule、algo、common、monitor、tool 等;"
|
||
"统一响应 AjaxResult、分页 TableDataInfo。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则库设计与管理子系统交互接口用于承接前端规则配置页面"),
|
||
(
|
||
"方案自动化生成系统交互接口用于承接建模器与管理端请求。"
|
||
"建模器侧典型路径:登录与用户信息;行为树与设计师 /api/system/behaviortree、/api/system/treenodeinstance、nodeconnection、nodeparameter、nodetemplate、templateparameterdef;"
|
||
"场景与通信 /api/system/scene/**、/api/system/firerule/**;规则配置 /api/system/rule/config/**;算法 /api/algo/algorithm/**。"
|
||
"管理端另含 /system/**、/monitor/**、/tool/gen、/common/** 等,详见各 Controller 的 @RequestMapping。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("规则库设计与管理子系统内部接口用于完成控制层、服务层"),
|
||
(
|
||
"方案自动化生成系统内部接口用于完成控制层、服务层、数据访问层之间的数据传递;"
|
||
"行为树、场景、算法各自模块内 Service 与 Mapper 交互;"
|
||
"规则聚合由 IRuleConfigService 等与 auto-solution-rule 内 Mapper、图谱 VO 构建协同;"
|
||
"定时任务由 ISysJobService 等与 Quartz 表交互;代码生成读取数据库元数据并填充 Velocity 模板。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("本系统数据处理接口用于规则体现,承接任务数据"),
|
||
(
|
||
"本系统数据处理接口除规则与任务数据外,还承接行为树节点实例批量保存、场景 JSON 配置、算法运行参数、"
|
||
"定时任务调度参数、用户导入导出二进制流等;具体字段以各 Controller 的 Java Bean 与 MyBatis XML 为准。"
|
||
),
|
||
),
|
||
(
|
||
lambda s: s.startswith("本软件处理结果接口用于输出规则查询、维护及图谱展示结果"),
|
||
(
|
||
"本软件处理结果接口用于输出规则查询、维护及图谱展示结果,并输出行为树、场景、火力平台列表、算法执行结果、"
|
||
"系统管理分页数据、监控指标等,统一封装为 AjaxResult 或 TableDataInfo。"
|
||
),
|
||
),
|
||
]
|