Files
my-mom-system/.cursor/plans/采购模块三页面开发计划_c58932f8.plan.md
panchengyong c28ada5050 commit content
2026-03-06 02:02:59 +08:00

12 KiB
Raw Permalink Blame History

name, overview, todos, isProject
name overview todos isProject
采购模块三页面开发计划 基于 PRD 文档和已有代码,完成采购计划单、采购订单、采购计划需求表三个页面的前后端开发与联调,按业务流程依赖关系分阶段推进。
id content status
phase1-backend 阶段一后端:补全 MpPurchase 实体字段、Mapper 双视图查询、引入/审核/genCode 接口 completed
id content status
phase1-frontend-list 阶段一前端列表:采购计划单 index.vue 明细/单据双视图 + 快捷标签 + 底部汇总 completed
id content status
phase1-frontend-form 阶段一前端表单:采购计划单 form.vue 表头19字段 + 子表12列 + 引入弹窗(层级展开) + 按钮组 completed
id content status
phase1-test 阶段一联调:新增→引入→保存→审核完整流程自测 completed
id content status
phase2-backend 阶段二后端:确认 PoOrder 实体、引入采购计划明细接口、金额计算、到货回写 completed
id content status
phase2-frontend-list 阶段二前端列表:采购订单 index.vue 明细/单据双视图 + 底部订单/到货数量汇总 completed
id content status
phase2-frontend-form 阶段二前端表单:采购订单 form.vue 表头17字段 + 子表14列 + 供应商弹窗 + 引入弹窗 + 金额自动计算 completed
id content status
phase2-test 阶段二联调:新增→选供应商→引入→单价金额→保存→审核完整流程自测 completed
id content status
phase3-backend 阶段三后端:实现 /mp/plan/need/list 查询接口(物料汇总+库存可用量) + 导出接口 completed
id content status
phase3-frontend 阶段三前端:新建 need.vue 单文件组件(搜索+4按钮+快捷标签+12列表格+3项底部汇总+负值高亮) completed
id content status
phase3-test 阶段三联调:报表查询+筛选+导出自测 completed
false

采购模块三页面开发计划

业务流程全景

flowchart LR
    MBOM["物料清单MBOM<br>供应方式=采购"] --> PurchasePlan["采购计划单<br>/mp/plan/purchase"]
    PurchasePlan -->|"引入计划明细"| PurchaseOrder["采购订单<br>/po/purchase/order"]
    PurchasePlan -->|"数据汇总"| NeedReport["采购计划需求表<br>/mp/plan/need"]
    PurchaseOrder -->|"到货引入"| Checkin["采购到货单"]
    Supplier["供应商档案"] -->|"选择供应商"| PurchaseOrder

三个页面存在上下游依赖关系:采购计划单 → 采购订单 → 采购计划需求表,开发顺序应按此依赖链推进。


现有代码基础

已有可用的前后端骨架代码(来自 erp-frontend-vuemom-backend

  • 采购计划单: 前端 erp-frontend-vue/src/views/Production/PurchasePlan/ (index.vue + form.vue),后端 MpPurchaseController.java + MpPurchaseMapper.xmlAPI purchasePlan.ts
  • 采购订单: 前端 erp-frontend-vue/src/views/Purchasing/Order/ (index.vue + form.vue),后端 PoOrderController.java + PoOrderMapper.xmlAPI purchaseOrder.ts
  • 采购计划需求表: 前端无独立组件Production/Reports 下有 DetailReport/TotalReport 可参考),后端接口 GET /mp/plan/need/list 已在前端开发规范中定义

开发重点是对齐 PRD 文档中的字段、交互和业务逻辑,而非从零开始。


阶段一采购计划单P0 - 核心上游)

PRD: mom系统采购计划单-页面开发说明文档.md 现有代码: erp-frontend-vue/src/views/Production/PurchasePlan/ + mom-backend/.../mp/

