如何依据给定采购订单规则计算ORDate及实现对应算法?
ORDate计算规则及算法实现说明
涉及变量
- ORDate:最终计算得出的订单基准日期
- quantity:订单商品数量
- purchaseOrderDate:采购订单提交日期
- purchaseOrderTime:采购订单提交时间
基础定义
工作日判定标准:每周周一至周五,排除美国法定节假日
日期时间格式示例
采购订单日期格式示例:20211015(yyyyMMdd格式,对应公历日期2021年10月15日) 采购订单时间格式示例:093310(hhmmss格式,对应24小时制时间09:33:10)
通用基准日期调整规则
所有ORDate计算前,先按美东时间(EST)的提交时间调整计算用基准日期:
if (purchaseOrderTime < 14:00) { 计算基准日期 = 提交当日(需符合工作日定义) } if (purchaseOrderTime > 14:00) { 计算基准日期 = 提交日期往后顺延的第一个工作日 }
分场景ORDate计算规则
- 场景1:普通Blank订单
ORDate = 计算基准日期 - 场景2:带Finishing工序的Blank订单,订单数量<500
ORDate = 计算基准日期 + 1个工作日 - 场景3:带Finishing工序的Blank订单,订单数量>500
- 首500件对应ORDate:计算基准日期 + 1个工作日
- 每多满500件的增量批次,对应ORDate在首500件结果基础上,每满500件额外加1个工作日
内容的提问来源于stack exchange,提问作者user14634107
相关产品推荐
相关产品推荐

