# 企业信息管理API接口文档 > 文档创建人:admin > 创建日期:2023-07-05 > 更新日期:2026-03-30 > 文档状态:已完成 ## 1. 概述 本文档描述了企业信息管理模块的API接口设计。企业信息管理模块包含企业基本信息管理、招聘岗位管理以及招聘简章PDF生成功能。 **核心变更(2026-03-30)**: - 企业信息新增「企业简介」「办公电话」「官网」字段 - 企业信息与岗位信息在新增/编辑时一体化处理 - 新增招聘简章PDF生成功能(单个/批量) - 新增Excel导入功能(支持企业+岗位一次性导入) - 废弃原招聘海报管理、招聘岗位管理菜单(功能整合至本模块) ### 1.1 基础信息 | 项目 | 说明 | |------|------| | 接口基础路径 | `/zsjy/enterprise` | | 请求方式 | `GET`、`POST`、`PUT`、`DELETE` | | 认证方式 | Bearer Token | | 响应格式 | 统一响应格式 `R`,列表分页用 `TableDataInfo` | ### 1.2 数据结构 #### 1.2.1 企业信息 (EnterpriseVO) | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 企业ID | | enterpriseName | String | 企业名称 | | industry | String | 所属行业(字典值) | | industryName | String | 所属行业名称(字典标签) | | mainBusiness | String | 主营业务(兼容保留) | | enterpriseScale | String | 企业规模(字典值) | | enterpriseScaleName | String | 企业规模名称(字典标签) | | enterpriseIntro | String | **新增** 企业简介(≤1500字符,用于招聘简章) | | contactName | String | 联系人姓名 | | contactPhone | String | 联系电话 | | officePhone | String | **新增** 办公电话 | | email | String | 电子邮箱 | | website | String | **新增** 企业官网 | | address | String | 企业地址 | | status | String | 状态(0正常 1停用) | | remark | String | 备注(兼容保留) | | jobList | List\ | **新增** 岗位列表(用于招聘简章) | | jobCount | Integer | **新增** 岗位数量(列表展示用) | | createBy | Long | 创建者 | | createTime | Date | 创建时间 | | updateBy | Long | 更新者 | | updateTime | Date | 更新时间 | #### 1.2.2 招聘岗位信息 (EnterpriseJobVO) | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 岗位ID | | enterpriseId | Long | 所属企业ID | | positionName | String | 岗位名称 | | requirements | String | **岗位要求**(用于招聘简章) | | benefits | String | **待遇**(用于招聘简章) | | status | String | 状态(0正常 1停用) | | createBy | Long | 创建者 | | createTime | Date | 创建时间 | | updateBy | Long | 更新者 | | updateTime | Date | 更新时间 | #### 1.2.3 简章生成记录 (EnterpriseBrochureVO) | 字段 | 类型 | 说明 | |------|------|------| | id | Long | 记录ID | | enterpriseId | Long | 企业ID | | enterpriseName | String | 企业名称(关联) | | brochurePath | String | PDF文件存储路径 | | fileName | String | 文件名称 | | fileSize | Long | 文件大小(字节) | | generateBy | Long | 生成人ID | | generateByName | String | 生成人姓名 | | generateTime | Date | 生成时间 | | createTime | Date | 创建时间 | #### 1.2.4 企业导入模板 (ZsjyEnterpriseImportVo) 导入模板共19列(H~AC为岗位信息,最多支持6个岗位): | 列 | 字段名 | 必填 | 说明 | |----|--------|------|------| | A | 企业名称 | 是 | 唯一性校验 | | B | 企业简介 | 否 | ≤1500字符 | | C | 企业地址 | 是 | — | | D | 联系人 | 是 | — | | E | 联系电话 | 是 | 手机号格式 | | F | 办公电话 | 否 | — | | G | 电子邮箱 | 是 | 邮箱格式 | | H | 招聘岗位1 | 否 | 岗位名称 | | I | 要求1 | 否 | 岗位要求 | | J | 待遇1 | 否 | 待遇信息 | | K | 招聘岗位2 | 否 | — | | L | 要求2 | 否 | — | | M | 待遇2 | 否 | — | | N | 招聘岗位3 | 否 | — | | O | 要求3 | 否 | — | | P | 待遇3 | 否 | — | | Q | 招聘岗位4 | 否 | — | | R | 要求4 | 否 | — | | S | 待遇4 | 否 | — | | T | 招聘岗位5 | 否 | — | | U | 要求5 | 否 | — | | V | 待遇5 | 否 | — | | W | 招聘岗位6 | 否 | — | | X | 要求6 | 否 | — | | Y | 待遇6 | 否 | — | --- ## 2. 接口详细说明 ### 2.1 查询企业信息列表 **接口地址**:`GET /zsjy/enterprise/list` **权限标识**:`zsjy:enterprise:list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | enterpriseName | String | 否 | 企业名称(模糊查询) | | industry | String | 否 | 所属行业(字典值) | | enterpriseScale | String | 否 | 企业规模(字典值) | | status | String | 否 | 状态(0正常 1停用) | | contactName | String | 否 | 联系人(模糊查询) | | contactPhone | String | 否 | 联系电话(模糊查询) | | email | String | 否 | 邮箱(模糊查询) | | address | String | 否 | 地址(模糊查询) | | pageNum | Integer | 否 | 页码(默认1) | | pageSize | Integer | 否 | 每页条数(默认10) | **响应示例**: ```json { "code": 200, "msg": "操作成功", "total": 10, "rows": [ { "id": 1, "enterpriseName": "杭州某某科技有限公司", "industry": "01", "industryName": "互联网", "enterpriseScale": "01", "enterpriseScaleName": "小型企业", "enterpriseIntro": "公司成立于2010年,专注于软件开发...", "contactName": "张三", "contactPhone": "13800138000", "officePhone": "0571-88888888", "email": "hr@example.com", "website": "https://www.example.com", "address": "浙江省杭州市西湖区xxx路xxx号", "status": "0", "jobCount": 3, "createTime": "2026-03-30 10:00:00" } ] } ``` --- ### 2.2 获取企业详细信息 **接口地址**:`GET /zsjy/enterprise/{id}` **权限标识**:`zsjy:enterprise:query` **路径参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | Long | 是 | 企业ID | **响应示例**: ```json { "code": 200, "msg": "操作成功", "data": { "id": 1, "enterpriseName": "杭州某某科技有限公司", "industry": "01", "enterpriseIntro": "公司成立于2010年...", "contactName": "张三", "contactPhone": "13800138000", "officePhone": "0571-88888888", "email": "hr@example.com", "website": "https://www.example.com", "address": "浙江省杭州市xxx路xxx号", "status": "0", "jobList": [ { "id": 1, "enterpriseId": 1, "positionName": "前端开发工程师", "requirements": "1. 熟练掌握Vue3\n2. 熟悉TypeScript", "benefits": "薪资范围:8000-15000元/月\n提供五险一金", "status": "0" }, { "id": 2, "enterpriseId": 1, "positionName": "后端开发工程师", "requirements": "1. 熟练掌握Java\n2. 熟悉Spring Boot", "benefits": "薪资范围:10000-20000元/月", "status": "0" } ] } } ``` --- ### 2.3 新增企业信息 **接口地址**:`POST /zsjy/enterprise` **权限标识**:`zsjy:enterprise:add` **请求体**: ```json { "enterpriseName": "杭州某某科技有限公司", "industry": "01", "enterpriseIntro": "公司成立于2010年,专注于软件开发...", "contactName": "张三", "contactPhone": "13800138000", "officePhone": "0571-88888888", "email": "hr@example.com", "website": "https://www.example.com", "address": "浙江省杭州市西湖区xxx路xxx号", "enterpriseScale": "01", "status": "0", "jobList": [ { "positionName": "前端开发工程师", "requirements": "1. 熟练掌握Vue3\n2. 熟悉TypeScript", "benefits": "薪资范围:8000-15000元/月\n提供五险一金", "status": "0" }, { "positionName": "后端开发工程师", "requirements": "1. 熟练掌握Java\n2. 熟悉Spring Boot", "benefits": "薪资范围:10000-20000元/月", "status": "0" } ] } ``` **响应示例**: ```json { "code": 200, "msg": "操作成功" } ``` --- ### 2.4 修改企业信息 **接口地址**:`PUT /zsjy/enterprise` **权限标识**:`zsjy:enterprise:edit` **说明**:编辑企业信息时,会先删除该企业下所有旧岗位,再批量插入新岗位列表。 **请求体**:同 2.3 新增 --- ### 2.5 删除企业信息 **接口地址**:`DELETE /zsjy/enterprise/{ids}` **权限标识**:`zsjy:enterprise:remove` **路径参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | ids | Long[] | 是 | 企业ID数组 | **说明**:删除企业时会同时删除关联的岗位信息。 --- ### 2.6 导出企业信息 **接口地址**:`POST /zsjy/enterprise/export` **权限标识**:`zsjy:enterprise:export` **请求参数**:同列表查询参数(用于条件导出) **响应**:Excel文件流下载 --- ### 2.7 下载导入模板 **接口地址**:`GET /zsjy/enterprise/importTemplate` **权限标识**:无需权限 **响应**:Excel模板文件流下载,文件名:`enterprise_import_template.xlsx` --- ### 2.8 导入企业信息 **接口地址**:`POST /zsjy/enterprise/importData` **权限标识**:`zsjy:enterprise:import` **请求方式**:`multipart/form-data` **表单参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | file | File | 是 | Excel文件(.xlsx/.xls) | | updateSupport | Boolean | 否 | 是否支持更新(同名覆盖,默认false) | **响应示例**: ```json { "code": 200, "msg": "恭喜您,数据已全部导入成功!共 5 条,数据如下:
1、企业 xxx 导入成功" } ``` **导入规则**: - 企业名称唯一,重复时根据 `updateSupport` 决定是跳过还是覆盖 - 岗位按模板列顺序解析,岗位名称非空则创建一条岗位记录 --- ### 2.9 生成招聘简章PDF(单个) **接口地址**:`POST /zsjy/enterprise/brochure/{enterpriseId}` **权限标识**:`zsjy:enterprise:brochure` **路径参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | enterpriseId | Long | 是 | 企业ID | **响应示例**: ```json { "code": 200, "msg": "操作成功", "data": { "id": 1, "enterpriseId": 1, "enterpriseName": "杭州某某科技有限公司", "brochurePath": "/app/uploadPath/enterprise-brochure/2026/03/30/xxx.pdf", "fileName": "杭州某某科技有限公司_1743300000000.pdf", "fileSize": 102400, "generateBy": 1, "generateByName": "admin", "generateTime": "2026-03-30 10:00:00" } } ``` **错误示例**(无岗位时): ```json { "code": 500, "msg": "该企业下没有招聘岗位,无法生成简章" } ``` --- ### 2.10 批量生成招聘简章PDF **接口地址**:`POST /zsjy/enterprise/brochure/batch/{enterpriseIds}` **权限标识**:`zsjy:enterprise:brochure` **路径参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | enterpriseIds | String | 是 | 企业ID列表,逗号分隔,如:`1,2,3` | **响应示例**: ```json { "code": 200, "msg": "操作成功", "data": [ { "id": 1, "enterpriseId": 1, "enterpriseName": "杭州某某科技有限公司", "fileName": "杭州某某科技有限公司_xxx.pdf", "generateTime": "2026-03-30 10:00:00" } ] } ``` --- ### 2.11 获取最新简章信息 **接口地址**:`GET /zsjy/enterprise/brochure/{enterpriseId}` **权限标识**:`zsjy:enterprise:query` **路径参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | enterpriseId | Long | 是 | 企业ID | **响应示例**:同 2.9 --- ### 2.12 下载招聘简章PDF(通过企业ID) **接口地址**:`GET /zsjy/enterprise/brochure/download/{enterpriseId}` **权限标识**:`zsjy:enterprise:brochure` **路径参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | enterpriseId | Long | 是 | 企业ID | **响应**:PDF文件流,Content-Type: `application/pdf` **文件名**:`招聘简章_{企业名称}.pdf` --- ### 2.13 下载招聘简章PDF(通过记录ID) **接口地址**:`GET /zsjy/enterprise/brochure/downloadById/{id}` **权限标识**:`zsjy:enterprise:brochure` **路径参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | Long | 是 | 简章记录ID | **响应**:PDF文件流 --- ## 3. 招聘简章PDF版式说明 生成的招聘简章PDF每家企业一份,结构如下: ``` ┌─────────────────────────────────────────┐ │ 企业名称(大标题) │ ← 蓝色背景标题区 └─────────────────────────────────────────┘ ┌─────────────────────────────────────────┐ │ 企业简介 │ ← 企业简介区块 │ 公司成立于2010年,专注于软件开发... │ └─────────────────────────────────────────┘ ┌─────────────────────────────────────────┐ │ 联系人 | 联系电话 | 办公电话 | 电子邮箱 │ ← 联系信息表格 │ 企业地址:xxx路xxx号 │ └─────────────────────────────────────────┘ ┌─────────────────────────────────────────┐ │ 招聘岗位 │ ← 岗位标题 └─────────────────────────────────────────┘ ┌─────────────────────────────────────────┐ │ 岗位1名称 │ ← 岗位1 │ 岗位要求:... │ │ 待遇:... │ └─────────────────────────────────────────┘ ┌─────────────────────────────────────────┐ │ 岗位2名称 │ ← 岗位2 │ 岗位要求:... │ │ 待遇:... │ └─────────────────────────────────────────┘ ... 更多岗位 ... ┌─────────────────────────────────────────┐ │ 联系人: 张三 | 电话: 13800138000 │ ← 页脚联系信息 │ 邮箱: hr@example.com | 地址: xxx │ └─────────────────────────────────────────┘ ``` --- ## 4. 权限标识清单 | 权限标识 | 说明 | |---------|------| | zsjy:enterprise:list | 列表查询 | | zsjy:enterprise:query | 查看详情 | | zsjy:enterprise:add | 新增 | | zsjy:enterprise:edit | 修改(含岗位增删) | | zsjy:enterprise:remove | 删除 | | zsjy:enterprise:export | 导出 | | zsjy:enterprise:import | 导入 | | zsjy:enterprise:brochure | 生成简章 / 下载 | --- ## 5. 数据库表结构 | 表名 | 说明 | |------|------| | zsjy_enterprise | 企业信息表(改造:新增enterprise_intro、office_phone、website字段) | | zsjy_enterprise_job | 企业招聘岗位表(新建) | | zsjy_enterprise_brochure | 简章生成记录表(新建) | --- ## 6. 变更记录 | 日期 | 版本 | 变更内容 | |------|------|----------| | 2023-07-05 | v1.0 | 初始版本(企业基本信息CRUD) | | 2026-03-30 | v2.0 | 重大改造:新增岗位子表、招聘简章PDF生成、Excel导入功能 |