简单的溯源系统框架

需求

师兄开会回来,传达了上级的精神和需求:我们要做溯源系统,产品在生产线上流转的信息都要保留下来,并且在生产线上的任意一个环节都可以查看到之前的所有溯源信息。于是,经讨论和研究,我们勾勒出了一个溯源系统的原型。

思路

溯源是指产品的溯源。产品的溯源信息可以理解成产品从溯源路径的起点到终点之间经过的各个环节的信息的集合。可以用下图表示:

flow1

如图,产品在经过“大棚”、“冷库”和“运输车”时,产品性质会发变化,新的溯源信息会产生。可以这样想象:每个单位的产品(某一件或者某一批)携带着一个溯源信息栈,每经过一个“溯源控制点”,控制点就会产生“溯源信息”并将其放到信息栈中。在任意时刻,只需将栈按顺序pop出,即可从近到远地获取到产品的溯源信息。如下图所示:

flow2

粒度缩小一点,如下图所示,cp1~cp4为生产流程中的控制点:

flow3

于是,我们可以大致勾勒出该溯源系统的原型。

原型

实体关系

实体关系图如下所示:

实体

  • Product:产品实体,代表一个单位的产品,关联多个ProductionFlow。
  • ProductionFlow:由多个ControlPoint组成,代表着一种工序,对应多个产品。
  • ControlPoint:代表可以产生溯源信息的“点”,按顺序排列,组成工序。
  • ControlPointInfo:ControlPoint产生的数据实体。
  • ControlPointInfoStack:跟某个产品绑定在一起的承载ControlPointInfo的数据结构。

业务流程

(待补充)

时序图如下所示: