入库收货 · 需求文档(IM-02)
入库收货是 入库管理 的核心作业入口,把到货药品(采购到货、供应商直送、门店/销退退货、上游协同单、电子随货同行单等)通过 扫码 / 按单 / 按品 三种模式完成实物核验、追溯码采集与库存入账,并将结果 回传 ERP、在 码上放心 平台完成追溯码核注。核心约束:来源单驱动(也可无单直收)、药品须采追溯码、提交即回传 ERP、拒收追溯码不回传 ERP、多货主/租户隔离。
模块定位
入库收货是 WMS 把"实物到货"转化为"可用库存"的唯一落地环节。它向上承接采购中心/采购订单、店退订单、上游协同单、电子随货同行单等来源,向下衔接入库验收、库存批次、追溯码中台与 ERP 入库记账。它本身不做验收判定(见独立文档"入库验收"),但承载"收货—拒收"的完整作业与数据。
要解决的问题
- 到货实物与来源单(采购单/随货单)脱节,靠人工对单、手抄批号效期,效率低且易错。
- 药品追溯码未在前端采集,导致后续码上放心核注、合规追溯缺数据。
- 收货与 ERP 入库记账不同步,出现"实物已收、ERP 未入账"或"已拒收仍回传"的账实不符。
- 收货与验收权责不清,缺少收货员/验收员角色与工作量统计。
- 多货主(3PL)场景下,收货数据未按 owner 隔离,存在串货风险。
目标(可衡量)
- 支持 三种收货模式(扫码 / 按单 / 按品),覆盖采购到货、退货、直调、无单直收等主要来源。
- 药品收货 100% 采集追溯码并通过码上放心接口获取批号/生产日期/有效期,非追溯商品支持手工录入。
- 提交收货后 自动回传 ERP 入库;被拒收的追溯码 严格不回传 ERP。
- 收货数据按 owner_id / tenant_id 全程隔离,可审计、可统计(收货员/验收员工作量)。
2.1 核心约束与设计原则
① 来源单驱动,也可无单直收。收货以"来源单"为锚(采购订单 / 店退订单 / 上游协同单 / 电子随货同行单),系统自动带入供应商、商品、应收数量;无来源单时支持"无单直收/直调入库记账",由操作员手工选择供应商与商品。
② 追溯码采集 —— 药品到货必须扫码。化学药品/中成药/中药饮片/生物制品等须采集追溯码,调用 码上放心 接口以标识码匹配商品并获取批号、生产日期、有效期;企业未开通码上放心时,批号/生产日期/有效期为空,由操作员手工填写。非追溯码商品通过检索框手工添加,须填写批号/生产日期/有效期/数量。
③ 提交即回传 ERP,拒收隔离。保存的收货单可重新编辑;提交后推送 ERP 完成入库且订单锁定不可再编辑;被拒收的追溯码从"已收货"数据中剔除并 严禁回传 ERP,仅生成退货出库单回传码上放心。
④ 多货主/租户隔离。收货单与明细均按 owner_id / tenant_id 隔离,跨货主/租户不可见彼此数据;来源单归属须与当前仓库/货主一致。
⑤ 角色 —— 收货员 / 验收员。通过"设置收货员、验收员"配置作业角色,收货与验收分离,支撑工作量统计与责任追溯。
2.2 数据模型(收货单 + 收货明细)
收货以 收货单号 为头,下挂多条 收货明细。关键字段如下:
| # | 字段 | 来源 / 可编辑性 | 说明 |
|---|---|---|---|
| 1 | 收货单号 | 系统生成 | 收货单唯一编号,保存时自动生成 |
| 2 | 来源类型 | 操作员选择 | 采购到货 / 店退 / 销退 / 直调 / 上游协同单 / 无单直收 |
| 3 | 来源单号 | 接口带入 | 采购订单号 / 店退单号 / 随货单号等;无单直收为空 |
| 4 | 供应商 / 客户 | 只读(接口) | 取自供应商管理 BM-02 / 客户管理 BM-03,WMS 只读 |
| 5 | 仓库 / 货主 | 系统/选择 | 关联当前仓库与 owner_id,决定库存归属 |
| 6 | 收货员 / 验收员 | 登录/配置 | 取自登录人与"设置收货员、验收员"角色 |
| 7 | 整散标识 | 操作员选择 | 整件 / 散件(收货增加整散标识需求) |
| 8 | 状态 | 系统 | 草稿 / 收货中 / 已收货待验收 / 已验收 / 已拒收 |
| 9 | 明细·商品(sku_id,owner_id) | 匹配/选择 | 关联商品管理 BM-01;追溯码匹配或手工选择 |
| 10 | 明细·批号/生产日期/有效期 | 码上放心/手工 | 码上放心接口返回;未开通则手工填写 |
| 11 | 明细·应收/实收数量 | 采集 | 应收来自来源单,实收来自扫码/录入 |
| 12 | 明细·采购价 | 默认取商品·可改 | 默认取自商品资料,可改且回写商品资料 |
| 13 | 明细·追溯码列表 | 扫码采集 | 单个或多个追溯码;可删,删除后数量同步变更 |
| 14 | 明细·规格/通用名称 | 只读 | PDA 收货明细处显示规格,便于同品多条区分 |
2.3 三种收货模式
| # | 模式 | 触发来源 | 关键交互 | 说明 |
|---|---|---|---|---|
| 1 | 扫码收货 | 采购到货 / 供应商直送 / 无单直收 | 批量扫描追溯码 → 标识码匹配商品 → 码上放心取批号/生产日期/有效期 | 多商品匹配时前端提示"匹配到多条商品,请手动选择";电子监管商品须完成扫码方可提交 |
| 2 | 按单收货 | 采购订单 / 上游协同单 | 选择来源单带入商品应收,按单核验实收 | 校验用户已绑定 ERP 工号(多数据源);确认收货时比对收货数量与订单数量,不足可"拒收/下次收货" |
| 3 | 按品收货(明细收货) | 电子随货同行单(辽药监流〔2025〕57号) | 按品/按单页签(待收货/已收货),核对实物确认收货,整单确认生成电子签名 | 不支持扫描追溯码;页面显示规格便于同品区分;确认后调用接口与 ERP 交互、生成电子随货同行单签名 |
说明:"按品收货 / 明细收货"是扫码收货、按单收货之外的第三种来源形态,专门针对"电子随货同行单"场景,政策合规要求单据字段完整、可查询下载打印、数据保存不少于 5 年。
2.4 入库拒收(整单 / 批号 / 追溯码)
收货过程中发现质量问题、信息不符等,支持三种粒度拒收,均须同步码上放心并生成退货出库单:
| # | 拒收粒度 | 操作逻辑 |
|---|---|---|
| 1 | 整单拒收 | 一键拒收整单,关联追溯码全部上传码上放心标记"拒收",自动生成退货出库单并上传 |
| 2 | 批号拒收 | 在明细行按批号拒收,自动找出该批号下全部追溯码上传标记"拒收",生成含该批号商品的退货出库单 |
| 3 | 追溯码拒收 | 扫描单个/多个追溯码拒收,上传标记"拒收",生成含这些码的退货出库单 |
通用规则:每次拒收生成一条拒收记录(拒收单号、关联入库单号、拒收方式、拒收商品/批号/追溯码、数量、操作人、操作时间);被拒收追溯码从原收货"已收货"数据剔除,严禁回传 ERP;退货出库单上传码上放心。
2.5 功能清单与详细需求
| # | 功能项 | 优先级 | 需求说明与验收要点 |
|---|---|---|---|
| 1 | 收货单创建与来源单选择 | P0 | 新增收货单,选择来源类型与来源单(采购单/店退单/随货单/无单直收),自动带入供应商/客户、商品与应收数量。 验收:来源单可正确带入;无单直收可手工选供应商与商品。 |
| 2 | 扫码收货·追溯码采集与码上放心匹配 | P0 | 批量扫描追溯码,按标识码匹配商品,调用码上放心获取批号/生产日期/有效期;多条匹配时提示手动选择;可删除追溯码(数量同步变更)。 验收:扫码后正确匹配商品与批号效期;删除码数量回退;多匹配提示生效。 |
| 3 | 非追溯码商品手工录入 | P0 | 通过检索框手工添加非追溯码商品,填写批号/生产日期/有效期/数量;保存/提交时校验明细商品信息非空。 验收:手工录入可落明细;空商品信息被拦截并提示手动选择。 |
| 4 | 按单收货·订单驱动与数量校验 | P0 | 按来源单收货,确认收货时校验收货数量与订单数量;不足时弹窗提示并提供"拒收/下次收货"单选(默认下次收货);要求用户已绑定 ERP 工号。 验收:数量不足弹窗与单选生效;未绑定 ERP 工号拦截并引导绑定。 |
| 5 | 按品收货(明细收货)·电子随货对接 | P1 | 按品/按单页签(待收货/已收货)展示随货单商品;不支持追溯码扫描;核对实物后确认收货,整单确认生成电子签名;确认后调用接口与 ERP 交互。 验收:页签与待/已收品种数正确;确认收货后状态流转与签名生成;接口交互成功。 |
| 6 | 采购价处理 | P1 | 采购价默认取商品资料,操作员可改;修改后采购价同步更新商品资料。 验收:默认取值正确;改价后商品资料同步更新。 |
| 7 | 收货保存/提交与 ERP 回传 | P0 | 保存可重编;提交推送 ERP 完成入库并锁定不可编辑;电子监管商品须完成扫码方可提交。 验收:保存可再编辑;提交后回传 ERP 且订单锁定;未扫码被拦截。 |
| 8 | 入库拒收(整单/批号/追溯码) | P0 | 支持三种粒度拒收,生成拒收记录;拒收追溯码上传码上放心标记"拒收",自动生成退货出库单并上传。 验收:三种粒度均可触发;拒收记录字段完整;退货单生成并上传。 |
| 9 | 拒收 ERP 数据隔离 | P0 | 被拒收追溯码从收货"已收货"剔除,严禁回传 ERP,确保 ERP 库存准确。 验收:拒收后 ERP 侧不出现该批码;剔除与隔离逻辑生效。 |
| 10 | 整散标识 | P1 | 收货单/明细支持整件、散件标识,便于上架与库存区分。 验收:整散标识可标记并随明细落库、可查询。 |
| 11 | 收货员/验收员角色设置 | P1 | 支持设置收货员、验收员角色,收货与验收分离,作业人取自登录人。 验收:角色可配置;收货/验收记录带操作人。 |
| 12 | PDA 收货明细显示规格 | P2 | PDA 收货明细列表显示"规格",便于多条相同品种时区分应选择哪条。 验收:PDA 明细含规格列且同品多条可区分。 |
| 13 | 收货记录查询与工作量统计 | P1 | 业务查询→入库查询→入库收货记录;数据分析→收货员工作量统计、验收员工作量统计。 验收:可按单号/供应商/日期/状态检索收货记录;工作量统计按角色汇总。 |
Future(P2,本期不做但架构预留):收货移动端(门店收货)与 PC 统一;收货异常预警(批号效期临期提醒);收货与验收一体化看板;电子随货同行单 PDF 模板自定义(文件命名/印章设置)。
2.6 用户故事
- 作为仓储收货员,我希望用 PDA/扫码枪批量扫追溯码收货,以便系统自动带出批号、生产日期、有效期,不用手抄。
- 作为仓储收货员,我希望按采购订单收货并比对数量,数量不足时能选择"拒收"或"下次收货",以便账实清晰。
- 作为门店收货员,我希望按电子随货同行单核对实物并确认收货、生成电子签名,以便符合 GSP 与辽宁电子随货政策要求。
- 作为仓储验收员,当我发现到货有问题时我希望按整单/批号/追溯码拒收,系统自动生成退货单并回传码上放心,且这些码不进 ERP 库存。
- 作为仓储管理员,我希望按货主/供应商/日期查询收货记录,并统计收货员、验收员工作量,以便考核与追溯。
- 作为采购专员,我希望提交收货后自动回传 ERP 入库,以便不用两边录单、账实一致。
2.7 非目标(Non-goals)
- 不做验收判定逻辑——验收(合格/不合格结论、质量状态)属独立"入库验收"模块,本模块只负责收货与拒收的数据与作业。
- 不生产供应商/客户/商品主数据——均来自 ERP(BM-02/BM-03/BM-01),WMS 只读或仅补充作业维度。
- 不回写商品基础信息到 ERP——仅采购价经约定回写商品资料(属 WMS 侧商品资料,非 ERP 主数据)。
- 不做采购价定价/促销逻辑——采购价仅取数、可改、回写商品资料,定价策略属 ERP。
- 不替代追溯码中台核注——本模块采集追溯码并调用码上放心,核注与合规展示由追溯管理模块承载。
2.8 主要风险
- 码上放心接口不稳定 / 未开通 → 批号效期缺失、扫码匹配失败;缓解:未开通时手工填写并提示,接口异常失败隔离+重试。
- 拒收码误回传 ERP → ERP 虚增库存;缓解:拒收码从已收货剔除 + 回传前强制过滤 + 记录审计。
- 多匹配未人工确认 → 商品归属错;缓解:前端明确提示"匹配到多条,请手动选择",禁止自动臆测。
- ERP 工号未绑定(多数据源) → 按单/门店收货无法归属;缓解:进入功能前校验并引导绑定,缺失即拦截。
- 电子随货合规缺口 → 不满足辽药监流〔2025〕57号;缓解:单据字段、签名、保存≥5年按政策落地。
- 多货主串货 → 收货数据未按 owner 隔离;缓解:owner_id / tenant_id 全程隔离与权限控制。
上游:采购中心 / 采购订单、店退订单
- 采购订单、店退订单是"按单收货"的来源单,带入商品与应收数量。
- 采购侧产生的商品变更经商品管理(BM-01)回流,收货引用其 sku 与单位。
上游:供应商管理(BM-02)/ 客户管理(BM-03)
- 收货单的供应商/客户取自主数据,WMS 只读;多货主(owner_id)决定库存归属。
下游:入库验收(in-accept)
- 本模块完成"收货—拒收",验收(合格判定/质量状态)由独立"入库验收"模块承接,状态流转为 已收货待验收 → 已验收。
下游:库存 / 批次、追溯码中台
- 收货实收数量与批号/效期落地为库存批次;追溯码采集后由追溯管理完成码上放心核注。
- 拒收的追溯码不进入可用库存,仅生成退货出库单。
外部:ERP 回传
- 提交收货推送 ERP 完成入库记账;拒收码严格不回传。
外部:电子随货同行单(GSP / 辽药监流〔2025〕57号)
- "按品收货/明细收货"场景的合规支撑:单据字段完整、可查询/下载/打印、电子签名、保存不少于 5 年。
配置依赖:系统管理 / 角色与打印
- 收货员/验收员角色在【系统管理→角色管理】配置;电子随货 PDF 模板在【打印模板管理】配置(文件命名/印章设置)。
关联配置项汇总
| # | 配置项 | 路径 | 说明 |
|---|---|---|---|
| 1 | 收货员 / 验收员角色 | 系统管理 → 角色管理 | 配置收货、验收作业角色 |
| 2 | 电子随货 PDF 模板 | 系统管理 → 打印模板管理 | 文件命名、印章设置、签名 |
| 3 | 码上放心接口 / 企业开通状态 | 追溯管理 → 追溯码上传设置 | 决定扫码匹配批号效期是否可用 |
- 性能:收货单列表与明细查询响应 ≤ 1 秒(本地/索引);批量追溯码采集与回传支持高并发,单批失败不影响整体。
- 数据一致性:提交收货与 ERP 入库一致;拒收码与已收货数据剔除一致;码上放心核注与实物采集一致。
- 安全性与权限:多租户隔离——收货单/明细按 owner_id / tenant_id 隔离,跨货主不可见;收货/验收操作前后端双重记录操作人与时间;拒收回传 ERP 前强制过滤被拒收码。
- 可用性与容错:码上放心/ERP 接口异常时失败隔离、记录明细、支持重试;电子监管商品未扫码提交被拦截并提示;多匹配提示人工选择而非自动臆测。
- 合规性:电子随货同行单满足辽药监流〔2025〕57号(字段完整、电子签章、可查询下载打印、保存≥5年、异地备份防篡改)。
- 可维护性与扩展性:收货模式可插拔(扫码/按单/按品),便于新增来源形态;来源单类型可配置扩展。
- 异常处理:明细商品信息为空→拦截提示手动选择;ERP 工号未绑定→拦截引导绑定;未开通码上放心→批号效期手工填写。
评审核对清单
- 三种收货模式(扫码/按单/按品)的边界是否清晰,是否存在场景重叠或遗漏(如退货类来源归属)?
- 码上放心接口在未开通/异常时的降级策略是否明确(手工填写、失败隔离、重试)?
- 拒收码"剔除已收货 + 不回传 ERP + 生成退货单 + 上传码上放心"四步是否闭环且可审计?
- 按单收货的 ERP 工号绑定(多数据源)逻辑是否覆盖所有门店/按单场景?
- 电子随货同行单是否满足辽药监流〔2025〕57号 全部合规要求(字段/签章/保存期/备份)?
- 采购价"取商品资料、可改、回写商品资料"的口径是否与商品管理(BM-01)一致、是否需回写 ERP?
- 收货与入库验收的状态机衔接(已收货待验收 → 已验收)是否对齐独立验收模块?
- 多货主/租户隔离(owner_id / tenant_id)是否满足安全与合规要求?
- 非目标边界是否清晰(不做验收判定、不生产主数据、不回写 ERP 主数据),避免范围蔓延?
需用户 / 架构确认的开放问题
- 收货与验收是否合并为一站式作业,还是严格分离(影响状态机与角色设计)?
- "按品收货/明细收货"是否本期纳入,还是随电子随货政策单独排期?
- 采购价回写的范围:仅 WMS 商品资料,还是同步 ERP 采购价?
- 无单直收/直调入库记账的管控强度(是否需要来源单强约束)?
- 电子随货同行单的 PDF 生成与存储方案(文件服务地址、印章、签名)由谁提供?