duhongyu лет назад: 3
Родитель
Сommit
a3d63b21a5
23 измененных файлов с 1758 добавлено и 751 удалено
  1. 7 0
      CallCenterApi/CallCenterApi.BLL/T_Call_CallRecords.cs
  2. 17 8
      CallCenterApi/CallCenterApi.DAL/T_Bus_ToExamine.cs
  3. 28 0
      CallCenterApi/CallCenterApi.DAL/T_Call_CallRecords.cs
  4. 100 4
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/APPController.cs
  5. 2 2
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/Sms/SmsNewController.cs
  6. 7 4
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/SysConfigController.cs
  7. 4 0
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/WebChart/InfoNewController.cs
  8. 1 1
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/knowledge/KnowledgeController.cs
  9. 42 0
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/DataAnalysisController.cs
  10. 1 0
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/DaysTalkTimeController.cs
  11. 36 22
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/TotalTelController.cs
  12. 78 42
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/WorkOrderReportController.cs
  13. 59 3
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallrecordsController.cs
  14. 129 0
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/weixin/WxLoginController.cs
  15. 53 0
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/APPSController.cs
  16. 1066 576
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderController.cs
  17. 1 1
      CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Common/EnumWorkState.cs
  18. 1 0
      CallCenterApi/CallCenterApi.Model/T_Bus_ToExamine.cs
  19. 1 0
      CallCenterApi/CallCenterApi.Model/T_Call_CallRecords.cs
  20. 38 29
      CallCenterCommon/CallCenter.QuartzService/SatisfactionClose.cs
  21. 32 0
      CallCenterCommon/CallCenter.QuartzService/TrafficReminder.cs
  22. 3 40
      CallCenterCommon/CallCenter.QuartzService/ZhengWuDuiJie.cs
  23. 52 19
      CallCenterCommon/CallCenter.Utility/NPOI/NPOIHelper.cs

+ 7 - 0
CallCenterApi/CallCenterApi.BLL/T_Call_CallRecords.cs

@@ -205,6 +205,13 @@ namespace CallCenterApi.BLL
205 205
         {
206 206
             return dal.UpdateCallback(callId);
207 207
         }
208
+        /// <summary>
209
+        /// 更新回拨
210
+        /// </summary>
211
+        public bool UpdateTransferCall(string callId,string transfercall)
212
+        {
213
+            return dal.UpdateTransferCall(callId,  transfercall);
214
+        }
208 215
         #endregion
209 216
 
210 217
         #region 根据来电号码获取电话记录

+ 17 - 8
CallCenterApi/CallCenterApi.DAL/T_Bus_ToExamine.cs

@@ -50,9 +50,9 @@ namespace CallCenterApi.DAL
50 50
         {
51 51
             StringBuilder strSql = new StringBuilder();
52 52
             strSql.Append("insert into T_Bus_ToExamine(");
53
-            strSql.Append("F_WorkOrderId,F_AssignedId,F_CreatUser,F_Type,F_Result,F_IsDelete,AuditUser,F_State,F_MainDeptId,F_LimitTime)");
53
+            strSql.Append("F_WorkOrderId,F_AssignedId,F_CreatUser,F_Type,F_Result,F_IsDelete,AuditUser,F_State,F_MainDeptId,F_LimitTime,F_Content)");
54 54
             strSql.Append(" values (");
55
-            strSql.Append("@F_WorkOrderId,@F_AssignedId,@F_CreatUser,@F_Type,@F_Result,@F_IsDelete,@AuditUser,@F_State,@F_MainDeptId,@F_LimitTime)");
55
+            strSql.Append("@F_WorkOrderId,@F_AssignedId,@F_CreatUser,@F_Type,@F_Result,@F_IsDelete,@AuditUser,@F_State,@F_MainDeptId,@F_LimitTime,@F_Content)");
56 56
             strSql.Append(";select @@IDENTITY");
57 57
             SqlParameter[] parameters = {
58 58
                     new SqlParameter("@F_WorkOrderId", SqlDbType.NVarChar,50),
@@ -64,7 +64,8 @@ namespace CallCenterApi.DAL
64 64
                     new SqlParameter("@AuditUser", SqlDbType.NVarChar,50),
65 65
                     new SqlParameter("@F_MainDeptId", SqlDbType.NVarChar,500),
66 66
                     new SqlParameter("@F_State", SqlDbType.Int,4) ,
67
-             new SqlParameter("@F_LimitTime", SqlDbType.Int,4)};
67
+             new SqlParameter("@F_LimitTime", SqlDbType.Int,4),
68
+             new SqlParameter("@F_Content", SqlDbType.NVarChar,-1)};
68 69
             parameters[0].Value = model.F_WorkOrderId;
69 70
             parameters[1].Value = model.F_AssignedId;
70 71
             parameters[2].Value = model.F_CreatUser;
@@ -75,6 +76,7 @@ namespace CallCenterApi.DAL
75 76
             parameters[7].Value = model.F_MainDeptId;
76 77
             parameters[8].Value = model.F_State;
77 78
             parameters[9].Value = model.F_LimitTime;
79
+            parameters[10].Value = model.F_Content;
78 80
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
79 81
             if (obj == null)
