Files
AM516/capabilities/am516-delivery-prediction/docs/AM516自然日转工作日需求说明_给AR836_20260902.md
2026-09-03 17:34:42 +08:00

4.9 KiB
Raw Permalink Blame History

AM516 自然日交期转换为工作日需求说明

需求提出人AR51 需求接收人AR836 日期2026-09-02 目的:将 AM516 交期预测输出的自然日转换为工作日,并据此得到最终交货日期。

当前临时处理:因 AR836 排期较晚AM516 飞书机器人先在 API 返回后的输出层执行同一换算;不修改 AR836 API 原始数据。待 API 正式提供工作日口径后,应移除本地临时换算,避免重复转换。

一、需求背景

AM516 当前输出的是自然日交期。销售希望得到工作日口径的交期,即:

  1. 预计需要多少个工作日;
  2. 按这些工作日推算出的最终交货日期。

本需求只增加自然日到工作日的转换,不修改其他交期预测逻辑。

二、最终实现逻辑

第一步:自然日转换为工作日

设 AM516 输出的自然日交期为 N

(q, r) = divmod(N, 7)
  • q完整的7天周期数量
  • r除以7后的余数
  • 每个完整的7天周期按5个工作日计算。

余数按以下规则转换:

余数 余数中的休息日 余数对应工作日
r = 0 0天 0天
1 ≤ r ≤ 4 1天 MAX(r - 1, 0)
5 ≤ r ≤ 6 2天 r - 2

最终公式:

当 r = 0
W = q × 5

当 1 ≤ r ≤ 4
W = q × 5 + MAX(r - 1, 0)

当 5 ≤ r ≤ 6
W = q × 5 + r - 2

其中 W 为换算后的工作日交期。

本轮测试中余数等于4时按1个休息日处理。

第二步:由工作日推算最终交货日期

最终交货日期 = 从计算当天开始,向后累计 W 个国家法定工作日

计算当天不计入,从下一天开始累计。日期计算必须使用国家公布的实际工作日历:

  • 法定节假日不计为工作日;
  • 普通周六、周日不计为工作日;
  • 调休上班的周六、周日计为工作日。

系统最终保留和使用三个结果:

  • 原始自然日交期 N
  • 换算后的工作日交期 W
  • 按国家法定工作日历推算的最终交货日期。

三、国庆例外仅用于本次验证

国庆例外不是最终系统逻辑,也不是最终输出字段,仅用于本次数据验证和对比。

本次验证起始日为2026年9月2日。为了与 ERP 原始日期进行对比,临时采用:

如果 ERP 原始日期晚于2026年10月1日
    ERP验证对比日期 = ERP原始日期 + 7个自然日
否则:
    ERP验证对比日期 = ERP原始日期

该规则不加入工作日数量 W,也不加入最终交货日期的正式计算逻辑。正式计算最终交货日期时,国庆假期已经由国家法定工作日历处理。

系统不需要输出 ERP 验证对比日期或日期差异。

四、本次测试数据

测试口径:

  • 计算起始日2026年9月2日
  • 起始日当天不计;
  • 工作日交期按第二章规则转换;
  • 最终交货日期按2026年国家实际工作日历累计
  • 国庆例外只用于本表验证。

2026年相关工作日历

  • 9月25日至27日放假
  • 10月1日至7日放假
  • 9月20日、10月10日调休上班。

来源:中国政府网国务院办公厅关于2026年部分节假日安排的通知

ERP原始日期 原始自然日 N 商与余数 换算工作日 W 按工作日推算的交货日期 验证用ERP对比日期 验证结果
2026-09-20 18天 2周余4天 13天 2026-09-20 2026-09-20 一致
2026-09-25 23天 3周余2天 16天 2026-09-23 2026-09-25 早1个工作日
2026-09-28 26天 3周余5天 18天 2026-09-28 2026-09-28 一致
2026-09-18 16天 2周余2天 11天 2026-09-17 2026-09-18 早1个工作日
2026-10-03 31天 4周余3天 22天 2026-10-09 2026-10-10 早1个工作日
2026-10-05 33天 4周余5天 23天 2026-10-10 2026-10-12 早1个工作日
2026-10-08 36天 5周余1天 25天 2026-10-13 2026-10-15 早2个工作日
2026-10-15 43天 6周余1天 30天 2026-10-20 2026-10-22 早2个工作日
2026-10-20 48天 6周余6天 34天 2026-10-26 2026-10-27 早1个工作日

本次测试只用于观察换算方法与 ERP 日期的接近程度,不要求 AR836 在系统中实现或输出对比结果。

五、给 AR836 的修改要求

只需实现以下两项:

  1. 将 AM516 输出的自然日交期 N 按第二章余数规则转换为工作日交期 W
  2. 以计算当天为起点,按国家法定工作日历向后累计 W 个工作日,得到最终交货日期。

输出保留:

  • 原始自然日交期;
  • 换算后的工作日交期;
  • 最终交货日期。

无需实现或输出:

  • ERP 验证对比日期;
  • 工作日结果与 ERP 日期的差异;
  • 本次测试中的国庆临时顺延规则。