Skip to content

Latest commit

 

History

History
262 lines (208 loc) · 10.9 KB

File metadata and controls

262 lines (208 loc) · 10.9 KB

采购入库流程设计(改进版)

1. 业务对象

业务对象 说明 核心属性
采购清单 需求方创建,包含采购单头与采购单行 单号、需求部门、创建时间、状态(草稿/已发布/部分收货/已完成/已关闭)
采购清单行 明细物料及数量 行号、物料编码、计划数量、已收货数量、单价、期望到货日期
供应商 提供物料的主体 供应商编码、名称、联系方式
物料 采购的货物基本信息 物料编码、名称、规格、单位、是否启用批次管理、是否启用二维码管理
发货通知单 供应商响应采购清单后创建,表示准备发货 通知单号、关联采购单号、供应商、预计发货时间、状态(新建/已发货/部分发货/完成)
发货通知单行 对应采购单行,可拆分数量 行号、采购单行号、物料编码、通知数量、已发货数量
货运单 实际发出货物时创建,包含物流信息 货运单号、关联发货通知单号、承运商、运单号、发货时间、状态(在途/部分到货/已到货/已拒收)
收货记录 仓库实际核对实物后创建,触发质检 收货单号、关联货运单号、收货人、收货时间、实收数量、外包装状态(合格/异常)
收货记录行 按物料/批次明细收货 行号、物料编码、实收数量、批次号、二维码(如有)、是否启用质检
质检单 质检部门根据收货记录创建,记录检验结果 质检单号、关联收货单号、质检员、质检时间、整体结果(合格/不合格/部分合格)
质检明细 按物料/批次逐项检验 明细号、物料编码、批次号、二维码、检验项目、标准值、实测值、单项结果、最终判定(合格/不合格/让步接收/拒收)
退货单 质检不合格或到货异常时生成,退回供应商 退货单号、关联收货单号/质检单号、退货原因、退货数量、状态(待退/已退/已关闭)
入库单 质检合格后正式入库,确定库位 入库单号、关联质检单号/收货单号、入库时间、库位编码、仓库位ID、操作人、状态(暂存/已上架)
入库单行 按物料/批次/二维码入库 行号、物料编码、批次号、二维码、入库数量、库位编码、仓库位
库位 仓库存储位置 库位编码、仓库ID、库区类型(暂存区/合格区/不合格区)、容量、是否占用
二维码记录 统一管理货物二维码(可预生成或到货生成) 二维码ID、物料编码、批次号、生成方(供应商/仓库)、生成时间、关联单据号

2. 业务活动及业务流程

2.1 角色及职责

  • 需求方:创建采购清单
  • 供应商:响应采购清单,创建发货通知单;实际发货时创建货运单
  • 仓库收货员:到货验收,创建收货记录,触发质检
  • 质检员:创建质检单,执行检验,判定结果
  • 仓库管理员:根据质检结果安排入库或退货,分配库位

2.2 正常流程(全部合格)

  1. 需求方创建采购清单(单头+单行)

    • 状态:已发布
  2. 供应商响应 → 创建发货通知单(可部分响应)

    • 状态:新建
  3. 供应商实际发货 → 创建货运单,关联发货通知单

    • 状态:在途
  4. 货物到达仓库 → 仓库收货员核对实物(数量、外包装),与货运单比对

    • 若一致,创建收货记录,状态“已收货”;若不一致,可部分收货或拒收(走异常分支)
    • 收货记录创建后,自动触发质检单创建(系统生成或人工创建)
  5. 质检员执行质检

    • 扫描物料批次/二维码,填写检验结果
    • 若全部合格 → 质检单整体结果“合格”
  6. 仓库管理员分配库位

    • 系统推荐或人工选择正式库位
  7. 创建入库单

    • 关联质检单,填写入库数量、库位信息
    • 执行上架,入库单状态“已上架”
  8. 流程完成,更新采购清单行的已收货数量,若全部收完则采购清单状态“已完成”

2.3 异常流程示例(质检不合格)

  • 步骤5中,质检判定部分/全部不合格 → 质检单结果“不合格”或“部分合格”
  • 分支A:可让步接收 → 质检明细标记“让步接收”,质检员注明原因,仍走正常入库,但需额外审批
  • 分支B:拒收 → 创建退货单,记录退货数量和原因;仓库将货物移至不合格区;通知供应商;货运单状态部分置为“已拒收”;采购清单行扣减可收货数量
  • 分支C:部分合格 → 对合格部分创建入库单,不合格部分生成退货单

3. 业务对象相关表实体分解

3.1 采购模块

表名:purchase_order(采购单头)

字段 类型 说明
po_id bigint PK 采购单号
dept varchar 需求部门
create_time datetime 创建时间
status varchar 草稿/已发布/部分收货/已完成/已关闭

