跳转至

申请、任务与记录模型

状态:首轮样板阶段已开始抽取公共模型;WMS 采购收货是首轮取证样例。本文沉淀已由 dev 基线证实的共用规则;未覆盖业务仍须逐项核验,不要当成全站已闭合矩阵。

本页解决什么问题

现场单据常被写成「一张单」或「一个状态」,排障时却对不上:申请里还在审批,任务已到现场,记录已经动了库存。本页把 申请 / 任务 / 记录 拆开说明——各自解决什么问题、如何用单号追溯、通用状态与自动策略如何改流转。

读完应能判断:当前业务是否按三层走、卡在哪一层、业务页该复用本页哪些通则、哪些差异必须留在业务页。

如何使用本页

你的目的 建议做法
理解「申请 ≠ 任务 ≠ 记录」 先读「分层责任」与「通用链路」,再对照状态机图
写业务页时引用 通则链到本页;本页「业务页输出规则」里的差异项写在业务页
排障 / 验收时对照 用单号字段表从记录回查任务与申请;用状态/动作表核对按钮是否该出现
确认本业务是否适用 看「适用与例外」;未取证模块标 ,不要直接套采购收货

具体业务页只写本业务特有内容(来源单据、字段差异、库存影响、接口挂接、异常分支、终端入口)。通用定义、通用状态和通用动作统一链接本页。

抽取时机与复用原则

这类共用知识不等到全站批量占位时再抽取,而是在样板闭环阶段完成首版抽取。

阶段 是否抽取公共模型 原因
P0 单业务初扫 暂不急于抽取 先确认至少一个业务的真实代码链路,避免把猜测写成公共规则。
样板闭环 必须抽取 当采购收货等样板页已经证实申请、任务、记录的共性后,应立即沉淀到本页。
批量占位前 必须复核 批量铺开前,以本页作为页面模板和状态说明来源。
批量业务填充中 持续回写 后续业务若发现例外,只在业务页说明差异,并回写本页「适用与例外」。

分层责任

对象 业务目的 典型创建方式 使用者关注点 文档写法
订单(Order) 承接外部或上游业务意图。 ERP/SCP/客户/供应商接口,或人工维护。 业务来源、数量、交期、对象。 作为来源说明,不直接写成现场执行结果。
计划(Plan) 对订单或需求进行计划性拆分。 计划运算、人工编制、第三方导入。 计划数量、计划日期、可执行性。 是否实际使用需按模块核验。
申请(Request) 提出需要系统处理的业务请求。 人工新增、导入、接口、自动生成。 谁提出、为什么处理、是否需要审批、是否可关闭。 说明来源、审批、处理前置条件和明细约束。
任务(Job) 把申请转成可执行的现场工作。 申请处理、自动执行、系统拆分。 谁执行、在哪里执行、允许修改什么、是否产生预计库存。 说明状态、承接/执行/关闭/异常和终端操作。
记录(Record) 固化已经发生的业务事实。 任务执行、受控直记、撤销冲抵。 实际发生了什么、影响了哪些库存/接口/后续单据。 说明库存事务、接口回写、撤销和追溯。

通用链路

flowchart LR A["上游订单 / 计划 / 外部接口"] --> B["申请 Request<br/>表达业务意图"] B --> C{"是否自动提交 / 自动审批 / 自动执行"} C -->|需要人工处理| D["审批 / 处理动作"] C -->|自动执行| E["任务 Job<br/>现场待执行工作"] D --> E E --> F["预计库存<br/>预计入 / 预计出"] E --> G["终端或 Web 执行"] G --> H["记录 Record<br/>已发生业务事实"] H --> I["库存事务"] I --> J["库存余额"] H --> K["第三方接口 / 后续申请 / 报表追溯"]

通用理解:

  • 申请解决「要不要做、为什么做、由谁批准」。
  • 任务解决「谁去做、去哪里做、按什么限制做」。
  • 记录解决「实际做了什么、对库存和接口造成了什么影响」。
  • 预计库存通常挂在任务阶段,实际库存变化通常挂在记录阶段。