80 82
             {
@@ -101,6 +103,7 @@ namespace CallCenterApi.DAL
101 103
             strSql.Append("F_State=@F_State,");
102 104
             strSql.Append("F_MainDeptId=@F_MainDeptId,");
103 105
             strSql.Append("F_LimitTime=@F_LimitTime,");
106
+            strSql.Append("F_Content=@F_Content,");
104 107
             strSql.Append("F_IsDelete=@F_IsDelete");
105 108
             strSql.Append(" where F_ID=@F_ID");
106 109
             SqlParameter[] parameters = {
@@ -113,6 +116,7 @@ namespace CallCenterApi.DAL
113 116
                          new SqlParameter("@F_State", SqlDbType.Int,4),
114 117
                           new SqlParameter("@F_MainDeptId", SqlDbType.NVarChar,500),
115 118
                            new SqlParameter("@F_LimitTime", SqlDbType.Int,4),
119
+                            new SqlParameter("@F_Content", SqlDbType.NVarChar,-1),
116 120
                     new SqlParameter("@F_IsDelete", SqlDbType.Int,4),
117 121
                     new SqlParameter("@F_ID", SqlDbType.Int,4)};
118 122
             parameters[0].Value = model.F_WorkOrderId;
@@ -124,8 +128,9 @@ namespace CallCenterApi.DAL
124 128
             parameters[6].Value = model.F_State;
125 129
             parameters[7].Value = model.F_MainDeptId;
126 130
             parameters[8].Value = model.F_LimitTime;
127
-            parameters[9].Value = model.F_IsDelete;
128
-            parameters[10].Value = model.F_ID;
131
+            parameters[9].Value = model.F_Content;
132
+            parameters[10].Value = model.F_IsDelete;
133
+            parameters[11].Value = model.F_ID;
129 134
 
130 135
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
131 136
             if (rows > 0)
@@ -189,7 +194,7 @@ namespace CallCenterApi.DAL
189 194
         {
190 195
 
191 196
             StringBuilder strSql = new StringBuilder();
192
-            strSql.Append("select  top 1 F_ID,F_WorkOrderId,F_AssignedId,F_CreatUser,F_Type,F_Result,F_IsDelete,AuditUser,F_State,F_LimitTime,F_MainDeptId from T_Bus_ToExamine ");
197
+            strSql.Append("select  top 1 F_ID,F_WorkOrderId,F_AssignedId,F_CreatUser,F_Type,F_Result,F_IsDelete,AuditUser,F_State,F_LimitTime,F_MainDeptId,F_Content from T_Bus_ToExamine ");
193 198
             strSql.Append(" where F_ID=@F_ID");
194 199
             SqlParameter[] parameters = {
195 200
                     new SqlParameter("@F_ID", SqlDbType.Int,4)
@@ -286,6 +291,10 @@ namespace CallCenterApi.DAL
286 291
                 {
287 292
                     model.F_MainDeptId = row["F_MainDeptId"].ToString();
288 293
                 }
294
+                if (row["F_Content"] != null)
295
+                {
296
+                    model.F_Content = row["F_Content"].ToString();
297
+                }
289 298
                 
290 299
             }
291 300
             return model;
@@ -297,7 +306,7 @@ namespace CallCenterApi.DAL
297 306
         public DataSet GetList(string strWhere)
298 307
         {
299 308
             StringBuilder strSql = new StringBuilder();
300
-            strSql.Append("select F_ID,F_WorkOrderId,F_AssignedId,F_LimitTime,F_CreatUser,F_Type,F_Result,F_IsDelete,AuditUser,F_State,F_MainDeptId ");
309
+            strSql.Append("select F_ID,F_WorkOrderId,F_AssignedId,F_LimitTime,F_CreatUser,F_Type,F_Result,F_IsDelete,AuditUser,F_State,F_MainDeptId,F_Content ");
301 310
             strSql.Append(" FROM T_Bus_ToExamine ");
302 311
             if (strWhere.Trim() != "")
303 312
             {
@@ -317,7 +326,7 @@ namespace CallCenterApi.DAL
317 326
             {
318 327
                 strSql.Append(" top " + Top.ToString());
319 328
             }
320
-            strSql.Append(" F_ID,F_WorkOrderId,F_AssignedId,F_LimitTime,F_CreatUser,F_Type,F_Result,F_IsDelete,AuditUser,F_State,F_MainDeptId ");
329
+            strSql.Append(" F_ID,F_WorkOrderId,F_AssignedId,F_LimitTime,F_CreatUser,F_Type,F_Result,F_IsDelete,AuditUser,F_State,F_MainDeptId,F_Content ");
321 330
             strSql.Append(" FROM T_Bus_ToExamine ");
322 331
             if (strWhere.Trim() != "")
323 332
             {

+ 28 - 0
CallCenterApi/CallCenterApi.DAL/T_Call_CallRecords.cs

@@ -737,6 +737,10 @@ namespace CallCenterApi.DAL
737 737
                 {
738 738
                     model.Callback = int.Parse(row["Callback"].ToString());
739 739
                 }
740
+                if (row["Business"] != null && row["Business"].ToString() != "")
741
+                {
742
+                    model.Business = int.Parse(row["Business"].ToString());
743
+                }
740 744
                 
741 745
             }
742 746
             return model;
@@ -973,7 +977,31 @@ namespace CallCenterApi.DAL
973 977
                 }
974 978
             }
975 979
         }
980
+        /// <summary>
981
+        /// 更新是否回拨
982
+        /// </summary>
983
+        public bool UpdateTransferCall(string p_CallId, string transfercall)
984
+        {
985
+            lock (DAL.T_Call_CallRecords.Global_Lock)
986
+            {
987
+                StringBuilder strSql = new StringBuilder();
988
+                strSql.Append("update T_Call_CallRecords SET TransferCall='"+ transfercall+"'");
989
+                strSql.Append(" where CallId=@CallId");
990
+                SqlParameter[] parameters = {
991
+                    new SqlParameter("@CallId", SqlDbType.VarChar,50)};
992
+                parameters[0].Value = p_CallId;
976 993
 
994
+                int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
995
+                if (rows > 0)
996
+                {
997
+                    return true;
998
+                }
999
+                else
1000
+                {
1001
+                    return false;
1002
+                }
1003
+            }
1004
+        }
977 1005
         #endregion
978 1006
 
979 1007
         #region 更新来电录音开始信息

+ 100 - 4
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/APPController.cs

@@ -348,6 +348,61 @@ namespace CallCenterApi.Interface.Controllers
348 348
 
349 349
             
350 350
         }
351
+        public ActionResult SendCode(string mobile,string workorderid)
352
+        {
353
+            if (string.IsNullOrEmpty(workorderid))
354
+                return Error("请选择工单");
355
+            var model = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
356
+            if (model == null)
357
+                return Error("工单不存在");
358
+            if (!string.IsNullOrEmpty(model .F_CusPhone ))
359
+            {
360
+                if (model.F_CusPhone.Trim().Length > 11)
361
+                    model.F_CusPhone = model.F_CusPhone.Substring(1, 11);
362
+            }
363
+            if (string.IsNullOrEmpty(mobile))
364
+            {
365
+                return Error("请输入将要发送的号码");
366
+            }
367
+            if (model.F_CusPhone != mobile)
368
+                return Error("手机号错误");
369
+            int codes = new Random().Next(1000, 9999);
370
+            // string msg = codes.ToString ();
371
+            // bool n = SMSController.AddSmS(0, msg, "你的验证码是"+ codes+".十分钟有效.", mobile, "168411", "");
372
+
373
+            string mag = "[\"" + codes.ToString() + "\"]";
374
+            string v = SmsNewController.AddSmS(0, "你的验证码是" + codes + ".十分钟有效.", mobile, "681240638956277760", mag,
375
+          "");
376
+            if (v == "")
377
+            {
378
+                return Success("发送成功");
379
+            }
380
+            else
381
+                return Error("发送失败");
382
+
383
+        }
384
+        public ActionResult Verification (string phone ,string code)
385
+        {
386
+            if (string.IsNullOrEmpty(phone))
387
+                return Error("请输入手机号码");
388
+            string msgcount = "你的验证码是" + code + ".十分钟有效.";
389
+            if (string.IsNullOrEmpty(code))
390
+                return Error("请输入验证码");
391
+            var sms = new BLL.T_SMS_RecvSMS().GetModelList("Content='" + msgcount + "' and CallerNum='" + phone + "'order by RecvTime desc");
392
+            if (sms != null && sms.Count > 0)
393
+            {
394
+                var modelSms = sms.First();
395
+                if ((DateTime.Now - modelSms.RecvTime).Minutes > 10)
396
+                {
397
+                    return Error("验证码已失效");
398
+                }
399
+                else
400
+                    return Success("验证成功");
401
+            }
402
+            else
403
+                return Error("请输入正确验证码");
404
+              
405
+        }
351 406
         /// <summary>
352 407
         /// 添加工单信息
353 408
         /// </summary>
@@ -370,8 +425,8 @@ namespace CallCenterApi.Interface.Controllers
370 425
                 string files = RequestString.GetFormString("files");
371 426
                 int sourcearea = RequestString.GetInt("sourcearea", 0);
372 427
                 string sourceaddress = RequestString.GetFormString("sourceaddress");
373
-             
374
-                string keys = RequestString.GetFormString("keys");
428
+            string code = RequestString.GetFormString("code");
429
+            string keys = RequestString.GetFormString("keys");
375 430
                 string splituser = RequestString.GetFormString("splituser");
376 431
                 int type = RequestString.GetInt("type", 0);
377 432
                
@@ -380,8 +435,23 @@ namespace CallCenterApi.Interface.Controllers
380 435
                 int business = RequestString.GetInt("business", 0); ;//
381 436
                 int township = RequestString.GetInt("township", 0);
382 437
                 int village = RequestString.GetInt("village", 0);
