table.sql 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. CREATE DATABASE IF NOT EXISTS `fm-scheduling`;
  2. CREATE TABLE
  3. IF
  4. NOT EXISTS `work_rule` (
  5. `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
  6. -- `parent_id` int(8) COMMENT '上一级规则节点的id 这个主要用于XX岗位/专业在XX时间段的在岗人数 带有复合条件的规则 ',
  7. `rule_type` int(1) NOT NULL COMMENT '规则类型 1 日排班规则 2 月排班规则 0 特殊日期',
  8. `rule_operator` int(8) COMMENT '比较符号 1大于 -1 小于 0 等于 2 大于等于 -2 小于等于',
  9. `rule_value` double(10, 2) COMMENT '规则的限定值',
  10. `rule_content_ids` varchar (255) COMMENT '规则内容ids',
  11. `enable` tinyint (1) NOT NULL DEFAULT 1 COMMENT '规则是否启用',
  12. `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
  13. `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
  14. `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  15. `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
  16. `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
  17. `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
  18. PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作规则表';
  19. CREATE TABLE
  20. IF
  21. NOT EXISTS `work_rule_content` (
  22. `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
  23. `rule_desc` VARCHAR ( 64 ) COMMENT 'rule描述',
  24. `rule_value` VARCHAR ( 64 ) COMMENT 'rule的值',
  25. `filed_ref` int(2) COMMENT '字段关联 以满足规则内容里的不同类型 这样好做字段层面的条件的判断 1 岗位 2 专业 3 班次 4 领导检查 5 安全日检查 ',
  26. `filed_ref_value` int(2) COMMENT '与字段相关联的值',
  27. `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
  28. `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
  29. `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  30. `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
  31. `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
  32. `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
  33. PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作规则内容表';
  34. CREATE TABLE
  35. IF
  36. NOT EXISTS `work_shift` (
  37. `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
  38. `shift_abbr` VARCHAR ( 5 ) NOT NULL COMMENT '班次的简称',
  39. `shift_name` VARCHAR ( 255 ) NOT NULL COMMENT '班次的全称',
  40. `shift_start_time` VARCHAR ( 64 ) NOT NULL COMMENT '班次的开始时间',
  41. `shift_end_time` VARCHAR ( 64 ) NOT NULL COMMENT '班次的结束时间',
  42. `positionIds` VARCHAR ( 64 ) NOT NULL COMMENT '班次需要的岗位',
  43. `shift_type` int(1) NOT NULL COMMENT '班次类型 1 集团统一 0 项目统一',
  44. `real_work_duration` INT ( 8 ) NOT NULL COMMENT '班次的真实工作时间以分钟后为单位',
  45. `work_rule_id` INT ( 8 ) NOT NULL COMMENT '班次的真实工作时间以分钟后为单位',
  46. `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
  47. `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
  48. `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  49. `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
  50. `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
  51. `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
  52. PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作班次表';
  53. CREATE TABLE
  54. IF
  55. NOT EXISTS `work_shift_duration` (
  56. `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
  57. `work_shift_id` VARCHAR ( 64 ) NOT NULL COMMENT '工作班次id',
  58. `duration_start` date NOT NULL COMMENT '适用时间的开始时间',
  59. `duration_end` date NOT NULL COMMENT '适用时间的结束时间',
  60. `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
  61. `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
  62. `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  63. `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
  64. `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
  65. `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
  66. PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作班次适用日期表';
  67. CREATE TABLE
  68. IF
  69. NOT EXISTS `work_shift_rest` (
  70. `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
  71. `work_shift_id` VARCHAR ( 64 ) NOT NULL COMMENT '班次的id',
  72. `rest_start_time` VARCHAR ( 64 ) NULL COMMENT '班次的休息开始时间',
  73. `rest_end_time` VARCHAR ( 64 ) NULL COMMENT '班次的休息结束时间',
  74. `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
  75. `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
  76. `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  77. `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
  78. `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
  79. `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
  80. PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作班次休息时间表';
  81. CREATE TABLE
  82. IF
  83. NOT EXISTS `work_shift_conflict` (
  84. `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
  85. `source_work_shift_id` VARCHAR ( 64 ) NOT NULL COMMENT '被比较的班次的id',
  86. `current_work_shift_id` VARCHAR ( 64 ) NULL COMMENT '当前的班次的id',
  87. `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
  88. `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  89. `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
  90. `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
  91. `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
  92. PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作班次冲突表';
  93. CREATE TABLE
  94. IF
  95. NOT EXISTS `work_staff` (
  96. `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
  97. `person_id` VARCHAR ( 64 ) NOT NULL COMMENT '工作人员id',
  98. `dept_id` VARCHAR ( 64) NOT NULL COMMENT '部门id',
  99. `project_id` VARCHAR ( 64 ) NOT NULL COMMENT '项目id',
  100. `position_id` VARCHAR ( 64 ) NOT NULL COMMENT '主职位id',
  101. `position_deputy_ids` VARCHAR ( 64 ) NULL COMMENT '副岗ids',
  102. `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
  103. `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
  104. `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  105. `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
  106. `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
  107. `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
  108. PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作人员档案表';
  109. CREATE TABLE
  110. IF
  111. NOT EXISTS `work_schedule` (
  112. `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
  113. `year` INT ( 11 ) NOT NULL COMMENT '年',
  114. `month` INT ( 11 ) NOT NULL COMMENT '月',
  115. `day` INT ( 11 ) NOT NULL COMMENT '日',
  116. `work_shift_id` VARCHAR ( 11 ) NOT NULL COMMENT '班次id',
  117. `work_staff_id` VARCHAR ( 64 ) NOT NULL COMMENT '工作人员id',
  118. `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
  119. `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
  120. `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  121. `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
  122. `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
  123. `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
  124. PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作排班表';
  125. CREATE INDEX idx_year_month_day USING BTREE ON work_schedule ( `year`, `month`, `day` );
  126. CREATE INDEX idx_work_time_type USING HASH ON work_schedule ( `work_time_type` );
  127. CREATE TABLE
  128. IF
  129. NOT EXISTS `work_time` (
  130. `id` VARCHAR ( 64 ) NOT NULL COMMENT '主键',
  131. `work_shift_id` VARCHAR ( 11 ) NOT NULL COMMENT '班次id',
  132. `work_staff_id` VARCHAR ( 64 ) NOT NULL COMMENT '工作人员id',
  133. `real_start_time` datetime NOT NULL COMMENT '工作人员的真实上班时间',
  134. `real_end_time` datetime NOT NULL COMMENT '工作人员真实下班时间',
  135. `leave` tinyint(1) NOT NULL COMMENT '工作人员是否请假',
  136. `leave_start_time` datetime default null COMMENT '工作人员的请假开始时间',
  137. `leave_end_time` datetime default null COMMENT '工作人员的请假结束时间',
  138. `real_work_time` int(8) NOT NULL COMMENT '工作人员的真实工作时长 以分钟计',
  139. `ts` TIMESTAMP NULL NOT NULL COMMENT '乐观锁',
  140. `creator` VARCHAR ( 32 ) NOT NULL COMMENT '创建人',
  141. `creation_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  142. `modifier` VARCHAR ( 32 ) NOT NULL COMMENT '最后修改人',
  143. `modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改时间',
  144. `valid` INT ( 11 ) NOT NULL COMMENT '合法标识',
  145. PRIMARY KEY ( `id` )) ENGINE = INNODB CHARSET = utf8mb4 COMMENT '工作时间表';