最近做的一个项目,其中一个核心模块流程比较多,记录一下,流程如下。
模型设计如下,更详细的涉及了具体业务的就不写了,大概写一下:
-- 盘点方案表 DROP TABLE IF EXISTS `inventory_job`; CREATE TABLE `inventory_job` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id', `name` varchar(32) NOT NULL COMMENT '盘点方案名称', `state` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '状态 1--启用 0--停用', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_id` int(11) DEFAULT NULL COMMENT '修改人', `create_id` int(11) DEFAULT NULL COMMENT '创建人', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `idx_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='盘点方案表'; -- 盘点方案配置表 DROP TABLE IF EXISTS `inventory_job_config`; CREATE TABLE `inventory_job_config` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id', `inventory_job_id` int(11) NOT NULL COMMENT '盘点方案id', `evaluation_level_config` varchar(255) COMMENT '评估等级设置', `evaluation_relation_config` varchar(255) COMMENT '评估关系设置', `subordinate_option_config` varchar(255) COMMENT '下级选项设置', `appointment_recommendation_config` varchar(255) COMMENT '任用建议设置', `questionnaire_template` varchar(255) COMMENT '设置评价问卷规则模版', `group_flag` tinyint(4) unsigned NOT NULL DEFAULT '1' COMMENT '启用重新分组模块1--启用 0--停用', `meeting_flag` tinyint(4) unsigned NOT NULL DEFAULT '1' COMMENT '启用人才会议模块1--启用 0--停用', `questionnaire_flag` tinyint(4) unsigned NOT NULL DEFAULT '1' COMMENT '启用评价问卷模块1--启用 0--停用', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_id` int(11) DEFAULT NULL COMMENT '修改人', `create_id` int(11) DEFAULT NULL COMMENT '创建人', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='盘点方案配置表'; -- 盘点项目表 DROP TABLE IF EXISTS `inventory_project`; CREATE TABLE `inventory_project` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id', `inventory_job_id` int(11) NOT NULL COMMENT '盘点方案id', `name` varchar(32) NOT NULL COMMENT '盘点项目名称', `follow_id` int(11) DEFAULT NULL COMMENT '跟进人id(默认为创建人)', `state` tinyint(4) unsigned NOT NULL DEFAULT '1' COMMENT '盘点项目状态 1--进行中 2--已完成 3--归档', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_id` int(11) DEFAULT NULL COMMENT '修改人', `create_id` int(11) DEFAULT NULL COMMENT '创建人', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `idx_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='盘点项目表'; -- 盘点分组表 DROP TABLE IF EXISTS `inventory_group`; CREATE TABLE `inventory_group` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id', `inventory_project_id` int(11) NOT NULL COMMENT '盘点项目id', `name` varchar(32) NOT NULL COMMENT '盘点分组名称', `type` tinyint(4) unsigned NOT NULL DEFAULT '1' COMMENT '盘点分组类型1--其他分组 2--重新分组 3--所有盘点对象', `number` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '推送评价问卷次数', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_id` int(11) DEFAULT NULL COMMENT '修改人', `create_id` int(11) DEFAULT NULL COMMENT '创建人', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `idx_inventory_project_id_name` (`inventory_project_id`,`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='盘点分组表'; -- 盘点分组和盘点对象关系表 DROP TABLE IF EXISTS `inventory_group_person_rel`; CREATE TABLE `inventory_group_person_rel` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id', `inventory_group_id` int(11) NOT NULL COMMENT '盘点分组id', `person_code` varchar(32) NOT NULL COMMENT '盘点对象工号', `up_flag` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '上、同级数据 1--完成 0--进行中', `line_flag` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '条线数据 1--完成 0--进行中', `down_flag` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '下级数据 1--完成 0--进行中', `up_appraise` varchar(32) DEFAULT NULL COMMENT '上、同级互评', `line_appraise` varchar(32) DEFAULT NULL COMMENT '条线评价', `down_appraise` varchar(32) DEFAULT NULL COMMENT '下级评价', `preponderance` varchar(255) DEFAULT NULL COMMENT '优势内容', `shortage` varchar(255) DEFAULT NULL COMMENT '不足内容', `key_experience` varchar(255) DEFAULT NULL COMMENT '关键历练内容', `performance` varchar(32) DEFAULT NULL COMMENT '绩效', `appointment_recommendation` varchar(255) DEFAULT NULL COMMENT '任用建议', `hot_tip` varchar(255) DEFAULT NULL COMMENT '特别提示', `comments` varchar(255) DEFAULT NULL COMMENT '评议意见', `comments_result` varchar(32) DEFAULT NULL COMMENT '评议结果', `development_willingness` varchar(255) DEFAULT NULL COMMENT '人才发展意愿文件路径', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='盘点分组和盘点对象关系表'; -- 上、同级评估关系和条线和下级评估关系表 DROP TABLE IF EXISTS `inventory_appraise`; CREATE TABLE `inventory_appraise` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id', `inventory_group_id` int(11) NOT NULL COMMENT '盘点分组id', `person_code` varchar(32) NOT NULL COMMENT '被评估人工号', `appraise_person_code` varchar(32) NOT NULL COMMENT '评估人工号', `appraise_person_name` varchar(32) NOT NULL COMMENT '评估人姓名', `appraise_relation` varchar(32) NOT NULL COMMENT '评价关系', `type` tinyint(4) unsigned NOT NULL DEFAULT '1' COMMENT '类型1--条线评估关系 2--下级评估关系 3--上、同级评估关系表', `weight` double(5,2) NOT NULL COMMENT '权重', `result` varchar(32) NOT NULL COMMENT '评价结果', `appraise_reason` varchar(500) NOT NULL COMMENT '评价理由', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='上、同级评估关系和条线和下级评估关系表';