思念食品API

sql_20180530_extcallin.sql 6.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. 
  2. /****** Object: Trigger [dbo].[Table_UpdateCallRecordList] Script Date: 05/29/2018 17:41:31 ******/
  3. SET ANSI_NULLS ON
  4. GO
  5. SET QUOTED_IDENTIFIER ON
  6. GO
  7. -- =============================================
  8. -- Author: <赵鹏举>
  9. -- Create date: <2016-04-07>
  10. -- Description: <外线呼入后,转入到坐席,更新业务库通话记录表中通话信息>
  11. -- Author: <郑兵兵>
  12. -- Update date: <2018-05-30>
  13. -- Description: <通话记录表增加坐席组的记录,方便分组查询记录使用>
  14. -- =============================================
  15. ALTER TRIGGER [dbo].[Table_UpdateCallRecordList] ON [dbo].[rep_ext_call_in]
  16. AFTER INSERT
  17. AS
  18. BEGIN
  19. DECLARE @callId bigint
  20. declare @calltype int --呼入类型(0内线呼入1外线呼入2坐席转移呼入3三方呼入)
  21. declare @userid int
  22. declare @username nvarchar(50)
  23. declare @usercode nvarchar(50)
  24. declare @seatcode nvarchar(50)
  25. --读取插入记录的类型和坐席
  26. SELECT @callId=INSERTED.CallId,@calltype=INSERTED.CallType,@usercode=cast(INSERTED.CalleeAgentID as varchar(50)) FROM INSERTED
  27. --读取坐席对应信息
  28. select @userid=F_Userid,@username=F_UserName from T_Sys_UserAccount where F_UserCode=@usercode
  29. --读取坐席对应坐席组
  30. select @seatcode=dbo.GetSeatCodeByUserCode(@usercode)
  31. if @calltype=1
  32. begin
  33. UPDATE dbo.T_Call_CallRecords SET
  34. IvrEndTime=INSERTED.TimeAlerting ,--IVR结束时间 就是振铃开始时间
  35. IvrLongTime=DATEDIFF(SECOND,IvrStartTime,INSERTED.TimeAlerting),--IVR时长
  36. WaitEndTime=INSERTED.TimeAlerting ,--排队等待结束时间 就是振铃开始时间
  37. WaitLongTime= DATEDIFF(SECOND,WaitStartTime,INSERTED.TimeAlerting),--IVR时长
  38. RingStartTime = INSERTED.TimeAlerting ,--振铃时间
  39. RingEndTime = DATEADD(s, INSERTED.PeriodAlerting, INSERTED.TimeAlerting) ,--振铃结束时间
  40. TalkStartTime = INSERTED.TimeAnswer ,--应答时间
  41. TalkEndTime = DATEADD(s, INSERTED.PeriodTalking, INSERTED.TimeAnswer),--通话结束时间
  42. RingLongTime=INSERTED.PeriodAlerting,--振铃时长
  43. TalkLongTime=INSERTED.PeriodTalking,--通话时长
  44. UserId=@userid,--坐席id
  45. UserName=@username,--坐席姓名
  46. UserCode=CalleeAgentID,--坐席工号
  47. ExtNumber=CalleeNum,--坐席分机
  48. FilePath=RecFileName,--录音地址
  49. LongTime=DATEDIFF(SECOND,inserted.TimeAlerting,inserted.TimeHangUp),--总时长
  50. actionid=inserted.ActionID,
  51. actiontype=1,
  52. groupcode=@seatcode
  53. FROM INSERTED
  54. WHERE T_Call_CallRecords.CallId = cast(INSERTED.CallId as varchar(50)) and T_Call_CallRecords.actiontype<2 and T_Call_CallRecords.CallType=0
  55. end
  56. else
  57. begin
  58. INSERT INTO T_Call_CallRecords(CallId,CallNumber,CallType,CallState,DealType,
  59. BeginTime,IvrStartTime,IvrEndTime,RingStartTime,RingEndTime,
  60. TalkStartTime,TalkEndTime,EndTime,RingLongTime,TalkLongTime,LongTime,
  61. UserId,UserName,UserCode,FilePath,ExtNumber,actionid,actiontype,
  62. IsDeal,OperateType,MYD,groupcode)
  63. select cast(CallId as varchar(50)),CallerNum,0,IsAnswer,6,
  64. TimeAlerting,TimeAlerting,TimeAlerting,TimeAlerting,DATEADD(s, PeriodAlerting, TimeAlerting),
  65. TimeAnswer,DATEADD(s, PeriodTalking, TimeAnswer),TimeHangUp,PeriodAlerting,PeriodTalking,DATEDIFF(SECOND,TimeAlerting,TimeHangUp),
  66. @userid,@username,CalleeAgentID,RecFileName,CalleeNum,inserted.ActionID,calltype,
  67. 0,0,0,@seatcode from INSERTED
  68. end
  69. END