Skip to content

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_historycall_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_flag1 = 工作日,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_status1 = 钉钉发送成功,0 = 未发送
  • warn_fail_reason:如果钉钉发送失败,原因记录在这里

七、表之间的关联关系

简单理解:

场景关联方式
通话记录 → 工单tb_call_historycall_id + agent 对应 tb_call_work_ordercall_id + username
通话记录 → 坐席信息tb_call_historyagent 对应 tb_call_employeeusername
月度/日度目标 → 坐席信息通过 branch_id + hr_staff_idtb_call_employee 中找到对应坐席
日度目标 → 月度目标tb_call_target_daytarget_id 对应 tb_call_targetid

八、常用统计口径(通俗版)

指标怎么算的
呼出次数接通了的呼出电话数量
呼入次数接通了的呼入电话数量
通话时长只算接通了的,单位是分钟(不足1分钟按1分钟算)
外呼客户数坐席接通了的呼出电话中,联系了多少个不同的客户(按客户标准码去重)
活跃坐席数某天接了电话的坐席有多少个

页脚:版权前显示的信息