383
-              
384
-                Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
438
+            if (string.IsNullOrEmpty(cusphone))
439
+                return Error("请输入手机号码");
440
+            string msgcount = "您的验证码是" + code + ",10分钟内有效。";
441
+            if (string.IsNullOrEmpty(code))
442
+                return Error("请输入验证码");
443
+            var sms = new BLL.T_SMS_RecvSMS().GetModelList("Content='" + msgcount + "' and CallerNum='" + cusphone + "'order by RecvTime desc");
444
+            if (sms != null && sms.Count > 0)
445
+            {
446
+                var modelSms = sms.First();
447
+                if ((DateTime.Now - modelSms.RecvTime).Minutes > 10)
448
+                {
449
+                    return Error("验证码已失效");
450
+                }
451
+            }
452
+            else
453
+                return Error("请输入正确验证码");
454
+            Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
385 455
                 using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
386 456
                 {
387 457
                     #region 保存工单信息
@@ -971,6 +1041,32 @@ namespace CallCenterApi.Interface.Controllers
971 1041
                 string strSql = string.Format(@"INSERT INTO PublicComment ( [WorkOrderId], [strStm_Src_Dsc], [strWrkOrder_Cst_Ssf_Cd], [strUdt_Psn_ID], [strSsf_Cst_Ass_CntDsc], [strRltv_InsID], [strInpt_Inst_Nm], [strHpCnt], [CreateTime],[str_type]) 
972 1042
                    values   ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}') ;select @@IDENTITY ", model.F_WorkOrderId, strStm_Src_Dsc, Satisfaction, "", content, "", "", "", DateTime.Now, 3);
973 1043
                 object objres = DbHelperSQL.GetSingle(strSql);
1044
+                if (Satisfaction == "非常满意" || Satisfaction == "满意" || Satisfaction == "基本满意")
1045
+                {
1046
+                    if (model != null)
1047
+                    {
1048
+                        Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
1049
+                        keyValuePairs.Add("F_WorkState", 9);
1050
+                        keyValuePairs.Add("F_IsSatisfie", 1);
1051
+                        keyValuePairs.Add("F_IsClosed", 1);
1052
+                        keyValuePairs.Add("F_CloseUser", "");
1053
+                        keyValuePairs.Add("F_CloseTime", DateTime.Now);
1054
+                        keyValuePairs.Add("F_FinalOpinion", "市民评议满意自动结案");
1055
+                        keyValuePairs.Add("F_IsStandard", 1);
1056
+                        keyValuePairs.Add("F_StandardIDS", "");
1057
+                        keyValuePairs.Add("F_ToBereply", 0);
1058
+                        new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
1059
+                        Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
1060
+                        oper.F_WorkOrderId = model.F_WorkOrderId;
1061
+                        // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
1062
+                        oper.F_State = model.F_WorkState;
1063
+                        oper.F_Message = "市民网站评议满意,自动结案";
1064
+                        oper.F_CreateUser = "jianhang";
1065
+                        oper.F_CreateTime = DateTime.Now;
1066
+                        oper.F_IsDelete = 0;
1067
+                        operBLL.Add(oper);
1068
+                    }
1069
+                }
974 1070
                 return Success("评议成功");
975 1071
             }
976 1072
             else

+ 2 - 2
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/Sms/SmsNewController.cs

@@ -131,7 +131,7 @@ namespace CallCenterApi.Interface.Controllers.Sms
131 131
                                         // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
132 132
                                         oper.F_State = model.F_WorkState;
133 133
                                         oper.F_Message = "市民短信评议基本满意,自动结案";
134
-                                        oper.F_CreateUser = = "短信评议";
134
+                                        oper.F_CreateUser = "短信评议";
135 135
                                         oper.F_CreateTime = DateTime.Now;
136 136
                                         oper.F_IsDelete = 0;
137 137
                                         operBLL.Add(oper);
@@ -419,7 +419,7 @@ namespace CallCenterApi.Interface.Controllers.Sms
419 419
                     Model.T_SMS_RecvSMS dModel = new Model.T_SMS_RecvSMS();
420 420
                     dModel.CallerNum = mobiles.Trim();
421 421
                     dModel.Content = Content.Trim();
422
-                    dModel.RecvModemIMEI = "";
422
+                    dModel.RecvModemIMEI = templateCode;
423 423
                     dModel.F_Name = workorderid;
424 424
                     dModel.State = 0;
425 425
                     dModel.F_UserID = userId;

+ 7 - 4
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/SysConfigController.cs

@@ -12,7 +12,7 @@ using System.Web.Mvc;
12 12
 
13 13
 namespace CallCenterApi.Interface.Controllers
14 14
 {
15
-    //[Authority]
15
+    [Authority]
16 16
     public class SysConfigController : BaseController
17 17
     {
18 18
         private BLL.T_Sys_SystemConfig sysConfigBLL = new BLL.T_Sys_SystemConfig();
@@ -296,10 +296,10 @@ namespace CallCenterApi.Interface.Controllers
296 296
             Model.T_Sys_SeatPermissionConfig model = new Model.T_Sys_SeatPermissionConfig();
297 297
             BLL.T_Sys_SeatPermissionConfig bll = new BLL.T_Sys_SeatPermissionConfig();
298 298
             model = bll.GetModel();
299
-            int maxSeat = int.Parse(model.F_MaxSeat.ToString());
300
-            string securityKey = model.F_SecurityKey;
299
+            int maxSeat = 100;
300
+            string securityKey = "4691-FE75-9091-1085-5103-92ED-E342-1EBD";
301 301
             string passHash = model.F_PassHash; //对密码进行加密
302
-            string saltValue = model.F_SaltValue;
302
+            string saltValue = "CvVmREt4XbO9qt/LRxow+0tZOUM2WkRYZIJJx6Ok1EkJWMTmuVE3NnMEgoW7x/vvfY3fBS8C3o4x+qjkpE9oUNgFADzSodJ9XuJYEOFM4UB/63iYDPG0g9yBUmWhX0J4N6laYUH+l3PWcRqpD/UxLpqzQYwc/RTisnxWiccMIgOakzc3+1AzJRiBnoysZxdn2yITEuOO375RbO+LYSetfYukwh03RQLGo5RNCLq53ALlwQtrUqeA7DdVKS5Bd0m4p53NQz0tU1uGbvbHHauxpoUMjjqD+afDcIW2wfx84YOXq+J1ordgsFTNamFcCd0pfFYRsMqIvkqrgE5gzm7MjQ==";
303 303
             string passHashNew = SaltAndHashHelper.GetHashSha256(maxSeat + securityKey, saltValue);
304 304
             return Success(passHashNew);
305 305
         }
@@ -330,6 +330,9 @@ namespace CallCenterApi.Interface.Controllers
330 330
                 return false;
331 331
             }
332 332
         }
333
+         
334
+
335
+
333 336
 
334 337
         #endregion
335 338
 

+ 4 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/WebChart/InfoNewController.cs

@@ -1526,6 +1526,7 @@ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), new TimeSpan(0, 5, 0));
1526 1526
             int[] hwc = new int[days.Length]; int[] jcc = new int[days.Length];
1527 1527
             for (int i = 0; i < days.Length; i++)
1528 1528
             {
1529
+               
1529 1530
                 var drs = dthw.Select("day='" + days[i] + "'");
1530 1531
                 int hw = 0;int jt = 0;
1531 1532
                 if (drs.Length > 0)
@@ -1567,6 +1568,7 @@ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), new TimeSpan(0, 5, 0));
1567 1568
             }
1568 1569
             foreach (DataRow it in dthw.Rows)
1569 1570
             {
1571
+               
1570 1572
                if (t >0)
1571 1573
                 {
1572 1574
                     float v= Int32.Parse(it["count"].ToString());
@@ -1880,8 +1882,10 @@ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), new TimeSpan(0, 5, 0));
1880 1882
             string sql = $"  select a.F_AreaName Name,a.F_Code Code,(select COUNT(1) from T_Bus_WorkOrder   where F_Township = a.F_AreaId  " + where + "   ) count from dbo.T_Sys_AreaChildren a where F_PrentId  in("+ key + ") and F_State = 0   order by F_AreaId asc  ";
