Pārlūkot izejas kodu

导入增加辖区,调整其他相关接口,增加外呼话务报表

zhengbingbing 7 gadi atpakaļ
vecāks
revīzija
cb97c5192f

+ 11 - 3
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/callout/CallOutPlanController.cs

@@ -271,6 +271,7 @@ namespace CallCenterApi.Interface.Controllers.callout
271 271
                                                 modelPhoneImport.F_CusName = dr[0].ToString();//客户名称
272 272
                                                 modelPhoneImport.F_Phone = dr[1].ToString();//号码
273 273
                                                 modelPhoneImport.ExpandVchField12 = dr[2].ToString();//地址
274
+                                                modelPhoneImport.ExpandVchField11 = dr[3].ToString();//辖区
274 275
                                                 #endregion
275 276
 
276 277
                                                 int rmw = otnBLL.Add(modelPhoneImport);
@@ -737,6 +738,7 @@ namespace CallCenterApi.Interface.Controllers.callout
737 738
                         //taskmodel.F_Phone = cusmodel.F_Telephone;//号码                
738 739
                         taskmodel.F_Telephone = cusmodel.F_Mobile;//手机号码        
739 740
                         //taskmodel.F_City = cusmodel.F_City;//乡镇   
741
+                        taskmodel.F_City = cusmodel.F_City;//辖区
740 742
                     }
741 743
                 }
742 744
                 taskmodel.F_Id = model.F_Id;//号码id
@@ -979,6 +981,7 @@ namespace CallCenterApi.Interface.Controllers.callout
979 981
                         taskmodel.F_Telephone = cusmodel.F_Mobile;//手机号码        
980 982
                         //taskmodel.F_City = cusmodel.F_City;//乡镇   
981 983
                         taskmodel.F_Address = cusmodel.F_Address;//住址
984
+                        taskmodel.F_City = cusmodel.F_City;//辖区
982 985
                     }
983 986
                 }
984 987
                 taskmodel.F_Id = model.F_Id;//号码id
@@ -1077,9 +1080,10 @@ namespace CallCenterApi.Interface.Controllers.callout
1077 1080
         /// <param name="phone">固定号码</param>
1078 1081
         /// <param name="countryid">乡镇id</param>
1079 1082
         /// <param name="address">地址</param>
1083
+        /// <param name="area">辖区</param>
1080 1084
         /// <returns></returns>
1081 1085
         public ActionResult Answers(int taskid, int custelid, string[] ans, int hjjgid,
1082
-            string name, string address)
1086
+            string name, string address,string area)
1083 1087
         {
1084 1088
             int cc = 0; 
1085 1089
             if (custelid > 0)
@@ -1088,7 +1092,7 @@ namespace CallCenterApi.Interface.Controllers.callout
1088 1092
                 if (otnModel != null)
1089 1093
                 {
1090 1094
                     //int cusid = saveCus(otnModel.F_Phone, name, phone, countryid, address);
1091
-                    int cusid = saveCus(otnModel.F_Phone, name, address);
1095
+                    int cusid = saveCus(otnModel.F_Phone, name, address,area);
1092 1096
 
1093 1097
                     #region 保存答案
1094 1098
                     var ansModel = new Model.T_Call_OutAnswers();
@@ -1157,6 +1161,7 @@ namespace CallCenterApi.Interface.Controllers.callout
1157 1161
                     //if (fkconfig != null)
1158 1162
                     //    otnModel.ExpandVchField4 = fkconfig.F_Name;
1159 1163
                     //otnModel.ExpandIntField1 = countryid;//乡镇
1164
+                    otnModel.ExpandVchField11 = area;//辖区
1160 1165
                     otnModel.ExpandDatField1 = DateTime.Now;//调查时间
1161 1166
                     otnModel.F_AskRes = askqids;
1162 1167
                     otnModel.F_AskInfo = ansids;
@@ -1197,7 +1202,7 @@ namespace CallCenterApi.Interface.Controllers.callout
1197 1202
         /// <param name="countryid"></param>
1198 1203
         /// <param name="address"></param>
1199 1204
         /// <returns></returns>
1200
-        private int saveCus(string telphone, string name, string address)
1205
+        private int saveCus(string telphone, string name, string address,string area)
1201 1206
         {
1202 1207
             int res = 0;
1203 1208
             Model.T_Cus_CustomerBase cusmodel = new Model.T_Cus_CustomerBase();
@@ -1209,6 +1214,7 @@ namespace CallCenterApi.Interface.Controllers.callout
1209 1214
 
1210 1215
                 if (cusmodel != null)
1211 1216
                 {
1217
+                    cusmodel.F_City = area;
1212 1218
                     cusmodel.F_Address = address;
1213 1219
                     //if (fkconfig != null)
1214 1220
                     //    cusmodel.F_City = fkconfig.F_Name;
@@ -1221,6 +1227,7 @@ namespace CallCenterApi.Interface.Controllers.callout
1221 1227
                 else
1222 1228
                 {
1223 1229
                     cusmodel = new Model.T_Cus_CustomerBase();
1230
+                    cusmodel.F_City = area;
1224 1231
                     cusmodel.F_Address = address;
1225 1232
                     //if (fkconfig != null)
1226 1233
                     //    cusmodel.F_City = fkconfig.F_Name;
@@ -1323,6 +1330,7 @@ namespace CallCenterApi.Interface.Controllers.callout
1323 1330
             trModel.F_YJState = tnModel.F_YJState;
1324 1331
             trModel.ExpandIntField1 = tnModel.ExpandIntField1;
1325 1332
             trModel.ExpandDatField1 = tnModel.ExpandDatField1;
1333
+            trModel.ExpandVchField11 = tnModel.ExpandVchField11;
1326 1334
 
1327 1335
             new BLL.T_Call_OutTaskRecords().Add(trModel);
1328 1336
         }

+ 85 - 0
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/CallOutReportController.cs

@@ -18,6 +18,91 @@ namespace CallCenterApi.Interface.Controllers.report
18 18
         private readonly BLL.T_Call_OutAnswers ansBLL = new BLL.T_Call_OutAnswers();
19 19
         private readonly BLL.T_Ask_QuestionItems questionItemBLL = new BLL.T_Ask_QuestionItems();
20 20
 
21
+        #region 外呼话务统计
22
+        public ActionResult GetTelReport(string sdate, string edate)
23
+        {
24
+            DataTable dtnew = getdatacallout(sdate, edate);
25
+            return Success("获取外呼话务统计成功",dtnew);
26
+        }
27
+        //导出数据
28
+        public ActionResult ExptTelList(string sdate, string edate)
29
+        {
30
+                NPOIHelper npoi = new NPOIHelper();
31
+                DataTable dt = getdatacallout(sdate, edate);
32
+                if (npoi.ExportToExcel("外呼话务统计", dt) == "")
33
+                {
34
+                    return Success("导出成功");
35
+                }
36
+                else
37
+                {
38
+                    return Error("导出失败");
39
+                }
40
+        }
41
+        private DataTable getdatacallout(string sdate, string edate)
42
+        {
43
+            #region 新建输出表
44
+            DataTable dtnew = new DataTable();
45
+            dtnew.Columns.Add("坐席");
46
+            dtnew.Columns.Add("呼出总量");
47
+            dtnew.Columns.Add("呼出接通量");
48
+            dtnew.Columns.Add("问卷呼出量");
49
+            dtnew.Columns.Add("问卷呼出接通量");
50
+            #endregion
51
+
52
+            #region 根据问题id获取问题的查询条件
53
+            //string sqlques = "F_QuestionId IN (select ta.F_QuestionId from  T_Ask_PagerItems ta where ta.F_PagerId=(select F_PagerID from T_Call_OutTask where isnull(F_TaskID,'')='" + TaskID + "') ) and F_Type!=1";
54
+            //if (!string.IsNullOrWhiteSpace(quesid))
55
+            //    sqlques = "F_QuestionId=" + quesid;
56
+            #endregion
57
+            #region 回答问题查询条件
58
+            //string sqlans = " isnull(F_TaskID,'')='" + TaskID + "' ";
59
+            var sqltel = "";
60
+            if (!string.IsNullOrWhiteSpace(sdate))
61
+            {
62
+                //sqlans += " and DATEDIFF(day,F_OptOn,'" + sdate.Trim() + "')<=0";
63
+                sqltel += " and DATEDIFF(day,begintime,'" + sdate.Trim() + "')>=0";
64
+            }
65
+            if (!string.IsNullOrWhiteSpace(edate))
66
+            {
67
+                //sqlans += " and DATEDIFF(day,F_OptOn,'" + edate.Trim() + "')>=0";
68
+                sqltel += " and DATEDIFF(day,begintime,'" + edate.Trim() + "')>=0";
69
+            }
70
+            #endregion
71
+            var userlist = new BLL.T_Sys_UserAccount().GetModelList("f_seatFlag=1 and F_DeleteFlag=0 order by  F_UserCode asc");
72
+            var tellist = new BLL.T_Call_CallRecords().GetModelList(" CallType=1 " + sqltel);
73
+            //var queslist = questionBLL.GetModelList(sqlques);
74
+            int hcTcount = 0, hcjtTcount = 0, wjhcTcount = 0, wjhcjtTcount = 0;
75
+            foreach (var usermodel in userlist)
76
+            {
77
+                int hccount = tellist.Where(t => t.UserCode == usermodel.F_UserCode).Count();
78
+                int hcjtcount = tellist.Where(t => t.UserCode == usermodel.F_UserCode && t.CallState == 1).Count();
79
+                int wjhccount= tellist.Where(t => t.UserCode == usermodel.F_UserCode && t.TaskType == "1").Count();
80
+                int wjhcjtcount= tellist.Where(t => t.UserCode == usermodel.F_UserCode && t.CallState == 1 && t.TaskType == "1").Count(); ;
81
+                hcTcount += hccount;hcjtTcount += hcjtcount;
82
+                wjhcTcount += wjhccount; wjhcjtTcount += wjhcjtcount;
83
+                DataRow dr = dtnew.NewRow();
84
+                dr["坐席"] = usermodel.F_UserCode;                
85
+                dr["呼出总量"] = hccount;
86
+                dr["呼出接通量"] = hcjtcount;
87
+                dr["问卷呼出量"] = wjhccount;
88
+                dr["问卷呼出接通量"] = wjhcjtcount;
89
+
90
+                dtnew.Rows.Add(dr);
91
+            }
92
+
93
+            #region 总计
94
+            DataRow drzj = dtnew.NewRow();
95
+            drzj["坐席"] = "总计";
96
+            drzj["呼出总量"] = hcTcount;
97
+            drzj["呼出接通量"] = hcjtTcount;
98
+            drzj["问卷呼出量"] = wjhcTcount;
99
+            drzj["问卷呼出接通量"] = wjhcjtTcount;
100
+            dtnew.Rows.Add(drzj);
101
+            #endregion
102
+            return dtnew;
103
+        }
104
+        #endregion
105
+
21 106
         #region 获取外呼任务报表查询
22 107
         /// <summary>
23 108
         /// 外呼任务报表

+ 0 - 97
ivr/IVR_HBMD.xml

@@ -1,97 +0,0 @@
1
-<?xml version="1.0" encoding="utf-8"?>
2
-<ivr>
3
-	<flow Name="IVR_HBMD" Type="normal" MatchedNum="." MatchedLine="|-1|" Concurrency="1">
4
-		<cell Name="CELL_START" Pos="1" Next="2" Note="开始节点" />
5
-		<cell Name="CELL_SQL" Pos="2" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter_HuaiBinMD;Data Source=192.168.4.18" 
6
-		SqlStr="INSERT INTO T_Call_CallRecords(CallId,CallNumber,CallType,CallState,DealType,BeginTime,IvrStartTime,IvrEndTime,EndTime,LongTime,IsDeal,OperateType,MYD) VALUES('%[CallID]','%[CallerID]',0,0,0,GETDATE(),GETDATE(),GETDATE(),GETDATE(),0,0,0,0)" 
7
-		IsSaved="no" SuccessPos="3" FailPos="3" Note="插入通话记录" />
8
-		<cell Name="CELL_DEFINEVAR" Pos="3" Next="4" Note="定义变量节点">
9
-			<DefVar VarType="1" VarName="AgentNo" VarVal="0" />
10
-			<DefVar VarType="1" VarName="AgentExtNo" VarVal="0" />
11
-			<DefVar VarType="1" VarName="KeyGroup" VarVal="0" /><!--坐席组按键值-->
12
-			<DefVar VarType="1" VarName="GroupID" VarVal="0" /><!--通过坐席组按键值 获取相应的坐席组ID-->
13
-			<DefVar VarType="1" VarName="Key" VarVal="0" />
14
-			<DefVar VarType="1" VarName="BlackListVerify" VarVal="0" />
15
-			<DefVar VarType="1" VarName="HolidayVerify" VarVal="0" />
16
-			<DefVar VarType="1" VarName="zbdh" VarVal="0" />
17
-		</cell>
18
-		<cell Name="CELL_SQL" Pos="4" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter_HuaiBinMD;Data Source=192.168.4.18" 
19
-		SqlStr="select COUNT(*) FROM T_Call_Blacklist where F_TelPhone='%[CallerID]'" IsSaved="yes" SuccessPos="5" FailPos="5" Note="读取黑名单" />
20
-		<cell Name="CELL_RECORDSET" Pos="5" LPos="6" EPos="6" GPos="6" Note="取黑名单结果">
21
-			<Map Var="BlackListVerify" />
22
-		</cell>
23
-		<cell Name="CELL_COMPARE" Pos="6" Data1Type="2" Data2Type="1" Data3Type="1" Data1="BlackListVerify" Data2="0" Data3="" VarType="1" CompareType="2" TruePos="7" FalsePos="12" Note="判断黑名单" />
24
-		<cell Name="CELL_SQL" Pos="7" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter_HuaiBinMD;Data Source=192.168.4.18" 
25
-		SqlStr="update T_Call_CallRecords set CallState=1,DealType=1,IsDeal=1 where CallId='%[CallID]'" IsSaved="no" SuccessPos="26" FailPos="26" Note="黑名单通话记录" />
26
-		
27
-		<cell Name="CELL_AUDIODTMF" Pos="12" PlayType="2" ContentType="1" Content="D:\Midware\wav\欢迎词.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
28
-		TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="0" FinishKey="#" KeyVar="" SuccessPos="8" FailPos="24" HangupPos="25" Note="放欢迎词" />
29
-		<!--
30
-			1.播放欢迎词-2.判断是否下班 是直接转入坐席,不是继续播报
31
-		-->
32
-		<cell Name="CELL_SQL" Pos="8" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter_HuaiBinMD;Data Source=192.168.4.18" 
33
-		SqlStr="SELECT count(*) FROM T_Sys_WorkCalendar WHERE getdate() between F_DateId and DATEADD(dd,1,F_DateId) AND F_WorkingFlag=1 AND Convert(varchar(20),getdate(),108)&gt;=Convert(varchar(20),'08:00:00',108) and Convert(varchar(20),getdate(),108)&lt;=Convert(varchar(20),'18:00:00',108)" 
34
-		IsSaved="yes" SuccessPos="9" FailPos="603" Note="节假日查询" />
35
-		<cell Name="CELL_RECORDSET" Pos="9" LPos="10" EPos="10" GPos="10" Note="取节假日结果">
36
-			<Map Var="HolidayVerify" />
37
-		</cell>
38
-		<cell Name="CELL_COMPARE" Pos="10" Data1Type="2" Data2Type="1" Data3Type="1" Data1="HolidayVerify" Data2="0" Data3="" VarType="1" CompareType="2" TruePos="603" FalsePos="11" Note="判断节假日" />
39
-		<cell Name="CELL_AUDIODTMF" Pos="11" PlayType="1" ContentType="1" Content="D:\Midware\wav\假期提示音.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
40
-		TTSEngine="0" StopWhenDtmf="1" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="keyh" SuccessPos="25" FailPos="24" HangupPos="25" Note="放节假日音" />
41
-		
42
-		
43
-		<cell Name="CELL_SQL" Pos="603" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter_HuaiBinMD;Data Source=192.168.4.18" 
44
-		SqlStr="select top 1 F_ZXZID from T_Sys_SeatGroup where F_ZXZCode='ZXZ'" 
45
-		IsSaved="yes" SuccessPos="604" FailPos="24" Note="获取坐席组ID" />
46
-		<cell Name="CELL_RECORDSET" Pos="604" LPos="13" EPos="13" GPos="13" Note="获取坐席组ID结果">
47
-			<Map Var="GroupID" />
48
-		</cell>
49
-		
50
-		<!--坐席排队时,没有登录坐席直接转值班电话,无空闲坐席转坐席全忙放音,有空闲坐席继续播报-->
51
-		<cell Name="CELL_QUEUE" Pos="13" Strategy="1" VipLevelType="1" VipLevel="0" GroupType="2" Group="GroupID" AgentVar="AgentNo" ExtenVar="AgentExtNo" 
52
-		NoAgentPos="14" NoFreePos="14" SuccessPos="18" HangupPos="25" Note="排队节点" />
53
-		
54
-		<cell Name="CELL_AUDIODTMF" Pos="14" PlayType="1" ContentType="1" Content="D:\Midware\wav\坐席全忙.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
55
-		TTSEngine="0" StopWhenDtmf="1" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="Key" SuccessPos="15" FailPos="24" HangupPos="25" Note="坐席全忙放音" />
56
-		<cell Name="CELL_BRANCH" Pos="15" Var="Key" DefaultPos="14" Note="分支节点">
57
-			<Branch Value="1" Pos="16" />
58
-			<!-- <Branch Value="2" Pos="29" /> -->
59
-		</cell>		
60
-		<cell Name="CELL_CONTINUEQUEUE" Pos="16" Agent="AgentNo" Exten="AgentExtNo" Audio="D:\Midware\wav\保持音.wav" Timeout="60" SuccessPos="18" HangupPos="25" TimeoutPos="14" Note="继续排队节点" />
61
-		<cell Name="CELL_CANCELQUEUE" Pos="17" Reason="等烦了" Next="25" Note="放弃排队节点" />		
62
-		<cell Name="CELL_AUDIODTMF" Pos="18" PlayType="2" ContentType="1" Content="D:\Midware\wav\通话录音提示音.wav" TTSNumMode="1" 
63
-		TTSSpeed="50" TTSVolume="50" TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="0" FinishKey="#" KeyVar="" SuccessPos="31" FailPos="24" HangupPos="25" Note="转接电话提示录音" />
64
-		<cell Name="CELL_AUDIODTMF" Pos="31" PlayType="2" ContentType="2" Content=" `vs40 您好, `dig`vs30 %[AgentNo] `vs50 号话务员为您服务." TTSNumMode="1" TTSSpeed="50" TTSVolume="50" TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="0" FinishKey="#" KeyVar="" SuccessPos="19" FailPos="24" HangupPos="25" Note="播报工号" />
65
-		<cell Name="CELL_TURNAGENT" Pos="19" Exten="AgentExtNo" SuccessPos="25" FailPos="17" HangupPos="24" Note="转座席节点">
66
-		  <BandData Var="CallID" />
67
-		</cell>
68
-		<cell Name="CELL_AUDIODTMF" Pos="20" PlayType="2" ContentType="1" Content="D:\Midware\wav\留言提示音.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
69
-		TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="" SuccessPos="21" FailPos="24" HangupPos="25" Note="留言开始放音" />
70
-		<cell Name="CELL_LEAVEWORD" Pos="21" Path="%[CallID]_%[CallerID]_%[StartTime].wav" FinishKey="#" Timeout="60" TimeoutPos="22" HangupPos="23" FinishPos="22" Note="留言节点" />
71
-		<cell Name="CELL_AUDIODTMF" Pos="22" PlayType="2" ContentType="1" Content="D:\Midware\wav\留言结束提示音.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
72
-		TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="" SuccessPos="23" FailPos="23" HangupPos="23" Note="留言结束放音" />
73
-		<cell Name="CELL_SQL" Pos="23" ConnStr="Provider=SQLOLEDB.1;Password=hykj800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter_HuaiBinMD;Data Source=." 
74
-		SqlStr="INSERT INTO T_Call_LeaveRecord(F_Phone,F_LeaveTime,F_Status,F_RecFileUrl) VALUES('%[CallerID]',GETDATE(),0,'%[CallID]_%[CallerID]_%[StartTime].wav')" IsSaved="no" 
75
-		SuccessPos="24" FailPos="24" Note="留言入库" />
76
-		<cell Name="CELL_HANGUP" Pos="24" Next="25" Note="挂机节点" />
77
-		<cell Name="CELL_END" Pos="25" Note="结束节点" />	
78
-		
79
-		<!--黑名单提示音-->
80
-		<cell Name="CELL_AUDIODTMF" Pos="26" PlayType="2" ContentType="1" Content="D:\Midware\wav\黑名单提示音.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
81
-		TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="3" FinishKey="#" KeyVar="" SuccessPos="25" FailPos="24" HangupPos="25" Note="黑名单提示音" />
82
-		<!--黑名单提示音-->
83
-		
84
-		<!--转值班电话-->
85
-		<cell   Name="CELL_BRANCH"  Pos="28" Var="keyh" DefaultPos="14" Note="是否转值班电话-比较按键值" >
86
-			<Branch   Pos="29" Value="1" />
87
-		</cell>
88
-		<cell Name="CELL_AUDIODTMF" Pos="29" PlayType="2" ContentType="1" Content="D:\Midware\wav\转值班电话提示.wav" TTSNumMode="1" TTSSpeed="50" TTSVolume="50" 
89
-		TTSEngine="0" StopWhenDtmf="2" MaxKeyCount="1" KeyPressInterval="0" FinishKey="#" KeyVar="" SuccessPos="701" FailPos="24" HangupPos="25" Note="转值班电话提示音" />
90
-		<cell Name="CELL_SQL" Pos="701" ConnStr="Provider=SQLOLEDB.1;Password=800100;Persist Security Info=True;User ID=sa;Initial Catalog=CallCenter_HuaiBinMD;Data Source=192.168.4.18" SqlStr="EXEC proc_HR_ZZBDH " IsSaved="yes" SuccessPos="702" FailPos="24" Note="获取值班电话" />
91
-		<cell Name="CELL_RECORDSET" Pos="702" LPos="30" EPos="30" GPos="30" Note="获取值班电话结果">
92
-			<Map Var="zbdh" />
93
-		</cell>
94
-		<cell Name="CELL_TRANSFEROUT" Pos="30" CalleeNumType="2" CalleeNum="zbdh" Timeout="60" SuccessPos="25" FailPos="24" Note="转值班电话" />
95
-		<!--转值班电话-->
96
-	</flow>		
97
-</ivr>

+ 24 - 0
sql/sql_20181119.sql

@@ -0,0 +1,24 @@
1
+truncate table [CallCenter_HuangChuanMD].[dbo].[T_Wo_WorkOrder]
2
+truncate table [CallCenter_HuangChuanMD].[dbo].[T_Wo_WorkOrderItem]
3
+truncate table [CallCenter_HuangChuanMD].[dbo].[T_WO_UserWorkOrder]
4
+truncate table [CallCenter_HuangChuanMD].[dbo].[T_Vis_Files]
5
+truncate table [CallCenter_HuangChuanMD].[dbo].[T_Call_OutTaskRecords]
6
+truncate table [CallCenter_HuangChuanMD].[dbo].[T_Call_OutTaskTelNum]
7
+truncate table [CallCenter_HuangChuanMD].[dbo].[T_Call_OutTask]
8
+truncate table [CallCenter_HuangChuanMD].[dbo].[T_Call_OutAnswers]
9
+truncate table dbo.T_Ask_Question
10
+truncate table dbo.T_Ask_QuestionCategory
11
+truncate table dbo.T_Ask_QuestionItems
12
+truncate table dbo.T_Ask_PagerItems
13
+truncate table dbo.T_Ask_PagerInfo
14
+truncate table dbo.T_Call_Blacklist
15
+truncate table dbo.T_Call_CallRecords
16
+
17
+truncate table dbo.rep_agent_state
18
+truncate table dbo.rep_agent_detail
19
+truncate table dbo.rep_ext_call_in
20
+truncate table dbo.rep_conference
21
+truncate table dbo.rep_ext_call_out
22
+truncate table dbo.rep_trunk_call_in
23
+truncate table dbo.T_Call_CallRecords
24
+truncate table dbo.rep_transfer

+ 141 - 0
sql/sql_20181123.sql

@@ -0,0 +1,141 @@
1
+
2
+/****** Object:  StoredProcedure [dbo].[DealWorkOrder1]    Script Date: 11/23/2018 14:15:37 ******/
3
+IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DealWorkOrder1]') AND type in (N'P', N'PC'))
4
+DROP PROCEDURE [dbo].[DealWorkOrder1]
5
+GO
6
+
7
+
8
+/****** Object:  StoredProcedure [dbo].[DealWorkOrder1]    Script Date: 11/23/2018 14:15:37 ******/
9
+SET ANSI_NULLS ON
10
+GO
11
+
12
+SET QUOTED_IDENTIFIER ON
13
+GO
14
+
15
+
16
+CREATE PROCEDURE [dbo].[DealWorkOrder1]
17
+(
18
+  @orderid VARCHAR(50),--工单编号
19
+  @isend INT,--是否结束
20
+  @cont NVARCHAR(MAX),--处理内容
21
+  @jsbm INT,--接收部门ID
22
+  @jsgh VARCHAR(50),--接收人工号(多个用,隔开)
23
+  @clgh VARCHAR(MAX),--处理人工号
24
+  @IsAudit int,--0未审核,1无效,2有效
25
+  @InfoTypeID int,--信息分类ID
26
+  @InfoType VARCHAR(50),--信息分类
27
+  @UnitID int,--交办单位ID
28
+  @Unit varchar(50) --交办单位
29
+)
30
+AS
31
+BEGIN TRAN clgd
32
+BEGIN TRY
33
+   DECLARE @tran_error INT=0--错误
34
+
35
+   DECLARE @gd_id VARCHAR(50)--工单ID
36
+   DECLARE @gd_type INT--工单类型
37
+   DECLARE @gd_state INT--工单状态
38
+   DECLARE @gd_user VARCHAR(50)--工单创建人工号
39
+   DECLARE @gd_time DECIMAL--工单用时时间
40
+   DECLARE @gd_limt DECIMAL--工单超时时间
41
+   DECLARE @gd_iscs INT=0--工单是否超时
42
+   DECLARE @mx_id VARCHAR(50)--工单明细ID
43
+   DECLARE @mx_state INT--工单明细状态
44
+   DECLARE @mx_user VARCHAR(50)--工单明细创建人工号
45
+   DECLARE @mx_sureuser VARCHAR(50)--工单明细接单人工号
46
+   DECLARE @mx_time DECIMAL--工单明细创建时间
47
+   DECLARE @mx_limt DECIMAL--工单明细超时时间
48
+   DECLARE @mx_iscs INT=0--工单明细是否超时
49
+
50
+   DECLARE @limttime DECIMAL--明细限制时间
51
+
52
+   BEGIN
53
+      SELECT @gd_id=ISNULL(ID, 0),@gd_type=ISNULL(Type, 0),@gd_state=State,@gd_user=CreateUser,@gd_limt=LimitTime,@gd_time=convert(decimal(18,2),DATEDIFF(minute, CreateTime,  GETDATE())/60.00) FROM T_Wo_WorkOrder WHERE WorkOrderID=@orderid AND IsDel=0
54
+      SELECT @limttime=ItemTime FROM T_Wo_WorkOrderTimeOut WHERE Type=@gd_type
55
+      IF @gd_id<>0 and @gd_state=1--存在此工单并且处理中
56
+        BEGIN
57
+          IF ISNULL(@gd_limt, 0)<>0 AND @gd_limt>@gd_limt--超时
58
+             BEGIN
59
+               SET @gd_iscs=1
60
+             END
61
+
62
+           --获取最新的流程明细
63
+           SELECT @mx_id=ISNULL(mx.ID, 0),@mx_state=State,@mx_user=CreateUser,@mx_sureuser=SureUser,@mx_limt=LimitTime,@mx_time= convert(decimal(18,2),DATEDIFF(minute, CreateTime,  GETDATE())/60.00) 
64
+           FROM( SELECT TOP 1 * FROM T_Wo_WorkOrderItem WHERE WorkOrderID=@orderid AND IsDel=0 AND Type=1 ORDER BY CreateTime DESC) mx
65
+           IF @mx_id<>0 and @mx_state=1 and @mx_sureuser=@clgh--当前明细是否接单状态并且是否当前人接单
66
+              BEGIN
67
+                IF ISNULL(@mx_limt, 0)<>0 AND @mx_time>@mx_limt--超时
68
+                  BEGIN
69
+                    SET @mx_iscs=1
70
+                  END
71
+                   
72
+                IF @isend=0--转派
73
+                  BEGIN
74
+                    --更新流程
75
+                    UPDATE T_Wo_WorkOrderItem SET Detail=@cont,State=2,DealUser=@clgh,DealTime=GETDATE(),IsTimeOut=@mx_iscs WHERE ID=@mx_id
76
+                    --新增流程并指派
77
+                    INSERT INTO T_Wo_WorkOrderItem(WorkOrderID,Type,ToDept,ToUser,SureUser,SureTime,LimitTime,IsLast,IsStart,IsTimeOut,State,CreateUser,CreateTime,IsDel) VALUES
78
+                    (@orderid,1,@jsbm,@jsgh,@jsgh,GETDATE(),@limttime,0,1,0,1,@clgh,GETDATE(),0)
79
+                   END
80
+                 ELSE IF @isend=1--结单
81
+                   BEGIN
82
+                     --更新流程
83
+                     UPDATE T_Wo_WorkOrderItem SET Detail=@cont,State=2,DealUser=@clgh,DealTime=GETDATE(),IsTimeOut=@mx_iscs,IsLast=1 WHERE ID=@mx_id
84
+                     --更新工单状态
85
+                     UPDATE T_Wo_WorkOrder SET State=2,clcontent=@cont,LastDealUser=@clgh,LastDealTime=GETDATE(),IsTimeOut=@gd_iscs 
86
+						,IsAudit=@IsAudit,InfoType=@InfoType,InfoTypeID=@InfoTypeID ,Unit=@Unit,UnitID=@UnitID
87
+                     WHERE ID=@gd_id
88
+                   END
89
+               END
90
+             ELSE IF @mx_id<>0 and @mx_state=1 and @gd_user=@clgh and @isend=1--创建人结单
91
+               BEGIN
92
+                 --更新流程
93
+                 UPDATE T_Wo_WorkOrderItem SET Detail=@cont,State=2,DealUser=@clgh,DealTime=GETDATE(),IsTimeOut=@mx_iscs,IsLast=1 WHERE ID=@mx_id
94
+                 --更新工单状态
95
+                 UPDATE T_Wo_WorkOrder SET State=2,LastDealUser=@clgh,LastDealTime=GETDATE(),IsTimeOut=@gd_iscs 
96
+					,IsAudit=@IsAudit,InfoType=@InfoType,InfoTypeID=@InfoTypeID ,Unit=@Unit,UnitID=@UnitID
97
+                 WHERE ID=@gd_id
98
+               END
99
+          END
100
+        ELSE IF @gd_id<>0 and @gd_state=0--存在此工单并且未指派
101
+          BEGIN
102
+            IF @isend=0--转派
103
+              BEGIN
104
+                --新增流程并指派
105
+                INSERT INTO T_Wo_WorkOrderItem(WorkOrderID,Type,ToDept,ToUser,SureUser,SureTime,LimitTime,IsLast,IsStart,IsTimeOut,State,CreateUser,CreateTime,IsDel) VALUES
106
+                (@orderid,1,@jsbm,@jsgh,@jsgh,GETDATE(),@limttime,0,1,0,1,@clgh,GETDATE(),0)
107
+                --更新工单状态
108
+                UPDATE T_Wo_WorkOrder SET State=1,Answer=@cont,AppointTime=GETDATE() 
109
+					,IsAudit=@IsAudit,InfoType=@InfoType,InfoTypeID=@InfoTypeID ,Unit=@Unit,UnitID=@UnitID
110
+                WHERE ID=@gd_id
111
+              END
112
+            ELSE IF @isend=1--结单
113
+              BEGIN
114
+                --新增流程
115
+                INSERT INTO T_Wo_WorkOrderItem(WorkOrderID,Type,Detail,SureUser,SureTime,LimitTime,IsLast,IsStart,IsTimeOut,State,CreateUser,CreateTime,IsDel) VALUES
116
+                (@orderid,1,@cont,@jsgh,GETDATE(),@limttime,1,0,0,2,@clgh,GETDATE(),0)
117
+                --更新工单状态
118
+                UPDATE T_Wo_WorkOrder SET State=2,Answer=@cont,clcontent=@cont,LastDealUser=@clgh,LastDealTime=GETDATE(),IsTimeOut=@gd_iscs 
119
+					,IsAudit=@IsAudit,InfoType=@InfoType,InfoTypeID=@InfoTypeID ,Unit=@Unit,UnitID=@UnitID
120
+                WHERE ID=@gd_id
121
+              END
122
+          END
123
+   END
124
+END TRY
125
+BEGIN CATCH
126
+   SET @tran_error=@tran_error+1
127
+END CATCH
128
+IF @tran_error>0
129
+   BEGIN 
130
+      ROLLBACK TRAN clgd
131
+      RETURN 0
132
+   END
133
+ELSE
134
+   BEGIN
135
+      COMMIT TRAN clgd
136
+      RETURN 1
137
+   END
138
+
139
+GO
140
+
141
+