|
@@ -1,18 +1,173 @@
|
|
|
-CREATE TABLE IF NOT EXISTS `work_schedule` (
|
|
|
-`id` varchar(64) NOT NULL COMMENT '主键',
|
|
|
-`year` int(11) NOT NULL COMMENT '年',
|
|
|
-`month` int(11) NOT NULL COMMENT '月',
|
|
|
-`day` int(11) NOT NULL COMMENT '日',
|
|
|
-`work_time_type` int(11) NOT NULL COMMENT '工作时间类型 1 白班 2 夜班 3 中班 ',
|
|
|
-`department_id` varchar(64) NOT NULL COMMENT '部门id',
|
|
|
-`project_id` varchar(80) NOT NULL COMMENT '项目id',
|
|
|
-`person_id` varchar(80) NOT NULL COMMENT '人员id',
|
|
|
-`ts` timestamp NULL NOT NULL COMMENT '乐观锁',
|
|
|
-`creator` varchar(32) NOT NULL COMMENT '创建人',
|
|
|
-`creation_time` timestamp NOT NULL COMMENT '创建时间',
|
|
|
-`modifier` varchar(32) NOT NULL COMMENT '最后修改人',
|
|
|
-`modified_time` timestamp NOT NULL COMMENT '最后修改时间',
|
|
|
-`valid` int(11) NOT NULL COMMENT '合法标识',
|
|
|
- PRIMARY KEY (`id`)) ENGINE = InnoDB CHARSET = utf8mb4 COMMENT '工作排班表';
|
|
|
-CREATE index idx_year_month_day USING BTREE on work_schedule(`year`,`month`,`day`) ;
|
|
|
-CREATE index idx_work_time_type using HASH on work_schedule(`work_time_type`) ;
|
|
|
+CREATE DATABASE IF NOT EXISTS `fm-scheduling`;
|
|
|
+
|
|
|
+CREATE TABLE
|
|
|
+IF
|
|
|
+ NOT EXISTS `work_rule` (
|
|
|
+ `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
|
|
|
+-- `parent_id` int(8) COMMENT '上一级规则节点的id 这个主要用于XX岗位/专业在XX时间段的在岗人数 带有复合条件的规则 ',
|
|
|
+ `rule_type` int(1) NOT NULL COMMENT '规则类型 1 日排班规则 2 月排班规则 0 特殊日期',
|
|
|
+ `rule_operator` int(8) COMMENT '比较符号 1大于 -1 小于 0 等于 2 大于等于 -2 小于等于',
|
|
|
+ `rule_value` double(10, 2) COMMENT '规则的限定值',
|
|
|
+ `rule_content_ids` varchar (255) COMMENT '规则内容ids',
|
|
|
+ `enable` tinyint (1) NOT NULL DEFAULT 1 COMMENT '规则是否启用',
|
|
|
+ `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
|
|
|
+ `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
|
|
|
+ `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
|
|
|
+ `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
|
|
|
+ `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
|
|
|
+PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作规则表';
|
|
|
+
|
|
|
+CREATE TABLE
|
|
|
+IF
|
|
|
+ NOT EXISTS `work_rule_content` (
|
|
|
+ `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
|
|
|
+ `rule_desc` VARCHAR ( 64 ) COMMENT 'rule描述',
|
|
|
+ `rule_value` VARCHAR ( 64 ) COMMENT 'rule的值',
|
|
|
+ `filed_ref` int(2) COMMENT '字段关联 以满足规则内容里的不同类型 这样好做字段层面的条件的判断 1 岗位 2 专业 3 班次 4 领导检查 5 安全日检查 ',
|
|
|
+ `filed_ref_value` int(2) COMMENT '与字段相关联的值',
|
|
|
+ `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
|
|
|
+ `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
|
|
|
+ `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
|
|
|
+ `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
|
|
|
+ `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
|
|
|
+PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作规则内容表';
|
|
|
+
|
|
|
+CREATE TABLE
|
|
|
+IF
|
|
|
+ NOT EXISTS `work_shift` (
|
|
|
+ `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
|
|
|
+ `shift_abbr` VARCHAR ( 5 ) NOT NULL COMMENT '班次的简称',
|
|
|
+ `shift_name` VARCHAR ( 255 ) NOT NULL COMMENT '班次的全称',
|
|
|
+ `shift_start_time` VARCHAR ( 64 ) NOT NULL COMMENT '班次的开始时间',
|
|
|
+ `shift_end_time` VARCHAR ( 64 ) NOT NULL COMMENT '班次的结束时间',
|
|
|
+ `positionIds` VARCHAR ( 64 ) NOT NULL COMMENT '班次需要的岗位',
|
|
|
+ `shift_type` int(1) NOT NULL COMMENT '班次类型 1 集团统一 0 项目统一',
|
|
|
+ `real_work_duration` INT ( 8 ) NOT NULL COMMENT '班次的真实工作时间以分钟后为单位',
|
|
|
+ `work_rule_id` INT ( 8 ) NOT NULL COMMENT '班次的真实工作时间以分钟后为单位',
|
|
|
+ `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
|
|
|
+ `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
|
|
|
+ `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
|
|
|
+ `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
|
|
|
+ `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
|
|
|
+PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作班次表';
|
|
|
+
|
|
|
+
|
|
|
+CREATE TABLE
|
|
|
+IF
|
|
|
+ NOT EXISTS `work_shift_duration` (
|
|
|
+ `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
|
|
|
+ `work_shift_id` VARCHAR ( 64 ) NOT NULL COMMENT '工作班次id',
|
|
|
+ `duration_start` date NOT NULL COMMENT '适用时间的开始时间',
|
|
|
+ `duration_end` date NOT NULL COMMENT '适用时间的结束时间',
|
|
|
+ `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
|
|
|
+ `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
|
|
|
+ `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
|
|
|
+ `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
|
|
|
+ `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
|
|
|
+PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作班次适用日期表';
|
|
|
+
|
|
|
+CREATE TABLE
|
|
|
+IF
|
|
|
+ NOT EXISTS `work_shift_rest` (
|
|
|
+ `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
|
|
|
+ `work_shift_id` VARCHAR ( 64 ) NOT NULL COMMENT '班次的id',
|
|
|
+ `rest_start_time` VARCHAR ( 64 ) NULL COMMENT '班次的休息开始时间',
|
|
|
+ `rest_end_time` VARCHAR ( 64 ) NULL COMMENT '班次的休息结束时间',
|
|
|
+ `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
|
|
|
+ `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
|
|
|
+ `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
|
|
|
+ `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
|
|
|
+ `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
|
|
|
+PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作班次休息时间表';
|
|
|
+
|
|
|
+
|
|
|
+CREATE TABLE
|
|
|
+IF
|
|
|
+ NOT EXISTS `work_shift_conflict` (
|
|
|
+ `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
|
|
|
+ `source_work_shift_id` VARCHAR ( 64 ) NOT NULL COMMENT '被比较的班次的id',
|
|
|
+ `current_work_shift_id` VARCHAR ( 64 ) NULL COMMENT '当前的班次的id',
|
|
|
+ `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
|
|
|
+ `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
|
|
|
+ `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
|
|
|
+ `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
|
|
|
+PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作班次冲突表';
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CREATE TABLE
|
|
|
+IF
|
|
|
+ NOT EXISTS `work_staff` (
|
|
|
+ `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
|
|
|
+ `person_id` VARCHAR ( 64 ) NOT NULL COMMENT '工作人员id',
|
|
|
+ `dept_id` VARCHAR ( 64) NOT NULL COMMENT '部门id',
|
|
|
+ `project_id` VARCHAR ( 64 ) NOT NULL COMMENT '项目id',
|
|
|
+ `position_id` VARCHAR ( 64 ) NOT NULL COMMENT '主职位id',
|
|
|
+ `position_deputy_ids` VARCHAR ( 64 ) NULL COMMENT '副岗ids',
|
|
|
+ `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
|
|
|
+ `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
|
|
|
+ `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
|
|
|
+ `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
|
|
|
+ `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
|
|
|
+PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作人员档案表';
|
|
|
+
|
|
|
+
|
|
|
+CREATE TABLE
|
|
|
+IF
|
|
|
+ NOT EXISTS `work_schedule` (
|
|
|
+ `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
|
|
|
+ `year` INT ( 11 ) NOT NULL COMMENT '年',
|
|
|
+ `month` INT ( 11 ) NOT NULL COMMENT '月',
|
|
|
+ `day` INT ( 11 ) NOT NULL COMMENT '日',
|
|
|
+ `work_shift_id` VARCHAR ( 11 ) NOT NULL COMMENT '班次id',
|
|
|
+ `work_staff_id` VARCHAR ( 64 ) NOT NULL COMMENT '工作人员id',
|
|
|
+ `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
|
|
|
+ `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
|
|
|
+ `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
|
|
|
+ `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
|
|
|
+ `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
|
|
|
+ PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作排班表';
|
|
|
+CREATE INDEX idx_year_month_day USING BTREE ON work_schedule ( `year`, `month`, `day` );
|
|
|
+CREATE INDEX idx_work_time_type USING HASH ON work_schedule ( `work_time_type` );
|
|
|
+
|
|
|
+CREATE TABLE
|
|
|
+IF
|
|
|
+ NOT EXISTS `work_time` (
|
|
|
+ `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
|
|
|
+ `work_shift_id` VARCHAR ( 11 ) NOT NULL COMMENT '班次id',
|
|
|
+ `work_staff_id` VARCHAR ( 64 ) NOT NULL COMMENT '工作人员id',
|
|
|
+ `real_start_time` datetime NOT NULL COMMENT '工作人员的真实上班时间',
|
|
|
+ `real_end_time` datetime NOT NULL COMMENT '工作人员真实下班时间',
|
|
|
+ `leave` tinyint(1) NOT NULL COMMENT '工作人员是否请假',
|
|
|
+ `leave_start_time` datetime default null COMMENT '工作人员的请假开始时间',
|
|
|
+ `leave_end_time` datetime default null COMMENT '工作人员的请假结束时间',
|
|
|
+ `real_work_time` int(8) NOT NULL COMMENT '工作人员的真实工作时长 以分钟计',
|
|
|
+ `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
|
|
|
+ `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
|
|
|
+ `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
|
|
|
+ `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
|
|
|
+ `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
|
|
|
+ PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作时间表';
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|