1881 1883
             DataTable dthw = DbHelperSQL.Query(sql).Tables[0];
1882 1884
             List<AreaChildrenCount> list = new List<AreaChildrenCount>();
1885
+         
1883 1886
             foreach (DataRow dr in dthw.Rows )
1884 1887
             {
1888
+             
1885 1889
                 AreaChildrenCount areaChildrenCount = new AreaChildrenCount();
1886 1890
                 int type = 0;
1887 1891
                 if (dr["Code"].ToString() == "1")

+ 1 - 1
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/knowledge/KnowledgeController.cs

@@ -251,7 +251,7 @@ namespace CallCenterApi.Interface.Controllers.knowledge
251 251
 
252 252
         [Authority]
253 253
         //添加知识库
254
-        public ActionResult AddInfo(string title, string con, string pid, int issub)
254
+        public ActionResult AddInfo(string title, string con, string pid, int issub=0)
255 255
         {
256 256
             Model.T_RepositoryInformation dModel = new Model.T_RepositoryInformation();
257 257
             if (string.IsNullOrEmpty(title))

+ 42 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/DataAnalysisController.cs

@@ -635,5 +635,47 @@ namespace CallCenterApi.Interface.Controllers.report
635 635
             var obj = DbHelperSQL.RunProcedure("P_YSDuration", paras, "YSDuration");
636 636
             return Success("成功", obj);
637 637
         }
638
+
639
+
640
+        /// <summary>
641
+        /// 获取营商报表
642
+        /// </summary>
643
+        /// <param name="date"></param>
644
+        /// <param name="isdc"></param>
645
+        /// <returns></returns>
646
+        public ActionResult GetBusiness(string sdate, string edate, int isdc = 0)
647
+        {
648
+            DateTime stime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); ;
649
+            DateTime etime = DateTime.Now;
650
+
651
+            if (!string.IsNullOrEmpty(sdate))
652
+            {
653
+                stime = DateTime.Parse(sdate);
654
+            }
655
+            if (!string.IsNullOrEmpty(edate))
656
+            {
657
+                etime = DateTime.Parse(edate);
658
+            }
659
+            Dictionary<string, string> paras = new Dictionary<string, string>();
660
+            paras.Add("@sdate", stime.ToString("yyyy-MM-dd"));
661
+            paras.Add("@edate", etime.ToString("yyyy-MM-dd"));
662
+            var obj = DbHelperSQL.RunProcedure("P_DeptBusiness", paras, "DeptBusiness");
663
+            if (isdc >0)
664
+             {
665
+                string[] cols = { "承办总量", "承办办结率", "直办总量","直办办结量",
666
+                    "直办办结率","转办总量","转办办结量","转办办结率","正常回复","已办未果","超期回复","待审信件","正在办理","超期未果","重置转发","驳回记录","关联件数","评议量","评议满意量","评议不满意量","评议满意率","回访量","回访满意量","回访不满意量","回访满意率"};
667
+                NPOIHelper npoi = new NPOIHelper();
668
+                if (npoi.ExportToExcel("营商统计工作报表", obj.Tables[0], cols) == "")
669
+                {
670
+                    return Success("导出成功");
671
+                }
672
+                else
673
+                {
674
+                    return Error("导出失败");
675
+                }
676
+            }
677
+            else 
678
+            return Success("成功", obj);
679
+        }
638 680
     }
639 681
 }

+ 1 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/DaysTalkTimeController.cs

@@ -184,6 +184,7 @@ namespace CallCenterApi.Interface.Controllers.report
184 184
                 int calloutcount = drsout.Length;
185 185
                 int callwoutcount = drswout.Length;