表名:purchase_order_line(采购单行)

字段 类型 说明
line_id bigint PK 行号
po_id bigint FK 关联采购单头
material_code varchar 物料编码
planned_qty decimal 计划数量
received_qty decimal 已收货数量
unit_price decimal 单价
expected_date date 期望到货日期

3.2 供应商响应与发货

表名:delivery_notice(发货通知单头)

字段 类型 说明
notice_id bigint PK 通知单号
po_id bigint FK 关联采购单
supplier_code varchar 供应商编码
expect_ship_time datetime 预计发货时间
status varchar 新建/已发货/部分发货/完成

表名:delivery_notice_line(发货通知单行)

字段 类型 说明
line_id bigint PK
notice_id bigint FK
po_line_id bigint FK 采购单行号
material_code varchar
notice_qty decimal 通知数量
shipped_qty decimal 已发货数量

表名:freight_order(货运单)

字段 类型 说明
freight_id bigint PK 货运单号
notice_id bigint FK 关联发货通知单
carrier varchar 承运商
tracking_no varchar 运单号
ship_time datetime 发货时间
status varchar 在途/部分到货/已到货/已拒收

3.3 收货与质检

表名:receipt_record(收货记录头)

字段 类型 说明
receipt_id bigint PK 收货单号
freight_id bigint FK 关联货运单
receiver varchar 收货人
receipt_time datetime 收货时间
package_status varchar 合格/异常

表名:receipt_record_line(收货记录行)

字段 类型 说明
line_id bigint PK
receipt_id bigint FK
material_code varchar
actual_qty decimal 实收数量
batch_no varchar 批次号
qr_code varchar 二维码(可为空)
need_qc boolean 是否需质检(默认true)

表名:qc_order(质检单头)

字段 类型 说明
qc_id bigint PK 质检单号
receipt_id bigint FK 关联收货单
qc_user varchar 质检员
qc_time datetime 质检时间
overall_result varchar 合格/不合格/部分合格

表名:qc_detail(质检明细)

字段 类型 说明
detail_id bigint PK
qc_id bigint FK
material_code varchar
batch_no varchar
qr_code varchar
check_item varchar 检验项目(如外观、尺寸)
standard_value varchar 标准值
measured_value varchar 实测值
item_result varchar 单项结果(合格/不合格)
final_judgment varchar 合格/不合格/让步接收/拒收

3.4 退货处理

表名:return_order(退货单头)

字段 类型 说明
return_id bigint PK 退货单号
source_type varchar 来源类型:收货单/质检单
source_id bigint 关联来源单据ID
reason text 退货原因
total_qty decimal 退货数量
status varchar 待退/已退/已关闭

表名:return_order_line(退货单行)

字段 类型 说明
line_id bigint PK
return_id bigint FK
material_code varchar
batch_no varchar
qr_code varchar
return_qty decimal 退货数量

3.5 入库与库位

表名:inbound_order(入库单头)

字段 类型 说明
inbound_id bigint PK 入库单号
qc_id bigint FK 关联质检单(合格部分)
source_receipt_id bigint FK 也可直接关联收货单(备选)
inbound_time datetime 入库时间
operator varchar 操作人
status varchar 暂存/已上架

表名:inbound_order_line(入库单行)

字段 类型 说明
line_id bigint PK
inbound_id bigint FK
material_code varchar
batch_no varchar
qr_code varchar
inbound_qty decimal 入库数量
location_code varchar 库位编码(外键)

表名:location(库位主数据)

字段 类型 说明
location_code varchar PK 库位编码
warehouse_id varchar 仓库ID
zone_type varchar 暂存区/合格区/不合格区
capacity decimal 最大容量
is_occupied boolean 是否占用

3.6 二维码辅助管理

表名:qr_code_master(二维码记录)

字段 类型 说明
qr_id bigint PK
qr_code varchar unique 二维码值
material_code varchar
batch_no varchar
generated_by varchar 供应商/仓库
generate_time datetime
source_doc_no varchar 生成时的关联单号(如发货通知单号)

4. 表关系简要说明

  • purchase_order 1:N purchase_order_line
  • purchase_order 1:N delivery_notice
  • delivery_notice 1:N delivery_notice_line
  • delivery_notice 1:N freight_order
  • freight_order 1:N receipt_record
  • receipt_record 1:N receipt_record_line
  • receipt_record 1:1 qc_order(通过 receipt_id 触发)
  • qc_order 1:N qc_detail
  • qc_order 1:1 或 1:N inbound_order(若分批入库可能多张)
  • inbound_order 1:N inbound_order_line
  • inbound_order_line N:1 location
  • qc_orderreceipt_record 1:N return_order(当不合格时)