通用关联字段

关系 常见字段 说明
申请自身编号 number 申请主表单据号;通常也是申请明细的业务单号。
任务追溯申请 request_number 任务主表保存来源申请单号。
记录追溯申请 request_number 记录主表保存来源申请单号,便于从最终结果回查业务意图。
记录追溯任务 job_number 记录主表保存来源任务单号,便于回查现场执行过程。
明细归属主表 master_id 明细表通常通过主表 ID 归属主表。
下游库存挂接 job_numberrecord_number 预计库存通常挂任务号;库存事务通常挂记录号。

字段名称必须以当前 DDL、DO、VO 和前端实际请求为准。旧文档中自行翻译出来的 request_notask_idreceipt_no 等名称不能作为当前字段依据。

通用状态与动作

申请状态

状态码 状态名称 典型含义
1 新增 申请已创建,尚未提交或处理。
2 审批中 已提交,等待审批。
3 审批通过 审批已通过,可进入处理。
4 审批驳回 审批未通过,可按业务规则重新添加或关闭。
5 关闭 申请被关闭。
6 处理中 申请已进入任务生成或执行链路。
7 部分完成 部分明细或部分数量已完成。
8 已完成 申请已完成。

申请动作

动作 通用前置 通用结果 说明
提交 新增 审批中、审批通过或处理中 结果受自动通过、自动执行配置影响。
同意 审批中 审批通过或处理中 若自动执行开启,可能直接生成任务。
驳回 审批中 审批驳回 业务页需说明驳回后是否允许重提。
处理 审批通过或部分完成 处理中 通常触发任务生成。
关闭 新增、审批中、审批通过、审批驳回、处理中、部分完成 关闭 若已有进行中任务,通常应阻止关闭或先处理任务。
重新添加 关闭或审批驳回 新增 是否在前端开放,需要业务页单独核验。

任务状态与动作

状态码 状态名称 典型动作
1 待处理 可承接、关闭。
2 进行中 可执行、放弃;部分业务允许拒收、撤销等异常动作。
3 完成 已执行完成,通常已生成记录。
4 关闭 未执行而关闭。
5 拒收 执行异常结果之一。
6 撤销 任务撤销结果之一。
动作 通用前置 通用结果 说明
承接 待处理 进行中 记录承接人和承接时间。
放弃 进行中 待处理 清空承接信息,任务可重新被承接。
关闭 待处理 关闭 业务页需说明预计库存如何处理。
执行 进行中 完成 通常生成记录。

记录状态与动作

状态码 状态名称 典型含义
1 正常 有效业务事实。
2 已撤销 原记录已被撤销。
3 撤销冲抵 系统为撤销生成的冲抵记录。

记录不是普通可编辑数据。记录撤销通常需要校验库存现状,并生成反向库存事务或冲抵记录;具体影响必须在业务页说明。

通用状态机(已证实状态码)

下图按通用状态码与动作绘制。业务页若复用本模型,可直接引用;若存在拒收、撤销可见性等差异(如采购收货 GAP-009),在业务页用虚线或待确认说明,不要改写本图为「全业务必经路径」。