186 186
                 string thsc = gettimes(dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' "), 0);
187
+               
187 188
                 string hrsc = gettimes(drsin, 0);
188 189
                 string hcsc = gettimes(drsout, 0);
189 190
                 string zlsc = gettimes(drswout, 1);

+ 36 - 22
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/TotalTelController.cs

@@ -92,7 +92,7 @@ namespace CallCenterApi.Interface.Controllers.report
92 92
 
93 93
             DateTime beginTime;
94 94
             DateTime endTime;
95
-            string sql = "", sqll = "";
95
+            string sql = "";
96 96
 
97 97
             int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
98 98
             if (stime != null && stime != "")
@@ -108,11 +108,13 @@ namespace CallCenterApi.Interface.Controllers.report
108 108
 
109 109
             sql += " and DATEDIFF(d,BeginTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
110 110
             sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
111
-            sqll += " and DATEDIFF(d,F_LeaveTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
112
-            sqll += " and DATEDIFF(d,F_LeaveTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
111
+            //  sqll += " and DATEDIFF(d,F_LeaveTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
112
+            //   sqll += " and DATEDIFF(d,F_LeaveTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
113 113
 
114
-            DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1 " + sql).Tables[0];
115
-            //DataTable dtly = new BLL.T_Call_LeaveRecord().GetList("1=1" + sqll).Tables[0];
114
+            var  dt = new BLL.T_Call_CallRecords().GetModelList("1=1  " + sql);
115
+
116
+
117
+            
116 118
             int tcallincount = 0;
117 119
             int tcalloutcount = 0;
118 120
             int tcallinjtcount = 0;
@@ -124,20 +126,32 @@ namespace CallCenterApi.Interface.Controllers.report
124 126
             for (DateTime t = beginTime; t <= endTime; t = t.AddDays(1))
125 127
             {
126 128
                 string key = t.ToString("yyyy.MM.dd");
127
-                int callincount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=0").Length;
128
-                int calloutcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=1").Length;
129
-                int callinjtcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=0 and CallState=1 ").Length;
130
-                int callinhcjtcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=1 and CallState=1 ").Length;
131
-
132
-
133
-
134
-                //int lycount = dtly.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and DealType=4 ").Length; ;
135
-                //int lycount = dtly.Select("F_LeaveTime >='" + t.ToString() + "' and F_LeaveTime<'" + t.AddDays(1).ToString() + "' ").Length; ;
136
-                int srcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and DealType=1 ").Length;
137
-                int wjtcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallState=0 and CallType=0 and isnull(usercode,'')<>'' ").Length;
138
-                //int fqcount = callincount - callinjtcount - lycount - srcount;//- wjtcount;
139
-                int fqcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallState=0 and isnull(usercode,'')='' ").Length;
140
-                string thsc = gettimes(dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=0 and CallState=1 "));
129
+                int callincount = dt.Where(x => x.BeginTime.Value.ToString("yyyy.MM.dd") ==key  && x.CallType == 0).Count();
130
+
131
+                //int callincount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=0").Length;
132
+                int calloutcount = dt.Where(x => x.BeginTime.Value.ToString("yyyy.MM.dd") == key && x.CallType == 1).Count();
133
+                //int calloutcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=1").Length;
134
+                int callinjtcount = dt.Where(x => x.BeginTime.Value.ToString("yyyy.MM.dd") == key && x.CallType == 0&&
135
+              x. CallState == 1).Count();
136
+                // int callinjtcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=0 and CallState=1 ").Length;
137
+                int callinhcjtcount = dt.Where(x => x.BeginTime.Value.ToString("yyyy.MM.dd") == key && x.CallType == 1 &&
138
+              x.CallState == 1).Count();
139
+                //int callinhcjtcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=1 and CallState=1 ").Length;
140
+
141
+                int srcount = dt.Where(x => x.BeginTime.Value.ToString("yyyy.MM.dd") == key && x.DealType == 1).Count();
142
+                // int srcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and DealType=1 ").Length;
143
+                int wjtcount = dt.Where(x => x.BeginTime.Value.ToString("yyyy.MM.dd") == key && x.DealType == 1
144
+                && (x.UserCode == "" || x.UserCode == null)).Count();
145
+                //  int wjtcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallState=0 and CallType=0 and isnull(usercode,'')<>'' ").Length;
146
+
147
+                int fqcount = dt.Where(x => x.BeginTime.Value.ToString("yyyy.MM.dd") == key && x.CallState == 0
148
+              && (x.UserCode == "" || x.UserCode == null)).Count();
149
+                // int fqcount = dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallState=0 and isnull(usercode,'')='' ").Length;
150
+
151
+                int thsc =dt.Where(x => x.BeginTime.Value.ToString("yyyy.MM.dd") == key && x.CallType == 0
152
+              && x.CallState==1&&x.TalkLongTime !=null ).Sum (x=>x.TalkLongTime.Value  );
153
+              //  string thsc = gettimes(dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' and CallType=0 and CallState=1 "));
154
+                
141 155
 
142 156
                 tcallincount = tcallincount + callincount;
143 157
                 tcalloutcount = tcalloutcount + calloutcount;
@@ -146,7 +160,7 @@ namespace CallCenterApi.Interface.Controllers.report
146 160
                 //tlycount = tlycount + lycount;
147 161
                 tsrcount = tsrcount + srcount;
148 162
                 tfqcount = tfqcount + fqcount;
149
-                tthsc = tthsc + double.Parse(thsc);
163
+                tthsc = tthsc + thsc;
150 164
 
151 165
                 DataRow drNew = dtNew.NewRow();
152 166
 
@@ -159,8 +173,8 @@ namespace CallCenterApi.Interface.Controllers.report
159 173
                 drNew["主动放弃次数"] = fqcount;
160 174
                 drNew["电话骚扰次数"] = srcount;
161 175
                 drNew["正常呼出接听次数"] = callinhcjtcount;
162
-                if ((callincount + calloutcount) > 0 && double.Parse(thsc) > 0)
163
-                    drNew["平均呼入时间"] = DateTimeConvert.parseTimeSeconds((int)(double.Parse(thsc) / callinjtcount), 0);
176
+                if ((callincount + calloutcount) > 0 && thsc > 0)
177
+                    drNew["平均呼入时间"] = DateTimeConvert.parseTimeSeconds((int)(thsc / callinjtcount), 0);
164 178
                 else
165 179
                     drNew["平均呼入时间"] = "0";
166 180
 

Разница между файлами не показана из-за своего большого размера
+ 78 - 42
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/WorkOrderReportController.cs


+ 59 - 3
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/tel/CallrecordsController.cs

@@ -32,7 +32,9 @@ namespace CallCenterApi.Interface.Controllers.tel
32 32
             string group = HttpUtility.UrlDecode(RequestString.GetQueryString("group"));
33 33
             int callback = RequestString.GetInt("callback", 0);
34 34
             int waitTime = RequestString.GetInt("waitTime", -1);
35
-            
35
+            int morewaitTime = RequestString.GetInt("morewaitTime", -1);
36
+            int lesswaitTime = RequestString.GetInt("lesswaitTime", -1);
37
+            int myd = RequestString.GetInt("myd", -1);
36 38
             int type = RequestString.GetInt("type", 0);
37 39
             int islike = RequestString.GetInt("islike", 1);
38 40
             int notconnected = RequestString.GetInt("notconnected", 0);
@@ -41,7 +43,7 @@ namespace CallCenterApi.Interface.Controllers.tel
41 43
             int pageindex = 1;
42 44
             string strpagesize = RequestString.GetQueryString("pagesize");
43 45
             int pagesize = 10;
44
-
46
+            int Business = RequestString.GetInt("Business", -1);
45 47
             //if (roleid != 0)
46 48
             //{
47 49
             //    if (roleid == 1)
@@ -49,6 +51,13 @@ namespace CallCenterApi.Interface.Controllers.tel
49 51
             //        sql += " and UserCode='" + User.F_WorkNumber + "' ";
50 52
             //    }
51 53
             //}
54
+            if (Business>-1)
55
+            {
56
+                if (Business == 0)
57
+                    sql += "and Business is null";
58
+                else
59
+                    sql += "and Business=1";
60
+            }
52 61
             if (type != 0)
53 62
             {
54 63
                 sql += " and F_CallInType = '" + type + "' ";
@@ -102,7 +111,19 @@ namespace CallCenterApi.Interface.Controllers.tel
102 111
             }
103 112
             if (waitTime>-1)
104 113
             {
105
-                sql += "and  (DATEDIFF (SECOND ,TalkStartTime,BeginTime)='"+ waitTime + "'  or ((DATEDIFF (SECOND ,TalkStartTime,EndTime)='"+ waitTime + "' and TalkStartTime is null )    ))";
114
+                sql += "and  (DATEDIFF (SECOND ,BeginTime,TalkStartTime)='" + waitTime + "'  or ((DATEDIFF (SECOND ,TalkStartTime,EndTime)='"+ waitTime + "' and TalkStartTime is null )    ))";
115
+            }
116
+            if (morewaitTime > -1)
117
+            {
118
+                sql += "and  (DATEDIFF (SECOND ,BeginTime,TalkStartTime)>'" + morewaitTime + "'  or ((DATEDIFF (SECOND ,TalkStartTime,EndTime)>'" + morewaitTime + "' and TalkStartTime is null )    ))";
119
+            }
120
+            if (lesswaitTime  > -1)
121
+            {
122
+                sql += "and  (DATEDIFF (SECOND ,BeginTime,TalkStartTime)<'" + lesswaitTime + "'  or ((DATEDIFF (SECOND ,TalkStartTime,EndTime)<'" + lesswaitTime + "' and TalkStartTime is null )    ))";
123
+            }
124
+            if (myd>-1)
125
+            {
126
+                sql += "and MYD='" + myd + "' and CallState=1";
106 127
             }
107 128
             if (callstate.Trim() != "")
108 129
             {
@@ -272,6 +293,7 @@ namespace CallCenterApi.Interface.Controllers.tel
272 293
                             }
273 294
 
274 295
                             string lujing = path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
296
+                           
275 297
                             string wlpath = ym + lujing;
276 298
 
277 299
                             dr["FilePath"] = wlpath;
@@ -317,7 +339,22 @@ namespace CallCenterApi.Interface.Controllers.tel
317 339
 
318 340
 
319 341
         }
342
+        //获取最新通话记录
343
+        public ActionResult GetCallRecords(string callid)
344
+        {
345
+           
346
+            var call = new BLL.T_Call_CallRecords().GetModelByCallId (callid);
347
+
348
+            if (call!=null )
349
+            {
350
+                return Success("获取成功", call);
351
+            }
352
+            else
353
+            {
354
+                return Error("获取失败");
355
+            }
320 356
 
357
+        }
321 358
 
322 359
         //获取通话记录列表
323 360
         public ActionResult GetNotconnectedList(string phone="")
@@ -545,6 +582,25 @@ namespace CallCenterApi.Interface.Controllers.tel
545 582
                 return Success("更新失败");
546 583
             }
547 584
         }
585
+
586
+        /// <summary>
587
+        /// 更新转接电话
588
+        /// </summary>
589
+        /// <returns></returns>
590
+        [Authority]
591
+        public ActionResult UpdateTransferCall(string callid,string transfercall)
592
+        {
593
+
594
+            var b = new BLL.T_Call_CallRecords().UpdateTransferCall(callid, transfercall);
595
+            if (b)
596
+            {
597
+                return Success("更新成功");
598
+            }
599
+            else
600
+            {
601
+                return Success("更新失败");
602
+            }
603
+        }
548 604
         /// <summary>