后端任务

  • 补全 MpPurchase 实体字段: 对照 PRD 5.1 节 erp_mp_purchase 表,确认 MpPurchase.java 包含 businessType, businessStatus, deptId, deptName, operatorId, operatorName, approverId, approverName, approveDate, needType 等字段(部分已在 alter_erp_mp_purchase_add_columns.sql 中添加)
  • 补全 Mapper XML 查询: MpPurchaseMapper.xml 需支持明细视图(物料维度 70 行)和单据视图(按 purchaseCode 聚合 31 行)两种查询模式;补充底部汇总 SQLSUM purchaseQty, orderedQty
  • 引入接口: 确认 /erp/mp/purchase/lead 接口返回生产计划单列表(含展开的物料明细:需求数量/可用量/已采数量/未采数量),对齐 PRD 4.4 节引入弹窗的 8 列 + 展开 7 列
  • 审核/反审核: 确认审核时填充 approverId/approverName/approveDate反审核时校验无下游采购订单引用
  • 编码生成: 确认 genCode 接口生成 CGJH + 6 位流水号

前端任务

  • 列表页 index.vue — 双视图切换: 对照 PRD 3.1/3.2 节实现明细视图11 列:序号/跟单编号/订单交期/单据编码/单据状态/物料名称/物料编码/采购数量/已订数量/单据日期/采购说明和单据视图9 列 + 操作列 查看/编辑/删除);工具栏按钮明细=[搜索/单据/查询所有/新增/导出],单据=[搜索/明细/查询所有/新增/删除/审核/反审核]
  • 列表页 — 快捷筛选标签: 物料分类标签(成品/原材料/五金件等),来源动态加载
  • 列表页 — 底部汇总: 采购数量 + 已订数量合计
  • 表单页 form.vue — 表头: 对照 PRD 4.2 节 19 个字段5 列布局),区分新增/编辑/查看模式的可编辑状态
  • 表单页 — 物料信息子表: 12 列(序号/物料编码/物料名称/型号规格/主计量/需求日期/需求数量/可用量/采购数量/已订数量/采购说明/操作)
  • 表单页 — 引入弹窗: 标题="选择生产计划单",搜索=[销售单号/物料编码/物料名称/日期范围],父行 8 列(销售员/销售单号/订单交期/计划单号/物料编码/物料名称/主计量/数量),展开子行 7 列(物料编码/物料名称/需求数量/可用量/已采数量/未采数量/备注)
  • 表单页 — 按钮组: 新增=[保存/取消/审核/反审核/收起/引入],查看=[新增/编辑/审核/反审核/打印/操作/收起 + 上一条/下一条],编辑=[保存/撤回/审核/反审核/操作/收起/引入/新增物料]

验收标准

  • 明细视图 / 单据视图切换正常,数据行数一致
  • 新增 → 引入 → 保存 → 审核 完整流程跑通
  • 底部汇总数据正确

阶段二采购订单P0 - 核心执行单据)

PRD: mom系统采购订单-页面开发说明文档.md 现有代码: erp-frontend-vue/src/views/Purchasing/Order/ + mom-backend/.../po/

后端任务

  • 确认 PoOrder / PoOrderLine 实体: 对照 PRD 5.1/5.2 节 erp_po_order22 字段)和 erp_po_order_line18 字段),确认 PoOrder.javaPoOrderLine.java 字段完整
  • 引入接口(采购计划单明细): 确认 /erp/po/order/lead/leadInto 接口返回采购计划单明细10 列:计划单号/销售员/跟单编号/订单交期/物料编码/物料名称/需求日期/需求数量/已采数量/未采数量),支持按跟单编号/料品大类/物料编码/物料名称搜索
  • 供应商选择: 确认 /erp/po/supplier/list 返回 7 列(序号/供应商名称/电话/业务联系人/手机号/状态/操作),注意 ERP 用 supplier_id/supplier_name vs MOM 用 vendor_id/vendor_name 的字段名差异
  • 金额计算: 确认 line.amount = line.quantity * line.unitPrice表头 totalQuantity / totalAmount 为明细行合计
  • 到货数量回写: 确认到货单审核后回写 order_line.arrived_quantity
  • Mapper XML: PoOrderMapper.xml 需支持明细视图83 行物料维度含供应商列和单据视图44 行单据维度);底部汇总 SUM(quantity) 作为订单数量