stateDiagram-v2 [*] --> 新增: 创建申请 新增 --> 审批中: 提交 新增 --> 审批通过: 提交且自动通过 新增 --> 处理中: 提交且自动执行 审批中 --> 审批通过: 同意 审批中 --> 处理中: 同意且自动执行 审批中 --> 审批驳回: 驳回 审批通过 --> 处理中: 处理 / 生成任务 处理中 --> 部分完成: 部分明细完成 处理中 --> 已完成: 全部完成 部分完成 --> 已完成: 剩余完成 审批驳回 --> 新增: 重新添加 关闭 --> 新增: 重新添加 新增 --> 关闭: 关闭 审批中 --> 关闭: 关闭 审批通过 --> 关闭: 关闭 审批驳回 --> 关闭: 关闭 处理中 --> 关闭: 关闭 部分完成 --> 关闭: 关闭
stateDiagram-v2 [*] --> 待处理: 生成任务 待处理 --> 进行中: 承接 进行中 --> 待处理: 放弃 进行中 --> 完成: 执行并生成记录 待处理 --> 关闭: 关闭 进行中 --> 拒收: 拒收 进行中 --> 撤销: 撤销 note right of 拒收 拒收/撤销是否对所有业务开放, 以及撤销前置状态,须在业务页核验 end note
stateDiagram-v2 [*] --> 正常: 任务执行生成记录 正常 --> 已撤销: 撤销原记录 已撤销 --> 撤销冲抵: 系统生成冲抵记录 note right of 正常 记录一般不可当普通表单编辑; 撤销通常伴随反向库存事务 end note

自动策略

策略 作用位置 影响
自动提交 申请创建或导入后 申请可能不停留在新增状态,直接进入审批中。
自动通过 提交或创建链路 申请可能跳过人工审批,直接进入审批通过。
自动执行 提交、审批或创建链路 申请可能直接进入处理中并生成任务。
直接生成记录 个别业务配置 可能绕过人工任务执行,直接形成记录;必须逐业务确认。

这些策略通常来自业务类型、单据配置或服务默认值。业务页必须说明本业务实际读取的配置代码、默认值来源和是否允许用户修改。配置对象总览见单据类型、业务类型与单据配置

适用与例外

模块/业务 当前判断 证据状态
WMS 采购收货 适用申请、任务、记录三层。任务生成预计入,记录生成库存事务。 已在样板页中取证。
WMS 采购退货、采购上架、发料、生产收料等 预计大概率适用,但状态和库存影响不同。 待按业务页继续取证。
MES、QMS、EAM、ANDON 可能复用「申请/任务/记录」的思想,但对象命名和状态未必一致。 待模块级取证。
SCP 更偏协同、订单、计划、发货与结算,可能只部分复用。 待模块级取证。

业务页输出规则

具体业务页不重复解释「申请、任务、记录为什么存在」,只补充:

  1. 本业务是否完整采用申请、任务、记录三层。
  2. 哪些来源会生成申请,哪些情况下跳过申请或跳过任务。
  3. 本业务的状态按钮是否与通用状态机一致。
  4. 任务阶段是否生成预计入、预计出或其它中间对象。
  5. 记录阶段是否生成库存事务、接口消息、后续申请或报表数据。
  6. 终端操作与 Web 操作的差异。
  7. 当前实现与通用模型不一致的地方,必须登记为待确认或产品差距。

自检或验证点

写业务页或做验收时,可快速核对:

  1. 分层是否说清: 读者能否区分「意图(申请)/ 待执行(任务)/ 已发生(记录)」?
  2. 追溯是否可走通: 从记录号能否回查 job_numberrequest_number?预计是否挂任务号、事务是否挂记录号?
  3. 自动策略是否点名: 自动提交/通过/执行开启后,状态跳过哪几步?默认值来自哪份配置?
  4. 例外是否诚实: 拒收、撤销、关闭与通用状态机不一致处,是否写在业务页并保留 / GAP?

待继续核验

编号 待补内容 主要证据 完成标准
MODEL-ATR-01 适用业务清单 WMS、MES、QMS、EAM、ANDON、SCP 菜单与源码 每个业务说明复用、变体或不适用原因。
MODEL-ATR-02 自动策略来源 业务类型配置、单据设置、服务代码、测试环境 标明自动提交、自动通过、自动执行、直接生成记录的真实触发条件。
MODEL-ATR-03 关闭、撤销、拒收的差异 各业务服务代码和测试环境 标明哪些是通用状态机,哪些是业务扩展动作。
MODEL-ATR-04 权限边界 前端按钮权限、后端权限注解、菜单权限 形成可复用的动作权限说明模板。