xiaoyi
10 天以前 fae95228037f0c1304c1917ae5fff452f2160c5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
-- ============================================================
-- 安全生产模块 - 表结构 + 菜单(电力行业安全生产标准化)
-- 生成时间:2026-10-29
-- 适用:MySQL 8.4+
-- 内容:
--   1. 安全组织架构       safety_org
--   2. 特种作业证台账     safety_certificate(电工证/高压操作证等,到期预警)
--   3. 安全巡检点位       safety_inspection_point
--   4. 安全巡检记录       safety_inspection
--   5. 隐患登记与闭环     safety_hazard(上报-分派-整改-复查)
--   6. 高危作业票         safety_work_permit(动火/高压带电/有限空间等)
--   7. 作业监护记录       safety_work_permit_monitor
--   8. 应急物资台账       safety_material(绝缘/危化/消防)
--   9. 物资出入库流水     safety_material_stock
--  10. 安全培训记录       safety_training
--  11. 消防演练记录       safety_drill
--  12. 事故登记           safety_accident
-- 说明:本脚本幂等(IF NOT EXISTS / ON DUPLICATE KEY UPDATE),可重复执行
-- ============================================================
 
-- ---------- 1. 安全组织架构 ----------
CREATE TABLE IF NOT EXISTS `safety_org` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `parent_id` bigint NOT NULL DEFAULT 0 COMMENT '父级编号(0 为顶级)',
  `name` varchar(100) NOT NULL COMMENT '组织名称',
  `leader_name` varchar(50) DEFAULT NULL COMMENT '负责人姓名',
  `leader_phone` varchar(30) DEFAULT NULL COMMENT '负责人电话',
  `member_names` varchar(500) DEFAULT NULL COMMENT '成员姓名,逗号分隔',
  `duty` varchar(500) DEFAULT NULL COMMENT '安全职责',
  `sort` int NOT NULL DEFAULT 0 COMMENT '显示顺序',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态:0-启用,1-停用',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  KEY `idx_parent_id` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-组织架构';
 
