安全生产许可证档案数字化全流程实操落地详细技术指南
前期准备工作(必做)
硬件准备
需准备2类设备,无强制品牌要求,满足参数即可:
- 高速自动进纸扫描仪:支持A3/A4幅面,分辨率≥300DPI,自带自动纠偏、裁边功能,优先选带硬件OCR加速的型号
- 存储设备:本地NAS(容量≥4T,支持RAID5备份)+ 等保2.0三级以上加密云盘,禁止用公共免费云盘存储档案
软件准备
全部采用开源免费工具,可直接获取安装:
- OCR识别工具:PaddleOCR开源识别框架,安装命令:
pip install paddlepaddle paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple - 档案管理系统:开源档案管理系统,Docker一键部署版本,下载地址:https://gitee.com/kyodocn/archives-management
- 文本编辑工具:Notepad++,用于校验结构化数据,下载地址:https://notepad-plus-plus.org/downloads/
合规准备
提前确认需符合《电子档案管理规范》GB/T 18894-2016、当地应急管理部门对安全生产许可证档案的留存要求,所有操作留痕可追溯。
档案数字化实操核心步骤
第一步:纸质档案前置整理
- 将所有安全生产许可证纸质档案按「发证年份+地区+企业名称」排序,拆除所有订书钉、胶带、回形针等异物,破损页面提前用无酸纸裱糊平整
- 给每份档案编制唯一识别码,编码规则固定为:
AQSC+4位年份+6位地区行政代码+6位流水号,例如北京朝阳区2024年第1份档案编码为AQSC2024110105000001,将编码打印后贴在档案首页右上角 - 统计所有档案总数,做好纸质档案交接登记,避免丢失
第二步:批量扫描生成电子件
必须固定扫描参数:彩色模式、300DPI、PDF格式、无压缩、启用自动纠偏/裁边,操作要求:
- 按整理好的顺序放入自动进纸器,每扫描10份抽查1次,确认无漏页、模糊、偏斜问题,不合格的立即重扫
- 每份扫描完成的PDF文件直接用对应档案的唯一识别码命名,禁止用中文、特殊字符命名,避免后续系统识别报错
- 所有扫描件统一存放在名为scan_files的文件夹内,不要嵌套子文件夹
第三步:OCR提取结构化数据
直接运行下方批量识别脚本,可自动提取安全生产许可证核心字段,生成结构化CSV文件,脚本可直接复制使用:
```python from paddleocr import PaddleOCR import os import csv 初始化OCR模型,启用中英文+角度识别 ocr = PaddleOCR(use_angle_cls=True, lang='ch', show_log=False) 扫描件存放路径,可自行修改 pdf_path = "./scan_files/" 结果输出路径 output_file = "./output/安全生产许可证结构化数据.csv" 需提取的核心字段,可根据当地许可证模板调整 fields = ["唯一识别码", "许可证编号", "企业名称", "注册地址", "法定代表人", "许可范围", "有效期始", "有效期止", "发证机关"] result_list = [fields] for file in os.listdir(pdf_path): if file.endswith(".pdf"): file_code = file.replace(".pdf", "") temp = [file_code] 识别PDF内容 ocr_result = ocr.ocr(os.path.join(pdf_path, file), cls=True) text = "".join([line[1][0] for page in ocr_result for line in page]) 匹配字段内容,可根据实际模板调整匹配规则 for field in fields[1:]: if field in text: start_idx = text.index(field) + len(field) + 1 val = text[start_idx:start_idx+60].split("\n")[0].strip() temp.append(val) else: temp.append("待补全") result_list.append(temp) 写入CSV文件,用utf-8-sig编码避免中文乱码 with open(output_file, "w", encoding="utf-8-sig", newline="") as f: writer = csv.writer(f) writer.writerows(result_list) ```
脚本运行完成后,必须人工校验核心字段:许可证编号、企业名称、有效期,准确率要求100%,错误字段直接在CSV中修正。
第四步:数据导入档案管理系统
用Docker一键部署开源档案管理系统,执行命令:
``` docker run -d -p 8080:80 -v /data/archives:/var/www/html/storage --name archives kyodocn/archives-management:latest ```部署完成后访问http://你的服务器IP:8080,默认账号admin,密码123456,按以下步骤操作:
- 进入【系统设置】-【档案分类】,新建一级分类「安全生产许可证档案」,关联之前提取的核心字段
- 进入【档案批量导入】,上传校验完成的CSV文件,按系统提示匹配字段,完成数据导入
- 进入【附件批量上传】,选择scan_files文件夹内的所有PDF文件,系统会自动按文件名(唯一识别码)关联对应档案条目
合规校验与长效运维要求
四性检测
进入系统【档案管理】-【四性检测】模块,全选所有导入的安全生产许可证档案,运行真实性、完整性、可用性、安全性检测,要求检测通过率100%,不通过的条目按系统提示修正,比如补全缺失字段、替换损坏的PDF文件。
存储备份
严格执行三地三备份规则:本地服务器存储1份、异地NAS存储1份、等保三级加密云盘存储1份,每季度自动同步一次,备份日志留存不少于10年。
权限配置
在系统【角色管理】中设置三级权限:普通办事员仅可查询、档案管理员可编辑/新增、超级管理员仅可配置系统,所有操作自动留痕,操作日志不可删除、修改。
常见问题排查
- 扫描PDF偏斜/黑边:在扫描仪设置中开启「自动纠偏」「自动裁边」功能,已扫描的文件可使用XnConvert工具批量修正,下载地址:https://www.xnview.com/en/xnconvert/
- OCR识别准确率低:将扫描分辨率调高到400DPI,替换高精度识别模型,下载地址:https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar,初始化OCR时添加rec_model_dir参数指定模型路径
- CSV导入系统乱码:用Notepad++打开CSV文件,点击【编码】-【转为UTF-8编码】后重新导入即可