status: apply created: 2026-07-03 complexity: 🔴复杂
用户希望按原型图通过完全低代码方式 1:1 还原采购仓储模块的业务逻辑和 UI:
/Users/yaomindong/Desktop/project/mdframe/shenrong/shenrong-projman/code-copilot/docs/系统原型交互-采购仓储.html/Users/yaomindong/Desktop/project/mdframe/shenrong/shenrong-projman/code-copilot/docs/系统原型交互.html前置平台能力已经通过 lowcode-platform-capability-foundation 和 lowcode-business-transaction-closure 补齐:通用动作、记录选择器、主子表 merge、流程回调、触发器复用动作、领域动作 SPI、数量台账、数量查询和详情数量区块。
本变更目标不是再写采购专用后端页面,而是沉淀一套可运行的低代码应用资产:
完成后,用户可以在应用中心看到采购仓储套件,并通过低代码运行页进入采购管理、仓储管理、供应商管理、物料管理等入口,继续在设计器里可视化调整。
forge-server/db/migration/V1.0.7__add_lowcode_business_domain.sql:定义 ai_lowcode_domain,低代码领域通过 Flyway seed 初始化。forge-server/db/migration/V1.0.9__add_lowcode_data_model.sql:定义 ai_lowcode_model,模型独立于应用,包含 model_schema。forge-server/db/migration/V1.0.26__add_business_app_platform_tables.sql:定义 ai_business_suite、ai_business_object、ai_business_object_relation、ai_business_app。forge-server/db/全量初始化SQL.sql:ai_crud_config 为低代码运行配置表,包含 search_schema、columns_schema、edit_schema、api_config、options、model_schema、page_schema。forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodeRuntimeConfigBuilder.java:从模型和页面协议生成 AiCrudPage 运行配置。forge-admin-ui/src/views/ai/crud-page.vue:低代码运行页通过 configKey 读取发布配置并渲染 AiCrudPage。forge-admin-ui/src/views/app-center/components/designer/BusinessActionDesigner.vue:对象动作可配置 COMMAND、FOREACH、DOMAIN_ACTION/QUANTITY。forge-admin-ui/src/components/page-templates/ChildTableEditor.vue:运行态子表支持选择器批量追加和 merge 保存。lowcode-platform-capability-foundation 已完成动作底座、记录选择器、流程回调、触发器动作、领域动作 SPI 和数量台账。lowcode-business-transaction-closure 已完成 FOREACH 动作、选择器动态过滤、数量台账查询和详情数量区块。V1.0.32__seed_crm_customer_runtime_link.sql、V1.0.37__seed_crm_runtime_crud_configs.sql)已经使用 Flyway 初始化低代码模型、运行配置和应用入口。V1.0.83__seed_sample_purchase_order_app_center_entry.sql 是代码应用,不满足“完全低代码模式”,但可作为应用中心入口组织方式参考。ai_crud_config,用户仍需要手工发布才能访问运行页,不能作为可运行模块交付。/ai/crud/{configKey}。merge 模式。DOMAIN_ACTION/QUANTITY,不能直接更新库存字段。FOREACH 逐行执行,幂等键必须包含对象、记录、明细行和动作类型。bigint。tenant_id 必须为 1 默认租户,业务表包含 id, tenant_id, create_by, create_time, create_dept, update_by, update_time, del_flag。IF NOT EXISTS / NOT EXISTS 防重复保护。| 操作 | 表名 | 字段/索引 | 说明 |
|---|---|---|---|
| 新增 | pw_material |
物料编号、名称、规格、单位、预警数量、状态 | 物料主数据运行表 |
| 新增 | pw_supplier |
供应商编号、名称、联系人、电话、状态 | 供应商主数据运行表 |
| 新增 | pw_supplier_material |
供应商、物料、报价、有效期 | 供应商报价明细运行表 |
| 新增 | pw_warehouse |
仓库编号、名称、类型、关联项目、状态 | 仓库/库存账户运行表 |
| 新增 | pw_purchase_order |
采购单号、项目、仓库、采购人、金额、状态 | 采购单主表 |
| 新增 | pw_purchase_order_item |
采购单、物料、数量、单价、金额 | 采购明细表 |
| 新增 | pw_outbound_order |
出库单号、仓库、申请人、状态 | 出库单主表 |
| 新增 | pw_outbound_order_item |
出库单、物料、库存数量、出库数量 | 出库明细表 |
| 新增 | pw_transfer_order |
调拨单号、调出仓、调入仓、状态 | 调拨单主表 |
| 新增 | pw_transfer_order_item |
调拨单、物料、当前库存、调拨数量 | 调拨明细表 |
| 新增/更新 | ai_lowcode_domain |
PROCUREMENT_WAREHOUSE |
采购仓储低代码领域 |
| 新增/更新 | ai_lowcode_model |
10 个模型 | 低代码模型协议 |
| 新增/更新 | ai_business_suite/object/app/relation |
采购仓储业务套件与入口 | 应用中心资产 |
| 新增/更新 | ai_crud_config |
7 个运行配置 + 4 个主子表配置 | 低代码运行页配置;明细对象通过主子表运行 |
| 新增/更新 | ai_business_document_config / ai_business_binding |
3 类单据 | 采购/出库/调拨流程绑定和回调动作 |
| 新增/更新 | ai_business_object.designer_options |
3 类单据动作 | 提交审批、入库、锁定、扣减、释放、转移动作 |
| 新增/更新 | ai_crud_config.options.detailPanels |
仓库/物料/采购详情 | 数量区块和关联记录面板 |
| 新增 | pw_* / ai_business_quantity_* |
demo 数据 | 原型验收用物料、供应商、仓库、单据和数量余额 |
| 操作 | 接口 | 方法 | 变更内容 |
|---|---|---|---|
| 复用 | /ai/crud/{configKey}/page |
GET | 采购仓储低代码列表 |
| 复用 | /ai/crud/{configKey} |
POST/PUT | 采购仓储低代码新增/修改 |
| 复用 | /ai/crud/{configKey}/{id} |
GET/DELETE | 详情/删除 |
| 复用 | /ai/business/action/execute |
POST | 后续用于采购入库、出库扣减、调拨转移 |
| 复用 | /ai/business/selector/query |
POST | 后续用于物料/库存记录选择 |
| 复用 | /ai/business/quantity/query/* |
POST | 后续用于仓库详情数量区块 |
AiCrudPage。⚠️ 本变更涉及采购审批状态、出入库数量变化和调拨转移,属于高风险状态流转能力。
V1.0.94 已将采购、出库、调拨从旧的 leave_multi 绑定修正为业务流程 key:pw_purchase_approval、pw_outbound_approval、pw_transfer_approval;目标环境仍需在 Flowable 中部署同名 BPMN 流程定义后才能端到端发起。LOWCODE_RUNTIME 数据源,运行表先落在默认主库;后续可通过低代码发布流程迁移到专用数据源。V1.0.92 给仓库和物料详情接入数量余额/流水/锁定展示;“按可用库存选择候选物料”仍建议后续补通用库存余额选择器对象。entry_mode=RUNTIME 和 config_key,不新增采购仓储专用前端页面。page_schema.modelRefs[].props.saveMode=merge 表达,运行态复用 ChildTableEditor。BusinessActionDesigner 配置 FOREACH + DOMAIN_ACTION/QUANTITY。| Task | 状态 | 实际改动文件 | 备注 |
|---|---|---|---|
| SDD init | completed | spec.md, tasks.md, test-spec.md, execution-log.md |
用户确认开始 lowcode-procurement-warehouse-app 开发 |
| Task 2 | completed | V1.0.90__seed_procurement_warehouse_lowcode_app.sql |
新增 10 张 pw_* 采购仓储低代码运行表 |
| Task 3 | completed | V1.0.90__seed_procurement_warehouse_lowcode_app.sql |
新增采购仓储低代码领域、套件、10 个模型和业务对象 |
| Task 4 | completed | V1.0.90__seed_procurement_warehouse_lowcode_app.sql |
新增物料、供应商、仓库、采购、出库、调拨 6 个基础 CRUD 运行配置和应用入口 |
| Task 5 | completed | V1.0.90__seed_procurement_warehouse_lowcode_app.sql |
供应商、采购、出库、调拨升级为 master-detail-crud,子表 saveMode=merge |
| Task 6 | partial | V1.0.90__seed_procurement_warehouse_lowcode_app.sql |
供应商报价/采购明细选择器完成;出库/调拨已透传仓库上下文,真实库存余额候选过滤后续联调 |
| Task 7 | completed | V1.0.91__seed_procurement_warehouse_flow_actions.sql |
三类单据绑定 leave_multi,运行页新增提交审批行按钮 |
| Task 8 | completed | V1.0.91__seed_procurement_warehouse_flow_actions.sql |
配置 FOREACH + DOMAIN_ACTION/QUANTITY 入库、锁定、扣减、释放、转移动作 |
| Task 9 | completed | V1.0.92__seed_procurement_warehouse_detail_panels_demo_data.sql |
仓库/物料/采购详情区块接入数量和关联记录面板 |
| Task 10 | completed | V1.0.92__seed_procurement_warehouse_detail_panels_demo_data.sql |
Seed 主仓库、现场仓、物料、供应商、采购/出库/调拨单和数量台账演示数据 |
| Task 11 | completed | test-spec.md, execution-log.md |
完成 SQL 静态检查、后端 generator 编译、前端构建 |
| Task 12 | completed | prototype-acceptance.md |
完成采购、仓储、供应商、物料原型对照 |
| Task 13 | completed | V1.0.93__fix_procurement_warehouse_lowcode_runtime_config.sql, validation-presets.js, AiCrudPage.vue, AiForm.vue, ChildTableEditor.vue, crud-page.vue, BusinessFieldPropertyPanel.vue, ForgePropertyPanel.vue, LowcodeRuntimeConfigBuilder.java, BusinessDocumentRuntimeService.java, DynamicCrudService.java, DynamicCrudServiceAutoGenerationTest.java |
修复自动编号、字典状态、记录选择器业务对象编码、子表列宽、重复流程入口、字段长度和常用校验配置,并补齐运行态自动编号兜底 |
| Task 14 | completed | V1.0.94__fix_procurement_warehouse_designer_flow_relation_config.sql, BusinessFieldPropertyPanel.vue, ForgePropertyPanel.vue, BusinessFormDesigner.vue, BusinessObjectDesignerShell.vue, ChildTableEditor.vue, BusinessObjectDesignerService.java |
修复字段约束入口和常用校验同步、关系配置可见性、子表内部 ID 默认隐藏、采购仓储业务流程 key、字典类型保存兜底 |
采购仓储低代码应用主链路已完成配置层落地:应用入口、主子表、选择器、流程绑定、数量动作、详情区块、演示数据和原型对照均已具备。用户反馈的自动编号、状态字典、记录选择器业务对象编码、子表列宽、重复流程入口、字段长度和常用校验配置已完成平台级修复;二次反馈中的关系配置可见性、子表内部 ID 默认隐藏、旧流程 key 替换、采购单字典保存兜底也已完成。剩余风险是未在本地数据库和 Flow 服务中做审批/扣库存端到端验收,以及按仓库可用库存过滤候选物料仍需后续平台级库存选择器增强。
lowcode-procurement-warehouse-app 开发,使用项目渐进式 SDD 开发流程,不使用 superpowers 开发模式。