工作流(1):表格设计

我们对工厂流水线的工作流进行设计

比如 :组件装配,拍照-清洗-焊接-下料等

使用mysql数据库,主要工作流相关表有:

一、操作工序(环节、节点)表:work_procedure

所有操作工序(环节、节点)枚举

DROP TABLE IF EXISTS `work_procedure`;
CREATE TABLE `work_procedure` (
  `CoreId` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增编号',
  `Operation` varchar(50) NOT NULL DEFAULT '' COMMENT '操作工序',
  `OperationName` varchar(50) NOT NULL DEFAULT '' COMMENT '操作工序名称',
  `ProductTimespan` int(11) NOT NULL DEFAULT '1' COMMENT '预计加工时间间隔(秒)',
  `CreateName` varchar(30) NOT NULL DEFAULT '' COMMENT '创建人',
  `CreateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `Enabled` int(11) NOT NULL DEFAULT '1' COMMENT '是否有效',
  PRIMARY KEY (`CoreId`),
  KEY `IDX_Operation` (`Operation`) USING BTREE,
  KEY `IDX_OperationName` (`OperationName`) USING BTREE,
  KEY `IDX_OperateTime` (`CreateTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='所有操作工序表';

-- ----------------------------
-- Records of work_procedure
-- ----------------------------
INSERT INTO `work_procedure` VALUES ('1', 'Assemble', '堆叠装配', '300', '管理员', '2022-11-10 14:27:53', '1');
INSERT INTO `work_procedure` VALUES ('2', 'Photo', '极柱扫码拍照', '200', '管理员', '2022-11-10 14:33:12', '1');
INSERT INTO `work_procedure` VALUES ('3', 'ISO_Test', '绝缘极性检测', '200', '管理员', '2022-11-10 14:34:52', '1');
INSERT INTO `work_procedure` VALUES ('4', 'Laser_Clean', '激光清洗', '200', '管理员', '2022-11-10 14:35:16', '1');
INSERT INTO `work_procedure` VALUES ('5', 'Busbar', 'Busbar焊接', '300', '管理员', '2022-11-10 14:36:02', '1');
INSERT INTO `work_procedure` VALUES ('6', 'DCIR', 'DCIR测试', '300', '管理员', '2022-11-10 14:36:16', '1');
INSERT INTO `work_procedure` VALUES ('7', 'FPC', 'FPC焊接', '300', '管理员', '2022-11-10 14:37:05', '1');
INSERT INTO `work_procedure` VALUES ('8', 'EOL', 'EOL测试', '300', '管理员', '2022-11-10 14:37:21', '1');
INSERT INTO `work_procedure` VALUES ('9', 'Offline', '模组下线', '300', '管理员', '2022-11-10 14:39:13', '1');

二、工艺路线或流转环节配置表:process_router

记录由A环节自动流转到B环节,链表结构。

如果上一个操作工序为空,则为工作流起点环节。

如果没有下一个操作工序,则为工作流起点环节。

DROP TABLE IF EXISTS `process_router`;
CREATE TABLE `process_router` (
  `CoreId` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增编号',
  `Operation` varchar(50) NOT NULL DEFAULT '' COMMENT '操作工序',
  `OperationName` varchar(50) NOT NULL DEFAULT '' COMMENT '操作工序名称',
  `PreviousOperation` varchar(50) NOT NULL DEFAULT '' COMMENT '上一个操作工序',
  `PreviousOperationName` varchar(50) NOT NULL DEFAULT '' COMMENT '上一个操作工序名称',
  `ProductTimespan` int(11) NOT NULL DEFAULT '1' COMMENT '预计加工时间间隔(秒)',
  `CreateName` varchar(30) NOT NULL DEFAULT '' COMMENT '创建时间',
  `CreateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `IsValid` int(11) NOT NULL DEFAULT '1' COMMENT '是否有效',
  PRIMARY KEY (`CoreId`),
  KEY `IDX_Operation` (`Operation`) USING BTREE,
  KEY `IDX_OperationName` (`OperationName`) USING BTREE,
  KEY `IDX_PreviousOperation` (`PreviousOperation`) USING BTREE,
  KEY `IDX_PreviousOperationName` (`PreviousOperationName`) USING BTREE,
  KEY `IDX_OperateTime` (`CreateTime`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='工艺路线表';

-- ----------------------------
-- Records of process_router
-- ----------------------------
INSERT INTO `process_router` VALUES ('1', 'Assemble', '堆叠装配', '', '', '300', '管理员', '2022-11-10 15:26:44', '1');
INSERT INTO `process_router` VALUES ('2', 'Photo', '极柱扫码拍照', 'Assemble', '堆叠装配', '300', '管理员', '2022-11-10 15:27:23', '1');
INSERT INTO `process_router` VALUES ('3', 'ISO_Test', '绝缘极性检测', 'Photo', '极柱扫码拍照', '300', '管理员', '2022-11-10 15:45:00', '1');
INSERT INTO `process_router` VALUES ('4', 'Laser_Clean', '激光清洗', 'ISO_Test', '绝缘极性检测', '300', '管理员', '2022-11-10 15:46:42', '1');
INSERT INTO `process_router` VALUES ('5', 'Busbar', 'Busbar焊接', 'Laser_Clean', '激光清洗', '300', '管理员', '2022-11-10 15:47:00', '1');
INSERT INTO `process_router` VALUES ('6', 'DCIR', 'DCIR测试', 'Busbar', 'Busbar焊接', '300', '管理员', '2022-11-10 15:47:14', '1');
INSERT INTO `process_router` VALUES ('7', 'FPC', 'FPC焊接', 'DCIR', 'DCIR测试', '300', '管理员', '2022-11-10 15:47:31', '1');
INSERT INTO `process_router` VALUES ('8', 'EOL', 'EOL测试', 'FPC', 'FPC焊接', '300', '管理员', '2022-11-10 15:47:44', '1');
INSERT INTO `process_router` VALUES ('9', 'Offline', '模组下线', 'EOL', 'EOL测试', '300', '管理员', '2022-11-10 15:48:00', '1');

三、工作流跟踪环节表:workflow_trace

记录工作流的当前节点(环节)的开始时间与结束时间,以及工作流状态以及上一个节点编号

CREATE TABLE `workflow_trace` (
  `CoreId` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键自增编号',
  `ParentCoreId` int(11) DEFAULT NULL COMMENT '上一跟踪编号',
  `Barcode` varchar(50) DEFAULT '' COMMENT '模组码',
  `WorkOrder` varchar(50) DEFAULT NULL COMMENT '工单号',
  `Operation` varchar(50) NOT NULL DEFAULT '' COMMENT '操作工序编码',
  `OperationName` varchar(50) NOT NULL DEFAULT '' COMMENT '操作工序名称',
  `ProcessStartTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '处理开始时间',
  `ProcessEndTime` datetime DEFAULT NULL COMMENT '处理结束时间',
  `WorkStatus` varchar(50) NOT NULL DEFAULT 'Queue' COMMENT '状态【Queue,Working,Completed,DirectDelivery直送,Abolished作废的】',
  `CreateName` varchar(30) NOT NULL DEFAULT '' COMMENT '创建人',
  `CreateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `IsAllCompleted` int(11) NOT NULL DEFAULT '0' COMMENT '是否完工下料',
  PRIMARY KEY (`CoreId`),
  KEY `IDX_ParentCoreId` (`ParentCoreId`) USING BTREE,
  KEY `IDX_Barcode` (`Barcode`) USING BTREE,
  KEY `IDX_WorkOrder` (`WorkOrder`) USING BTREE,
  KEY `IDX_OperationName` (`OperationName`) USING BTREE,
  KEY `IDX_Operation` (`Operation`) USING BTREE,
  KEY `IDX_ProcessStartTime` (`ProcessStartTime`) USING BTREE,
  KEY `IDX_ProcessEndTime` (`ProcessEndTime`) USING BTREE,
  KEY `IDX_CreateTime` (`CreateTime`) USING BTREE,
  KEY `IDX_WorkStatus` (`WorkStatus`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作流跟踪表';

四、工作流办结归档表:workflow_trace_archive

将已完成的工作流办结归档,本质就是复制workflow_trace表的内容

CREATE TABLE `workflow_trace_archive` (
  `CoreId` int(11) NOT NULL COMMENT '编号',
  `ParentCoreId` int(11) DEFAULT NULL COMMENT '上一跟踪编号',
  `Barcode` varchar(50) DEFAULT '' COMMENT '模组码',
  `WorkOrder` varchar(50) DEFAULT NULL COMMENT '工单号',
  `Operation` varchar(50) NOT NULL DEFAULT '' COMMENT '操作工序编码',
  `OperationName` varchar(50) NOT NULL DEFAULT '' COMMENT '操作工序名称',
  `ProcessStartTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '处理开始时间',
  `ProcessEndTime` datetime DEFAULT NULL COMMENT '处理结束时间',
  `WorkStatus` varchar(50) NOT NULL DEFAULT 'Queue' COMMENT '状态【Queue,Working,Completed,DirectDelivery直送,Abolished作废的】',
  `CreateName` varchar(30) NOT NULL DEFAULT '' COMMENT '创建人',
  `CreateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `IsAllCompleted` int(11) NOT NULL DEFAULT '0' COMMENT '是否完工下料',
  PRIMARY KEY (`CoreId`),
  KEY `IDX_ParentCoreId` (`ParentCoreId`) USING BTREE,
  KEY `IDX_Barcode` (`Barcode`) USING BTREE,
  KEY `IDX_WorkOrder` (`WorkOrder`) USING BTREE,
  KEY `IDX_OperationName` (`OperationName`) USING BTREE,
  KEY `IDX_Operation` (`Operation`) USING BTREE,
  KEY `IDX_ProcessStartTime` (`ProcessStartTime`) USING BTREE,
  KEY `IDX_ProcessEndTime` (`ProcessEndTime`) USING BTREE,
  KEY `IDX_CreateTime` (`CreateTime`) USING BTREE,
  KEY `IDX_WorkStatus` (`WorkStatus`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='工作流办结表';

猜你喜欢

转载自blog.csdn.net/ylq1045/article/details/127985802