tasks.md 13 KB

任务拆分 — 采购仓储低代码应用配置落地

status: apply created: 2026-07-03 拆分顺序:SDD 边界 → 基础运行表 → 低代码资产 → 主子表/选择器 → 流程动作 → 演示数据 → 验证

前置条件

  • 已确认使用项目渐进式 SDD,不使用 superpowers 开发模式。
  • 已确认必须完全低代码模式,不新增采购仓储专用 Vue 页面或 Java Controller。
  • 已确认采购仓储作为业务应用 seed 可以出现采购/仓储对象名,但平台能力代码不能硬编码采购逻辑。

阶段总览

阶段 目标 任务 交付结果
Phase 1 应用骨架 Task 1-4 运行表、低代码模型、业务对象、应用入口、基础 CRUD
Phase 2 主子表与选择器 Task 5-6 供应商报价、采购/出库/调拨明细内嵌编辑,记录选择器批量带入
Phase 3 流程与动作 Task 7-8 审批回调执行入库、锁定/扣减/释放、调拨转移
Phase 4 详情与演示数据 Task 9-10 仓库/物料/采购详情区块和演示数据
Phase 5 验证与对照 Task 11-12 构建、SQL 校验、原型对照验收

任务清单

Task 名称 状态 优先级
Task 1 SDD 变更文档初始化 completed P0
Task 2 采购仓储基础运行表 Flyway completed P0
Task 3 低代码模型与业务对象 seed completed P0
Task 4 基础 CRUD 运行配置与应用入口 completed P0
Task 5 主子表运行配置增强 completed P0
Task 6 记录选择器配置 partial P1
Task 7 采购/出库/调拨流程绑定 completed P0
Task 8 数量台账动作配置 completed P0
Task 9 详情数量区块和关联区块 completed P1
Task 10 原型演示数据 seed completed P1
Task 11 自动化验证和构建 completed P0
Task 12 原型对照验收文档 completed P1
Task 13 用户反馈问题修复 completed P0
Task 14 二次反馈修复:设计器可见性、子表 ID、流程 key、字典保存 completed P0

Task 1: SDD 变更文档初始化

目标:建立本变更的规格、任务、测试规格和执行日志。

涉及文件

  • code-copilot/changes/lowcode-procurement-warehouse-app/spec.md
  • code-copilot/changes/lowcode-procurement-warehouse-app/tasks.md
  • code-copilot/changes/lowcode-procurement-warehouse-app/test-spec.md
  • code-copilot/changes/lowcode-procurement-warehouse-app/execution-log.md

验收标准

  • 规格明确“完全低代码模式”边界。
  • 任务拆分符合渐进式 SDD。
  • 测试规格记录后续每阶段必跑项。

Task 2: 采购仓储基础运行表 Flyway

目标:创建采购仓储低代码运行表,先支持基础 CRUD 和后续动作配置。

涉及文件

  • forge-server/db/migration/V1.0.90__seed_procurement_warehouse_lowcode_app.sql — 新增运行表 DDL。

关键表

  • 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

验收标准

  • 所有表包含 id, tenant_id, create_by, create_time, create_dept, update_by, update_time, del_flag
  • 金额字段使用 bigint,单位分。
  • 业务编码字段具备租户内唯一索引。
  • 脚本使用 CREATE TABLE IF NOT EXISTS

Task 3: 低代码模型与业务对象 seed

目标:将运行表映射为低代码模型和应用中心业务对象。

涉及文件

  • forge-server/db/migration/V1.0.90__seed_procurement_warehouse_lowcode_app.sql — 追加 ai_lowcode_domainai_lowcode_modelai_business_suiteai_business_object seed。

验收标准

  • 新增领域 PROCUREMENT_WAREHOUSE
  • 新增套件 PROCUREMENT_WAREHOUSE
  • 每个模型都有 model_schema,字段编码使用 lowerCamel,数据库列名使用 lower_snake。
  • 业务对象关联 model_idmodel_codeconfig_key

Task 4: 基础 CRUD 运行配置与应用入口

目标:让采购仓储主要对象可以通过低代码运行页访问。