549 605
         /// 更新回拨
550 606
         /// </summary>

+ 129 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/weixin/WxLoginController.cs

@@ -3,6 +3,7 @@ using CallCenterApi.Common;
3 3
 using CallCenterApi.DB;
4 4
 using CallCenterApi.Interface.App_Start;
5 5
 using CallCenterApi.Interface.Controllers.Base;
6
+using CallCenterApi.Interface.Controllers.Sms;
6 7
 using CallCenterApi.Model;
7 8
 using CallCenterAPI.WechatSDK;
8 9
 using CallCenterAPI.WechatSDK.Models;
@@ -131,11 +132,139 @@ namespace CallCenterApi.Interface.Controllers.weixin
131 132
                 model.F_CreateTime = DateTime.Now;
132 133
                 new BLL.T_Sys_Users().Add(model);
133 134
             }
135
+            return Success("成功", model);
136
+        }
137
+        /// <summary>
138
+        /// 发送短信验证码
139
+        /// </summary>
140
+        /// <param name="mobile"></param>
141
+        /// <returns></returns>
142
+        public ActionResult SendCode(string mobile)
143
+        {
134 144
 
145
+            int codes = new Random().Next(1000, 9999);
146
+            string mag = "[\"" + codes.ToString() + "\"]";
147
+            string v = SmsNewController.AddSmS(0, "您的验证码是" + codes + ",10分钟内有效。", mobile, "681240638956277760", mag,
148
+          "");
149
+            if (v == "")
150
+            {
151
+                return Error("发送成功");
152
+            }
153
+            else
154
+            {
155
+                return Error("发送失败");
156
+            }
157
+        }
158
+        /// <summary>
159
+        /// 修改微信用户信息
160
+        /// </summary>
161
+        /// <param name="login"></param>
162
+        /// <returns></returns>
163
+        public ActionResult EditUserInfo(WxLoginDto wld,string code,string mobile)
164
+        {
165
+            wld.RedirectUrl = RequestString.GetUrlReferrer();
166
+
167
+            if (string.IsNullOrEmpty(wld.OpenId))
168
+            {
169
+                var temp = WxHelper.GetUserInfo(wld);
170
+                if (string.IsNullOrWhiteSpace(temp.OpenId))
171
+                {
172
+                    return Redirect("请求", temp.RedirectUrl);
173
+                }
174
+                wld.OpenId = temp.OpenId;
175
+                wld.UserInfo = temp.UserInfo;
176
+            }
177
+            if (string.IsNullOrEmpty(mobile))
178
+                return Error("请输入手机号码");
179
+            string msgcount = "您的验证码是" + code + ",10分钟内有效。";
180
+            if (string.IsNullOrEmpty(code))
181
+                return Error("请输入验证码");
182
+            var sms = new BLL.T_SMS_RecvSMS().GetModelList("Content='" + msgcount + "' and CallerNum='" + mobile + "'order by RecvTime desc");
183
+            if (sms != null && sms.Count > 0)
184
+            {
185
+                var modelSms = sms.First();
186
+                if ((DateTime.Now - modelSms.RecvTime).Minutes > 10)
187
+                {
188
+                    return Error("验证码已失效");
189
+                }
190
+            }
191
+            else
192
+                return Error("请输入正确验证码");
193
+
194
+
195
+
196
+            var model = new BLL.T_Sys_Users().GetModel(wld.OpenId);
197
+            if (model == null)
198
+            {
199
+                model = new Model.T_Sys_Users();
200
+                model.F_OpenId = wld.OpenId;
201
+                model.F_Name = wld.UserInfo.nickname;
202
+                model.F_ImgUrl = wld.UserInfo.headimgurl;
203
+                model.F_Province = wld.UserInfo.province;
204
+                model.F_City = wld.UserInfo.city;
205
+                model.F_Telphone = mobile;
206
+                model.F_County = wld.UserInfo.country;
207
+                model.F_Type = (int)EnumUserType.wechat;//1;
208
+                model.F_CreateTime = DateTime.Now;
209
+                new BLL.T_Sys_Users().Add(model);
210
+            }
211
+            else
212
+            {
213
+                model.F_Telphone = mobile;
214
+                new BLL.T_Sys_Users().Update (model);
215
+            }
135 216
             return Success("成功", wld.UserInfo);
136 217
         }
137 218
 
138 219
         /// <summary>
220
+        /// 解除微信用户信息
221
+        /// </summary>
222
+        /// <param name="login"></param>
223
+        /// <returns></returns>
224
+        public ActionResult RelieveUserInfo(WxLoginDto wld, string code, string mobile)
225
+        {
226
+            wld.RedirectUrl = RequestString.GetUrlReferrer();
227
+            if (string.IsNullOrEmpty(mobile))
228
+                return Error("请输入手机号码");
229
+            string msgcount = "您的验证码是" + code + ",10分钟内有效。";
230
+            if (string.IsNullOrEmpty(code))
231
+                return Error("请输入验证码");
232
+            var sms = new BLL.T_SMS_RecvSMS().GetModelList("Content='" + msgcount + "' and CallerNum='" + mobile + "'order by RecvTime desc");
233
+            if (sms != null && sms.Count > 0)
234
+            {
235
+                var modelSms = sms.First();
236
+                if ((DateTime.Now - modelSms.RecvTime).Minutes > 10)
237
+                {
238
+                    return Error("验证码已失效");
239
+                }
240
+            }
241
+            else
242
+                return Error("请输入正确验证码");
243
+            if (string.IsNullOrEmpty(wld.OpenId))
244
+            {
245
+                var temp = WxHelper.GetUserInfo(wld);
246
+                if (string.IsNullOrWhiteSpace(temp.OpenId))
247
+                {
248
+                    return Redirect("请求", temp.RedirectUrl);
249
+                }
250
+                wld.OpenId = temp.OpenId;
251
+                wld.UserInfo = temp.UserInfo;
252
+            }
253
+            var model = new BLL.T_Sys_Users().GetModel(wld.OpenId);
254
+            if (model != null)
255
+            {
256
+
257
+                model.F_Telphone = "";
258
+                new BLL.T_Sys_Users().Update(model);
259
+            }
260
+            else
261
+            {
262
+                return Error("该用户不存在");
263
+            }
264
+            return Success("解除成功", wld.UserInfo);
265
+        }
266
+
267
+        /// <summary>
139 268
         /// 获取政务网用户
140 269
         /// </summary>
141 270
         /// <returns></returns>

+ 53 - 0
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/APPSController.cs

@@ -3125,6 +3125,59 @@ namespace CallCenterApi.Interface.Controllers.workorder
3125 3125
             return Content(obj.ToJson().Replace("state", "C-Response-Desc").Replace("message", "C-API-Status").Replace("returnList", "C-Response-Body").Replace("code", "C-Response-Code"));
3126 3126
 
3127 3127
         }
