# 低代码应用数据分析闭环建设 > status: proposed > created: 2026-06-15 > complexity: 🔴复杂 > related: `code-copilot/changes/lowcode-business-app-platform/spec.md`, `code-copilot/changes/lowcode-business-app-platform-business-closure/spec.md`, `code-copilot/changes/lowcode-app-full-loop-optimization/spec.md` ## 1. 背景与目标 当前低代码应用已经具备业务对象、模型设计、页面搭建、动态 CRUD、发布、代码下载、数据集、AI 大屏生成记录和基础业务统计能力,但整体仍停留在“能搭建、能发布、能录入查询”的阶段。 从业务应用闭环看,当前主链路仍缺少“应用运行后的数据运营层”: `业务对象搭建 → 应用发布 → 数据沉淀 → 数据透视 → 指标看板 → 告警联动 → 运营反馈 → 迭代发布` 本次建设目标是把低代码应用管理从“页面搭建工具”升级为“业务应用交付与运营平台”。完成后,业务人员不需要写 SQL,也不需要理解 `configKey`、表名或 JSON Schema,就可以围绕业务对象完成数据透视、指标查看、趋势分析、明细钻取和告警联动;实施人员可以看到应用交付缺口和分析资产影响范围;管理员可以看到应用使用、错误、性能和自动化执行情况。 本变更重点不再扩展 CRUD 表单能力,而是补齐数据资产、数据透视、指标体系、业务看板、告警联动和运营治理闭环。 ## 2. 代码现状(Research Findings) ### 2.1 低代码运行与应用中心已有主链路 - `forge-admin-ui/src/router/index.js` 手动注册了动态 CRUD 路由 `/ai/crud-page/:configKey`、业务对象设计器 `/app-center/object/:objectCode/designer`、应用入口 `/app-center/app/:appId`、触发器配置 `/app-center/trigger` 和统计看板 `/app-center/stats`,说明应用中心已具备业务入口和运行态入口。 - `forge-admin-ui/src/api/business-app.js` 已提供业务套件、业务对象、业务应用入口、运行态打开、代码预览下载、导入导出、就绪度等前端 API 方法,其中 `businessObjectReadiness` 已存在调用入口,说明“可交付状态检查”已有基础但尚未扩展到数据分析资产。 - `forge-admin-ui/src/api/lowcode-crud.js` 已提供低代码应用草稿保存、发布、版本、回滚、模型、DDL 预览、数据库表导入、代码预览和下载能力,低代码发布链路可以作为数据资产自动沉淀的触发点。 ### 2.2 业务统计看板已有基础,但偏固定指标 - `forge-admin-ui/src/views/app-center/stats-dashboard.vue` 当前页面标题为“业务报表看板”,描述为“按业务单元展示数量、阶段、金额、流程结果和新增趋势”,并通过业务应用 `configKey` 加载指标。 - `stats-dashboard.vue#buildMetricQuery` 通过字段名和中文标签猜测 `statusField`、`stageField`、`amountField`,固定请求 `OVERVIEW`、`TREND`、`FLOW_RESULT` 和金额 `SUM` 指标。这说明当前统计能力依赖约定字段和固定指标,不能支撑自由透视和指标目录。 - `BusinessStatsController` 暴露 `/ai/business/stats/{configKey}/overview`、`/group`、`/trend`、`/metrics` 四类统计接口。 - `BusinessStatsService#overview/groupCount/trend/metrics` 当前直接基于 `AiCrudConfig.tableName` 和 `modelSchema` 做总数、今日、本月、字段分组、时间趋势、金额求和和流程结果分布。该能力适合作为对象级基础指标底座,但还不是数据透视、指标目录或跨对象分析引擎。 ### 2.3 数据集模块已有运行查询和权限校验 - `forge-admin-ui/src/api/data/dataset.ts` 已提供数据集分页、列表、详情、新增、修改、删除、发布、下线、字段同步、字段保存、预览、运行时元数据、运行时查询和分类管理 API。 - `DataDatasetRuntimeController#query` 会校验数据集存在、已发布、启用、访问权限、数据连接存在且启用,然后调用 `DataQueryExecutor#execute` 执行查询。 - `DataDatasetRuntimeController#getMetadata` 会校验发布状态和访问权限后返回数据集字段和参数 Schema,适合作为前端分析器选择维度、指标、筛选条件的元数据来源。 - `DataQueryExecutor#execute` 当前支持 `TABLE` 数据集和 `SQL` 数据集,具备展示字段过滤、查询字段过滤、参数绑定、行级权限条件、字典维度翻译和敏感字段脱敏能力。 - `DataQueryExecutor` 当前主要返回明细行,尚未提供分组聚合、透视矩阵、同比环比、TopN、合计小计等分析型查询能力。 ### 2.4 数据资产和 AI 大屏已有影响分析雏形 - `AiDashboardGenerateRecordController#datasetImpact` 已提供 `/ai/dashboard-generate-record/impact/dataset/{datasetId}`,用于查询数据集影响的 AI 大屏生成记录或组件血缘。 - `forge-admin-ui/src/api/data/dataset.ts#getDashboardDatasetImpact` 已有前端调用方法,说明数据集到大屏组件的影响分析已有雏形。 - 当前影响分析主要面向 AI 大屏生成记录,尚未覆盖低代码应用、数据透视视图、指标、业务看板、导出模板、告警规则和自动化规则。 ### 2.5 数据业务定义存在,但未和低代码应用闭环 - `DataBusinessDefinitionController` 提供 `/data/business/page`、`/list`、`/{id}`、`/{id}/ai-context`、新增、修改、删除接口。 - 数据业务定义可以为 AI 上下文提供业务数据资产描述,但当前和业务套件、业务对象、低代码发布、指标目录、看板没有统一编排关系。 ### 2.6 当前主要缺口 - 低代码应用发布后不会自动生成或更新面向分析的数据集。 - 数据集字段已有 `fieldRole`、`defaultAgg`、`sensitiveLevel`、`dictType`、`dataUnit` 等属性,但低代码模型字段没有系统性同步到这些分析属性。 - 业务看板当前偏固定指标展示,没有自由拖拽的行维度、列维度、指标、筛选和图表配置。 - 指标口径没有统一资产化,合同金额、本月新增客户数、回款完成率、审批通过率等指标无法复用和审计。 - 数据分析结果无法反向触发消息、流程、待办、Webhook 或业务触发器。 - 应用健康度、使用分析、错误统计、性能监控、自动化执行成功率等运营指标没有统一入口。 - 发布治理缺少对数据集、指标、看板、透视视图、告警规则的影响检查。 ## 3. 产品定位 本次新增的是“低代码应用运营层”,不替代现有低代码搭建器、动态 CRUD、数据集、报表大屏、流程和消息中心。 ### 3.1 面向业务人员 业务人员从应用中心进入 CRM、合同、项目、工单等业务套件后,应能完成: - 查看业务对象数据。 - 选择业务对象做透视分析。 - 保存常用分析视图。 - 查看对象级和套件级指标看板。 - 从图表钻取到业务明细。 - 订阅指标异常提醒。 ### 3.2 面向实施人员 实施人员需要看到: - 业务对象是否已经同步数据集。 - 字段是否已经识别维度、指标、日期、金额和字典。 - 指标是否有明确口径。 - 看板是否能正常打开。 - 字段变更会影响哪些透视视图、指标、看板和告警。 - 当前应用距离可交付分析闭环还缺什么。 ### 3.3 面向平台管理员 平台管理员需要看到: - 应用访问量、活跃用户、最近使用时间。 - 页面和接口错误。 - 平均响应耗时。 - 导入导出任务情况。 - 自动化、告警、Webhook 执行成功率。 - 没人使用或长期异常的应用。 ## 4. 范围 ### 4.1 本阶段必须完成 - 低代码应用发布后自动注册或更新数据集。 - 低代码模型字段同步为数据集字段,并自动识别维度、指标、日期、金额、字典、敏感等级和默认聚合方式。 - 新增数据透视分析器,支持行维度、列维度、指标、筛选、排序、TopN、合计、图表切换、明细钻取和保存分析视图。 - 新增指标目录,统一维护指标口径、来源数据集、聚合方式、时间口径、单位和负责人。 - 新增业务看板编排能力,支持从透视视图或指标生成图表组件。 - 应用中心、业务套件、业务对象详情增加“数据分析”入口。 - 数据分析结果支持钻取到动态 CRUD 明细页,并带入筛选条件。 - 新增指标告警规则,支持阈值检测、定时检测、站内消息和业务触发器动作。 - 扩展应用就绪度,增加数据集、指标、看板、告警、数据血缘状态。 - 补齐数据资产影响分析,覆盖数据集、字段、指标、透视视图、看板、告警和 AI 大屏组件。 - CRM 作为首批样板,至少覆盖客户、商机、合同、回款四类对象。 ### 4.2 本阶段不做 - 不重写动态 CRUD 运行时。 - 不重写 `forge-plugin-data` 数据集管理。 - 不重写报表大屏设计器。 - 不建设完整 BI 产品或复杂 OLAP 引擎。 - 首期不做跨对象关联分析,透视分析器只支持单数据集。 - 不做跨库联邦查询和复杂多事实表建模。 - 不做全量实时数仓或离线调度平台。 - 不做完整 AI 问数,只预留基于数据集和指标的 AI 上下文。 - 暂不把分析资产纳入代码下载模式,不生成到业务专属代码包。 - 不绕过现有权限、租户、数据权限和敏感字段脱敏规则。 ## 5. 核心概念 ### 5.1 分析数据集 分析数据集是业务对象面向分析的统一数据资产。低代码对象发布后,应自动生成默认数据集,也允许实施人员手动调整字段角色和查询参数。 数据集不是运行态 CRUD 配置的替代物。动态 CRUD 负责业务录入和明细管理,数据集负责分析查询和看板计算。 ### 5.2 字段分析角色 每个数据集字段必须明确分析角色: | 角色 | 示例 | 说明 | |---|---|---| | 维度 | 客户类型、销售阶段、负责人、地区 | 用于分组、筛选、图例、行列维 | | 指标 | 合同金额、回款金额、预计金额 | 用于求和、计数、平均、最大、最小 | | 日期 | 创建时间、签约日期、回款日期 | 用于时间粒度、趋势、同比环比 | | 标识 | id、客户ID、合同ID | 用于钻取和关联,不默认展示 | | 明细 | 备注、说明、地址 | 用于明细表,不默认聚合 | ### 5.3 数据透视视图 数据透视视图是用户保存的一次分析配置,包括数据集、行维度、列维度、指标、筛选、排序、图表类型和钻取配置。 透视视图可以被看板复用,也可以作为临时分析结果导出。 ### 5.4 指标 指标是稳定可复用的业务口径,例如合同总金额、本月新增客户数、回款完成率、商机转化率。指标必须有来源、口径、单位和权限范围。 ### 5.5 业务看板 业务看板是围绕业务套件或业务对象组织的图表集合。看板组件可以来自指标、透视视图或已有报表大屏。 ### 5.6 数据血缘与影响分析 数据血缘用于回答“这个字段或数据集被哪些指标、视图、看板、告警和大屏使用”。发布、字段变更、数据集下线前必须展示影响范围。 ## 6. 功能点 ### 6.1 数据资产自动同步 - [ ] 低代码应用发布成功后,按业务对象 `objectCode` 和运行配置 `configKey` 自动创建或更新分析数据集。 - [ ] 数据集编码默认使用 `ds_${objectCode}`,同租户内唯一。 - [ ] 数据集名称默认使用 `${objectName}数据集`。 - [ ] 数据集类型默认 `TABLE`,表名来自 `AiCrudConfig.tableName`。 - [ ] 数据集字段来自低代码模型字段和系统审计字段。 - [ ] 字典字段同步 `dictType`。 - [ ] 金额字段识别 `amount`、`price`、`fee`、`cost`、`payment`、`total` 等命名,并默认单位为分。 - [ ] 时间字段识别 `createTime`、`updateTime`、`date`、`time` 等命名,并标记为日期角色。 - [ ] `id`、`tenantId`、`createBy`、`updateBy` 等字段默认不作为分析维度展示,但保留钻取能力。 - [ ] 数据集发布状态默认与低代码应用发布状态保持一致。 - [ ] 已人工调整的数据集字段配置不得被自动同步覆盖,除非用户选择“按模型重新同步”。 ### 6.2 数据透视分析器 - [ ] 新增前端页面 `/app-center/analysis` 或 `/app-center/object/:objectCode/analysis`。 - [ ] 支持从业务套件、业务对象、运行页、看板进入分析器。 - [ ] 左侧展示可分析字段,按维度、指标、日期、明细分组。 - [ ] 中间区域支持配置行维度、列维度、指标、筛选条件、排序和 TopN。 - [ ] 右侧或下方展示透视表和图表预览。 - [ ] 支持图表类型:指标卡、表格、柱状图、折线图、饼图、面积图、横向条形图。 - [ ] 支持指标聚合方式:计数、去重计数、求和、平均、最大、最小。 - [ ] 支持日期粒度:日、周、月、季、年。 - [ ] 支持合计和小计。 - [ ] 支持点击图表或透视单元格钻取明细。 - [ ] 明细钻取进入 `/ai/crud-page/:configKey` 并带入筛选条件。 - [ ] 支持保存为个人视图、对象公共视图、套件公共视图。 - [ ] 公共视图可见范围支持指定角色、指定部门、指定用户三种授权。 - [ ] 支持导出透视结果为 Excel。 ### 6.3 透视查询引擎 - [ ] 后端新增透视查询接口,输入单个数据集、维度、指标、筛选、排序、分页和图表配置。 - [ ] 首期只支持单数据集透视;跨对象关联分析放到后续通过数据业务定义、宽表数据集或 P2/P3 扩展实现。 - [ ] 所有字段必须来自已发布数据集元数据,禁止前端传入未校验 SQL 片段。 - [ ] TABLE 数据集通过安全 SQL Builder 生成聚合 SQL。 - [ ] SQL 数据集若支持透视,必须以子查询包装并限制可选字段;不满足安全条件时只允许明细查询。 - [ ] 查询必须复用数据集访问权限、行级权限和敏感字段脱敏。 - [ ] 查询结果同时返回表格数据、图表数据和可钻取过滤条件。 - [ ] 单次透视查询必须限制最大维度数、最大指标数、最大返回行数和超时时间。 ### 6.4 指标目录 - [ ] 新增指标管理页面,支持按业务套件、业务对象、数据集筛选指标。 - [ ] 指标包括编码、名称、说明、来源数据集、指标字段、聚合方式、过滤条件、时间字段、时间口径、单位、负责人、状态。 - [ ] 指标支持普通指标和计算指标。 - [ ] 普通指标直接基于一个数据集字段聚合。 - [ ] 计算指标首期支持公式表达式,可引用同一数据集内的字段或已有指标,支持四则运算、括号和基础函数,例如回款完成率 = 已回款金额 / 应回款金额。 - [ ] 指标公式发布前必须做语法校验、字段存在性校验、依赖分析和循环依赖检测。 - [ ] 指标必须支持口径说明,前端看板展示时可查看口径。 - [ ] 指标变更必须记录版本或变更日志。 - [ ] 指标下线前必须展示影响的看板、透视视图和告警规则。 ### 6.5 业务看板 - [ ] 应用中心新增“数据分析”或“经营看板”分区。 - [ ] 业务套件详情页展示套件级看板,例如 CRM 总览。 - [ ] 业务对象详情页展示对象级看板,例如客户分析、商机漏斗、合同金额、回款逾期。 - [ ] 看板组件可以绑定指标、透视视图或外部报表入口。 - [ ] 看板组件支持标题、图表类型、数据源、刷新策略、钻取目标和可见范围。 - [ ] 看板支持复制、启停、排序和默认看板设置。 - [ ] CRM 首批默认看板在应用发布后生成,包括 CRM 总览、商机漏斗、合同金额、回款逾期。 ### 6.6 分析到行动 - [ ] 新增指标告警规则,支持大于、小于、等于、环比增长、连续 N 天满足条件等触发条件。 - [ ] 告警规则可绑定业务套件、业务对象、指标或透视视图。 - [ ] 告警执行默认接入系统任务调度,不为每条规则创建独立 Job。 - [ ] 首期只支持手动执行和每日扫描,不开放复杂 cron 配置。 - [ ] 告警动作支持站内消息、待办、触发器动作、Webhook TODO。 - [ ] 告警消息模板可引用指标值、阈值、业务对象、时间范围和钻取链接。 - [ ] 告警执行必须写入日志,记录成功、失败、跳过、错误原因和关联动作 ID。 - [ ] 同一规则同一周期默认防重复提醒。 ### 6.7 应用运行监控 - [ ] 记录应用打开事件:appId、objectCode、configKey、userId、tenantId、打开结果、错误信息、耗时。 - [ ] 记录分析查询事件:datasetId、viewId、metricId、耗时、返回行数、是否失败。 - [ ] 记录导入导出任务和结果,优先复用现有动态 CRUD 导入导出能力。 - [ ] 记录告警、触发器、Webhook TODO 的执行结果。 - [ ] 应用健康度展示访问量、活跃用户、错误数、慢查询数、最近访问时间、最近异常。 - [ ] 应用中心按健康度展示“正常、低使用、异常、待配置”。 ### 6.8 数据血缘与影响分析 - [ ] 新增数据资产影响分析接口,按数据集、字段、指标、透视视图、看板、告警查询影响范围。 - [ ] 数据集字段变更前展示影响的指标、透视视图、看板组件、告警规则、AI 大屏组件。 - [ ] 数据集下线前必须阻断或要求二次确认。 - [ ] 低代码对象字段删除或改名时,发布检查必须提示分析资产影响。 - [ ] AI 大屏已有数据集影响能力应纳入统一影响分析结果。 ### 6.9 应用就绪度扩展 - [ ] 业务对象就绪度新增数据分析维度。 - [ ] 检查项包括:数据集已同步、字段角色完整、至少一个默认指标、至少一个默认分析视图、看板可打开、告警可选配置、血缘可追踪。 - [ ] 就绪度必须区分“未配置、已同步、可分析、可运营、异常”。 - [ ] 应用中心对象卡片展示分析就绪状态。 - [ ] 点击缺口项跳转到对应配置页面。 ### 6.10 CRM 样板 - [ ] 客户对象生成客户数据集,默认维度包含客户类型、地区、负责人、状态,默认指标包含客户数、新增客户数。 - [ ] 商机对象生成商机数据集,默认维度包含阶段、客户、负责人,默认指标包含商机数、预计金额、赢单金额。 - [ ] 合同对象生成合同数据集,默认维度包含合同状态、客户、负责人、签约月份,默认指标包含合同数、合同金额。 - [ ] 回款对象生成回款数据集,默认维度包含回款状态、合同、客户、负责人,默认指标包含应回款金额、已回款金额、逾期金额。 - [ ] CRM 对象发布后生成默认分析视图和默认看板,不通过初始化脚本写死最终看板配置。 - [ ] CRM 总览看板展示客户数、商机金额、合同金额、回款完成率、商机阶段分布、回款趋势。 - [ ] 点击 CRM 看板组件可钻取到对应对象运行页并带入筛选条件。 ## 7. 业务规则 - 低代码应用发布是数据资产自动同步的主要触发点。 - 数据集是分析事实来源,动态 CRUD 运行配置不是分析事实来源。 - 自动同步不得覆盖人工维护的指标口径和字段分析配置。 - 指标必须有明确口径,不允许只保存图表配置而没有解释。 - 透视查询必须使用已发布数据集和受控字段,禁止直接拼接前端传入 SQL。 - 数据分析必须遵守租户隔离、数据权限、数据集 ACL、行级权限和敏感字段脱敏。 - 金额字段统一以分为存储单位,展示层格式化为元。 - 字典字段在分析展示中必须自动翻译。 - 图表钻取必须保留原筛选条件,并跳转到目标业务对象运行页。 - 告警和自动化动作必须有执行日志。 - 数据集、字段、指标、看板、告警下线或删除前必须做影响分析。 - 业务用户默认不看到表名、SQL、`configKey`、JSON Schema 等技术细节。 ## 8. 数据变更 | 操作 | 表名 | 字段/索引 | 说明 | |---|---|---|---| | 新增 | `ai_analysis_view` | `id`, `tenant_id`, `view_code`, `view_name`, `scope_type`, `scope_code`, `dataset_id`, `config_json`, `visibility`, 标准审计字段 | 保存数据透视视图 | | 新增 | `ai_analysis_metric` | `id`, `tenant_id`, `metric_code`, `metric_name`, `suite_code`, `object_code`, `dataset_id`, `metric_type`, `expression_json`, `unit`, `description`, `owner_id`, `status`, 标准审计字段 | 指标目录 | | 新增 | `ai_analysis_metric_version` | `id`, `tenant_id`, `metric_id`, `version_no`, `snapshot_json`, 标准审计字段 | 指标口径版本 | | 新增 | `ai_analysis_dashboard` | `id`, `tenant_id`, `dashboard_code`, `dashboard_name`, `scope_type`, `scope_code`, `layout_json`, `visibility`, `status`, 标准审计字段 | 业务看板 | | 新增 | `ai_analysis_dashboard_widget` | `id`, `tenant_id`, `dashboard_id`, `widget_code`, `widget_name`, `source_type`, `source_id`, `chart_type`, `config_json`, `sort_order`, `status`, 标准审计字段 | 看板组件 | | 新增 | `ai_analysis_alert_rule` | `id`, `tenant_id`, `rule_code`, `rule_name`, `target_type`, `target_id`, `condition_json`, `action_json`, `schedule_config`, `status`, 标准审计字段 | 指标告警规则 | | 新增 | `ai_analysis_alert_log` | `id`, `tenant_id`, `rule_id`, `execute_time`, `metric_value`, `status`, `message`, `correlation_id`, 标准审计字段 | 告警执行日志 | | 新增 | `ai_app_usage_log` | `id`, `tenant_id`, `app_id`, `object_code`, `config_key`, `user_id`, `event_type`, `duration_ms`, `status`, `error_message`, `create_time` | 应用访问和运行监控 | | 新增 | `ai_analysis_query_log` | `id`, `tenant_id`, `dataset_id`, `view_id`, `metric_id`, `user_id`, `duration_ms`, `row_count`, `status`, `error_message`, `create_time` | 分析查询监控 | | 扩展 | `data_dataset` | 可选增加 `source_type`, `source_id`, `object_code`, `config_key`, `auto_sync`, `last_sync_time` | 标识低代码对象自动同步来源 | | 扩展 | `data_dataset_field` | 视现状补齐 `source_field`, `analysis_role`, `default_time_grain`, `drill_enabled` | 增强分析字段角色;若已有等价字段则复用 | 数据脚本规则: - 所有新表必须包含 `tenant_id` 和标准审计字段。 - 所有内置 CRM 样板数据 `tenant_id` 必须为 `1`。 - Flyway 脚本必须使用 `CREATE TABLE IF NOT EXISTS` 和 `NOT EXISTS` 防重复保护。 - 敏感配置、Webhook Secret、Token、真实外部地址不得写入初始化脚本。 ## 9. 接口变更 | 操作 | 接口 | 方法 | 变更内容 | |---|---|---|---| | 新增 | `/ai/analysis/dataset/sync/object/{objectCode}` | POST | 按业务对象同步分析数据集 | | 新增 | `/ai/analysis/dataset/sync/config/{configKey}` | POST | 按运行配置同步分析数据集 | | 新增 | `/ai/analysis/pivot/query` | POST | 执行透视查询 | | 新增 | `/ai/analysis/view/page` | GET | 查询透视视图 | | 新增 | `/ai/analysis/view/{id}` | GET | 获取透视视图详情 | | 新增 | `/ai/analysis/view` | POST/PUT | 新增或修改透视视图 | | 新增 | `/ai/analysis/view/{id}` | DELETE | 删除透视视图 | | 新增 | `/ai/analysis/metric/page` | GET | 查询指标目录 | | 新增 | `/ai/analysis/metric/{id}` | GET | 获取指标详情 | | 新增 | `/ai/analysis/metric` | POST/PUT | 新增或修改指标 | | 新增 | `/ai/analysis/metric/{id}/preview` | POST | 预览指标计算结果 | | 新增 | `/ai/analysis/dashboard/page` | GET | 查询业务看板 | | 新增 | `/ai/analysis/dashboard/{id}` | GET | 获取看板详情 | | 新增 | `/ai/analysis/dashboard` | POST/PUT | 新增或修改看板 | | 新增 | `/ai/analysis/alert/rule/page` | GET | 查询告警规则 | | 新增 | `/ai/analysis/alert/rule` | POST/PUT | 新增或修改告警规则 | | 新增 | `/ai/analysis/alert/rule/{id}/execute` | POST | 手动执行告警规则 | | 新增 | `/ai/analysis/alert/log/page` | GET | 查询告警日志 | | 新增 | `/ai/analysis/lineage/impact` | GET | 查询数据资产影响范围 | | 新增 | `/ai/analysis/health/app/{appId}` | GET | 查询应用健康度 | | 扩展 | `/ai/business/object/{id}/runtime-info` | GET | 返回分析数据集、默认看板、分析就绪度 | | 扩展 | `/ai/business/object/{id}/readiness` | GET | 增加数据分析闭环检查项 | | 扩展 | `/ai/lowcode/app/{id}/publish` | POST | 发布成功后触发分析数据集同步 | 接口规则: - 分页参数必须使用 `pageNum` 和 `pageSize`。 - 查询类 SQL 必须写在 Mapper XML 中。 - 涉及查询、指标、看板、告警的接口必须加权限控制。 - 保存看板、指标、告警等配置时必须校验字段存在性和权限。 - 透视查询接口必须限制最大维度、指标和返回行数。 ## 10. 前端变更 新增或扩展页面: | 页面/组件 | 说明 | |---|---| | `src/views/app-center/analysis.vue` | 数据分析工作台 | | `src/views/app-center/components/analysis/PivotDesigner.vue` | 数据透视设计器 | | `src/views/app-center/components/analysis/FieldRolePanel.vue` | 字段角色选择与展示 | | `src/views/app-center/components/analysis/PivotResultPanel.vue` | 透视表和图表结果 | | `src/views/app-center/components/analysis/MetricCatalogPanel.vue` | 指标目录 | | `src/views/app-center/components/analysis/DashboardDesigner.vue` | 业务看板设计 | | `src/views/app-center/components/analysis/AlertRulePanel.vue` | 指标告警配置 | | `src/views/app-center/components/analysis/LineageImpactPanel.vue` | 影响分析 | | `src/views/app-center/components/ReadinessPanel.vue` | 扩展数据分析就绪度 | | `src/api/analysis.js` 或 `src/api/analysis.ts` | 新增分析 API | 交互要求: - 分析工作台第一屏必须是可操作分析界面,不做营销式介绍。 - 业务人员默认看到字段中文名、指标名、图表和钻取,不看到 SQL 和表名。 - 透视设计器必须避免拖入无效字段导致运行报错。 - 图表组件必须有空状态、加载态、错误态和权限不足态。 - 所有图表和表格都必须支持移动端基本可读。 - 保存视图、保存看板、创建告警前必须提示影响范围和权限范围。 ## 11. 影响范围 后端影响: - `forge-plugin-generator`:低代码发布后分析资产同步、应用就绪度扩展、应用健康度。 - `forge-plugin-data`:数据集字段角色复用、透视查询、运行时聚合查询、数据集影响分析扩展。 - `forge-plugin-ai`:AI 大屏数据集影响分析纳入统一血缘。 - `forge-plugin-message`:指标告警站内消息推送。 - `forge-plugin-job`:告警定时扫描任务。 前端影响: - 应用中心。 - 业务对象详情。 - 业务套件详情。 - 数据集管理。 - 业务报表看板。 - AI 大屏生成记录影响提示。 数据影响: - 新增分析视图、指标、看板、告警、日志等表。 - 可能扩展数据集和字段表。 - CRM 样板需要初始化默认数据集、指标、看板和分析视图。 权限影响: - 新增分析查看、分析设计、指标管理、看板管理、告警管理、血缘查看、健康度查看权限。 - 透视查询必须同时校验数据集权限和业务对象权限。 ## 12. 风险与关注点 - ⚠️ 数据权限风险:分析查询不能绕过动态 CRUD、数据集 ACL 和行级权限。 - ⚠️ 敏感数据风险:手机号、身份证、银行卡等字段必须在分析结果和导出中脱敏或隐藏。 - ⚠️ SQL 安全风险:透视查询必须使用字段白名单和 SQL Builder,禁止前端传 SQL 片段。 - ⚠️ 性能风险:高基数字段、多维度透视、大范围时间查询可能造成慢 SQL,需要限制维度数、返回行数和超时时间。 - ⚠️ 口径风险:指标口径一旦用于看板和告警,修改必须有版本或变更提示。 - ⚠️ 金额单位风险:金额字段以分存储,以元展示,指标和图表必须统一格式化。 - ⚠️ 自动同步风险:低代码模型字段变更后不能静默覆盖人工维护的数据集字段和指标配置。 - ⚠️ 告警噪音风险:告警必须有去重、频率限制和日志,否则容易造成消息轰炸。 ## 13. 测试策略 - **测试范围**:数据集自动同步、字段角色识别、透视查询、指标计算、看板渲染、钻取跳转、告警执行、影响分析、权限校验。 - **覆盖率目标**:核心服务单元测试覆盖字段同步、聚合 SQL 构造、指标计算、影响分析;关键接口覆盖成功、权限不足、字段不存在、数据集未发布、超限查询等分支。 - **独立 Test Spec**:是。进入 `/test` 前需新增或维护 `test-spec.md`,并按 `code-copilot/rules/automated-testing-standard.md` 执行增量验证。 建议测试项: - 后端单元测试: - `AnalysisDatasetSyncServiceTest` - `PivotQueryBuilderTest` - `MetricCalculationServiceTest` - `AnalysisLineageServiceTest` - `AlertRuleExecutorTest` - 后端接口测试: - 数据集同步接口。 - 透视查询接口。 - 指标预览接口。 - 看板详情接口。 - 告警执行接口。 - 影响分析接口。 - 前端验证: - 透视设计器字段拖拽和配置。 - 图表切换。 - 保存视图。 - 看板加载。 - 图表钻取。 - 权限不足和空数据状态。 - 回归验证: - 动态 CRUD 发布和运行不受影响。 - 数据集管理原有新增、发布、查询不受影响。 - AI 大屏生成记录影响查询不受影响。 ## 14. 分期计划 ### P0:数据分析最小闭环 - [ ] 低代码对象发布后自动同步数据集。 - [ ] 字段自动识别维度、指标、日期、金额、字典和敏感等级。 - [ ] 新增透视查询接口。 - [ ] 新增透视设计器。 - [ ] 透视设计器首期只支持单数据集。 - [ ] 支持保存分析视图。 - [ ] 支持透视结果图表化和明细钻取。 - [ ] CRM 客户、商机、合同、回款完成样板。 验收标准: - 发布一个业务对象后,可以直接进入数据分析。 - 不写 SQL 可以完成透视统计。 - 图表可钻取到业务明细。 - CRM 至少有 3 个可用分析视图。 ### P1:指标与看板闭环 - [ ] 新增指标目录。 - [ ] 指标支持公式表达式和依赖校验。 - [ ] 指标支持口径说明和预览。 - [ ] 新增业务看板。 - [ ] 看板组件可绑定指标或透视视图。 - [ ] CRM 总览看板在对象发布后生成并可用。 - [ ] 指标和看板纳入影响分析。 验收标准: - CRM 总览看板展示客户、商机、合同、回款核心指标。 - 每个指标能查看口径。 - 指标可复用于多个看板。 - 看板图表可钻取明细。 ### P2:分析到行动闭环 - [ ] 新增指标告警规则。 - [ ] 告警规则支持手动执行和每日扫描。 - [ ] 告警支持站内消息和触发器动作。 - [ ] 告警执行日志可查询。 - [ ] 回款逾期、商机停滞、合同金额超限完成样板。 验收标准: - 回款逾期可自动提醒。 - 商机阶段停滞可生成跟进提醒。 - 合同金额超限可触发流程或配置提示。 - 每次告警执行有日志和失败原因。 ### P3:治理与运营闭环 - [ ] 应用健康度。 - [ ] 应用使用分析。 - [ ] 分析查询日志。 - [ ] 数据血缘统一影响分析。 - [ ] 发布前检查纳入分析资产影响。 - [ ] 应用包导入导出时包含指标、看板、视图和告警;代码下载模式暂不包含分析资产。 验收标准: - 管理员能看到应用是否健康。 - 字段变更能提示影响哪些看板、指标、视图、告警和大屏。 - 发布前能发现数据分析配置缺口。 - CRM 分析资产可随应用包迁移。 ## 15. 已澄清决策 - [x] 透视分析器首期只支持单数据集;跨对象关联分析放到 P2/P3 或通过宽表数据集解决。 - [x] 指标计算首期支持公式指标,不限于单字段聚合。 - [x] 分析视图公共可见范围支持角色、部门、用户三种授权。 - [x] CRM 默认看板由应用发布后生成,不通过初始化脚本写死最终看板配置。 - [x] 告警规则首期只支持手动执行和每日扫描,不开放复杂 cron 配置。 - [x] 分析资产暂不纳入代码下载模式,不生成到业务专属代码包。 ## 16. 技术决策 - 数据集作为分析事实来源,复用 `forge-plugin-data`。 - 动态 CRUD 作为业务明细和钻取目标,不新增第二套明细运行时。 - 透视查询作为数据集运行查询的聚合扩展,不允许前端直接传 SQL。 - 指标和看板作为业务分析资产,独立于 AI 大屏生成记录,但统一纳入数据血缘。 - 告警扫描接入系统任务调度中心,避免每条规则一个独立 Job。 - 首期优先单数据集分析,跨对象分析通过后续数据业务定义、宽表数据集或 P2/P3 扩展解决。 - 指标首期支持公式表达式,发布前必须做语法校验、依赖分析和循环检测。 - 分析视图可见范围必须支持角色、部门、用户授权。 - CRM 默认分析视图和看板由发布后生成,初始化脚本只保留必要字典、权限和模板类基础数据。 - 告警首期仅支持手动执行和每日扫描。 - 代码下载模式暂不包含指标、视图、看板、告警等分析资产。 - 业务用户入口放在应用中心和业务对象详情,开发者入口保留数据集和指标高级配置。 ## 17. 执行日志 | Task | 状态 | 实际改动文件 | 备注 | |---|---|---|---| | Spec | completed | `code-copilot/changes/lowcode-app-data-analysis-closure/spec.md` | 创建低代码应用数据分析闭环建设 Spec | | Clarifications | completed | `code-copilot/changes/lowcode-app-data-analysis-closure/spec.md` | 收口单数据集、公式指标、视图授权、发布后看板、每日告警、代码下载边界 | | Tasks | completed | `code-copilot/changes/lowcode-app-data-analysis-closure/tasks.md` | 按 Phase 0-7 拆分 P0/P1/P2/P3 任务清单 | ## 18. 审查结论 待 Review。 ## 19. 确认记录(HARD-GATE) - **确认时间**:待确认 - **确认人**:待确认