status: done created: 2026-05-27 complexity: 🔴复杂
当前低代码模块已经具备业务领域、数据模型、应用搭建、预览发布、AI 生成、代码预览和运行态 CRUD 能力,但整体产品形态仍偏“开发工具”和“低代码配置后台”。对于 CRM、合同、项目、采购、服务工单等明确业务场景,业务人员更希望看到的是“可直接启用和扩展的业务应用”,而不是先理解模型、页面协议、JSON 配置、发布版本和代码生成。
用户当前诉求可以概括为:
本次重构目标是将现有“低代码搭建器中心”调整为“业务应用平台中心”:
基础底座 → 核心引擎 → 业务套件 → 业务对象 → 应用入口 → 渠道接入 → 外部扩展
第一阶段不重写低代码运行时,不另起独立工程,而是在现有 Forge 工程内新增业务化应用平台模块。现有 ai_crud_config、ai_lowcode_model、ai_lowcode_domain 和动态 CRUD 运行链路继续保留;新模块先在产品入口、应用类型、能力挂接协议和 CRM 样板上完成业务化重构。
REBUILD 示例的关键借鉴点是“业务对象驱动”:先定义订单实体,再通过引用字段建立客户和订单关系,将订单明细作为依附主订单的明细实体,然后配置列表/表单布局、触发器、报表导出和数据导入。Forge 不应照搬成纯实体管理系统,但需要把“实体 → 关系 → 明细 → 布局 → 自动化 → 导入导出/报表”作为业务建模主线。
Forge 的低代码能力不再直接对业务人员表达为“页面搭建器”或“配置中心”,而是表达为“企业应用装配平台”。
平台对业务人员提供:
平台对实施和开发人员保留:
低代码继续存在,但不作为所有业务建设的唯一主入口。它在新产品结构中的定位是:
低代码不强制承担:
forge-admin-ui/src/views/ai/lowcode-apps.vue:当前低代码应用列表页,按业务领域组织应用,集成 AI 智能开发、数据模型设计、导入配置、新建应用、应用卡片、代码预览等能力。forge-admin-ui/src/views/ai/lowcode-builder.vue:当前低代码应用搭建器,负责应用基础信息、模型选择、页面配置、预览、保存草稿、代码预览、下载代码和发布上线。forge-admin-ui/src/views/ai/lowcode-models.vue:当前数据模型设计页,维护 ai_lowcode_model.model_schema。forge-admin-ui/src/views/ai/crud-page.vue:当前动态低代码运行页,通过 configKey 渲染运行态 CRUD。LowcodeAppController:提供低代码应用分页、详情、草稿、预览、发布、版本、回滚、迁移领域等接口。LowcodeModelController:提供低代码模型分页、详情、创建、更新、启停、删除、DDL 预览等接口。AiCrudConfigController:提供 ai_crud_config 配置管理、运行渲染、AI 生成和代码下载等能力。DynamicCrudController:提供 /ai/crud/{configKey} 动态 CRUD 运行接口。AiCrudConfigGenerateService 和 LowcodeRuntimeConfigBuilder:已经能将模型和页面协议转换为运行态 AiCrudConfig。本次不新建独立工程,继续基于现有 Forge 工程演进。
原因:
推荐做法:
forge-plugin-generator 内新增业务应用平台相关服务,或新增 forge-plugin-app 作为业务应用平台插件。src/views/app-center/ 页面目录,不直接重写 src/views/ai/lowcode-apps.vue。options JSON。业务建模主线调整为:
业务套件 → 业务对象/实体 → 对象关系 → 对象能力 → 应用入口
| 层级 | 示例 | 说明 |
|---|---|---|
| 业务套件 | CRM | 组织一组业务对象、流程、看板、移动入口和集成能力 |
| 业务对象/实体 | 客户、联系人、线索、商机、合同、回款 | 业务人员理解和维护的核心对象,也是低代码模型的业务化表达 |
| 对象关系 | 客户-联系人、客户-商机、商机-合同、合同-回款、合同-合同明细 | 通过引用、主子明细、关联列表等方式表达对象之间的业务关系 |
| 对象能力 | 列表、表单、详情、导入、导出、报表、触发器、审批、消息、权限 | 挂在对象上的标准能力,避免业务人员到系统配置里寻找 |
| 应用入口 | PC 后台、H5、看板、嵌入页、第三方推送 | 面向不同渠道和场景的入口,不取代业务对象本身 |
新增业务化导航结构:
| 一级入口 | 面向对象 | 说明 |
|---|---|---|
| 应用中心 | 业务人员、实施人员 | 展示 CRM、合同、项目、采购、工单等业务套件、业务对象和应用入口 |
| 引擎中心 | 产品负责人、实施顾问 | 管理流程、审批、报表、权限、消息等通用能力 |
| 移动端中心 | 移动场景负责人 | 管理 H5、移动待办、移动审批、移动业务入口 |
| 集成中心 | 集成实施人员 | 管理开放接口、事件推送、企微、飞书、钉钉 |
| 平台设置 | 系统管理员 | 管理组织、用户、菜单、字典、文件和系统参数 |
| 开发者工具 | 平台开发人员 | 保留模型设计、低代码搭建器、JSON 配置、代码生成等能力 |
新增标准应用类型:
应用类型只表达入口和渠道形态,不替代业务对象/实体。客户管理、合同管理这类标准后台入口可以关联到业务对象;销售看板、移动拜访、第三方推送则作为面向场景的应用入口存在。
| 应用类型 | 编码 | 说明 |
|---|---|---|
| 业务应用 | BUSINESS |
客户管理、合同管理、商机管理、工单管理等标准对象入口 |
| 嵌入应用 | EMBEDDED |
大屏、BI、外部系统页面、第三方页面嵌入 |
| 移动应用 | MOBILE |
H5 页面、移动审批、移动待办、移动业务入口 |
| 集成应用 | INTEGRATION |
开放接口、Webhook、企微、飞书、钉钉推送配置 |
业务对象/实体是本次重构的核心建模语言,位于业务套件和应用入口之间。
| 概念 | 示例 | 产品表达 |
|---|---|---|
| 业务套件 | CRM | 一组业务对象和业务场景的集合 |
| 业务对象/实体 | 客户、联系人、线索、商机、合同、回款 | 业务人员看到和维护的核心对象 |
| 引用关系 | 商机关联客户、合同关联合同主体 | 业务化表达为“关联客户”“关联合同”,不暴露外键概念 |
| 明细关系 | 合同-合同明细、订单-订单明细 | 明细实体依附主实体,是对象关系类型,不只是页面模板 |
| 关联列表 | 客户下的联系人、客户下的商机 | 在详情页呈现下级对象或关联对象 |
| 对象布局 | 列表布局、表单布局、详情布局 | 围绕对象配置字段展示和交互 |
| 对象自动化 | 金额汇总、逾期提醒、阶段变化通知 | 轻量业务触发器,不等同于 Flowable 审批流程 |
| 对象数据能力 | 导入、导出、报表模板 | 挂在对象上,例如“导入客户”“导出合同”“合同报表” |
第一阶段可以继续复用 ai_lowcode_model 承载底层模型 Schema,但产品文案和导航必须把“模型”表达为“业务对象/实体”。如果新增表结构,建议使用 ai_business_object 显式承载业务对象,避免 ai_business_app 同时承担对象和入口两种职责。
业务应用和业务对象不直接内置所有能力,而是通过标准挂接协议按需启用。挂接目标应支持业务套件、业务对象和应用入口三类对象。
| 能力类型 | 编码 | 示例 |
|---|---|---|
| 流程能力 | FLOW |
商机推进流程、合同流转流程 |
| 审批能力 | APPROVAL |
合同审批、折扣审批、回款审批 |
| 报表能力 | REPORT |
销售看板、客户增长分析、回款分析 |
| 权限能力 | PERMISSION |
区域可见、部门可见、个人可见 |
| 消息能力 | MESSAGE |
到期提醒、审批通知、商机跟进提醒 |
| 触发器能力 | TRIGGER |
合同金额自动汇总、阶段变更提醒、逾期待办生成 |
| 数据导入能力 | IMPORT |
导入客户、导入联系人、导入合同明细 |
| 数据导出能力 | EXPORT |
导出客户、导出合同、导出回款记录 |
| 移动能力 | MOBILE |
H5 待办、移动客户拜访 |
| 集成能力 | INTEGRATION |
企微通知、飞书待办、钉钉消息 |
本次业务应用平台重构必须遵循“业务化包装优先、底层能力复用优先、重复建设禁止”的原则。应用中心、业务对象中心、引擎中心、移动端中心和集成中心是新的业务化入口和编排层,不应复制现有低代码管理后台已经具备的模型、页面、发布、运行、导入导出、AI 生成和代码生成能力。
| 业务化能力 | 优先复用现有能力 | 新业务平台职责 |
|---|---|---|
| 业务套件 | ai_lowcode_domain、LowcodeDomainService、lowcodeDomainTree、lowcodeDomainDefaults |
将低代码领域包装为业务套件,补充业务说明、启用范围、应用包归属和展示口径 |
| 业务对象/实体 | ai_lowcode_model、LowcodeDataModelService、LowcodeModelDesigner、LowcodeSchemaValidator |
将低代码模型包装为业务对象,补充对象类型、显示字段、对象关系和对象能力入口 |
| 字段、表结构、DDL | LowcodeDdlService、LowcodeDdlRepository、lowcodeDdlPreview、lowcodeImportDbTableModel |
业务页面只提供向导入口和结果摘要,表结构预览、导入数据库表、DDL 执行继续复用低代码模型能力 |
| 表单、列表、详情布局 | LowcodePageBuilder、LowcodePreviewPane、LowcodePageSchema |
对象详情页以“布局配置”入口跳转或嵌入现有搭建器,不重新实现一套页面设计器 |
| 应用草稿、预览、发布、回滚 | LowcodeAppService、LowcodePublishService、ai_crud_config、ai_crud_config_version |
应用入口只保存业务归属、入口类型和打开方式,标准业务应用的运行配置继续由低代码发布链路生成 |
| 运行态 CRUD | DynamicCrudController、DynamicCrudService、forge-admin-ui/src/views/ai/crud-page.vue |
BUSINESS + RUNTIME 入口解析到现有 /ai/crud-page/{configKey},不新增第二套动态 CRUD 运行时 |
| 导入导出 | DynamicCrudExcelService、动态 CRUD /import、/export、/import-template |
对象级“导入/导出”只是业务入口和权限包装,实际模板下载、导入校验、导出任务继续复用现有服务 |
| AI 生成应用 | LowcodeAiGenerateService、lowcodeAiStreamGenerateApp、lowcode_system_generator |
应用中心提供“从业务描述生成对象/应用草稿”的入口,生成协议和 Agent 配置继续复用现有低代码 AI 链路 |
| 代码预览和下载 | LowcodeCodegenService、lowcodeAppCodePreview、lowcodeDownloadAppCode |
开发者入口保留代码预览和 ZIP 下载,业务用户默认不展示代码生成细节 |
| 数据权限策略 | LowcodePolicyService、DynamicDataScopeService |
对象级权限能力展示和挂接配置复用现有策略协议,后续只补业务化配置入口 |
| 页面模板 | AiPageTemplateController、页面模板管理 |
业务对象创建时可选择模板,但模板维护仍放在开发者工具 |
复用边界要求:
ai_business_* 表只承载业务化主数据、对象关系、应用入口和能力挂接,不复制 model_schema、page_schema、运行态 CRUD 配置和代码生成参数。为解决“CRM 场景只加载 CRM 相关模块”和后续复制交付问题,需要在业务套件之上补充轻量“应用包”视角。第一阶段可不新增独立应用包表,但 spec 和实现应预留应用包语义,优先通过 ai_business_suite、ai_business_app、ai_business_binding 和初始化脚本表达。
应用包至少包含:
应用包生命周期建议分阶段实现:
| 阶段 | 能力 | 说明 |
|---|---|---|
| 第一阶段 | 启用/停用 | 通过套件、对象、应用入口状态控制菜单和卡片可见性 |
| 第一阶段 | 初始化 | 通过 Flyway 初始化 CRM 样板应用包,不要求图形化安装器 |
| 第二阶段 | 复制/克隆 | 支持复制 CRM 套件为客户专属套件,复用底层低代码模型和运行配置 |
| 第二阶段 | 导入/导出 | 支持导出套件元数据包,导入到其他租户或环境 |
| 第三阶段 | 升级/兼容检查 | 支持模板包升级、依赖检查、冲突检测和回滚 |
第一阶段不要求完成完整应用市场或插件市场,但业务平台的数据结构和页面文案不能阻断后续应用包化。
/ai/crud-page/{configKey} 运行页。ai_lowcode_model,但产品侧展示为业务对象/实体。ai_crud_config 继续作为运行时事实来源,不直接删除。为避免应用中心再次退化为实施后台配置,需要补充面向业务人员和交付人员的自助搭建向导。第一阶段可以先做流程入口和跳转串联,不要求重写所有配置组件。
推荐主流程:
LowcodeModelDesigner、模型校验、DDL 预览和数据库表导入能力。LowcodePublishService 生成 ai_crud_config 运行配置。ai_business_app 中登记 BUSINESS + RUNTIME 入口。/ai/crud-page/{configKey} 或对象详情中的运行入口。复用要求:
能力挂接不能长期只停留在“登记”。第一阶段允许只保存配置,但 spec 需要明确后续最小闭环,并尽量复用现有平台能力。
| 能力类型 | 第一阶段 | 后续最小闭环 | 复用优先级 |
|---|---|---|---|
IMPORT |
对象能力中展示导入入口 | 调用动态 CRUD 导入模板和导入接口,回显导入结果 | 复用 DynamicCrudExcelService |
EXPORT |
对象能力中展示导出入口 | 调用动态 CRUD 导出接口和导出任务查询 | 复用 DynamicCrudExcelService、AiCrudExportTask |
PERMISSION |
保存对象权限挂接 | 对接现有数据权限策略和菜单按钮权限 | 复用 LowcodePolicyService、DynamicDataScopeService、sys_resource |
APPROVAL |
保存审批挂接 | 对象新增/状态变更时可发起指定审批流程 | 复用 Flowable 和现有流程配置 |
FLOW |
保存流程挂接 | 对象详情展示流程状态、流转记录和发起入口 | 复用现有流程引擎 |
MESSAGE |
保存消息挂接 | 对象事件触发站内消息、待办或提醒 | 复用消息中心 |
REPORT |
保存报表挂接 | 对象详情或套件详情打开对应报表/看板 | 复用现有报表、大屏和嵌入应用入口 |
TRIGGER |
保存触发器配置 | 支持字段汇总、状态提醒、待办生成等少量内置动作 | 优先复用消息、定时任务和动态 CRUD 数据访问 |
MOBILE |
保存 H5 入口 | 移动端按对象展示列表、详情、审批和待办 | 复用运行态配置和权限 |
INTEGRATION |
保存集成入口 | 组织同步、SSO、消息推送、待办同步 | 复用现有认证、组织、消息和外部 API 能力 |
最小闭环优先级:
嵌入应用需要满足“快速接入大屏和外部系统”,但不能绕过平台权限和安全边界。第一阶段至少定义规范和配置字段,后续逐步实现。
必备规范:
ROUTE、IFRAME、EXTERNAL、H5、API 五类打开方式。open-info 接口,由后端完成状态、权限和入口模式校验。postMessage 协议,明确允许的事件类型和来源校验。第一阶段可只实现入口登记、权限校验和打开方式解析;白名单、SSO、postMessage 事件协议作为第二阶段重点。
移动端中心和集成中心第一阶段只做入口和配置管理,但需要提前明确后续复用路线。
移动端复用路线:
第三方集成复用路线:
configKey、JSON、Schema 等技术概念作为主信息。ai_business_* 只作为业务化编排主数据,不能成为 ai_lowcode_model、ai_crud_config、ai_crud_config_version 的第二套事实来源。configKey 和动态 CRUD/低代码发布链路完成。第一阶段建议控制表结构变更,但数据模型要避免把“业务套件、业务对象、应用入口、能力挂接”都压进 ai_business_app。推荐分层如下:
| 表名 | 定位 |
|---|---|
ai_business_suite |
业务套件,例如 CRM、合同、项目、采购、服务 |
ai_business_object |
业务对象/实体,例如客户、联系人、商机、合同、回款 |
ai_business_object_relation |
对象关系,例如引用关系、明细关系、关联列表 |
ai_business_app |
应用入口,例如客户管理、销售看板、移动拜访、第三方推送 |
ai_business_binding |
能力挂接,例如审批、报表、消息、触发器、导入、导出 |
如果第一阶段不新增全部表,可以先复用 ai_lowcode_domain 承载业务套件、复用 ai_lowcode_model 承载业务对象,但产品文案、接口 VO 和前端页面必须表达为“业务套件”和“业务对象/实体”。
| 表名 | 用途 |
|---|---|
ai_crud_config |
继续保存标准业务应用运行时配置 |
ai_lowcode_model |
继续保存业务数据模型;第一阶段可作为业务对象底层模型 |
ai_lowcode_domain |
继续保存业务领域;第一阶段可作为业务套件基础 |
ai_crud_config_version |
继续保存发布版本 |
sys_resource |
保存新增菜单、按钮和应用入口权限 |
sys_dict_type/sys_dict_data |
保存应用类型、接入类型、引擎类型等字典 |
优先方案:新增业务化扩展表,避免继续把所有业务化属性塞进 ai_crud_config.options。
| 操作 | 表名 | 说明 |
|---|---|---|
| 新增 | ai_business_suite |
业务套件主表,承载 CRM、合同、项目等套件 |
| 新增 | ai_business_object |
业务对象/实体表,承载客户、合同、商机等对象 |
| 新增 | ai_business_object_relation |
对象关系表,承载引用、明细、关联列表等关系 |
| 新增 | ai_business_app |
应用入口表,承载 PC 后台、H5、看板、嵌入页、集成入口 |
| 新增 | ai_business_binding |
能力挂接表,承载流程、审批、报表、权限、消息、触发器、导入、导出、移动、集成绑定 |
| 新增 | ai_business_app_version |
可选,应用入口配置版本;第一阶段可复用 ai_crud_config_version |
新增业务表和现有低代码表必须保持单向引用关系,避免双写导致主数据冲突。
| 业务表 | 关联现有表 | 关系说明 |
|---|---|---|
ai_business_suite |
ai_lowcode_domain |
可通过 suite_code = domain_code 或扩展字段保存来源领域 ID,业务套件只补展示和应用包语义 |
ai_business_object |
ai_lowcode_model |
通过 model_id、model_code 关联底层模型;字段、表名、索引、DDL 仍以 model_schema 为准 |
ai_business_app |
ai_crud_config |
通过 config_key 关联运行态配置;标准业务应用不复制页面 Schema 和 API 配置 |
ai_business_binding |
流程、报表、消息、权限等现有配置 | 通过 binding_key 记录外部能力业务键,不复制外部能力详细配置 |
ai_business_object_relation |
ai_lowcode_model.model_schema |
第一阶段保存业务关系表达;后续若要生成运行态主子表,必须同步回低代码模型关系协议 |
数据治理规则:
model_schema、page_schema、config_key 对应的运行配置只能由现有低代码发布链路生成和更新。ai_business_suite 建议字段| 字段 | 类型 | 说明 |
|---|---|---|
id |
bigint | 主键 |
tenant_id |
bigint | 租户 ID,默认 1 |
suite_code |
varchar | 套件编码,例如 CRM |
suite_name |
varchar | 套件名称,例如 CRM |
icon |
varchar | 套件图标 |
description |
varchar | 业务说明 |
status |
int | 状态:1 启用,0 禁用 |
sort_order |
int | 排序 |
options |
json | 扩展配置 |
| 标准字段 | - | create_by/create_time/create_dept/update_by/update_time |
ai_business_object 建议字段| 字段 | 类型 | 说明 |
|---|---|---|
id |
bigint | 主键 |
tenant_id |
bigint | 租户 ID,默认 1 |
suite_code |
varchar | 所属业务套件编码 |
object_code |
varchar | 业务对象编码,例如 CUSTOMER、CONTRACT |
object_name |
varchar | 业务对象名称,例如 客户、合同 |
object_type |
varchar | 对象类型:MASTER/DETAIL/LOOKUP/TRANSACTION |
model_id |
bigint | 关联 ai_lowcode_model.id,可为空 |
model_code |
varchar | 关联底层模型编码,可为空 |
display_field |
varchar | 默认展示字段,例如客户名称、合同名称 |
icon |
varchar | 对象图标 |
description |
varchar | 业务说明 |
status |
int | 状态:1 启用,0 禁用 |
sort_order |
int | 排序 |
options |
json | 扩展配置 |
| 标准字段 | - | create_by/create_time/create_dept/update_by/update_time |
ai_business_object_relation 建议字段| 字段 | 类型 | 说明 |
|---|---|---|
id |
bigint | 主键 |
tenant_id |
bigint | 租户 ID,默认 1 |
suite_code |
varchar | 所属业务套件编码 |
source_object_code |
varchar | 来源对象编码 |
target_object_code |
varchar | 目标对象编码 |
relation_type |
varchar | REFERENCE/DETAIL/CHILD_LIST/MANY_TO_MANY |
relation_name |
varchar | 关系名称,例如 关联客户、合同明细 |
source_field_code |
varchar | 来源对象字段编码,可为空 |
target_field_code |
varchar | 目标对象字段编码,可为空 |
relation_config |
json | 关系配置 |
status |
int | 状态:1 启用,0 禁用 |
| 标准字段 | - | create_by/create_time/create_dept/update_by/update_time |
ai_business_app 建议字段| 字段 | 类型 | 说明 |
|---|---|---|
id |
bigint | 主键 |
tenant_id |
bigint | 租户 ID,默认 1 |
app_code |
varchar | 应用入口编码,唯一 |
app_name |
varchar | 应用入口名称 |
app_type |
varchar | 应用类型:BUSINESS/EMBEDDED/MOBILE/INTEGRATION |
suite_code |
varchar | 业务套件编码,例如 CRM |
object_code |
varchar | 关联业务对象编码,非对象入口可为空 |
entry_mode |
varchar | 入口模式:RUNTIME/ROUTE/IFRAME/EXTERNAL/H5/API |
entry_url |
varchar | 应用入口地址 |
config_key |
varchar | 关联现有 ai_crud_config.config_key,非标准应用可为空 |
icon |
varchar | 应用图标 |
description |
varchar | 业务说明 |
status |
int | 状态:1 启用,0 禁用 |
sort_order |
int | 排序 |
options |
json | 扩展配置 |
| 标准字段 | - | create_by/create_time/create_dept/update_by/update_time |
ai_business_binding 建议字段| 字段 | 类型 | 说明 |
|---|---|---|
id |
bigint | 主键 |
tenant_id |
bigint | 租户 ID,默认 1 |
target_type |
varchar | 挂接目标类型:SUITE/OBJECT/APP |
target_id |
bigint | 挂接目标 ID |
target_code |
varchar | 挂接目标编码,便于跨环境迁移 |
binding_type |
varchar | FLOW/APPROVAL/REPORT/PERMISSION/MESSAGE/TRIGGER/IMPORT/EXPORT/MOBILE/INTEGRATION |
binding_key |
varchar | 关联外部能力的业务键 |
binding_name |
varchar | 挂接名称 |
binding_config |
json | 挂接配置 |
status |
int | 状态:1 启用,0 禁用 |
| 标准字段 | - | create_by/create_time/create_dept/update_by/update_time |
| 字典类型 | 说明 | 建议值 |
|---|---|---|
ai_business_suite |
业务套件 | CRM、CONTRACT、PROJECT、PURCHASE、SERVICE |
ai_business_object_type |
业务对象类型 | MASTER、DETAIL、LOOKUP、TRANSACTION |
ai_business_relation_type |
对象关系类型 | REFERENCE、DETAIL、CHILD_LIST、MANY_TO_MANY |
ai_business_app_type |
业务应用类型 | BUSINESS、EMBEDDED、MOBILE、INTEGRATION |
ai_business_app_entry_mode |
应用入口模式 | RUNTIME、ROUTE、IFRAME、EXTERNAL、H5、API |
ai_business_binding_type |
能力挂接类型 | FLOW、APPROVAL、REPORT、PERMISSION、MESSAGE、TRIGGER、IMPORT、EXPORT、MOBILE、INTEGRATION |
| 操作 | 接口 | 方法 | 说明 |
|---|---|---|---|
| 新增 | /ai/business/suite/page |
GET | 分页查询业务套件 |
| 新增 | /ai/business/suite/list |
GET | 查询业务套件列表 |
| 新增 | /ai/business/suite/{id} |
GET | 查询业务套件详情 |
| 新增 | /ai/business/suite |
POST | 新增业务套件 |
| 新增 | /ai/business/suite |
PUT | 修改业务套件 |
| 新增 | /ai/business/suite/{id} |
DELETE | 删除业务套件 |
| 新增 | /ai/business/suite/summary |
GET | 查询业务套件对象数量、应用数量、启用数量、最近更新 |
| 操作 | 接口 | 方法 | 说明 |
|---|---|---|---|
| 新增 | /ai/business/object/page |
GET | 分页查询业务对象 |
| 新增 | /ai/business/object/list |
GET | 查询业务对象列表,用于套件详情和对象选择 |
| 新增 | /ai/business/object/{id} |
GET | 查询业务对象详情 |
| 新增 | /ai/business/object |
POST | 新增业务对象 |
| 新增 | /ai/business/object |
PUT | 修改业务对象 |
| 新增 | /ai/business/object/{id} |
DELETE | 删除业务对象 |
| 新增 | /ai/business/object/{id}/status |
PUT | 启停业务对象 |
| 新增 | /ai/business/object/{id}/runtime-info |
GET | 获取对象对应运行态配置、入口和权限信息 |
| 操作 | 接口 | 方法 | 说明 |
|---|---|---|---|
| 新增 | /ai/business/object/{objectId}/relations |
GET | 查询对象关系 |
| 新增 | /ai/business/object/{objectId}/relations |
POST | 保存对象关系 |
| 新增 | /ai/business/object/{objectId}/relations/{relationId} |
DELETE | 删除对象关系 |
| 操作 | 接口 | 方法 | 说明 |
|---|---|---|---|
| 新增 | /ai/business/app/page |
GET | 分页查询应用入口 |
| 新增 | /ai/business/app/list |
GET | 查询应用入口列表,用于卡片和入口 |
| 新增 | /ai/business/app/{id} |
GET | 查询应用入口详情 |
| 新增 | /ai/business/app |
POST | 新增应用入口 |
| 新增 | /ai/business/app |
PUT | 修改应用入口 |
| 新增 | /ai/business/app/{id} |
DELETE | 删除应用入口 |
| 新增 | /ai/business/app/{id}/status |
PUT | 启停应用入口 |
| 新增 | /ai/business/app/{id}/open-info |
GET | 获取应用打开方式和权限校验结果 |
| 操作 | 接口 | 方法 | 说明 |
|---|---|---|---|
| 新增 | /ai/business/binding/list |
GET | 按 targetType 和 targetId 查询挂接能力 |
| 新增 | /ai/business/binding |
POST | 新增能力挂接 |
| 新增 | /ai/business/binding |
PUT | 修改能力挂接 |
| 新增 | /ai/business/binding/{id} |
DELETE | 删除能力挂接 |
| 新增 | /ai/business/binding/batch-save |
POST | 批量保存对象或应用挂接能力 |
| 接口 | 兼容策略 |
|---|---|
/ai/lowcode/app/** |
保留,继续服务现有低代码应用管理和搭建器 |
/ai/lowcode/model/** |
保留,继续服务底层模型设计;在业务页面表达为业务对象/实体 |
/ai/crud-page/{configKey} |
保留,作为标准业务应用运行入口 |
/ai/crud/{configKey}/** |
保留,作为动态 CRUD 数据接口 |
/ai/crud-config/** |
保留给开发者工具和历史兼容,普通业务菜单隐藏 |
建议新增:
| 路径 | 说明 |
|---|---|
forge-admin-ui/src/views/app-center/index.vue |
应用中心首页 |
forge-admin-ui/src/views/app-center/suite.[suiteCode].vue |
业务套件详情页 |
forge-admin-ui/src/views/app-center/object.[objectCode].vue |
业务对象详情页 |
forge-admin-ui/src/views/app-center/components/AppCard.vue |
应用卡片 |
forge-admin-ui/src/views/app-center/components/ObjectCard.vue |
业务对象卡片 |
forge-admin-ui/src/views/app-center/components/AppFilterBar.vue |
应用筛选区 |
forge-admin-ui/src/views/app-center/components/ObjectRelationPanel.vue |
对象关系面板 |
forge-admin-ui/src/views/app-center/components/AppEditorDrawer.vue |
应用编辑抽屉 |
forge-admin-ui/src/views/app-center/components/BusinessBindingPanel.vue |
对象/应用能力挂接面板 |
forge-admin-ui/src/views/app-center/engines.vue |
引擎中心 |
forge-admin-ui/src/views/app-center/mobile.vue |
移动端中心 |
forge-admin-ui/src/views/app-center/integration.vue |
集成中心 |
configKey、tableName、modelSchema 只在详情或开发者模式中展示。entryMode 选择内部路由、iframe、外部窗口或 H5 入口。src/views/ai/lowcode-apps.vue 保留,不作为业务用户默认入口。src/views/ai/lowcode-builder.vue 保留,从应用配置或开发者工具进入。src/views/ai/crud-config.vue 隐藏普通菜单,仅开发者可见。src/views/ai/crud-generator.vue 隐藏普通菜单,AI 生成能力后续迁移到应用中心。第一阶段可在 forge-plugin-generator 内新增业务应用包:
com.mdframe.forge.plugin.generator.businessapp
├── controller
├── service
├── service.impl
├── mapper
├── entity
├── dto
└── vo
如后续业务应用平台成为独立产品,再评估抽成 forge-plugin-app。
| 类 | 说明 |
|---|---|
BusinessSuiteController |
业务套件接口 |
BusinessObjectController |
业务对象接口 |
BusinessObjectRelationController |
对象关系接口 |
BusinessAppController |
应用入口接口 |
BusinessBindingController |
能力挂接接口 |
BusinessSuiteService |
业务套件管理 |
BusinessObjectService |
业务对象管理 |
BusinessObjectRelationService |
对象关系管理 |
BusinessAppService |
应用入口管理 |
BusinessBindingService |
对象/应用能力挂接管理 |
BusinessAppOpenService |
应用打开方式解析和权限校验 |
BusinessSuiteMapper.xml |
业务套件查询 SQL |
BusinessObjectMapper.xml |
业务对象查询 SQL |
BusinessObjectRelationMapper.xml |
对象关系查询 SQL |
BusinessAppMapper.xml |
应用查询 SQL |
BusinessBindingMapper.xml |
能力挂接查询 SQL |
pageNum 和 pageSize。tenant_id 必须为 1。NOT EXISTS 防重复。建议新增一级或二级菜单:
| 菜单 | 路由 | 说明 |
|---|---|---|
| 应用中心 | /app-center |
业务套件、业务对象和应用入口主入口 |
| 业务套件详情 | /app-center/suite/:suiteCode |
展示套件下的业务对象、流程、看板和入口 |
| 业务对象详情 | /app-center/object/:objectCode |
展示对象布局、关系和对象能力 |
| 引擎中心 | /app-center/engines |
核心引擎统一入口 |
| 移动端中心 | /app-center/mobile |
H5 和移动入口 |
| 集成中心 | /app-center/integration |
外部集成入口 |
| 权限标识 | 说明 |
|---|---|
ai:businessApp:list |
查看应用中心 |
ai:businessSuite:list |
查看业务套件 |
ai:businessSuite:edit |
维护业务套件 |
ai:businessObject:list |
查看业务对象 |
ai:businessObject:add |
新增业务对象 |
ai:businessObject:edit |
修改业务对象 |
ai:businessObject:delete |
删除业务对象 |
ai:businessObject:relation |
配置对象关系 |
ai:businessBinding:config |
配置对象或应用能力挂接 |
ai:businessApp:add |
新增应用入口 |
ai:businessApp:edit |
修改应用入口 |
ai:businessApp:delete |
删除应用入口 |
ai:businessApp:status |
启停应用入口 |
ai:businessApp:open |
打开应用入口 |
CRM 一期建议先内置以下业务对象定义:
| 业务对象 | 对象类型 | 说明 |
|---|---|---|
| 客户 | MASTER | 管理客户基本信息、客户分级、所属区域 |
| 联系人 | DETAIL/CHILD_LIST | 管理客户联系人和联系方式,通常依附或关联客户 |
| 线索 | MASTER | 管理销售线索、来源、跟进状态 |
| 商机 | TRANSACTION | 管理商机阶段、预计金额、赢单概率 |
| 合同 | TRANSACTION | 管理合同信息、合同审批和归档 |
| 合同明细 | DETAIL | 管理合同商品、服务、金额等明细项,依附合同 |
| 回款 | DETAIL/TRANSACTION | 管理回款计划、回款记录和逾期提醒,关联合同 |
| 跟进记录 | DETAIL/CHILD_LIST | 管理客户拜访、电话、会议等记录 |
| 销售任务 | TRANSACTION | 管理销售计划、待办和任务完成情况 |
CRM 一期建议至少内置以下对象关系:
| 关系 | 关系类型 | 说明 |
|---|---|---|
| 客户-联系人 | CHILD_LIST | 客户详情中展示联系人列表 |
| 客户-商机 | CHILD_LIST | 客户详情中展示相关商机 |
| 商机-合同 | REFERENCE | 合同可关联来源商机 |
| 合同-合同明细 | DETAIL | 合同明细依附合同,支持金额汇总 |
| 合同-回款 | CHILD_LIST | 合同详情中展示回款计划或回款记录 |
| 客户-跟进记录 | CHILD_LIST | 客户详情中展示拜访、电话、会议记录 |
| 商机-跟进记录 | CHILD_LIST | 商机详情中展示推进记录 |
CRM 一期建议以内置配置方式体现以下对象能力:
| 业务对象 | 对象能力 |
|---|---|
| 客户 | 列表、表单、详情、导入、导出、客户报表、权限 |
| 商机 | 列表、表单、详情、阶段变更触发器、消息提醒、销售漏斗报表 |
| 合同 | 列表、表单、详情、合同明细、合同审批、金额汇总触发器、导出 |
| 回款 | 列表、表单、详情、逾期提醒、回款报表 |
| 跟进记录 | 列表、表单、详情、客户或商机关联列表 |
CRM 一期建议内置以下应用入口定义:
| 应用入口 | 类型 | 关联对象 | 说明 |
|---|---|---|---|
| 客户管理 | BUSINESS | 客户 | 打开客户标准后台运行页 |
| 联系人管理 | BUSINESS | 联系人 | 打开联系人标准后台运行页 |
| 线索管理 | BUSINESS | 线索 | 打开线索标准后台运行页 |
| 商机管理 | BUSINESS | 商机 | 打开商机标准后台运行页 |
| 合同管理 | BUSINESS | 合同 | 打开合同标准后台运行页 |
| 回款管理 | BUSINESS | 回款 | 打开回款标准后台运行页 |
| 跟进记录 | BUSINESS | 跟进记录 | 打开跟进记录标准后台运行页 |
| 销售任务 | BUSINESS | 销售任务 | 打开销售任务标准后台运行页 |
CRM 后续扩展应用:
| 应用 | 类型 | 说明 |
|---|---|---|
| 销售看板 | EMBEDDED | 嵌入报表或大屏 |
| 经营分析大屏 | EMBEDDED | 嵌入 BI 或报表引擎页面 |
| 移动客户拜访 | MOBILE | H5 客户拜访和跟进 |
| 企微客户通知 | INTEGRATION | 推送客户提醒到企微 |
| 飞书销售待办 | INTEGRATION | 推送待办到飞书 |
| 钉钉审批提醒 | INTEGRATION | 推送审批消息到钉钉 |
CRM 样板不能只停留在卡片展示,应逐步形成可交付、可演示、可复制的最小业务闭环。第一阶段允许部分业务动作给出“未配置运行态”的明确提示,但对象、关系、入口和复用路径必须完整。
CRM 最小可交付闭环建议:
| 场景 | 最小闭环 | 复用能力 |
|---|---|---|
| 客户管理 | 客户列表、客户表单、客户详情、客户导入、客户导出 | 动态 CRUD、低代码页面 Schema、动态导入导出 |
| 联系人管理 | 联系人作为客户关联列表展示,可独立维护 | 业务对象关系、动态 CRUD |
| 商机管理 | 商机阶段字段、预计金额、赢单概率、销售漏斗报表入口 | 低代码模型、报表挂接、嵌入应用 |
| 合同管理 | 合同表单、合同明细关系、合同审批入口、合同导出 | 主子关系配置、流程/审批挂接、动态导出 |
| 回款管理 | 回款计划或回款记录、逾期提醒配置、回款报表入口 | 动态 CRUD、消息挂接、报表挂接 |
| 跟进记录 | 客户或商机详情中展示跟进记录 | 对象关系、动态 CRUD |
| 大屏看板 | 销售看板或经营分析大屏作为嵌入应用 | 报表/大屏能力、嵌入应用 |
| 移动拜访 | H5 入口登记,展示移动拜访入口 | 移动应用入口、对象权限 |
交付演示要求:
configKey 的对象可以直接打开运行态页面;未配置时给出“去低代码搭建器配置并发布”的明确入口。ai_lowcode_domain 生成业务套件记录。ai_lowcode_model 生成业务对象记录。configKey。configKey 继续打开现有运行页。/ai/lowcode-* 页面。forge-plugin-app。以下能力不做迁移,只做入口重组:
以下能力需要新增业务化包装:
ai_crud_config 到应用入口的映射。forge-admin-ui:新增应用中心、业务套件详情、业务对象详情、引擎中心、移动端中心、集成中心页面;调整菜单入口。forge-plugin-generator:新增业务套件、业务对象、对象关系、应用入口和能力挂接接口。forge/db/migration:新增业务套件表、业务对象表、对象关系表、应用入口表、能力挂接表、字典、菜单和权限资源。sys_resource:新增应用中心菜单和按钮权限,隐藏或迁移旧低代码入口。ai_crud_config:继续作为标准业务应用运行态配置来源。ai_lowcode_model:继续作为底层模型资产来源,产品侧表达为业务对象/实体。ai_lowcode_model、应用入口与 ai_crud_config 的关系要保持清晰,避免双主数据源冲突。configKey 打开现有运行页,历史动态 CRUD 不受影响。entryMode 正确打开内部路由、iframe 或外部地址。BUSINESS + RUNTIME 应用时,仍走现有 /ai/crud-page/{configKey}。ai_crud_config。ai_business_* 表作为低代码运行配置的事实来源。ai_business_suite、ai_business_object、ai_business_object_relation、ai_business_app、ai_business_binding 五张业务化表。open-info 安全校验;SSO、短期签名 URL、postMessage 协议作为后续深化。ai_crud_config 和动态 CRUD 运行态。ai_business_app 定位为应用入口,不再承担业务对象/实体主表职责。ai_business_suite、ai_business_object、ai_business_app、ai_business_binding 分层,避免所有业务化属性继续堆入 options。ai_crud_config 和 configKey。核查日期: 2026-05-28
结论: 当前变更定义的第一阶段业务应用平台能力已完成,未发现仍需保留为未完成状态的任务。
已覆盖范围:
验证结果:
mvn -pl forge-admin-server -am compile -DskipTests,使用 OpenJDK 17。pnpm --dir forge-admin-ui exec eslint src/views/app-center src/api/business-app.js src/views/ai/lowcode-models.vue src/views/ai/lowcode-builder.vue src/components/lowcode-builder/publish/PublishPanel.vue。NODE_OPTIONS=--max-old-space-size=8192 pnpm --dir forge-admin-ui build。仍属于非目标或后续阶段的内容: