--- id: approve.export.howto title: 导出审批数据 type: howto feature: approve scope: admin locale: zh aliases: - 导出审批 - 审批数据导出 - 下载审批 Excel - 审批报表 - 请假记录导出 - 审批怎么导出 related_tools: [] related_pages: [application] prerequisites: - 应用市场已安装 approve 插件 - 当前用户是系统管理员(普通成员看不到「导出」按钮) negative: - 单次导出**最多 35 天**,超过会报「日期范围限制最大35天」需分段导出 - 必须选择"流程分类"(即流程模板名),不支持一次导全部模板 - 导出文件为 zip 包内含一个 xlsx,**不支持** CSV / JSON 直接下载 - 没有数据时会推送「没有任何数据」提示,不会生成空文件 last_verified: v1.7.90 --- # 导出审批数据 ## 入口 - 桌面端:左侧栏「应用」→「审批中心」→ 右上角「导出审批数据」按钮(仅管理员可见) - 移动端:审批中心右上角图标条同名按钮(同样仅管理员) ## 接口 前端调 `api/approve/export`(POST)→ 控制器方法 `export`: - 必传 `proc_def_name`(流程模板名)+ `date`(`[start, end]` 两个日期) - 可选 `state`(0 全部 / 1 审批中 / 2 通过 / 3 拒绝 / 4 撤回)+ `is_finished` - 服务端用 Swoole 协程异步生成,不阻塞请求;接口立即返回 `success` ## 操作步骤 1. 弹窗中选择「流程分类」(下拉,来自已发布的流程模板列表) 2. 选「状态」(默认全部) 3. 选「日期范围」(开始 + 结束,≤ 35 天) 4. 点「确定」→ 立即关闭弹窗 5. 主程序系统机器人在私聊推送「正在导出审批数据,请稍等...」 6. 协程异步处理完成后,机器人推送一条带下载链接的 `file_download` 模板消息 ## 导出列(24 列) 申请编号、标题、申请状态、发起时间、完成时间、发起人工号、发起人 User ID、发起人姓名、发起人部门、发起人部门 ID、部门负责人、历史审批人、历史办理人、审批记录、当前处理人、审批节点、审批人数、审批耗时、假期类型、开始时间、结束时间、时长、请假事由、请假单位。 ## 文件命名与位置 - 临时存放:`storage/app/temp/approve/export/<年月>/审批记录_<时间戳>.zip` - 链接形式:`api/approve/down?key=<加密 key>`(带签名,过期失效) ## 常见报错 - `日期选择错误`:日期未选或格式错;用日期选择器选 - `日期范围限制最大35天`:缩短范围分段导出 - `没有任何数据`:所选模板 + 状态 + 日期范围内无审批单 - `系统机器人不存在`:联系超级管理员检查机器人初始化(极少见) ## 相关 - 模板列表来源:[[approve.template.concept]] - 单条记录删除:[[approve.delete.howto]]