273 lines
12 KiB
Markdown
273 lines
12 KiB
Markdown
|
|
# 2.2.5 日计划管理与日计划作业
|
|||
|
|
|
|||
|
|
## 2.2.5.1 功能说明
|
|||
|
|
|
|||
|
|
ERP 将生产日计划推送至 LMS,工人也可以在 LMS 中人工创建日计划。日计划用于维护订单所需的管芯信息、需求数量、装箱信息以及备货、套管进度。
|
|||
|
|
|
|||
|
|
系统将日计划的资料维护和现场作业分为两个页面:
|
|||
|
|
|
|||
|
|
1. 日计划管理:负责日计划查询、新增、编辑、开始订单、追加数量和查看操作记录。
|
|||
|
|
2. 日计划作业:负责备货、套管、订单状态操作,以及顺序、权重和调度策略维护。
|
|||
|
|
|
|||
|
|
一张日计划只对应一种管芯。同一时间可以存在多张日计划,不同日计划允许使用相同管芯物料,并分别维护数量、顺序、权重和作业状态。
|
|||
|
|
|
|||
|
|
开始备货、开始套管只改变日计划作业状态,不直接下发出入库、桁架或套管任务。实际任务由后续定时器查询符合条件的日计划后生成。
|
|||
|
|
|
|||
|
|
## 2.2.5.2 概要设计
|
|||
|
|
|
|||
|
|
### 1、日计划获取
|
|||
|
|
|
|||
|
|
(1)ERP 推送日计划
|
|||
|
|
|
|||
|
|
- ERP 将日计划推送至 LMS。
|
|||
|
|
- 推送信息包括 ERP 订单号、计划日期、管芯物料、计划数量和装箱信息。
|
|||
|
|
- 系统按照“租户 + ERP 订单号”进行幂等判断。
|
|||
|
|
- 首次推送时创建日计划,并生成 LMS 日计划编号。
|
|||
|
|
- 订单未开始时,ERP 重推可以覆盖计划日期、管芯、计划数量和装箱信息。
|
|||
|
|
- 订单已开始时,ERP 数量增加的部分计入追加数量;数量不变时按幂等成功处理;数量减少时拒绝更新。
|
|||
|
|
- 已取消或已结束的订单不允许 ERP 再次更新。
|
|||
|
|
|
|||
|
|
(2)人工创建日计划
|
|||
|
|
|
|||
|
|
- 人工填写计划日期、人工订单号、管芯物料、计划数量、装箱信息、顺序和权重。
|
|||
|
|
- 日计划编号按照编码规则自动生成,格式为 `DPyyyyMMdd0001`。
|
|||
|
|
- 人工订单号未填写、为空白或编辑时清空,系统自动使用日计划编号作为订单号。
|
|||
|
|
- 未开始的人工日计划允许编辑;ERP 日计划和已开始日计划不允许编辑基础资料。
|
|||
|
|
|
|||
|
|
### 2、日计划管理
|
|||
|
|
|
|||
|
|
(1)日计划查询
|
|||
|
|
|
|||
|
|
- 查询所有日期和所有状态的日计划,不限制当天数据。
|
|||
|
|
- 查询条件包括计划/订单号、计划日期范围、管芯编码或名称、来源和订单状态。
|
|||
|
|
- 列表显示日计划编号、订单号、计划日期、管芯信息、需求总量、备货进度、套管进度、三个业务状态、来源、修改人和修改时间。
|
|||
|
|
- 计划日期统一显示为 `yyyy-MM-dd`。
|
|||
|
|
- 支持查看状态时间和操作日志,操作日志显示中文操作名称、状态名称和操作人姓名。
|
|||
|
|
|
|||
|
|
(2)开始订单
|
|||
|
|
|
|||
|
|
- 未开始订单可以执行开始订单。
|
|||
|
|
- 开始时允许再次确认计划数量,并填写本次追加数量。
|
|||
|
|
- 计划数量、累计追加数量、订单状态和开始时间在同一事务内更新。
|
|||
|
|
- 开始成功后订单状态变为进行中,并进入日计划作业范围。
|
|||
|
|
|
|||
|
|
(3)追加数量
|
|||
|
|
|
|||
|
|
- 追加数量只在“日计划管理”页面操作,不在“日计划作业”页面重复提供入口。
|
|||
|
|
- 只有进行中的订单允许追加,追加数量必须为正整数。
|
|||
|
|
- 需求总量统一按照“计划数量 + 累计追加数量”计算。
|
|||
|
|
- 追加后,备货和套管同时按照新的需求总量继续作业。
|
|||
|
|
- 如果备货原来已经完成,追加后已备货数量小于新需求总量,则备货状态恢复为进行中,并清空备货完成时间。
|
|||
|
|
- 如果套管原来已经完成,追加后已套管数量小于新需求总量,则套管状态恢复为进行中,并清空套管完成时间。
|
|||
|
|
- 未开始或已取消的备货、套管状态保持不变,由人工决定是否开始或恢复。
|
|||
|
|
|
|||
|
|
(4)取消未开始订单
|
|||
|
|
|
|||
|
|
- 未开始订单可以在日计划管理页面取消。
|
|||
|
|
- 取消时必须填写原因。
|
|||
|
|
- 已取消订单可以在日计划作业的“已取消”页签中恢复。
|
|||
|
|
|
|||
|
|
### 3、日计划作业
|
|||
|
|
|
|||
|
|
(1)作业查询
|
|||
|
|
|
|||
|
|
- 日计划作业不限制计划日期,跨天未完成订单继续显示。
|
|||
|
|
- 默认查询订单状态为进行中的日计划,并提供“已取消”页签。
|
|||
|
|
- 页面分为“备货作业”和“套管作业”两个视图。
|
|||
|
|
- 备货作业只显示已备货数量小于需求总量的日计划。
|
|||
|
|
- 套管作业只显示已套管数量小于需求总量的日计划。
|
|||
|
|
- 某项作业达到需求总量后不再显示;后续追加数量使完成数量小于新需求总量时,该日计划自动重新显示。
|
|||
|
|
- 已结束订单不进入日计划作业页面,只能在日计划管理中查询。
|
|||
|
|
|
|||
|
|
(2)备货作业
|
|||
|
|
|
|||
|
|
- 开始备货:将备货状态由未开始改为进行中,不直接下发任务。
|
|||
|
|
- 取消备货:人工可以取消未开始或进行中的备货,必须填写取消原因。
|
|||
|
|
- 恢复备货:恢复为取消前状态,必须填写恢复原因。
|
|||
|
|
- 完成备货:定时器任务回写已备货数量;达到需求总量时自动改为已完成并记录完成时间。
|
|||
|
|
- 单独取消或恢复备货不影响套管状态。
|
|||
|
|
|
|||
|
|
(3)套管作业
|
|||
|
|
|
|||
|
|
- 开始套管:将套管状态由未开始改为进行中,不直接下发任务。
|
|||
|
|
- 取消套管:人工可以取消未开始或进行中的套管,必须填写取消原因。
|
|||
|
|
- 恢复套管:恢复为取消前状态,必须填写恢复原因。
|
|||
|
|
- 完成套管:定时器任务回写已套管数量;达到需求总量时自动改为已完成并记录完成时间。
|
|||
|
|
- 单独取消或恢复套管不影响备货状态。
|
|||
|
|
|
|||
|
|
(4)订单操作
|
|||
|
|
|
|||
|
|
- 取消订单:任意未结束状态均允许取消,必须填写原因。取消订单时,尚未完成的备货和套管同步取消。
|
|||
|
|
- 恢复订单:订单恢复为取消前状态;备货和套管仍保持取消状态,由人工分别恢复,防止自动重新启动现场作业。
|
|||
|
|
- 结束订单:进行中订单允许随时结束。未完成的备货和套管停止并改为已取消;实际完成数量保留。
|
|||
|
|
- 已结束订单不可恢复,不允许继续追加、备货或套管。
|
|||
|
|
|
|||
|
|
### 4、日计划关键信息
|
|||
|
|
|
|||
|
|
(1)订单信息
|
|||
|
|
|
|||
|
|
- LMS 日计划编号。
|
|||
|
|
- ERP 订单号或人工订单号。
|
|||
|
|
- 来源类型:ERP、人工。
|
|||
|
|
- 计划日期。
|
|||
|
|
- 装箱信息,采用可编辑多行文本。
|
|||
|
|
|
|||
|
|
(2)管芯信息
|
|||
|
|
|
|||
|
|
- 管芯物料 ID。
|
|||
|
|
- 管芯编码。
|
|||
|
|
- 管芯名称。
|
|||
|
|
- 管芯规格。
|
|||
|
|
- 一张日计划只允许一种管芯。
|
|||
|
|
|
|||
|
|
(3)数量信息
|
|||
|
|
|
|||
|
|
- 计划数量。
|
|||
|
|
- 累计追加数量。
|
|||
|
|
- 需求总量:计划数量 + 累计追加数量。
|
|||
|
|
- 已备货数量。
|
|||
|
|
- 已套管数量。
|
|||
|
|
- 已备货数量和已套管数量均不能超过需求总量。
|
|||
|
|
|
|||
|
|
(4)调度信息
|
|||
|
|
|
|||
|
|
- 顺序号:决定订单调度先后,数值越小越先执行。
|
|||
|
|
- 权重:权重模式下一轮建议处理的管芯数量。
|
|||
|
|
- 备货和套管分别维护调度策略和轮转游标。
|
|||
|
|
|
|||
|
|
### 5、状态设计
|
|||
|
|
|
|||
|
|
(1)订单状态
|
|||
|
|
|
|||
|
|
- 未开始:ERP 推送或人工新增后的初始状态。
|
|||
|
|
- 进行中:人工开始订单后的状态。
|
|||
|
|
- 已结束:订单终态,不允许恢复。
|
|||
|
|
- 已取消:人工取消后的状态,允许恢复。
|
|||
|
|
|
|||
|
|
(2)备货状态
|
|||
|
|
|
|||
|
|
- 未开始。
|
|||
|
|
- 进行中。
|
|||
|
|
- 已完成。
|
|||
|
|
- 已取消。
|
|||
|
|
|
|||
|
|
(3)套管状态
|
|||
|
|
|
|||
|
|
- 未开始。
|
|||
|
|
- 进行中。
|
|||
|
|
- 已完成。
|
|||
|
|
- 已取消。
|
|||
|
|
|
|||
|
|
订单、备货和套管分别保存状态,允许备货和套管并行进行,避免单一状态无法反映现场真实情况。
|
|||
|
|
|
|||
|
|
### 6、日计划排序与权重策略
|
|||
|
|
|
|||
|
|
备货和套管分别维护一套租户级策略,现场可以随时切换。策略切换后从定时器下一轮查询开始生效,已经生成或下发的任务不撤销。
|
|||
|
|
|
|||
|
|
(1)顺序模式
|
|||
|
|
|
|||
|
|
- 按顺序号从小到大选择日计划。
|
|||
|
|
- 当前日计划对应作业完成或取消后,再处理下一张日计划。
|
|||
|
|
- 页面只需要维护顺序,不显示权重字段。
|
|||
|
|
|
|||
|
|
(2)权重模式
|
|||
|
|
|
|||
|
|
- 权重模式仍然先按照顺序号确定订单轮转先后。
|
|||
|
|
- 权重表示该订单每一轮建议处理的数量。
|
|||
|
|
- 例如 A 顺序 1、权重 2,B 顺序 2、权重 3,C 顺序 3、权重 1,则轮转顺序为:A 处理 2 根、B 处理 3 根、C 处理 1 根,再返回 A。
|
|||
|
|
- 如果某张计划剩余数量小于权重,本轮只处理剩余数量。
|
|||
|
|
- 已完成、已取消或不满足调度条件的计划退出当前轮转。
|
|||
|
|
- 页面同时显示顺序和权重,权重只允许正整数。
|
|||
|
|
|
|||
|
|
### 7、定时器作业衔接
|
|||
|
|
|
|||
|
|
(1)候选计划查询
|
|||
|
|
|
|||
|
|
- 备货定时器查询订单进行中、备货进行中且已备货数量小于需求总量的计划。
|
|||
|
|
- 套管定时器查询订单进行中、套管进行中且已套管数量小于需求总量的计划。
|
|||
|
|
- 根据当前顺序或权重策略返回下一张候选日计划和建议处理数量。
|
|||
|
|
|
|||
|
|
(2)排他领取
|
|||
|
|
|
|||
|
|
- 定时器选择候选计划后,先创建对应作业类型的 Claim 领取记录。
|
|||
|
|
- 同一张计划允许同时存在一条备货 Claim 和一条套管 Claim。
|
|||
|
|
- 同一张计划、同一作业类型同一时间只允许一条有效 Claim,防止重复下发任务。
|
|||
|
|
- Claim 保存领取标识、作业类型、预占数量、领取时进度、过期时间和自身版本。
|
|||
|
|
- Claim 支持续租、主动释放和过期回收。
|
|||
|
|
|
|||
|
|
(3)进度确认
|
|||
|
|
|
|||
|
|
- 任务完成后必须携带 Claim 标识确认进度。
|
|||
|
|
- 系统原子消费 Claim,并增加对应的已备货数量或已套管数量。
|
|||
|
|
- 重复确认已完成 Claim 按幂等成功处理,不重复累计数量。
|
|||
|
|
- 达到需求总量时,对应作业自动完成。
|
|||
|
|
- 取消或结束后不再生成新 Claim;取消或结束前已经下发的有效 Claim仍允许确认实际完成数量,但不改变用户已经选择的取消或结束状态。
|
|||
|
|
|
|||
|
|
### 8、操作日志
|
|||
|
|
|
|||
|
|
以下操作必须记录操作前值、操作后值、原因、操作人和操作时间:
|
|||
|
|
|
|||
|
|
- ERP 创建、覆盖和追加。
|
|||
|
|
- 人工创建和编辑。
|
|||
|
|
- 开始、取消、恢复、结束订单。
|
|||
|
|
- 开始、取消、恢复备货。
|
|||
|
|
- 开始、取消、恢复套管。
|
|||
|
|
- 追加数量及追加后重新打开已完成作业。
|
|||
|
|
- 调整顺序和权重。
|
|||
|
|
- 切换备货、套管策略。
|
|||
|
|
- 定时器更新备货、套管进度。
|
|||
|
|
|
|||
|
|
人工操作显示系统用户姓名;ERP 操作显示“ERP”;定时器操作显示“系统调度”。
|
|||
|
|
|
|||
|
|
### 9、权限设计
|
|||
|
|
|
|||
|
|
- 日计划查询权限。
|
|||
|
|
- 日计划新增权限。
|
|||
|
|
- 日计划修改权限。
|
|||
|
|
- 开始订单和追加数量权限。
|
|||
|
|
- 日计划作业操作权限。
|
|||
|
|
- 顺序和权重维护权限。
|
|||
|
|
- 策略切换权限。
|
|||
|
|
- ERP 推送使用独立 Token 鉴权,并要求携带租户请求头,不复用管理端登录权限。
|
|||
|
|
|
|||
|
|
### 10、并发及事务设计
|
|||
|
|
|
|||
|
|
- 日计划页面操作使用版本号进行乐观锁控制。
|
|||
|
|
- 状态更新、数量更新和操作日志在同一事务内提交。
|
|||
|
|
- 批量调整顺序任意一条冲突时整体回滚。
|
|||
|
|
- 追加数量、重新打开已完成作业和清空完成时间使用同一条原子 SQL。
|
|||
|
|
- 策略切换和轮转游标使用版本号控制并发。
|
|||
|
|
- 调度进度确认使用 Claim 自身版本和领取时作业进度作为并发边界,不绑定日计划通用版本,保证备货和套管可以独立并发确认。
|
|||
|
|
- 新租户第一次查询或调度时,系统并发安全地初始化备货和套管默认顺序策略。
|
|||
|
|
|
|||
|
|
### 11、异常处理
|
|||
|
|
|
|||
|
|
- 日计划不存在时返回业务异常。
|
|||
|
|
- 非法状态操作返回明确提示。
|
|||
|
|
- ERP 数量减少、终态订单更新时拒绝处理。
|
|||
|
|
- 追加数量、顺序和权重必须为正整数。
|
|||
|
|
- 完成数量不能超过需求总量。
|
|||
|
|
- 取消、恢复未填写原因时拒绝提交。
|
|||
|
|
- 页面版本过期时提示刷新后重试。
|
|||
|
|
- Claim 无效、已释放、已过期或进度不一致时拒绝确认。
|
|||
|
|
- ERP Token 未配置时 LMS 允许正常启动,但 ERP 推送接口返回“ERP日计划接口令牌未配置”。
|
|||
|
|
|
|||
|
|
## 2.2.5.3 页面设计
|
|||
|
|
|
|||
|
|
### 1、日计划管理页面
|
|||
|
|
|
|||
|
|
- 查询条件紧凑同行展示,页面宽度不足时自动换行。
|
|||
|
|
- 提供新增日计划、编辑未开始人工计划、开始订单、追加数量、取消未开始订单和查看详情。
|
|||
|
|
- 操作栏直接显示详情,其他操作收纳到“更多”菜单,避免操作列显示不完整。
|
|||
|
|
- 追加数量仅在本页面提供。
|
|||
|
|
|
|||
|
|
### 2、日计划作业页面
|
|||
|
|
|
|||
|
|
- 顶部显示备货策略和套管策略,可分别切换。
|
|||
|
|
- 提供备货作业、套管作业视图切换。
|
|||
|
|
- 提供进行中、已取消状态页签。
|
|||
|
|
- 顺序始终显示;当前作业采用权重模式时显示权重并允许进行中订单修改。
|
|||
|
|
- 已完成的当前作业不显示;追加后存在剩余数量时重新显示。
|
|||
|
|
- 提供开始、取消、恢复作业,以及取消、恢复、结束订单等操作。
|
|||
|
|
- 不提供新增、编辑和追加数量入口。
|