Appearance
weberp-call 数据库表说明
本文档用通俗语言说明每张表的作用、存了什么数据、怎么用,方便查阅和理解。
整体说明
这套系统的核心流程是:从 263 呼叫中心平台 拉取员工信息和通话记录,再结合前端填写的工单数据,进行各种统计和目标管理。
下面把所有表按用途分成几类来说明。
一、基础数据(从 263 平台拉取)
1. tb_call_employee —— 员工坐席信息
这张表存的是什么? 263 电话平台上的员工信息,包括坐席账号、姓名、分机号、技能组等。
怎么和云 ERP 的用户对应上? 每条记录里有人工维护的两个字段:branch_id(分公司)和 hr_staff_id(HR 员工编号),通过这两个字段把 263 的坐席和云 ERP 的用户账号关联起来。
什么时候用到?
- 登录云 ERP 时,系统用当前用户的分公司和员工编号去这张表查,查到了才允许使用电话功能。
- 其他表里的
agent(坐席账号)就是这张表的username字段。
怎么查数据?
sql
-- 查某个分公司的所有坐席
SELECT * FROM tb_call_employee WHERE branch_id = '你的分公司ID';
-- 通过员工编号查坐席
SELECT * FROM tb_call_employee WHERE hr_staff_id = '员工编号';2. tb_call_history —— 通话记录(话单)
这张表存的是什么? 每一通电话的完整记录,包括:打了谁的号码、什么时候打的、打了多久、接通没有、是呼入还是呼出、坐席是谁等。
几个关键字段:
agent:接这通电话的坐席账号call_direction:呼叫方向,值为呼入或呼出call_result:接通结果,0= 未接通,1= 已接通talksec:通话时长(单位是秒)call_data:存的是分公司标识(branch_id),用来区分是哪个分公司的数据call_id:话单编号,用来和工单表关联
注意事项:
- 有些呼入的电话还没分配给坐席就挂断了,这些记录的
agent字段是空的 phone_last_four是号码后四位,方便搜索用
怎么查数据?
sql
-- 查某天某分公司的所有通话记录
SELECT * FROM tb_call_history
WHERE call_data = '分公司ID'
AND c_start_time >= '2026-07-01'
AND c_start_time < '2026-07-02';
-- 查某坐席的通话记录
SELECT * FROM tb_call_history WHERE agent = '坐席账号';
-- 查某号码的通话记录(支持后四位搜索)
SELECT * FROM tb_call_history WHERE customer = '完整号码';
SELECT * FROM tb_call_history WHERE phone_last_four = '1234';二、工单数据(前端填写)
3. tb_call_work_order —— 通话工单
这张表存的是什么? 员工打电话时,在前端页面上填写的客户信息、用途、备注等。每一通电话可以对应一条工单。
怎么和通话记录关联? 通过 call_id(话单编号)+ username(坐席账号)两个字段,和 tb_call_history 的 call_id + agent 对应。
几个关键字段:
new_group_cust_no:客户标准码,统计"联系了多少个客户"时就是对这个字段去重计数cust_name:客户名称ou_name:业务实体usage_name:用途event_names:操作记录(如开票、退补、退回等)note:备注content:待办事项
怎么查数据?
sql
-- 查某通电话的工单信息
SELECT * FROM tb_call_work_order WHERE call_id = '话单编号';
-- 查某坐席某天的工单
SELECT * FROM tb_call_work_order
WHERE username = '坐席账号'
AND create_time >= '2026-07-01';三、预汇总数据(系统自动计算)
下面三张表的数据都是系统根据通话记录和工单自动汇总生成的,不需要手动维护。
4. tb_call_pre_sum —— 每日通话统计
这张表存的是什么? 每天每个坐席的通话汇总数据:呼出多少次、呼入多少次、各打了多长时间等。
字段解释:
stat_date:统计日期agent:坐席账号。如果这个字段为空,表示这条是公司级的呼入未接通汇总(有些呼入电话还没分配到坐席就挂了)call_out_count:呼出已接通次数call_out_missed_count:呼出未接通次数call_out_duration:呼出已接通时长(分钟)call_in_count:呼入已接通次数call_in_missed_count:呼入未接通次数call_in_duration:呼入已接通时长(分钟)total_count:总次数(包括接通和未接通)
怎么查数据?
sql
-- 查某坐席某天的通话统计
SELECT * FROM tb_call_pre_sum
WHERE agent = '坐席账号' AND stat_date = '2026-07-01';
-- 查某分公司某天的公司级汇总(agent 为空的记录)
SELECT * FROM tb_call_pre_sum
WHERE branch_id = '分公司ID' AND stat_date = '2026-07-01' AND agent IS NULL;5. tb_call_pre_sum_agent —— 每日活跃坐席
这张表存的是什么? 某天有接过电话的坐席,就会在这张表里有一条记录。
有什么用? 话务大盘上显示的"开票员数量"就是从这张表统计的,算法是数一下有多少个不同的坐席。
怎么查数据?
sql
-- 查某天某分公司有多少活跃坐席
SELECT COUNT(DISTINCT agent) FROM tb_call_pre_sum_agent
WHERE branch_id = '分公司ID' AND stat_date = '2026-07-01';6. tb_call_pre_sum_cust —— 每日客户联系记录
这张表存的是什么? 每天每个坐席联系了哪些客户(按客户标准码记录),以及和每个客户通了几次电话。
字段解释:
new_group_cust_no:客户标准码cust_count:和这个客户的总通话次数out_cust_count:和这个客户的呼出通话次数
有什么用? 统计"联系了多少个不同客户"时用这张表,按客户标准码去重计数。如果要统计"外呼客户数",需要加条件 out_cust_count > 0。
怎么查数据?
sql
-- 查某坐席某天联系了哪些客户
SELECT * FROM tb_call_pre_sum_cust
WHERE agent = '坐席账号' AND stat_date = '2026-07-01';
-- 统计某坐席某天的外呼客户数
SELECT COUNT(DISTINCT new_group_cust_no) FROM tb_call_pre_sum_cust
WHERE agent = '坐席账号' AND stat_date = '2026-07-01' AND out_cust_count > 0;四、目标管理
7. tb_call_target —— 月度目标
这张表存的是什么? 每个月每个员工的目标数据:要联系多少个客户(目标),实际联系了多少个(实际数)。
关键字段:
branch_id+hr_staff_id:通过这两个字段确定是哪个员工staff_name:员工姓名target_year/target_month:目标的年份和月份target_count:目标外呼客户数(手动设置)actual_count:实际外呼客户数(系统自动计算)day_target_count:日目标客户数(手动设置)day_target_duration:日目标通话时长,单位分钟(手动设置)day_target_type:日目标的覆盖方式(按工作日、全部、或自定义)
实际数怎么来的? 系统会根据员工的分公司和员工编号,找到对应的坐席,然后统计这个坐席的已接通呼出电话中联系了多少个不同客户。
怎么查数据?
sql
-- 查某月的目标数据
SELECT * FROM tb_call_target
WHERE target_year = 2026 AND target_month = 7;
-- 查某员工的目标
SELECT * FROM tb_call_target
WHERE branch_id = '分公司ID' AND hr_staff_id = '员工编号';8. tb_call_target_day —— 日度目标
这张表存的是什么? 每天每个员工的目标数据和实际完成情况,是从月度目标拆分出来的。
关键字段:
target_id:关联到哪条月度目标stat_date:具体日期day_target_count:当天的目标客户数day_actual_count:当天的实际客户数(系统计算)day_target_duration:当天的目标通话时长(分钟)day_actual_duration:当天的实际通话时长(分钟,系统计算)
实际数什么时候更新?
- 通话结束后会实时更新
- 每天晚上还会重新算一遍,确保数据准确
怎么查数据?
sql
-- 查某天的日目标数据
SELECT * FROM tb_call_target_day WHERE stat_date = '2026-07-01';
-- 查某员工某月的每日完成情况
SELECT * FROM tb_call_target_day
WHERE branch_id = '分公司ID' AND hr_staff_id = '员工编号'
AND stat_date >= '2026-07-01' AND stat_date <= '2026-07-31'
ORDER BY stat_date;五、KPI 数据(从中台获取)
下面两张表的数据是每天晚上从中台系统拉取的,数据是 T+1 的(今天拉到的是昨天的数据)。
9. tb_call_day_kpi —— 日 KPI
这张表存的是什么? 每天每个坐席的销售金额、开票金额、开票品规数。
字段解释:
stat_date:统计日期sale_amt:销售金额invoice_amt:实际开票金额prod_cnt:开票品规数
怎么查数据?
sql
-- 查某天的 KPI
SELECT * FROM tb_call_day_kpi WHERE stat_date = '2026-07-01' AND delete_flag = 0;
-- 查某坐席某天的 KPI
SELECT * FROM tb_call_day_kpi
WHERE agent = '坐席账号' AND stat_date = '2026-07-01' AND delete_flag = 0;10. tb_call_month_kpi —— 月 KPI
这张表存的是什么? 每月每个坐席的销售金额、开票金额、开票品规数(中台已按月汇总好)。
字段解释:
year_value/month_value:年份和月份sale_amt:销售金额invoice_amt:实际开票金额prod_cnt:开票品规数
怎么查数据?
sql
-- 查某月的 KPI
SELECT * FROM tb_call_month_kpi
WHERE year_value = 2026 AND month_value = 7 AND delete_flag = 0;六、辅助表
11. tb_call_work_calendar —— 工作日历
这张表存的是什么? 日历数据,记录了每一天是工作日还是休息日,包括法定节假日和补班安排。
有什么用? 生成日目标时判断某天是否应该安排目标(比如周末和节假日可以跳过)。
字段解释:
id:主键就是日期数字,比如20260701代表 2026年7月1日workday_flag:1= 工作日,0= 休息日note:备注,比如"国庆节"、"周末补班"
怎么查数据?
sql
-- 查某月的工作日
SELECT * FROM tb_call_work_calendar
WHERE year_value = 2026 AND month_value = 7
ORDER BY stat_date;
-- 查某天是不是工作日
SELECT workday_flag, note FROM tb_call_work_calendar WHERE id = 20260701;12. tb_call_task_failed —— 失败任务记录
这张表存的是什么? 系统在执行定时任务或接口调用失败时,会把失败信息记录在这里,后续自动重试。
主要关注:
task_type:什么类型的任务error_msg:错误信息(看这个就知道为什么失败了)retry_count:已经重试了几次status:当前状态
13. tb_call_warn_record —— 预警记录
这张表存的是什么? 系统出现异常时发出的预警记录,会尝试通过钉钉发送通知。
主要关注:
title/content:预警标题和内容warn_status:1= 钉钉发送成功,0= 未发送warn_fail_reason:如果钉钉发送失败,原因记录在这里
七、表之间的关联关系
简单理解:
| 场景 | 关联方式 |
|---|---|
| 通话记录 → 工单 | tb_call_history 的 call_id + agent 对应 tb_call_work_order 的 call_id + username |
| 通话记录 → 坐席信息 | tb_call_history 的 agent 对应 tb_call_employee 的 username |
| 月度/日度目标 → 坐席信息 | 通过 branch_id + hr_staff_id 在 tb_call_employee 中找到对应坐席 |
| 日度目标 → 月度目标 | tb_call_target_day 的 target_id 对应 tb_call_target 的 id |
八、常用统计口径(通俗版)
| 指标 | 怎么算的 |
|---|---|
| 呼出次数 | 接通了的呼出电话数量 |
| 呼入次数 | 接通了的呼入电话数量 |
| 通话时长 | 只算接通了的,单位是分钟(不足1分钟按1分钟算) |
| 外呼客户数 | 坐席接通了的呼出电话中,联系了多少个不同的客户(按客户标准码去重) |
| 活跃坐席数 | 某天接了电话的坐席有多少个 |