技术架构设计
一、用例收集
一、记录查询
1.用户根据运单号,站点,sop环节查询站点内指定sop环节操作记录,以及对应的视频记录;
2.用户根据运单号,站点 查询指定站点内sop环节操作记录,以及对应的视频记录;
3.用户根据运单号,sop环节查询所有站点内指定sop环节操作记录,以及对应的视频记录;
4.用户根据运单号查询所有站点内sop环节操作记录,以及对应的视频记录;
二、交叉带视频查询
1.用户查看包裹在供件台上包后在交叉带运行的视频
二、模型抽象
sop环节由对应要素完成,操作记录由要素触发完成,摄像头拍摄对应时间节点所覆盖的要素完成的事件
三、表结构设计
建表语句
CREATE TABLE sop (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', sop_type varchar(64) NOT NULL COMMENT 'sop类型', sop_name varchar(64) NOT NULL COMMENT 'sop名称', creator varchar(64) NOT NULL COMMENT '创建者', gmt_create datetime NOT NULL COMMENT '创建时间', gmt_modify datetime NOT NULL COMMENT '修改时间', PRIMARY KEY (id)
) ENGINE = InnoDB COMMENT 'sop环节';
CREATE TABLE sop_flow (
id bigint(20) NOT NULL COMMENT '主键id', flow_name varchar(64) COMMENT '流程名称',
site_code varchar(64) NOT NULL COMMENT '站点code', site_name varchar(64) NOT NULL COMMENT '站点名称', sop_nodes varchar(4096) NOT NULL COMMENT 'sop节点集合', tenant_code varchar(64) NOT NULL COMMENT '租户code', creator varchar(64) NOT NULL COMMENT '创建者', gmt_create datetime NOT NULL COMMENT '创建时间', gmt_modify datetime NULL COMMENT '修改时间' ) ENGINE = InnoDB COMMENT 'sop流程';
CREATE TABLE sop_node (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', site_code varchar(64) NOT NULL COMMENT '站点编号', site_name varchar(64) NOT NULL COMMENT '站点名称', sop_id bigint(20) NOT NULL COMMENT 'sop节点id', flow_id bigint(20) NOT NULL COMMENT '流程id', sop_type varchar(64) COMMENT 'sop环节类型', element_id varchar(64) NOT NULL COMMENT '元素id', business_code varchar(64) NOT NULL COMMENT '业务编码', parent_node bigint(20) COMMENT '父节点id', prev_node bigint(20) COMMENT '前置节点', gmt_create datetime NOT NULL COMMENT '创建时间',
gmt_modify datetime NULL COMMENT '修改时间', creator varchar(64) COMMENT '创建人', PRIMARY KEY (id)
) ENGINE = InnoDB COMMENT 'sop环节节点';
CREATE TABLE waybill_sop_operate_event (
id bigint(20) NOT NULL auto_increment COMMENT '主键id', tenant_code varchar(64) NOT NULL COMMENT '租户编码', site_code varchar(64) NOT NULL COMMENT '站点编码', site_name varchar(64) NOT NULL COMMENT '站点名称', waybill_no varchar(64) NOT NULL COMMENT '运单号', package_no varchar(64) COMMENT '包号',
site_element_id bigint(20) NOT NULL COMMENT '要素id',
external_element_code varchar(64) NOT NULL COMMENT '外部要素编号',
element_type varchar(64) NOT NULL COMMENT '业务要素类型', sop_type varchar(32) NOT NULL COMMENT 'sop环节类型', op_time datetime NOT NULL COMMENT '操作时间', operator varchar(64) COMMENT '操作人', operator_id bigint(20) COMMENT '操作人员id', remark varchar(64) COMMENT '备注',
gmt_create datetime NOT NULL COMMENT '创建时间', gmt_modify datetime NOT NULL COMMENT '修改时间', PRIMARY KEY (site_code,waybill_no,sop_type)
) DISTRIBUTE BY HASH(site_code,waybill_no) COMMENT '运单sop环节事件表';
CREATE TABLE site_element (
id bigint(20) NOT NULL COMMENT '主键id',
site_code varchar(32) NOT NULL COMMENT '站点code', site_name varchar(64) NOT NULL COMMENT '站点名称', tenant_code varchar(64) NOT NULL COMMENT '租户code', element_name varchar(64) NOT NULL COMMENT '要素名称',
external_element_code varchar(64) NOT NULL COMMENT '业务编号(如外部的设备id)',
element_type varchar(32) NOT NULL COMMENT '要素类型', parent bigint(20) COMMENT '父节点', creator varchar(32) COMMENT '创建者',
gmt_create datetime NOT NULL COMMENT '创建时间', gmt_modify datetime NOT NULL COMMENT '修改时间' ) ENGINE = InnoDB COMMENT '场内要素表';
CREATE TABLE element_camera_relation (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', site_code varchar(64) NOT NULL COMMENT '站点编码', site_element_id bigint(20) NOT NULL COMMENT '对应要素id', external_element_code varchar(64) NOT NULL COMMENT '业务编码', camera_id varchar(64) NOT NULL COMMENT '摄像头id', container_id varchar(64) NOT NULL COMMENT '容器id', gmt_create datetime NOT NULL COMMENT '创建时间', gmt_modify datetime NOT NULL COMMENT '修改时间', PRIMARY KEY (id)
) ENGINE = InnoDB COMMENT '要素与摄像头关联表';
四、交互图