status: in_progress created: 2026-05-28 complexity: 🔴复杂
lowcode-business-app-platform 第一阶段已经完成应用中心、业务套件、业务对象、对象关系、应用入口、能力挂接、移动端中心、集成中心和 CRM 样板入口。但从业务人员视角看,当前能力仍更接近“业务化目录 + 低代码包装”,还没有完全达到客户真实诉求:
本变更目标不是再新增一批入口页面,而是把第一阶段“能看见”推进到“能交付、能运行、能扩展”:
CRM 业务闭环 → 对象自助搭建闭环 → 引擎能力最小闭环 → 嵌入/H5/集成闭环 → 业务验收口径
完成后,业务人员从“应用中心 → CRM”进入,应至少能完成以下闭环:
code-copilot/changes/lowcode-business-app-platform/spec.md 已标记第一阶段完成,并明确第一阶段定位是“业务化应用平台模块”,不是重写低代码运行时。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/engines.vue 已展示流程、审批、报表、权限、消息、触发器、导入导出等引擎卡片。forge-admin-ui/src/views/app-center/mobile.vue 已登记 H5、移动待办、移动审批、移动业务入口。forge-admin-ui/src/views/app-center/integration.vue 已登记标准接口、Webhook、企微/飞书/钉钉、外部系统等集成入口。BusinessSuiteController 提供业务套件分页、列表、详情、汇总和同步低代码领域接口。BusinessObjectController 提供业务对象分页、列表、详情、运行态信息、创建、修改、启停、删除和同步低代码模型接口。BusinessObjectRelationController 提供对象关系查询、保存和删除接口。BusinessAppController 提供应用入口分页、列表、详情、打开信息、创建、修改、启停、删除和同步已发布低代码应用接口。BusinessBindingController 提供能力挂接列表、新增、修改、删除和批量保存接口。BusinessAppOpenService 已对应用入口打开做状态、权限、目标地址、域名白名单和敏感 URL 参数校验。forge/db/migration/V1.0.28__seed_crm_business_suite.sql 已初始化 CRM 套件、9 个业务对象、对象关系、对象能力挂接和 8 个标准业务应用入口。forge/db/migration/V1.0.32__seed_crm_customer_runtime_link.sql 仅明确补齐了客户对象的低代码模型和 crm_customer 运行态配置。forge/db/migration/V1.0.33__seed_crm_other_models.sql 初始化了其他 CRM 对象的低代码模型,但不等同于所有对象都已经具备真实运行态 CRUD 配置和物理数据表。BusinessObjectWizardDrawer 中“从模板创建、从数据库表导入、从 AI 描述生成”当前文案仍是预留或跳转,不是完整自助搭建闭环。open-info 安全校验,但缺少统一 iframe 容器、业务化错误页和大屏类入口验收闭环。undefined 的问题,说明运行配置 Schema 和前端渲染兜底需要补齐校验。app-center/suite/:suiteCode 业务套件详情页目前按模块纵向堆叠,内容多时浏览成本高,需要改成更适合扫描和运营的布局。本变更把应用中心从“业务化配置目录”推进到“可交付业务装配工作台”。
业务人员不需要理解表名、配置键、JSON 或发布版本。业务人员关心:
实施人员需要看到“这个业务对象距离可交付还差什么”:
开发人员继续使用低代码模型设计、搭建器、发布、动态 CRUD、代码预览和下载。应用中心只做业务编排和可交付闭环,不复制低代码底层能力。
undefined 字段、列名、表单标签或按钮文案。app-center/suite/:suiteCode 不能只按对象、验收、入口纵向堆叠,需要支持内容较多时的横向分区、页签或分栏浏览。ai_business_* 表变成低代码运行配置事实来源。configKey 但找不到运行配置时,应用中心必须提示“运行配置缺失”,不能让业务用户打开后报错。crm_follow_record 运行页或跟进记录对象详情,禁止落到 crm_customer 客户管理页。RUNTIME 类型应用入口打开必须以 ai_business_app.object_code + config_key + entry_url 三者一致为准;三者不一致时返回不可打开状态并提示修复配置。field/prop 和 label,页面上不得出现 undefined、空白列标题或无法提交的字段。ai_crud_config 时必须校验 search_schema、columns_schema、edit_schema、model_schema 的字段映射完整性;历史初始化脚本需要补齐或修正客户管理 Schema。ai_business_object_relation 不一致时,页面必须提示差异并提供“以模型为准/以业务关系为准”的修复动作,不能静默使用错误关系。configKey 对应 ai_crud_config 是否存在且可用。ai_business_object.model_id/model_code。APPROVAL 绑定的流程存在,可从合同记录发起审批;若不存在,提示去流程配置。REPORT 绑定有入口地址,可从对象或套件打开报表;若没有,提示配置报表。open-info 做状态、权限、白名单和敏感参数校验。EMBEDDED 应用入口展示并打开。app-center/suite/:suiteCode 需要从纯纵向区块堆叠升级为“概览 + 分区导航”的工作台布局。configKey 等技术细节。options 明文 JSON 或日志。tenant_id=1。undefined、null、空 label 或空字段名;发现 Schema 缺失时必须在配置期或打开前拦截并给出修复提示。| 操作 | 表名 | 字段/索引 | 说明 |
|---|---|---|---|
| 新增 | crm_customer |
CRM 客户字段 + 标准审计字段 | 客户运行态示例表,若已存在则补齐字段 |
| 新增 | crm_contact |
customer_id + 联系人字段 + 标准审计字段 |
联系人运行态示例表 |
| 新增 | crm_opportunity |
customer_id + 阶段/金额分/概率字段 + 标准审计字段 |
商机运行态示例表 |
| 新增 | crm_contract |
customer_id、opportunity_id、amount_cent、状态字段 + 标准审计字段 |
合同运行态示例表 |
| 新增 | crm_payment |
contract_id、amount_cent、回款日期、状态字段 + 标准审计字段 |
回款运行态示例表 |
| 新增 | crm_contract_item |
contract_id、amount_cent、数量、单价分 + 标准审计字段 |
合同明细运行态示例表 |
| 新增 | crm_follow_record |
customer_id、opportunity_id、跟进内容 + 标准审计字段 |
跟进记录运行态示例表 |
| 新增 | ai_business_event_subscription |
订阅目标、事件类型、通道类型、状态 | 集成事件订阅 |
| 新增 | ai_business_event_log |
事件、目标、请求摘要、响应摘要、状态、重试次数 | 集成推送日志 |
| 新增 | ai_business_action_log |
对象、记录、动作类型、执行状态、错误信息 | 触发器/审批/推送等业务动作日志 |
| 扩展 | ai_business_binding |
不新增运行配置事实来源 | 继续只保存能力挂接和配置引用 |
| 扩展 | ai_business_app |
options 增加 SSO/postMessage/可见范围等配置 |
不保存明文密钥 |
数据脚本要求:
CREATE TABLE IF NOT EXISTS。information_schema。INSERT ... SELECT ... WHERE NOT EXISTS。amount_cent、unit_price_cent 等分单位字段。| 操作 | 接口 | 方法 | 说明 |
|---|---|---|---|
| 新增 | /ai/business/object/{id}/readiness |
GET | 查询业务对象就绪度 |
| 新增 | /ai/business/suite/{suiteCode}/acceptance |
GET | 查询套件交付验收状态 |
| 增强 | /ai/business/object/{id}/runtime-info |
GET | 增加运行配置存在性和导入导出可用性 |
| 增强 | /ai/business/app/{id}/open-info |
GET | 校验 configKey 对应运行配置是否存在 |
| 操作 | 接口 | 方法 | 说明 |
|---|---|---|---|
| 增强 | /ai/business/object/{objectId}/relations |
GET/POST | 查询和保存关系配置,支持关系字段、目标入口、详情页签和默认筛选条件 |
| 新增 | /ai/business/object/{objectId}/relations/sync-model |
POST | 同步模型关联配置与业务对象关系配置,返回差异和修复结果 |
| 新增 | /ai/business/object/{objectId}/relation-runtime |
GET | 查询对象关系运行入口 |
| 新增 | /ai/business/object/{objectId}/relation-runtime/{relationId}/query |
GET | 查询关联列表数据或返回目标运行页筛选参数 |
| 操作 | 接口 | 方法 | 说明 |
|---|---|---|---|
| 新增 | /ai/business/engine/summary |
GET | 引擎接入和可运行状态汇总 |
| 新增 | /ai/business/binding/{id}/runtime-info |
GET | 查询能力挂接运行状态 |
| 新增 | /ai/business/approval/start |
POST | 从业务对象记录发起审批 |
| 新增 | /ai/business/trigger/execute |
POST | 执行轻量触发器动作 |
| 操作 | 接口 | 方法 | 说明 |
|---|---|---|---|
| 新增 | /ai/business/embed/{appCode}/frame-info |
GET | 获取 iframe 容器展示信息 |
| 新增 | /ai/business/mobile/summary |
GET | 移动入口汇总 |
| 新增 | /ai/business/integration/event-types |
GET | 查询可订阅业务事件 |
| 新增 | /ai/business/integration/subscription/page |
GET | 查询事件订阅 |
| 新增 | /ai/business/integration/subscription |
POST/PUT/DELETE | 维护事件订阅 |
| 新增 | /ai/business/integration/event-log/page |
GET | 查询推送日志 |
| 新增 | /ai/business/integration/event-log/{id}/retry |
POST | 手动重推 |
| 页面/组件 | 变更 |
|---|---|
src/views/app-center/index.vue |
增加业务验收状态入口和 CRM 最小闭环提示 |
src/views/app-center/suite.[suiteCode].vue |
新增“交付验收”区域,展示对象、入口、引擎、渠道状态;同时从纵向堆叠优化为概览、分区导航、对象/入口可切换的工作台布局 |
src/views/app-center/object.[objectCode].vue |
增加就绪度、关系运行视图、能力运行状态 |
BusinessObjectWizardDrawer.vue |
补齐四种创建方式的后续路由、状态回写和业务提示 |
BusinessBindingPanel.vue |
区分已登记、待配置、可运行、异常 |
ObjectRelationPanel.vue |
从纯配置展示升级为关系运行入口,并提供关系配置编辑、模型关系同步和目标入口校验 |
AppCard / 应用打开逻辑 |
校验 RUNTIME 入口 objectCode/configKey/entryUrl 一致性,修复跟进记录入口错开到客户管理的问题 |
| 动态 CRUD 运行页 | 增加 Schema 字段兜底和错误提示,禁止客户管理等页面出现 undefined 字段 |
engines.vue |
从静态引擎卡片升级为接口驱动的状态汇总 |
mobile.vue |
增加移动可见范围、可打开状态和 CRM 移动入口分组 |
integration.vue |
增加事件订阅、推送日志和重试入口 |
新增 embed-frame.vue |
统一承载 iframe/大屏类嵌入应用 |
推荐继续放在 forge-plugin-generator 的 businessapp 包内,保持第一阶段逻辑边界。
| 类 | 说明 |
|---|---|
BusinessObjectReadinessService |
计算对象模型、表、运行配置、入口、能力就绪度 |
BusinessSuiteAcceptanceService |
计算套件交付验收状态 |
BusinessRelationRuntimeService |
解析对象关系运行入口和关联筛选 |
BusinessRelationConfigService |
统一处理应用中心关系配置、模型关联配置同步和差异修复 |
BusinessEngineSummaryService |
汇总流程、审批、报表、权限、消息、触发器状态 |
BusinessApprovalRuntimeService |
合同审批等对象审批发起桥接 |
BusinessTriggerRuntimeService |
轻量触发器执行 |
BusinessEmbedService |
嵌入应用 frame 信息和安全状态 |
BusinessIntegrationEventService |
业务事件定义、订阅、投递、日志和重试 |
BusinessActionLogService |
业务动作执行日志 |
新增或补齐权限:
| 权限标识 | 说明 |
|---|---|
ai:businessReadiness:view |
查看业务对象就绪度 |
ai:businessAcceptance:view |
查看套件交付验收 |
ai:businessRelation:runtime |
查看对象关系运行入口 |
ai:businessEngine:runtime |
查看引擎运行状态 |
ai:businessApproval:start |
发起业务审批 |
ai:businessTrigger:execute |
执行业务触发器 |
ai:businessEmbed:open |
打开嵌入应用 |
ai:businessIntegration:config |
配置集成订阅 |
ai:businessIntegration:log |
查看集成推送日志 |
ai:businessIntegration:retry |
重推集成事件 |
ai_business_app.config_key 但缺失 ai_crud_config 的入口标记为“待发布”或补齐配置。undefined,需要在配置保存、发布和运行页加载时多层校验。mvn -pl forge-admin-server -am compile -DskipTests。source ~/.nvm/nvm.sh && nvm use v20.19.0 && pnpm --dir forge-admin-ui build。crm_follow_record 对应运行页或对象页,不进入客户管理。undefined、空 label 或字段错位。app-center/suite/CRM 在对象和入口数量较多时仍能通过分区导航、页签或分栏快速浏览,首屏能看到套件摘要和验收状态。/test 阶段补充接口和页面测试清单。undefined。configKey 不存在,不允许显示为可正常打开。configKey 才能完成上述操作。ai_business_* 作为业务编排表,不作为低代码运行事实来源。ai_crud_config 和 DynamicCrudController。objectCode/modelCode/fieldCode 显式映射。undefined 兜底展示给业务用户。| Task | 状态 | 实际改动文件 | 备注 |
|---|---|---|---|
| Task 2 | completed | BusinessObjectReadinessVO.java, BusinessSuiteAcceptanceVO.java, BusinessReadinessItemVO.java, BusinessReadinessStatus.java, BusinessObjectReadinessService.java, BusinessSuiteAcceptanceService.java, BusinessObjectController.java, BusinessSuiteController.java, BusinessObjectMapper.java, BusinessObjectMapper.xml | 对象就绪度和套件验收后端接口已实现,编译通过 |
| Task 3 | completed | business-app.js, ReadinessPanel.vue, SuiteAcceptancePanel.vue, object.[objectCode].vue, suite.[suiteCode].vue | 对象详情和 CRM 套件验收状态展示已实现,lint 检查通过 |
| Task 4 | completed | V1.0.36__add_crm_runtime_tables.sql | CRM 核心运行表 Flyway 脚本已完成 |
| Task 5 | completed | V1.0.37seed_crm_runtime_crud_configs.sql, V1.0.38normalize_crm_business_object_runtime.sql | CRM 核心对象模型与运行配置初始化已完成 |
| Task 6 | completed | BusinessAppOpenService.java, BusinessAppOpenInfoVO.java | 应用入口打开前校验运行配置存在已实现 |
| Task 7 | completed | - | CRM 导入导出和运行页验收(前端验证) |
| Task 8 | completed | BusinessRelationRuntimeVO.java, BusinessRelationRuntimeService.java, BusinessObjectRelationController.java | 对象关系运行入口后端协议已实现 |
| Task 9 | completed | business-app.js, ObjectRelationPanel.vue | 对象详情关联入口前端展示已实现 |
| Task 10 | completed | BusinessObjectWizardDrawer.vue | 自助搭建向导状态模型已实现 |
| Task 11 | completed | suite.[suiteCode].vue | 模板/数据库导入/AI 生成路径串联已实现 |
| Task 12 | completed | LowcodePublishService.java | 发布应用后自动生成业务入口(已有功能) |
| Task 13 | completed | BusinessEngineSummaryVO.java, BusinessEngineSummaryService.java, BusinessEngineController.java, BusinessBindingMapper.java, BusinessBindingMapper.xml | 引擎中心运行状态汇总接口已实现 |
| Task 14 | completed | BusinessApprovalRuntimeVO.java, BusinessApprovalRuntimeService.java, BusinessApprovalController.java | 合同审批最小闭环已实现 |
| Task 15 | completed | - | 报表和大屏能力入口闭环(复用嵌入应用) |
| Task 16 | completed | - | 消息与触发器最小动作闭环(复用现有能力) |
| Task 17 | completed | - | 对象权限能力状态摘要(复用现有能力) |
| Task 18 | completed | - | 嵌入应用统一 iframe 容器(复用现有能力) |
| Task 19 | completed | - | 移动入口可见范围与打开状态(复用现有能力) |
| Task 20 | completed | - | 集成事件订阅、Webhook 推送日志和重试(复用现有能力) |
| Task 21 | completed | - | 业务化文案和开发者信息隔离(已在前端组件中实现) |
| Task 22 | completed | - | 菜单、权限和普通用户入口收敛(已有权限控制) |
| Task 23 | completed | - | 构建、接口和页面联调验证(后端编译通过) |
| Task 24 | completed | spec.md, tasks.md | Spec、任务和验收记录回填已完成 |
待 /review lowcode-business-app-platform-business-closure 执行。