前端任务

  • 列表页 index.vue — 双视图: 明细视图 12 列(序号/跟单编号/计划编号/单据编码/单据状态/供应商/物料名称/物料编码/需求日期/采购数量/到货数量/单据日期),单据视图 9 列 + 操作列
  • 表单页 form.vue — 表头: 对照 PRD 4.2 节 17 字段(含供方选择弹窗、到货日期、采购合同上传、合同号),区分新增/编辑/查看模式
  • 表单页 — 物料子表: 14 列(序号/跟单编号/计划单号/物料编码/物料名称/型号规格/主计量/需求日期/数量/单价/金额/到货数量/采购说明/操作),底部合计行
  • 供应商选择弹窗: 标题="选择供应商",搜索=[供应商名称/业务联系人],按钮含"快速添加"7 列表格 79 行数据
  • 引入弹窗(采购计划单明细): 标题="采购计划单明细"10 列,按钮=[搜索/采购退货单/全选/确定/取消]
  • 按钮组差异: 新增=[保存/取消/审核/反审核/收起/引入/新增物料],查看=[新增/编辑/审核/反审核/打印/操作/收起],编辑=[保存/撤回/审核/反审核/操作/收起/引入/新增物料],注意编辑页有"撤回"按钮而非"取消"
  • 金额自动计算: 数量 x 单价 = 金额,合计行实时更新

验收标准

  • 新增 → 选择供应商 → 引入计划明细 → 修改单价 → 金额自动计算 → 保存 → 审核 完整流程
  • 供应商弹窗正确加载(注意 supplier vs vendor 字段映射)
  • 引入弹窗含全选和退货单切换按钮

阶段三采购计划需求表P1 - 只读报表)

PRD: mom系统采购计划需求表-页面开发说明文档.md 现有代码: 前端无独立组件(需新建 need.vue),后端接口 GET /mp/plan/need/list 待实现

后端任务

  • 实现查询接口: GET /erp/mp/plan/need/list,基于 erp_mp_purchase 按物料维度查询,关联库存计算可用量,返回 12 列(销售订单号/计划单号/物料编码/物料名称/需求数量/可用量/采购数量/已订数量/未订数量/单据日期/采购说明)
  • 实现导出接口: GET /erp/mp/plan/need/export,参数同查询接口
  • 未订数量计算: unorderedQty = purchaseQty - orderedQty
  • 可用量: 查询库存可用量(可为负值,表示缺料)

前端任务

  • 新建 need.vue: 单文件组件,仅列表页无详情页
  • 搜索区: 6 个搜索项(销售订单号/物料编码/物料名称/开始日期/结束日期/下拉选择)
  • 工具栏: 4 按钮(搜索/查询所有/导出/打印)+ 快捷标签(原材料/零部件/五金)
  • 表格: 12 列,底部汇总 3 项(采购数量/已订数量/未订数量)
  • 可用量负值高亮: 可用量 < 0 时红色显示
  • 路由注册: /production/purchase-need 或复用 /mp/plan/need

验收标准

  • 页面加载显示采购需求汇总数据
  • 快捷标签筛选正常
  • 导出 Excel 正常
  • 底部 3 项汇总数据正确

开发依赖与顺序

gantt
    title 采购模块开发甘特图
    dateFormat YYYY-MM-DD
    section 阶段一_采购计划单
    后端补全字段与接口    :a1, 2026-02-08, 2d
    前端列表页双视图      :a2, after a1, 2d
    前端表单页含引入弹窗  :a3, after a2, 3d
    联调与自测            :a4, after a3, 1d
    section 阶段二_采购订单
    后端引入与金额逻辑    :b1, after a1, 2d
    前端列表页双视图      :b2, after b1, 2d
    前端表单页含供应商弹窗 :b3, after b2, 3d
    联调与自测            :b4, after b3, 1d
    section 阶段三_需求报表
    后端查询汇总接口      :c1, after a4, 1d
    前端need_vue组件      :c2, after c1, 1d
    联调与自测            :c3, after c2, 1d

关键技术注意事项

  • 供应商字段映射: ERP 用 supplier_id/supplier_name/supplier_codeMOM 用 vendor_id/vendor_name/vendor_code表名也不同erp_po_supplier vs md_vendor接口调用和数据同步时需做字段转换
  • 双视图模式: 三个页面中采购计划单和采购订单都有明细/单据双视图,通过 viewMode 状态变量切换,共享搜索条件的公共字段
  • 引入弹窗嵌套表格: 采购计划单的引入弹窗需支持父行展开子行(可用量/未采数量等),采购订单的引入弹窗为平铺 10 列
  • 金额计算: 仅采购订单有单价/金额字段,采购计划单和需求表不涉及价格
  • 状态流转: 采购计划单和采购订单共用 DRAFT→APPROVED 流转,反审核需校验下游引用