帮助首页 > 网站操作说明 · 1. 系统后台操作说明 > 企业信息采集 · 导入使用说明

企业信息采集 · 导入使用说明

后台企业信息采集 — 导入用法说明

入口:采集管理 → 企业信息采集 → 导入基础企业

地址:backstage/companycollect/import.html

本模块用于将目录下的多个 .xlsx 企业名录批量写入数据库表 by_company_base,供后台检索、导出,以及商家后台(有权限的员工)查询、新增企业。


1. 功能结构

页面路径作用
导入基础企业companycollect/import指定目录,批量导入 xlsx
企业基础列表companycollect/index搜索、查看、导出
企业详情companycollect/detail单条完整字段
导入批次日志companycollect/batches每次导入的统计
错误明细companycollect/batchLogs失败行原因

说明: 批量导入仅在平台后台提供;商家/员工后台只能查列表、看详情、手工新增,不能走目录导入。


2. 环境准备

2.1 数据库表

首次使用前需执行:docs/sql/company_collect.sql

会创建 by_company_baseby_company_import_batchby_company_import_log 等表。

2.2 读取方式(import 页二选一)

方式要求适用
Python(推荐)Python 3 + openpyxl;PHP 需启用 proc_open大文件、省 PHP 内存
PHPExcel项目已安装 PHPExcelPython 不可用时的备选

安装 openpyxl:

pip install openpyxl

