AI+APS 工厂智能排产系统里,甘特图不是一个普通图表,而是计划人员理解排产结果、调整任务顺序、观察设备占用和追踪生产实况的核心入口。相比表格,甘特图能把任务、时间、设备和状态放在同一个视图里,让计划是否合理变得更直观。
为什么排程结果适合用甘特图
排产系统里的数据天然带有时间区间。一个生产任务什么时候开始、什么时候结束、在哪台设备上执行、前后任务是否冲突,这些信息如果只放在表格里,计划人员需要不断对照时间字段和设备字段。
甘特图的优势在于:
| 信息 | 甘特图中的表达 |
|---|---|
| 任务时间 | 用横向长度表达开始和结束 |
| 设备资源 | 用纵向泳道表达设备或产线 |
| 任务状态 | 用颜色、标记或边框表达 |
| 计划冲突 | 用重叠、间隙和异常提示表达 |
| 执行偏差 | 用计划时间与实况进度对比表达 |
所以甘特图不只是展示结果,它也是计划人员做判断和调整的工作台。
前端需要处理的复杂关系
APS 甘特图的复杂点在于,它不是单纯渲染一组条形块。每个任务背后都可能关联订单、工序、设备、产线、模具、物料、优先级和状态。
前端需要把这些关系翻译成可读的交互:
- 横轴表示时间,需要支持不同粒度的缩放和定位。
- 纵轴表示资源,比如设备、产线或工作中心。
- 任务块需要展示工单、产品、数量、状态和时间范围。
- 任务之间可能存在前后依赖,调整一个任务可能影响后续任务。
- 不同状态的任务需要有清晰视觉区分,比如未开始、执行中、已完成、异常。
这类页面最容易出问题的地方不是画不出来,而是信息太多以后用户看不懂。因此前端要在信息密度和可读性之间取平衡。
自动推移逻辑怎么理解
排产结果在实际生产中经常会被打断,比如插单、设备维修、任务延期、实况反馈慢于计划等。这个时候如果只改当前任务,后续任务可能会出现重叠或不连续。
甘特图自动推移的核心思路是:当某个任务的时间发生变化时,系统需要识别受影响的后续任务,并按照设备占用、工序顺序和业务约束重新调整它们的位置。
一个简化后的流程可以这样理解:
- 用户或实况数据触发某个任务时间变化。
- 前端标记当前任务和可能受影响的后续任务。
- 业务层根据设备、工序和约束计算新的时间位置。
- 甘特图重新渲染任务区间,并提示发生变化的部分。
- 计划人员确认结果,必要时继续手动调整。
这个交互的重点是让变化可见。计划人员不仅要看到新的结果,也要知道哪些任务被影响了,为什么被推移。
APS 和生产实况的联动
传统 APS 容易停留在计划层面:计划排出来之后,实际车间执行情况可能在另一个系统里。这个项目中更重要的点,是把 APS 和生产实况小 MES 串起来。
联动之后,甘特图可以表达更多信息:
- 计划任务是否已经开始执行。
- 当前生产进度是否落后于计划。
- 设备是否在线或处于异常状态。
- 实况反馈是否需要影响后续计划。
- 已完成任务和未开始任务之间是否存在断点。
这会让 APS 从静态计划变成一个可以持续跟踪执行状态的系统。对前端来说,这意味着页面不能只考虑初始加载,还要考虑状态刷新、局部更新和异常反馈。
前端实现中的取舍
这种复杂业务页面有几个比较实际的取舍:
- 不把所有信息都塞进任务块,重要信息直接展示,次要信息放到悬浮层或详情面板。
- 动画要克制,任务数量多时优先保证滚动和拖动流畅。
- 颜色语义要稳定,同一种状态在列表、详情、甘特图里保持一致。
- 接口字段要和业务状态对齐,避免前端靠猜测拼状态。
- 对自动推移、异常任务和实况偏差要给出明确提示,而不是只刷新画面。
收获
APS 甘特图让我体会到,复杂业务前端的难点不只是组件实现,而是把业务规则、数据关系和用户操作整理成一个清晰的工作台。一个好的甘特图页面,既要能展示算法排出的结果,也要能承接计划人员的调整,还要能反映车间实况变化。
这也是我在这个项目中最有收获的地方:前端并不是业务系统的外壳,而是业务决策和系统能力之间的连接层。