涉及文件

  • forge-server/db/migration/V1.0.90__seed_procurement_warehouse_lowcode_app.sql — 追加 ai_crud_configai_business_app seed。

验收标准

  • 至少物料、供应商、仓库、采购单、出库单、调拨单具备应用入口。
  • 入口使用 entry_mode=RUNTIMEconfig_key 指向对应 ai_crud_config
  • api_config 使用 /ai/crud/{configKey} 标准接口。
  • publish_status=PUBLISHED

Task 5: 主子表运行配置增强

目标:供应商、采购单、出库单、调拨单支持内嵌明细编辑。

涉及文件

  • forge-server/db/migration/V1.0.90__seed_procurement_warehouse_lowcode_app.sql

验收标准

  • page_schema.layoutType=master-detail-crud
  • modelRefs 声明主模型和明细模型。
  • 明细关系 saveMode=merge
  • 运行配置 options.masterDetailConfig.children 可被 AiCrudPage 消费。
  • PW_SUPPLIER_MATERIAL 具备隐藏运行配置,可作为采购明细选择器数据源。

Task 6: 记录选择器配置

目标:明细行可以选择物料、供应商报价或库存候选记录并映射字段。

涉及文件

  • forge-server/db/migration/V1.0.90__seed_procurement_warehouse_lowcode_app.sql

验收标准

  • 供应商报价明细从物料选择器批量带入。
  • 采购明细从供应商报价选择器批量带入,支持按主表 supplierId 透传过滤条件。
  • 出库明细选择器透传当前 warehouseId 上下文。
  • 调拨明细选择器透传当前 fromWarehouseId 上下文。
  • 出库/调拨明细按真实库存余额过滤候选记录,待通用库存余额选择器能力接入。

Task 7: 采购/出库/调拨流程绑定

目标:将三类单据配置为 Flowable 流程驱动。

涉及文件

  • forge-server/db/migration/V1.0.91__seed_procurement_warehouse_flow_actions.sql

验收标准

  • 采购单支持提交审批。
  • 出库单支持提交审批。
  • 调拨单支持提交审批。
  • 流程变量映射包含单据 ID、申请人、金额/数量摘要和状态。
  • 本地端到端发起 Flowable 流程未实跑,待服务和数据库环境验收。

Task 8: 数量台账动作配置

目标:审批结果通过通用动作引擎写数量台账。

涉及文件

  • forge-server/db/migration/V1.0.91__seed_procurement_warehouse_flow_actions.sql

验收标准

  • 采购审批通过执行 FOREACH + QUANTITY/INBOUND
  • 出库提交或审批中执行锁定,审批通过执行扣减,驳回释放。
  • 调拨审批通过执行 FOREACH + QUANTITY/TRANSFER
  • 幂等键包含对象编码、记录 ID、明细 ID 和动作编码。
  • 本地端到端扣减、释放、转移未实跑,待服务和数据库环境验收。

Task 9: 详情数量区块和关联区块

目标:还原原型中的仓库详情、物料详情和采购详情多区块信息。

涉及文件

  • forge-server/db/migration/V1.0.92__seed_procurement_warehouse_detail_panels_demo_data.sql

验收标准

  • 仓库详情展示库存余额、流水、锁定、采购记录、出库记录、调拨记录。
  • 物料详情展示供应商报价、库存信息、近 3 次出入库记录。
  • 采购详情展示基本信息、供应商信息、采购明细和附件占位。

Task 10: 原型演示数据 seed

目标:提供接近原型的数据,方便人工验收。

涉及文件

  • forge-server/db/migration/V1.0.92__seed_procurement_warehouse_detail_panels_demo_data.sql

验收标准

  • 包含原型中的主仓库、项目现场仓、常用物料和供应商。
  • 包含采购单、出库单、调拨单样例。
  • 数据具备防重复插入保护。

Task 11: 自动化验证和构建

目标:按项目测试规范做增量验证。

验收标准

  • 读取 code-copilot/rules/automated-testing-standard.md
  • git diff --check 通过。
  • Flyway ${...} placeholder 扫描无输出。
  • 后端插件编译通过。
  • 前端构建通过或记录跳过原因。
  • V1.0.91/V1.0.92 SQL 静态结构检查通过。