2.3 导入目录

  • 页面默认目录:项目根下 安徽所有企业\
  • 目录内放置多个 .xlsx(只认 .xlsx,不认 .xls
  • 路径建议用英文/数字,避免中文路径在 Windows/IIS 下编码异常
  • 若手动填写目录,系统不会偷偷 fallback 到其他目录;目录不存在会直接报错

3. Excel 文件格式

3.1 读取规则

  • 只读第 1 个 sheet
  • 优先按表头自动匹配列(扫描前 20 行找表头)
  • 表头匹配失败时,回退到固定列顺序(旧模板)

3.2 完整表头模板(推荐)

与企查查/天眼查等导出格式兼容,支持字段包括:

表头关键词(部分)入库字段
公司名称 / 企业名称企业名称
法定代表人 / 法人法人
成立日期成立日期
注册地址地址
公司类型 / 企业类型企业类型
统一社会信用代码信用代码(去重主键
纳税人识别号 / 税号税号
组织机构代码组织机构代码
所属省份 / 所属城市 / 所属区县地区(拼成 省-市-区
国标行业门类 / 大类 / 中类行业分类
经营范围经营范围
有效手机号 / 更多电话电话(合并写入 phone
登记状态、企业规模、注册资本、实缴资本对应扩展字段
核准日期、营业期限、曾用名、英文名对应扩展字段
参保人数、网址、邮箱等对应扩展字段

3.3 旧版固定列(无表头时)

字段
A名称
B法人
C成立日期
D地址
E类型
F信用代码
G税号
H行业
I地区
J经营范围
K电话

3.4 数据清洗

  • --- 视为空
  • 电话只保留 11 位手机号或 区号-号码 固话,过滤 1315 等无效片段
  • 成立日期、核准日期转为 YYYY-MM-DD

4. Web 导入操作步骤

步骤 1:准备文件

  1. 将 xlsx 放到服务器目录,例如:D:\www\baoan\安徽所有企业\
  2. 单文件过大(如几十万行)先拆分(见第 5 节)

步骤 2:打开导入页

访问 backstage/companycollect/import.html,填写:

  • 导入目录:xlsx 所在绝对路径
  • 读取方式:选 Python(推荐)

步骤 3:开始导入

  1. 点击「开始导入」,确认提示
  2. 新开窗口显示实时进度(适配 IIS,避免单请求超时)
  3. 系统按文件逐个处理:(1/N) 文件名.xlsx → 自动跳转下一个
  4. 顶部显示累计:总 / 新增 / 重复 / 失败

步骤 4:查看结果

  • 导入批次日志companycollect/batches — 每批总数、新增、重复、失败
  • 错误明细:点「错误明细」查看具体行与错误信息
  • 企业列表companycollect/index — 确认数据已入库

导入流程

提交表单 → 创建导入批次 → 逐步处理每个 xlsx
  → Python/PHPExcel 逐行解析
  → 写入 by_company_base
  → 更新批次统计 → 自动跳转下一文件
  → 全部完成后标记批次「完成」

单文件卡住超过约 2 分钟,进度页提供「跳过本文件」链接。


5. 大文件拆分

单文件过大导致内存不足或超时时,先用拆分脚本:

python Banyan/Lib/Util/split_xlsx.py "大文件.xlsx"
python Banyan/Lib/Util/split_xlsx.py "大文件.xlsx" "输出目录" 2000
  • 默认每文件 2000 行(含表头)
  • 输出如:大文件_part01.xlsx大文件_part02.xlsx
  • 拆分后的文件放入同一导入目录,再执行 Web 导入

6. 命令行导入(大库/生产推荐)

Web 受 PHP 内存、超时、proc_open 限制时,使用 CLI 脚本:

cd D:\www\baoan
php docs/cli_company_import.php
php docs/cli_company_import.php "D:\www\baoan\安徽所有企业"
php docs/cli_company_import.php "D:\www\baoan\安徽所有企业" --limit 50
参数说明
无参数使用默认目录 安徽所有企业
目录路径指定 xlsx 目录
--limit 50每文件只导入前 50 行(测试用)

CLI 同样走 Python 解析脚本 Banyan/Lib/Util/companycollect_xlsx_parser.py,直接写库,并创建批次记录;完成后在「导入批次日志」可见。


7. 去重与更新策略

写入时按以下规则判断重复:

  1. 有统一社会信用代码 → 按 credit_code 查重(库里有唯一索引 uk_credit_code
  2. 无信用代码 → 按「企业名称 + 地区 + 法人」查重
情况行为
不存在新增
已存在计为重复;若原记录某字段为空、新数据有值,则补全(电话、地址、经营范围、行业、邮箱等)
写入异常计为失败,记入错误明细

空行(名称和信用代码都空)自动跳过,不计入总数。


8. 导入后的数据使用

8.1 后台列表与搜索

companycollect/index 支持:

  • 综合关键字(名称/法人/地址/电话/行业/信用代码等)
  • 企业名、地区、类型、行业
  • 成立日期区间、注册资本、信用代码、电话
  • 导出 XLSX(按当前条件,每批 5000 条)

8.2 商家/员工后台

  • 菜单:企业信息采集(需模块权限 + 员工 is_companycollect=1
  • 功能:列表搜索、详情、手工新增
  • 不能批量导入;数据来自平台后台导入的 by_company_base

9. 常见问题

现象处理
「目录不可访问或路径编码不匹配」换英文路径,或检查 IIS 进程是否有读权限
「目录下未找到 xlsx」确认扩展名为 .xlsx,不是 .xls
Python 解析超时拆分大文件,或改用 cli_company_import.php
「proc_open 被禁用」选 PHPExcel,或只用命令行导入
PHPExcel 内存不足拆分文件 + Python 方式
重复很多正常;同一信用代码不会重复插入,只会补空字段
列错位检查表头是否含「公司名称」「法定代表人」「统一社会信用代码」等;否则回退 A~K 旧映射

10. 典型工作流示例

1. 从数据源导出企业 xlsx(带完整表头)
2. 若单文件 > 5 万行 → split_xlsx.py 拆成多个 part
3. 复制到服务器 安徽所有企业\ 目录
4. backstage/companycollect/import.html → Python → 开始导入
5. 在 batches 确认 新增/重复/失败
6. 有失败 → batchLogs 查原因
7. companycollect/index 搜索抽样验证
8. 商家员工在 merchant/companycollect 查询使用

11. 相关文件

文件说明
Banyan/Backstage/companycollect/import.html导入配置页
Banyan/Lib/Action/Backstage/CompanycollectAction.class.php导入逻辑
Banyan/Lib/Util/companycollect_xlsx_parser.pyPython xlsx 解析
Banyan/Lib/Util/split_xlsx.py大文件拆分
docs/cli_company_import.php命令行导入
docs/sql/company_collect.sql建表与菜单 SQL
docs/company_collect_plan.md模块设计方案

*文档版本:与当前 baoan 代码库一致。*

copyright 2013-2113 www.baoanfuwu.cn All Rights Reserved 保安服务网版权所有
皖ICP备2021016109号-1