-- ---------- 2. 特种作业证台账(到期自动预警) ----------
CREATE TABLE IF NOT EXISTS `safety_certificate` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `employee_name` varchar(50) NOT NULL COMMENT '持证人姓名',
  `employee_no` varchar(50) DEFAULT NULL COMMENT '工号',
  `dept_name` varchar(100) DEFAULT NULL COMMENT '所属部门',
  `cert_type` varchar(50) NOT NULL COMMENT '证件类型:LOW_VOLTAGE_ELECTRICIAN/HIGH_VOLTAGE_OPERATION/WELDING/HOIST/HEIGHT/LIMITED_SPACE/WORK_AT_HEIGHT/OTHER',
  `cert_no` varchar(64) NOT NULL COMMENT '证件编号',
  `issuer` varchar(100) DEFAULT NULL COMMENT '发证机关',
  `issue_date` date DEFAULT NULL COMMENT '发证日期',
  `expire_date` date NOT NULL COMMENT '有效期至',
  `review_date` date DEFAULT NULL COMMENT '下次复审日期',
  `warn_days` int NOT NULL DEFAULT 30 COMMENT '到期预警提前天数',
  `status` varchar(20) NOT NULL DEFAULT 'VALID' COMMENT '状态:VALID-有效,EXPIRING-即将到期,EXPIRED-已过期,REVOKED-已注销',
  `attachment` varchar(500) DEFAULT NULL COMMENT '证件扫描件 URL,逗号分隔',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  KEY `idx_employee_name` (`employee_name`),
  KEY `idx_cert_type` (`cert_type`),
  KEY `idx_expire_date` (`expire_date`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-特种作业证台账';
 
-- ---------- 3. 安全巡检点位 ----------
CREATE TABLE IF NOT EXISTS `safety_inspection_point` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `code` varchar(64) NOT NULL COMMENT '点位编码',
  `name` varchar(100) NOT NULL COMMENT '点位名称',
  `point_type` varchar(30) NOT NULL COMMENT '点位类型:HIGH_VOLTAGE_ROOM-高压配电室,UNIT_AREA-机组区,DANGER_CHEMICAL-危化品库,FIRE_AREA-消防重点部位,OTHER-其他',
  `workshop_name` varchar(100) DEFAULT NULL COMMENT '所属车间/区域',
  `location` varchar(200) DEFAULT NULL COMMENT '具体位置',
  `inspect_items` varchar(2000) DEFAULT NULL COMMENT '巡检项目清单,按行分隔',
  `inspect_cycle` varchar(20) NOT NULL DEFAULT 'DAILY' COMMENT '巡检周期:SHIFT-每班,DAILY-每日,WEEKLY-每周,MONTHLY-每月',
  `owner_name` varchar(50) DEFAULT NULL COMMENT '责任人',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态:0-启用,1-停用',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_code` (`code`, `deleted`),
  KEY `idx_point_type` (`point_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-巡检点位';
 
-- ---------- 4. 安全巡检记录 ----------
CREATE TABLE IF NOT EXISTS `safety_inspection` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `point_id` bigint DEFAULT NULL COMMENT '巡检点位编号',
  `point_name` varchar(100) DEFAULT NULL COMMENT '点位名称(快照)',
  `point_type` varchar(30) DEFAULT NULL COMMENT '点位类型(快照)',
  `inspect_time` datetime NOT NULL COMMENT '巡检时间',
  `inspector` varchar(50) NOT NULL COMMENT '巡检人',
  `result` varchar(20) NOT NULL DEFAULT 'NORMAL' COMMENT '巡检结果:NORMAL-正常,ABNORMAL-异常',
  `content` varchar(2000) DEFAULT NULL COMMENT '巡检内容与情况',
  `photo_urls` varchar(2000) DEFAULT NULL COMMENT '现场照片 URL,逗号分隔',
  `hazard_count` int NOT NULL DEFAULT 0 COMMENT '本次发现的隐患数',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  KEY `idx_point_id` (`point_id`),
  KEY `idx_inspect_time` (`inspect_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-巡检记录';
 
-- ---------- 5. 隐患登记与闭环(上报-分派-整改-复查) ----------
CREATE TABLE IF NOT EXISTS `safety_hazard` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `code` varchar(64) NOT NULL COMMENT '隐患编号',
  `title` varchar(200) NOT NULL COMMENT '隐患标题',
  `level` varchar(20) NOT NULL DEFAULT 'GENERAL' COMMENT '隐患等级:GENERAL-一般,MAJOR-重大',
  `source` varchar(30) NOT NULL DEFAULT 'INSPECTION' COMMENT '来源:INSPECTION-巡检发现,SELF_CHECK-自查上报,REPORT-员工上报,EXTERNAL-外部检查',
  `inspection_id` bigint DEFAULT NULL COMMENT '关联巡检记录编号',
  `point_id` bigint DEFAULT NULL COMMENT '关联巡检点位编号',
  `point_name` varchar(100) DEFAULT NULL COMMENT '点位名称',
  `location` varchar(200) DEFAULT NULL COMMENT '隐患位置',
  `description` varchar(2000) DEFAULT NULL COMMENT '隐患描述',
  `photo_urls` varchar(2000) DEFAULT NULL COMMENT '现场照片 URL,逗号分隔(移动端拍照上传)',
  `reporter` varchar(50) NOT NULL COMMENT '上报人',
  `report_time` datetime NOT NULL COMMENT '上报时间',
  `assignee` varchar(50) DEFAULT NULL COMMENT '整改责任人(分派)',
  `assign_time` datetime DEFAULT NULL COMMENT '分派时间',
  `rectify_deadline` date DEFAULT NULL COMMENT '整改期限',
  `rectify_desc` varchar(2000) DEFAULT NULL COMMENT '整改措施与结果',
  `rectify_photo_urls` varchar(2000) DEFAULT NULL COMMENT '整改后照片 URL,逗号分隔',
  `rectify_time` datetime DEFAULT NULL COMMENT '整改完成时间',
  `rechecker` varchar(50) DEFAULT NULL COMMENT '复查人',
  `recheck_time` datetime DEFAULT NULL COMMENT '复查时间',
  `recheck_result` varchar(20) DEFAULT NULL COMMENT '复查结论:PASSED-通过,REJECTED-不通过退回整改',
  `recheck_remark` varchar(500) DEFAULT NULL COMMENT '复查意见',
  `status` varchar(20) NOT NULL DEFAULT 'REPORTED' COMMENT '状态:REPORTED-已上报,ASSIGNED-已分派,RECTIFYING-整改中,RECHECKING-待复查,CLOSED-已闭环,REJECTED-复查不通过',
  `close_time` datetime DEFAULT NULL COMMENT '闭环时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_code` (`code`, `deleted`),
  KEY `idx_status` (`status`),
  KEY `idx_report_time` (`report_time`),
  KEY `idx_inspection_id` (`inspection_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-隐患登记与闭环';
 
-- ---------- 6. 高危作业票 ----------
CREATE TABLE IF NOT EXISTS `safety_work_permit` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `code` varchar(64) NOT NULL COMMENT '作业票编号',
  `permit_type` varchar(30) NOT NULL COMMENT '作业类型:HOT_WORK-动火作业,LIVE_HIGH_VOLTAGE-高压带电作业,LIMITED_SPACE-有限空间作业,WORK_AT_HEIGHT-高处作业,LIFTING-吊装作业,TEMP_ELECTRIC-临时用电作业,OTHER-其他',
  `title` varchar(200) NOT NULL COMMENT '作业名称',
  `workshop_name` varchar(100) DEFAULT NULL COMMENT '作业区域/车间',
  `location` varchar(200) DEFAULT NULL COMMENT '作业地点',
  `work_content` varchar(2000) DEFAULT NULL COMMENT '作业内容与范围',
  `applicant` varchar(50) NOT NULL COMMENT '申请人',
  `apply_time` datetime NOT NULL COMMENT '申请时间',
  `plan_start_time` datetime NOT NULL COMMENT '计划开始时间',
  `plan_end_time` datetime NOT NULL COMMENT '计划结束时间',
  `actual_start_time` datetime DEFAULT NULL COMMENT '实际开始时间',
  `actual_end_time` datetime DEFAULT NULL COMMENT '实际结束时间',
  `risk_level` varchar(20) NOT NULL DEFAULT 'NORMAL' COMMENT '风险等级:LOW-低,NORMAL-一般,HIGH-高,VERY_HIGH-极高',
  `safety_measures` varchar(2000) DEFAULT NULL COMMENT '安全措施',
  `approver` varchar(50) DEFAULT NULL COMMENT '审批人',
  `approve_time` datetime DEFAULT NULL COMMENT '审批时间',
  `approve_comment` varchar(500) DEFAULT NULL COMMENT '审批意见',
  `guardian` varchar(50) DEFAULT NULL COMMENT '监护人',
  `status` varchar(20) NOT NULL DEFAULT 'DRAFT' COMMENT '状态:DRAFT-草稿,PENDING-待审批,APPROVED-已批准,REJECTED-已驳回,IN_PROGRESS-作业中,CLOSED-已完结,CANCELLED-已作废',
  `attachment` varchar(2000) DEFAULT NULL COMMENT '作业票附件 URL,逗号分隔',
  `photo_urls` varchar(2000) DEFAULT NULL COMMENT '现场照片 URL,逗号分隔',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_code` (`code`, `deleted`),
  KEY `idx_permit_type` (`permit_type`),
  KEY `idx_status` (`status`),
  KEY `idx_plan_start_time` (`plan_start_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-高危作业票';
 
-- ---------- 7. 作业监护记录 ----------
CREATE TABLE IF NOT EXISTS `safety_work_permit_monitor` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `permit_id` bigint NOT NULL COMMENT '作业票编号',
  `monitor_time` datetime NOT NULL COMMENT '监护时间',
  `guardian` varchar(50) NOT NULL COMMENT '监护人',
  `monitor_content` varchar(1000) DEFAULT NULL COMMENT '监护内容与情况',
  `abnormal` varchar(500) DEFAULT NULL COMMENT '异常情况与处置',
  `photo_urls` varchar(2000) DEFAULT NULL COMMENT '现场照片 URL,逗号分隔',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  KEY `idx_permit_id` (`permit_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-作业监护记录';
 
-- ---------- 8. 应急/安全物资台账 ----------
CREATE TABLE IF NOT EXISTS `safety_material` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `code` varchar(64) NOT NULL COMMENT '物资编码',
  `name` varchar(100) NOT NULL COMMENT '物资名称',
  `category` varchar(30) NOT NULL COMMENT '类别:INSULATING-电力绝缘,HAZARD_CHEMICAL-危化品,FIRE-消防物资,PPE-劳保用品,OTHER-其他',
  `spec` varchar(100) DEFAULT NULL COMMENT '规格型号',
  `unit` varchar(20) NOT NULL DEFAULT '个' COMMENT '计量单位',
  `stock_qty` decimal(18,3) NOT NULL DEFAULT 0 COMMENT '当前库存数量',
  `safe_stock` decimal(18,3) NOT NULL DEFAULT 0 COMMENT '安全库存(低于则预警)',
  `storage_location` varchar(100) DEFAULT NULL COMMENT '存放位置',
  `expire_date` date DEFAULT NULL COMMENT '有效期至(绝缘/危化品必填)',
  `validity_months` int DEFAULT NULL COMMENT '有效期月数(如绝缘手套 6 个月)',
  `manager` varchar(50) DEFAULT NULL COMMENT '保管人',
  `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态:0-启用,1-停用',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_code` (`code`, `deleted`),
  KEY `idx_category` (`category`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-应急物资台账';
 
-- ---------- 9. 物资出入库流水 ----------
CREATE TABLE IF NOT EXISTS `safety_material_stock` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `material_id` bigint NOT NULL COMMENT '物资编号',
  `material_name` varchar(100) DEFAULT NULL COMMENT '物资名称(快照)',
  `category` varchar(30) DEFAULT NULL COMMENT '物资类别(快照)',
  `biz_type` varchar(20) NOT NULL COMMENT '业务类型:IN-入库,OUT-出库',
  `quantity` decimal(18,3) NOT NULL COMMENT '数量',
  `stock_before` decimal(18,3) NOT NULL DEFAULT 0 COMMENT '操作前库存',
  `stock_after` decimal(18,3) NOT NULL DEFAULT 0 COMMENT '操作后库存',
  `biz_date` date NOT NULL COMMENT '业务日期',
  `operator` varchar(50) NOT NULL COMMENT '经办人',
  `receiver` varchar(50) DEFAULT NULL COMMENT '领用人(出库)',
  `purpose` varchar(200) DEFAULT NULL COMMENT '用途/去向',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  KEY `idx_material_id` (`material_id`),
  KEY `idx_biz_date` (`biz_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-物资出入库流水';
 
-- ---------- 10. 安全培训记录 ----------
CREATE TABLE IF NOT EXISTS `safety_training` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `title` varchar(200) NOT NULL COMMENT '培训主题',
  `training_type` varchar(30) NOT NULL DEFAULT 'SAFETY' COMMENT '培训类型:SAFETY-安全培训,SKILL-技能培训,LAW-法规宣贯,EMERGENCY-应急演练培训,OTHER-其他',
  `train_date` date NOT NULL COMMENT '培训日期',
  `duration_hours` decimal(8,1) DEFAULT NULL COMMENT '培训学时',
  `trainer` varchar(50) DEFAULT NULL COMMENT '讲师/组织人',
  `location` varchar(200) DEFAULT NULL COMMENT '培训地点',
  `participants` varchar(2000) DEFAULT NULL COMMENT '参加人员姓名,逗号分隔',
  `participant_count` int NOT NULL DEFAULT 0 COMMENT '参加人数',
  `content` varchar(2000) DEFAULT NULL COMMENT '培训内容',
  `exam_result` varchar(2000) DEFAULT NULL COMMENT '考核情况',
  `attachment` varchar(2000) DEFAULT NULL COMMENT '签到表/课件/照片 URL,逗号分隔',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  KEY `idx_train_date` (`train_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-培训记录';
 
-- ---------- 11. 消防演练记录 ----------
CREATE TABLE IF NOT EXISTS `safety_drill` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `title` varchar(200) NOT NULL COMMENT '演练名称',
  `drill_type` varchar(30) NOT NULL DEFAULT 'FIRE' COMMENT '演练类型:FIRE-消防演练,EMERGENCY_EVAC-应急疏散,ELECTRIC_ACCIDENT-触电事故,CHEMICAL_LEAK-危化品泄漏,OTHER-其他',
  `drill_date` date NOT NULL COMMENT '演练日期',
  `location` varchar(200) DEFAULT NULL COMMENT '演练地点',
  `organizer` varchar(50) DEFAULT NULL COMMENT '组织人',
  `participants` varchar(2000) DEFAULT NULL COMMENT '参加人员姓名,逗号分隔',
  `participant_count` int NOT NULL DEFAULT 0 COMMENT '参加人数',
  `plan_desc` varchar(2000) DEFAULT NULL COMMENT '演练方案',
  `process_desc` varchar(2000) DEFAULT NULL COMMENT '演练过程记录',
  `summary` varchar(2000) DEFAULT NULL COMMENT '演练总结与改进',
  `duration_minutes` int DEFAULT NULL COMMENT '演练时长(分钟)',
  `attachment` varchar(2000) DEFAULT NULL COMMENT '演练照片/记录表 URL,逗号分隔',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  KEY `idx_drill_date` (`drill_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-消防演练记录';
 
-- ---------- 12. 安全事故登记 ----------
CREATE TABLE IF NOT EXISTS `safety_accident` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
  `code` varchar(64) NOT NULL COMMENT '事故编号',
  `title` varchar(200) NOT NULL COMMENT '事故名称',
  `accident_type` varchar(30) NOT NULL COMMENT '事故类型:ELECTRIC_SHOCK-触电,FIRE-火灾,FALL-高处坠落,OBJECT_STRIKE-物体打击,MECHANICAL-机械伤害,CHEMICAL-中毒窒息,OTHER-其他',
  `level` varchar(20) NOT NULL DEFAULT 'GENERAL' COMMENT '事故等级:SLIGHT-轻伤,GENERAL-一般,SEVERE-重伤,MAJOR-重大',
  `occur_time` datetime NOT NULL COMMENT '发生时间',
  `location` varchar(200) DEFAULT NULL COMMENT '发生地点',
  `workshop_name` varchar(100) DEFAULT NULL COMMENT '所属车间/区域',
  `casualty_desc` varchar(500) DEFAULT NULL COMMENT '伤亡情况',
  `economic_loss` decimal(18,2) DEFAULT NULL COMMENT '直接经济损失(元)',
  `involved_persons` varchar(500) DEFAULT NULL COMMENT '涉事人员姓名,逗号分隔',
  `description` varchar(2000) DEFAULT NULL COMMENT '事故经过',
  `cause_analysis` varchar(2000) DEFAULT NULL COMMENT '原因分析',
  `measures` varchar(2000) DEFAULT NULL COMMENT '处理措施与整改要求',
  `reporter` varchar(50) DEFAULT NULL COMMENT '登记人',
  `report_time` datetime DEFAULT NULL COMMENT '登记时间',
  `status` varchar(20) NOT NULL DEFAULT 'REPORTED' COMMENT '状态:REPORTED-已登记,INVESTIGATING-调查中,HANDLED-已处理,CLOSED-已结案',
  `attachment` varchar(2000) DEFAULT NULL COMMENT '现场照片/调查报告 URL,逗号分隔',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `creator` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `updater` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_code` (`code`, `deleted`),
  KEY `idx_occur_time` (`occur_time`),
  KEY `idx_accident_type` (`accident_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='安全生产-事故登记';
 
SELECT '安全生产模块表结构创建完成' AS result;