Task 12: 原型对照验收文档

目标:明确哪些原型内容已通过低代码还原,哪些留到 UI 能力增强。

涉及文件

  • code-copilot/changes/lowcode-procurement-warehouse-app/prototype-acceptance.md

验收标准

  • 覆盖采购管理、仓储管理、供应商管理、物料管理。
  • 标注“已还原 / 低代码等价还原 / 暂需后续平台 UI 能力”的差异。

Task 13: 用户反馈问题修复

目标:修复物料、供应商、仓库、采购、出库等纯低代码运行态共性问题,并补齐字段长度和常用校验配置能力。

涉及文件

  • forge-server/db/migration/V1.0.93__fix_procurement_warehouse_lowcode_runtime_config.sql
  • forge-admin-ui/src/utils/validation-presets.js
  • forge-admin-ui/src/components/ai-form/AiForm.vue
  • forge-admin-ui/src/components/ai-form/AiCrudPage.vue
  • forge-admin-ui/src/components/page-templates/ChildTableEditor.vue
  • forge-admin-ui/src/views/ai/crud-page.vue
  • forge-admin-ui/src/views/app-center/components/designer/BusinessFieldPropertyPanel.vue
  • forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue
  • forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/lowcode/LowcodeRuntimeConfigBuilder.java
  • forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessDocumentRuntimeService.java
  • forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/DynamicCrudService.java
  • forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/test/java/com/mdframe/forge/plugin/generator/service/DynamicCrudServiceAutoGenerationTest.java

验收标准

  • 物料、供应商、仓库、采购、出库、调拨编号字段使用编码规则后端自动生成。
  • 状态、仓库类型、单据状态使用字典配置,列表回显使用字典标签。
  • 子表原始 ID 字段在表单中隐藏,记录选择器负责回填 ID 和名称。
  • 子表列宽按字段类型设置合理最小宽度,避免数字展示过窄。
  • 采购/出库/调拨运行配置补齐业务对象编码,流程只保留自定义提交审批动作入口。
  • 字段属性支持最大长度配置和常用校验规则选择,运行态表单消费校验配置。
  • 低代码新增记录在自动编号配置缺失或迁移未生效时,后端可按编号字段约定兜底生成,避免非空编码列插入空值。

Task 14: 二次反馈修复:设计器可见性、子表 ID、流程 key、字典保存

目标:针对用户二次反馈,修复常用校验点击无明显变化、最大长度入口不明显、关系配置不可见、子表内部 ID 手填、流程仍指向旧流程、采购单保存字典类型校验失败等问题。

涉及文件

  • forge-server/db/migration/V1.0.94__fix_procurement_warehouse_designer_flow_relation_config.sql
  • forge-admin-ui/src/views/app-center/components/designer/BusinessFieldPropertyPanel.vue
  • forge-admin-ui/src/views/app-center/components/designer/forge-form-designer/ForgePropertyPanel.vue
  • forge-admin-ui/src/views/app-center/components/designer/BusinessFormDesigner.vue
  • forge-admin-ui/src/views/app-center/components/designer/BusinessObjectDesignerShell.vue
  • forge-admin-ui/src/components/page-templates/ChildTableEditor.vue
  • forge-server/forge-framework/forge-plugin-parent/forge-plugin-generator/src/main/java/com/mdframe/forge/plugin/generator/service/businessapp/BusinessObjectDesignerService.java

验收标准

  • 常用校验选择后同步写入 presetpatternmessage,用户能看到正则和提示变化。
  • 最大长度在字段基础配置/新版画布属性面板中作为显眼“字段约束”展示,并同步字段资产长度。
  • 表单设计主画布展示“关系与级联”摘要和入口,左侧对象设计器导航默认展开。
  • 子表编辑器默认隐藏 idxxxIdxxx_id 等内部主键/外键,除非显式配置 showInChildEditor=true
  • 采购、出库、调拨流程绑定改为业务流程 key:pw_purchase_approvalpw_outbound_approvalpw_transfer_approval
  • 表单设计保存时不再用空 dictType 覆盖字段资产已有字典类型,采购单 orderStatus 兜底配置 pw_order_status