3128
+
3129
+        public ActionResult Reminder()
3130
+        {
3131
+            string strSql = "select count(1) from T_Call_CallRecords where DATEDIFF (DAY ,BeginTime ,GETDATE ())=0 ";
3132
+
3133
+            object objres = DbHelperSQL.GetSingle(strSql);
3134
+            var model = new BLL.T_SMS_RecvSMS().GetModelList("DATEDIFF (DAY ,RecvTime ,GETDATE ())=0 and RecvModemIMEI='701484974439813120' order by RecvTime desc ");
3135
+            if (model!=null && model.Count >0)
3136
+            {
3137
+                int t = int.Parse(objres.ToString());
3138
+                int count =int .Parse ( model.First().RecvModemIMEI)+1000;
3139
+                if (t > count)
3140
+                {
3141
+                    string mag = "[\"超"+ count + "\"]";
3142
+                    var userlist = new BLL.T_Sys_UserAccount().GetModelList(" F_DeleteFlag =0 and F_RoleId in (1, 4, 11)");
3143
+                    if (userlist != null && userlist.Count > 0)
3144
+                    {
3145
+                        foreach (var it in userlist)
3146
+                        {
3147
+                            if (!string.IsNullOrEmpty(it.F_Mobile))
3148
+                            {
3149
+                                string v = SmsNewController.AddSmS(0, "当前务已超"+ count + "。请关注", it.F_Mobile, "701484974439813120", mag, "1000");
3150
+                            }
3151
+                        }
3152
+
3153
+                    }
3154
+                }
3155
+
3156
+            }
3157
+            else
3158
+            {
3159
+                if (int.Parse(objres.ToString()) > 1000)
3160
+                {
3161
+              
3162
+                    string mag = "[\"超1000"  + "\"]";
3163
+                    var userlist = new BLL.T_Sys_UserAccount().GetModelList(" F_DeleteFlag =0 and F_RoleId in (1, 4, 11)");
3164
+                    if (userlist!=null && userlist.Count >0)
3165
+                    {
3166
+                        foreach (var it in userlist)
3167
+                        {
3168
+                            if (!string.IsNullOrEmpty(it.F_Mobile ))
3169
+                            {
3170
+                                string v = SmsNewController.AddSmS(0, "当前务已超1000。请关注", it.F_Mobile, "701484974439813120", mag, "1000");
3171
+                            }
3172
+                        }
3173
+                        
3174
+                    }
3175
+                  
3176
+                }
3177
+            }
3178
+            return Success("");
3179
+
3180
+        }
3128 3181
         public ActionResult zmhd10002()
3129 3182
         {
3130 3183
          

Разница между файлами не показана из-за своего большого размера
+ 1066 - 576
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderController.cs


+ 1 - 1
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Common/EnumWorkState.cs

@@ -46,6 +46,6 @@ namespace CallCenterApi.Interface.Models.Common
46 46
 
47 47
         [Description("重办驳回")]
48 48
         rejload =13,
49
-       
49
+      
50 50
     }
51 51
 }

+ 1 - 0
CallCenterApi/CallCenterApi.Model/T_Bus_ToExamine.cs

@@ -88,6 +88,7 @@ namespace CallCenterApi.Model
88 88
             set;get;
89 89
         }
90 90
         public int? F_LimitTime { set; get; }
91
+        public string F_Content { set; get; }
91 92
         #endregion Model
92 93
 
93 94
     }

+ 1 - 0
CallCenterApi/CallCenterApi.Model/T_Call_CallRecords.cs

@@ -555,6 +555,7 @@ namespace CallCenterApi.Model
555 555
         public string PhoneType { set; get; }
556 556
 
557 557
         public int? Callback { set; get; }
558
+        public int? Business { set; get; }
558 559
         #endregion Model
559 560
 
560 561
     }

Разница между файлами не показана из-за своего большого размера
+ 38 - 29
CallCenterCommon/CallCenter.QuartzService/SatisfactionClose.cs


+ 32 - 0
CallCenterCommon/CallCenter.QuartzService/TrafficReminder.cs

@@ -0,0 +1,32 @@
1
+using CallCenter.Utility;
2
+using CallCenterApi.DB;
3
+using System;
4
+using System.Collections.Generic;
5
+using System.Linq;
6
+using System.Text;
7
+using System.Threading.Tasks;
8
+
9
+namespace CallCenter.QuartzService
10
+{
11
+    class TrafficReminder : QuartzJob
12
+    {
13
+        public TrafficReminder()
14
+        {
15
+            CronExpression = "0 0/5 * * * ?";
16
+            DoWork += Reminder;
17
+        }
18
+        /// <summary>
19
+        ///
20
+        /// </summary>
21
+        /// <param name="sender"></param>
22
+        /// <param name="e"></param>
23
+        private void Reminder(object sender, EventArgs e)
24
+        {
25
+          
26
+
27
+          
28
+           
29
+
30
+        }
31
+   }
32
+}

+ 3 - 40
CallCenterCommon/CallCenter.QuartzService/ZhengWuDuiJie.cs

@@ -59,7 +59,7 @@ namespace CallCenter.QuartzService
59 59
         private void submit_dept_crnt_status(object sender, EventArgs e)
60 60
 
61 61
         {
62
-
62
+            var Dataurl = HttpMethods.HttpPost("http://docking.zwfw.anyang.gov.cn:9998/APPS/Reminder");
63 63
             string token = GetToken();
64 64
            
65 65
             paras paras = new paras();
@@ -110,48 +110,11 @@ namespace CallCenter.QuartzService
110 110
 
111 111
             paras.TDY_TELRATE = TDY_TELRATE;
112 112
 
113
-            //Dictionary<string, object> values = new Dictionary<string, object>();
114
-            //values.Add("access_token", token);
115
-            //values.Add("paras", paras);
116
-            //var jsonParam = JsonConvert.SerializeObject(values);
117
-            //序列化参数
113
+          
118 114
             string jsonParam = "access_token=" + token + "&paras=" + paras.ToJson();
119 115
            var responseString = HttpMethods.HttpPost("http://59.227.104.19:8000/share/submit_dept_crnt_status", jsonParam);
120 116
 
121
-            //Push jo =JsonConvert.DeserializeObject<Push>(responseString);
122
-            // if (jo .code =="0")
123
-            //{
124
-            //    string strSql = string.Format(@"INSERT INTO T_Sys_PushMsg ( [WorkOrderId], [Conent], [CreatTime], [Code], [Message], [Title], [ErrorObjs], [Remarks]) 
125
-            //       values   ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}') ;select @@IDENTITY ", "", jsonParam, DateTime.Now, jo.code, jo.message , "实时服务信息上报接口", "", "");
126
-            //    object objres = DbHelperSQL.GetSingle(strSql);
127
-            //}
128
-            // else
129
-            //{
130
-            //    string error = "";
131
-            //    if (jo .body .errorObjs  !=null && jo.body.errorObjs.Length >0)
132
-            //    {
133
-            //        foreach (var it in jo.body.errorObjs)
134
-            //        {
135
-            //            if (!string .IsNullOrEmpty (it.resturl ))
136
-            //            {
137
-            //                error += " 推送接口名称:" + it.resturl;
138
-            //            }
139
-            //            if (!string.IsNullOrEmpty(it.resturl))
140
-            //            {
141
-            //                error += " 推送标识:" + it.errorid;
142
-            //            }
143
-            //            if (!string.IsNullOrEmpty(it.resturl))
144
-            //            {
145
-            //                error += " 推送失败原因:" + it.errormsg;
146
-            //            }
147
-            //        }
148
-            //    }
149
-            //        string strSql = string.Format(@"INSERT INTO T_Sys_PushMsg ( [WorkOrderId], [Conent], [CreatTime], [Code], [Message], [Title], [ErrorObjs], [Remarks]) 
150
-            //       values   ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}') ;select @@IDENTITY ", "", jsonParam, DateTime.Now, jo.code, jo.message, "实时服务信息上报接口", error, "");
151
-            //    object objres = DbHelperSQL.GetSingle(strSql);
152
-
153
-                //}
154
-
117
+           
155 118
         }
156 119
    
157 120
         private string GetToken()

+ 52 - 19
CallCenterCommon/CallCenter.Utility/NPOI/NPOIHelper.cs

@@ -573,18 +573,21 @@ namespace CallCenter.Utility
573 573
                     str = dr["Oncedissatisfied"].ToString();
574 574
                     break;
575 575
                 case 16:
576
-                    str = dr["dissatisfied"].ToString();
576
+                    str = dr["twocedissatisfied"].ToString();
577 577
                     break;
578 578
                 case 17:
579
-                    str = dr["satisfiedrate"].ToString();
579
+                    str = dr["dissatisfied"].ToString();
580 580
                     break;
581 581
                 case 18:
582
-                    str = dr["satisfiedscore"].ToString();
582
+                    str = dr["satisfiedrate"].ToString();
583 583
                     break;
584 584
                 case 19:
585
-                    str = dr["total"].ToString();
585
+                    str = dr["satisfiedscore"].ToString();
586 586
                     break;
587 587
                 case 20:
588
+                    str = dr["total"].ToString();
589
+                    break;
590
+                case 21:
588 591
                     str = index.ToString();
589 592
                     break;
590 593
 
@@ -603,9 +606,14 @@ namespace CallCenter.Utility
603 606
             public int Oncapacity { set; get; }//接通量
604 607
             public int seatsCount { set; get; }
605 608
             public string seats { set; get; }
609
+            public int newIncomingCount { set; get; }//呼入量
610
+            public int newOncapacity { set; get; }//接通量
611
+            public string newseats { set; get; }
612
+            public int newseatsCount { set; get; }
613
+           
606 614
         }
607 615
         /// <summary>
608
-        /// 督办数据报表导出
616
+        /// 数据报表导出
609 617
         /// </summary>
610 618
         /// <param name="ds"></param>
611 619
         /// <returns></returns>
@@ -636,8 +644,9 @@ namespace CallCenter.Utility
636 644
                 sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 4));
637 645
                 
638 646
                 
639
-                string[] cols = {"时间段","来电量","接听量(呼入已接通)",
640
-                "坐席个数","坐席姓名" };
647
+                string[] cols = {"时间段","来电总量","接听总量(呼入已接通)","12345来电量","12345接听量(呼入已接通)",
648
+                "12345坐席个数","12345坐席姓名" ,
649
+                "专家坐席个数","专家坐席姓名" };
641 650
                 IRow irow4 = sheet.CreateRow(1);
642 651
                 int icolIndex = 0;
643 652
                 foreach (string dc in cols)
@@ -660,26 +669,50 @@ namespace CallCenter.Utility
660 669
                     cell.SetCellValue(dr.time );
661 670
                     cell.CellStyle = cellStylebt;
662 671
                     ICell cel2 = irow.CreateCell(1);
663
-                    cel2.SetCellValue(dr.IncomingCount );
672
+                    cel2.SetCellValue(dr.newIncomingCount );
664 673
                     cel2.CellStyle = cellStylebt;
665 674
                     ICell cel3 = irow.CreateCell(2);
666
-                    cel3.SetCellValue(dr.Oncapacity );
675
+                    cel3.SetCellValue(dr.newOncapacity  );
667 676
                     cel3.CellStyle = cellStylebt;
677
+
678
+                    ICell cel5 = irow.CreateCell(3);
679
+                    cel5.SetCellValue(dr.IncomingCount);
680
+                    cel5.CellStyle = cellStylebt;
681
+                    ICell cel6 = irow.CreateCell(4);
682
+                    cel6.SetCellValue(dr.Oncapacity);
683
+                    cel6.CellStyle = cellStylebt;
668 684
                     if (dr.time=="共计")
669 685
                     {
670
-                        ICell cel4 = irow.CreateCell(3);
686
+                        ICell cel4 = irow.CreateCell(5);
671 687
                         cel4.SetCellValue("");
672 688
                         cel4.CellStyle = cellStylebt;
673 689
                     }
674 690
                     else
675 691
                     {
676
-                        ICell cel4 = irow.CreateCell(3);
692
+                        ICell cel4 = irow.CreateCell(5);
677 693
                         cel4.SetCellValue(dr.seatsCount);
678 694
                         cel4.CellStyle = cellStylebt;
679 695
                     }
680
-                    ICell cel5 = irow.CreateCell(4);
681
-                    cel5.SetCellValue(dr.seats );
682
-                    cel5.CellStyle = cellStylebt;
696
+                    ICell cel8 = irow.CreateCell(6);
697
+                    cel8.SetCellValue(dr.seats );
698
+                    cel8.CellStyle = cellStylebt;
699
+
700
+                    if (dr.time == "共计")
701
+                    {
702
+                        ICell cel9 = irow.CreateCell(7);
703
+                        cel9.SetCellValue("");
704
+                        cel9.CellStyle = cellStylebt;
705
+                    }
706
+                    else
707
+                    {
708
+                        ICell cel9 = irow.CreateCell(7);
709
+                        cel9.SetCellValue(dr.newseatsCount);
710
+                        cel9.CellStyle = cellStylebt;
711
+                    }
712
+                    ICell cel0 = irow.CreateCell(8);
713
+                    cel0.SetCellValue(dr.newseats);
714
+                    cel0.CellStyle = cellStylebt;
715
+
683 716
                     irow.Height = 50*15;
684 717
                     iRowIndex++;
685 718
                 }
@@ -760,7 +793,7 @@ namespace CallCenter.Utility
760 793
                 string[] cols = {"序号","联动单位","承办件",
761 794
                 "承办率","得分(5分)","超期件","按时反馈率","得分(20分)",
762 795
                 "未果件","办结率","得分(10分)","退单件","有效回复率",
763
-                "得分(15分)","群众评议总数","一次不满意件","不满意件","满意率","得分(50分)","总分","排名"};
796
+                "得分(15分)","群众评议总数","一次不满意件","二次不满意件","不满意件","满意率","得分(50分)","总分","排名"};
764 797
                 IRow irow4 = sheet.CreateRow(4);
765 798
                 int icolIndex = 0;
766 799
                 foreach (string dc in cols)
@@ -778,7 +811,7 @@ namespace CallCenter.Utility
778 811
                     index++;
779 812
                     int iCellIndex = 0;
780 813
                     IRow irow = sheet.CreateRow(iRowIndex );
781
-                    for (int i = 0; i < 21; i++)
814
+                    for (int i = 0; i < 22; i++)
782 815
                     {
783 816
                         ICell cell = irow.CreateCell(iCellIndex);
784 817
                         cell.SetCellValue(GetCellValue(dr, index,i ));
@@ -811,7 +844,7 @@ namespace CallCenter.Utility
811 844
                     index++;
812 845
                     int iCellIndex = 0;
813 846
                     IRow irow = sheet.CreateRow(iRowIndex);
814
-                    for (int i = 0; i < 21; i++)
847
+                    for (int i = 0; i < 22; i++)
815 848
                     {
816 849
                         ICell cell = irow.CreateCell(iCellIndex);
817 850
                         cell.SetCellValue(GetCellValue(dr, index,i ));
@@ -843,7 +876,7 @@ namespace CallCenter.Utility
843 876
                     index++;
844 877
                     int iCellIndex = 0;
845 878
                     IRow irow = sheet.CreateRow(iRowIndex);
846
-                    for (int i = 0; i < 21; i++)
879
+                    for (int i = 0; i < 22; i++)
847 880
                     {
848 881
                         ICell cell = irow.CreateCell(iCellIndex);
849 882
                         cell.SetCellValue(GetCellValue(dr, index,i ));
@@ -875,7 +908,7 @@ namespace CallCenter.Utility
875 908
                     index++;
876 909
                     int iCellIndex = 0;
877 910
                     IRow irow = sheet.CreateRow(iRowIndex);
878
-                    for (int i = 0; i < 21; i++)
911
+                    for (int i = 0; i < 22; i++)
879 912
                     {
880 913
                         ICell cell = irow.CreateCell(iCellIndex);
881 914
                         cell.SetCellValue(GetCellValue(dr, index,i ));