duhongyu vor 4 Jahren
Ursprung
Commit
a3d63b21a5
23 geänderte Dateien mit 1758 neuen und 751 gelöschten Zeilen
  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
         {
205
         {
206
             return dal.UpdateCallback(callId);
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
         #endregion
215
         #endregion
209
 
216
 
210
         #region 根据来电号码获取电话记录
217
         #region 根据来电号码获取电话记录

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

50
         {
50
         {
51
             StringBuilder strSql = new StringBuilder();
51
             StringBuilder strSql = new StringBuilder();
52
             strSql.Append("insert into T_Bus_ToExamine(");
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
             strSql.Append(" values (");
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
             strSql.Append(";select @@IDENTITY");
56
             strSql.Append(";select @@IDENTITY");
57
             SqlParameter[] parameters = {
57
             SqlParameter[] parameters = {
58
                     new SqlParameter("@F_WorkOrderId", SqlDbType.NVarChar,50),
58
                     new SqlParameter("@F_WorkOrderId", SqlDbType.NVarChar,50),
64
                     new SqlParameter("@AuditUser", SqlDbType.NVarChar,50),
64
                     new SqlParameter("@AuditUser", SqlDbType.NVarChar,50),
65
                     new SqlParameter("@F_MainDeptId", SqlDbType.NVarChar,500),
65
                     new SqlParameter("@F_MainDeptId", SqlDbType.NVarChar,500),
66
                     new SqlParameter("@F_State", SqlDbType.Int,4) ,
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
             parameters[0].Value = model.F_WorkOrderId;
69
             parameters[0].Value = model.F_WorkOrderId;
69
             parameters[1].Value = model.F_AssignedId;
70
             parameters[1].Value = model.F_AssignedId;
70
             parameters[2].Value = model.F_CreatUser;
71
             parameters[2].Value = model.F_CreatUser;
75
             parameters[7].Value = model.F_MainDeptId;
76
             parameters[7].Value = model.F_MainDeptId;
76
             parameters[8].Value = model.F_State;
77
             parameters[8].Value = model.F_State;
77
             parameters[9].Value = model.F_LimitTime;
78
             parameters[9].Value = model.F_LimitTime;
79
+            parameters[10].Value = model.F_Content;
78
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
80
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
79
             if (obj == null)
81
             if (obj == null)
80
             {
82
             {
101
             strSql.Append("F_State=@F_State,");
103
             strSql.Append("F_State=@F_State,");
102
             strSql.Append("F_MainDeptId=@F_MainDeptId,");
104
             strSql.Append("F_MainDeptId=@F_MainDeptId,");
103
             strSql.Append("F_LimitTime=@F_LimitTime,");
105
             strSql.Append("F_LimitTime=@F_LimitTime,");
106
+            strSql.Append("F_Content=@F_Content,");
104
             strSql.Append("F_IsDelete=@F_IsDelete");
107
             strSql.Append("F_IsDelete=@F_IsDelete");
105
             strSql.Append(" where F_ID=@F_ID");
108
             strSql.Append(" where F_ID=@F_ID");
106
             SqlParameter[] parameters = {
109
             SqlParameter[] parameters = {
113
                          new SqlParameter("@F_State", SqlDbType.Int,4),
116
                          new SqlParameter("@F_State", SqlDbType.Int,4),
114
                           new SqlParameter("@F_MainDeptId", SqlDbType.NVarChar,500),
117
                           new SqlParameter("@F_MainDeptId", SqlDbType.NVarChar,500),
115
                            new SqlParameter("@F_LimitTime", SqlDbType.Int,4),
118
                            new SqlParameter("@F_LimitTime", SqlDbType.Int,4),
119
+                            new SqlParameter("@F_Content", SqlDbType.NVarChar,-1),
116
                     new SqlParameter("@F_IsDelete", SqlDbType.Int,4),
120
                     new SqlParameter("@F_IsDelete", SqlDbType.Int,4),
117
                     new SqlParameter("@F_ID", SqlDbType.Int,4)};
121
                     new SqlParameter("@F_ID", SqlDbType.Int,4)};
118
             parameters[0].Value = model.F_WorkOrderId;
122
             parameters[0].Value = model.F_WorkOrderId;
124
             parameters[6].Value = model.F_State;
128
             parameters[6].Value = model.F_State;
125
             parameters[7].Value = model.F_MainDeptId;
129
             parameters[7].Value = model.F_MainDeptId;
126
             parameters[8].Value = model.F_LimitTime;
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
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
135
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
131
             if (rows > 0)
136
             if (rows > 0)
189
         {
194
         {
190
 
195
 
191
             StringBuilder strSql = new StringBuilder();
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
             strSql.Append(" where F_ID=@F_ID");
198
             strSql.Append(" where F_ID=@F_ID");
194
             SqlParameter[] parameters = {
199
             SqlParameter[] parameters = {
195
                     new SqlParameter("@F_ID", SqlDbType.Int,4)
200
                     new SqlParameter("@F_ID", SqlDbType.Int,4)
286
                 {
291
                 {
287
                     model.F_MainDeptId = row["F_MainDeptId"].ToString();
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
             return model;
300
             return model;
297
         public DataSet GetList(string strWhere)
306
         public DataSet GetList(string strWhere)
298
         {
307
         {
299
             StringBuilder strSql = new StringBuilder();
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
             strSql.Append(" FROM T_Bus_ToExamine ");
310
             strSql.Append(" FROM T_Bus_ToExamine ");
302
             if (strWhere.Trim() != "")
311
             if (strWhere.Trim() != "")
303
             {
312
             {
317
             {
326
             {
318
                 strSql.Append(" top " + Top.ToString());
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
             strSql.Append(" FROM T_Bus_ToExamine ");
330
             strSql.Append(" FROM T_Bus_ToExamine ");
322
             if (strWhere.Trim() != "")
331
             if (strWhere.Trim() != "")
323
             {
332
             {

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

737
                 {
737
                 {
738
                     model.Callback = int.Parse(row["Callback"].ToString());
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
             return model;
746
             return model;
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
         #endregion
1005
         #endregion
978
 
1006
 
979
         #region 更新来电录音开始信息
1007
         #region 更新来电录音开始信息

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

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
         /// <summary>
406
         /// <summary>
352
         /// 添加工单信息
407
         /// 添加工单信息
353
         /// </summary>
408
         /// </summary>
370
                 string files = RequestString.GetFormString("files");
425
                 string files = RequestString.GetFormString("files");
371
                 int sourcearea = RequestString.GetInt("sourcearea", 0);
426
                 int sourcearea = RequestString.GetInt("sourcearea", 0);
372
                 string sourceaddress = RequestString.GetFormString("sourceaddress");
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
                 string splituser = RequestString.GetFormString("splituser");
430
                 string splituser = RequestString.GetFormString("splituser");
376
                 int type = RequestString.GetInt("type", 0);
431
                 int type = RequestString.GetInt("type", 0);
377
                
432
                
380
                 int business = RequestString.GetInt("business", 0); ;//
435
                 int business = RequestString.GetInt("business", 0); ;//
381
                 int township = RequestString.GetInt("township", 0);
436
                 int township = RequestString.GetInt("township", 0);
382
                 int village = RequestString.GetInt("village", 0);
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
                 using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
455
                 using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
386
                 {
456
                 {
387
                     #region 保存工单信息
457
                     #region 保存工单信息
971
                 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]) 
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
                    values   ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}') ;select @@IDENTITY ", model.F_WorkOrderId, strStm_Src_Dsc, Satisfaction, "", content, "", "", "", DateTime.Now, 3);
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
                 object objres = DbHelperSQL.GetSingle(strSql);
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
                 return Success("评议成功");
1070
                 return Success("评议成功");
975
             }
1071
             }
976
             else
1072
             else

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

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

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

12
 
12
 
13
 namespace CallCenterApi.Interface.Controllers
13
 namespace CallCenterApi.Interface.Controllers
14
 {
14
 {
15
-    //[Authority]
15
+    [Authority]
16
     public class SysConfigController : BaseController
16
     public class SysConfigController : BaseController
17
     {
17
     {
18
         private BLL.T_Sys_SystemConfig sysConfigBLL = new BLL.T_Sys_SystemConfig();
18
         private BLL.T_Sys_SystemConfig sysConfigBLL = new BLL.T_Sys_SystemConfig();
296
             Model.T_Sys_SeatPermissionConfig model = new Model.T_Sys_SeatPermissionConfig();
296
             Model.T_Sys_SeatPermissionConfig model = new Model.T_Sys_SeatPermissionConfig();
297
             BLL.T_Sys_SeatPermissionConfig bll = new BLL.T_Sys_SeatPermissionConfig();
297
             BLL.T_Sys_SeatPermissionConfig bll = new BLL.T_Sys_SeatPermissionConfig();
298
             model = bll.GetModel();
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
             string passHash = model.F_PassHash; //对密码进行加密
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
             string passHashNew = SaltAndHashHelper.GetHashSha256(maxSeat + securityKey, saltValue);
303
             string passHashNew = SaltAndHashHelper.GetHashSha256(maxSeat + securityKey, saltValue);
304
             return Success(passHashNew);
304
             return Success(passHashNew);
305
         }
305
         }
330
                 return false;
330
                 return false;
331
             }
331
             }
332
         }
332
         }
333
+         
334
+
335
+
333
 
336
 
334
         #endregion
337
         #endregion
335
 
338
 

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

1526
             int[] hwc = new int[days.Length]; int[] jcc = new int[days.Length];
1526
             int[] hwc = new int[days.Length]; int[] jcc = new int[days.Length];
1527
             for (int i = 0; i < days.Length; i++)
1527
             for (int i = 0; i < days.Length; i++)
1528
             {
1528
             {
1529
+               
1529
                 var drs = dthw.Select("day='" + days[i] + "'");
1530
                 var drs = dthw.Select("day='" + days[i] + "'");
1530
                 int hw = 0;int jt = 0;
1531
                 int hw = 0;int jt = 0;
1531
                 if (drs.Length > 0)
1532
                 if (drs.Length > 0)
1567
             }
1568
             }
1568
             foreach (DataRow it in dthw.Rows)
1569
             foreach (DataRow it in dthw.Rows)
1569
             {
1570
             {
1571
+               
1570
                if (t >0)
1572
                if (t >0)
1571
                 {
1573
                 {
1572
                     float v= Int32.Parse(it["count"].ToString());
1574
                     float v= Int32.Parse(it["count"].ToString());
1880
             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  ";
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
             DataTable dthw = DbHelperSQL.Query(sql).Tables[0];
1883
             DataTable dthw = DbHelperSQL.Query(sql).Tables[0];
1882
             List<AreaChildrenCount> list = new List<AreaChildrenCount>();
1884
             List<AreaChildrenCount> list = new List<AreaChildrenCount>();
1885
+         
1883
             foreach (DataRow dr in dthw.Rows )
1886
             foreach (DataRow dr in dthw.Rows )
1884
             {
1887
             {
1888
+             
1885
                 AreaChildrenCount areaChildrenCount = new AreaChildrenCount();
1889
                 AreaChildrenCount areaChildrenCount = new AreaChildrenCount();
1886
                 int type = 0;
1890
                 int type = 0;
1887
                 if (dr["Code"].ToString() == "1")
1891
                 if (dr["Code"].ToString() == "1")

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

251
 
251
 
252
         [Authority]
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
             Model.T_RepositoryInformation dModel = new Model.T_RepositoryInformation();
256
             Model.T_RepositoryInformation dModel = new Model.T_RepositoryInformation();
257
             if (string.IsNullOrEmpty(title))
257
             if (string.IsNullOrEmpty(title))

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

635
             var obj = DbHelperSQL.RunProcedure("P_YSDuration", paras, "YSDuration");
635
             var obj = DbHelperSQL.RunProcedure("P_YSDuration", paras, "YSDuration");
636
             return Success("成功", obj);
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
                 int calloutcount = drsout.Length;
184
                 int calloutcount = drsout.Length;
185
                 int callwoutcount = drswout.Length;
185
                 int callwoutcount = drswout.Length;
186
                 string thsc = gettimes(dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' "), 0);
186
                 string thsc = gettimes(dt.Select("begintime >='" + t.ToString() + "' and begintime<'" + t.AddDays(1).ToString() + "' "), 0);
187
+               
187
                 string hrsc = gettimes(drsin, 0);
188
                 string hrsc = gettimes(drsin, 0);
188
                 string hcsc = gettimes(drsout, 0);
189
                 string hcsc = gettimes(drsout, 0);
189
                 string zlsc = gettimes(drswout, 1);
190
                 string zlsc = gettimes(drswout, 1);

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

92
 
92
 
93
             DateTime beginTime;
93
             DateTime beginTime;
94
             DateTime endTime;
94
             DateTime endTime;
95
-            string sql = "", sqll = "";
95
+            string sql = "";
96
 
96
 
97
             int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
97
             int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
98
             if (stime != null && stime != "")
98
             if (stime != null && stime != "")
108
 
108
 
109
             sql += " and DATEDIFF(d,BeginTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
109
             sql += " and DATEDIFF(d,BeginTime,'" + beginTime.ToString("yyyy-MM-dd HH:mm:ss") + "')<=0";
110
             sql += " and DATEDIFF(d,BeginTime,'" + endTime.ToString("yyyy-MM-dd HH:mm:ss") + "')>=0";
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
             int tcallincount = 0;
118
             int tcallincount = 0;
117
             int tcalloutcount = 0;
119
             int tcalloutcount = 0;
118
             int tcallinjtcount = 0;
120
             int tcallinjtcount = 0;
124
             for (DateTime t = beginTime; t <= endTime; t = t.AddDays(1))
126
             for (DateTime t = beginTime; t <= endTime; t = t.AddDays(1))
125
             {
127
             {
126
                 string key = t.ToString("yyyy.MM.dd");
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
                 tcallincount = tcallincount + callincount;
156
                 tcallincount = tcallincount + callincount;
143
                 tcalloutcount = tcalloutcount + calloutcount;
157
                 tcalloutcount = tcalloutcount + calloutcount;
146
                 //tlycount = tlycount + lycount;
160
                 //tlycount = tlycount + lycount;
147
                 tsrcount = tsrcount + srcount;
161
                 tsrcount = tsrcount + srcount;
148
                 tfqcount = tfqcount + fqcount;
162
                 tfqcount = tfqcount + fqcount;
149
-                tthsc = tthsc + double.Parse(thsc);
163
+                tthsc = tthsc + thsc;
150
 
164
 
151
                 DataRow drNew = dtNew.NewRow();
165
                 DataRow drNew = dtNew.NewRow();
152
 
166
 
159
                 drNew["主动放弃次数"] = fqcount;
173
                 drNew["主动放弃次数"] = fqcount;
160
                 drNew["电话骚扰次数"] = srcount;
174
                 drNew["电话骚扰次数"] = srcount;
161
                 drNew["正常呼出接听次数"] = callinhcjtcount;
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
                 else
178
                 else
165
                     drNew["平均呼入时间"] = "0";
179
                     drNew["平均呼入时间"] = "0";
166
 
180
 

Datei-Diff unterdrückt, da er zu groß ist
+ 78 - 42
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/WorkOrderReportController.cs


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

32
             string group = HttpUtility.UrlDecode(RequestString.GetQueryString("group"));
32
             string group = HttpUtility.UrlDecode(RequestString.GetQueryString("group"));
33
             int callback = RequestString.GetInt("callback", 0);
33
             int callback = RequestString.GetInt("callback", 0);
34
             int waitTime = RequestString.GetInt("waitTime", -1);
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
             int type = RequestString.GetInt("type", 0);
38
             int type = RequestString.GetInt("type", 0);
37
             int islike = RequestString.GetInt("islike", 1);
39
             int islike = RequestString.GetInt("islike", 1);
38
             int notconnected = RequestString.GetInt("notconnected", 0);
40
             int notconnected = RequestString.GetInt("notconnected", 0);
41
             int pageindex = 1;
43
             int pageindex = 1;
42
             string strpagesize = RequestString.GetQueryString("pagesize");
44
             string strpagesize = RequestString.GetQueryString("pagesize");
43
             int pagesize = 10;
45
             int pagesize = 10;
44
-
46
+            int Business = RequestString.GetInt("Business", -1);
45
             //if (roleid != 0)
47
             //if (roleid != 0)
46
             //{
48
             //{
47
             //    if (roleid == 1)
49
             //    if (roleid == 1)
49
             //        sql += " and UserCode='" + User.F_WorkNumber + "' ";
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
             if (type != 0)
61
             if (type != 0)
53
             {
62
             {
54
                 sql += " and F_CallInType = '" + type + "' ";
63
                 sql += " and F_CallInType = '" + type + "' ";
102
             }
111
             }
103
             if (waitTime>-1)
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
             if (callstate.Trim() != "")
128
             if (callstate.Trim() != "")
108
             {
129
             {
272
                             }
293
                             }
273
 
294
 
274
                             string lujing = path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
295
                             string lujing = path.Substring(path.IndexOf(':') + 1).Replace('\\', '/');
296
+                           
275
                             string wlpath = ym + lujing;
297
                             string wlpath = ym + lujing;
276
 
298
 
277
                             dr["FilePath"] = wlpath;
299
                             dr["FilePath"] = wlpath;
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
         public ActionResult GetNotconnectedList(string phone="")
360
         public ActionResult GetNotconnectedList(string phone="")
545
                 return Success("更新失败");
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
         /// <summary>
604
         /// <summary>
549
         /// 更新回拨
605
         /// 更新回拨
550
         /// </summary>
606
         /// </summary>

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

3
 using CallCenterApi.DB;
3
 using CallCenterApi.DB;
4
 using CallCenterApi.Interface.App_Start;
4
 using CallCenterApi.Interface.App_Start;
5
 using CallCenterApi.Interface.Controllers.Base;
5
 using CallCenterApi.Interface.Controllers.Base;
6
+using CallCenterApi.Interface.Controllers.Sms;
6
 using CallCenterApi.Model;
7
 using CallCenterApi.Model;
7
 using CallCenterAPI.WechatSDK;
8
 using CallCenterAPI.WechatSDK;
8
 using CallCenterAPI.WechatSDK.Models;
9
 using CallCenterAPI.WechatSDK.Models;
131
                 model.F_CreateTime = DateTime.Now;
132
                 model.F_CreateTime = DateTime.Now;
132
                 new BLL.T_Sys_Users().Add(model);
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
             return Success("成功", wld.UserInfo);
216
             return Success("成功", wld.UserInfo);
136
         }
217
         }
137
 
218
 
138
         /// <summary>
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
         /// </summary>
269
         /// </summary>
141
         /// <returns></returns>
270
         /// <returns></returns>

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

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"));
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
         public ActionResult zmhd10002()
3181
         public ActionResult zmhd10002()
3129
         {
3182
         {
3130
          
3183
          

Datei-Diff unterdrückt, da er zu groß ist
+ 1066 - 576
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderController.cs


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

46
 
46
 
47
         [Description("重办驳回")]
47
         [Description("重办驳回")]
48
         rejload =13,
48
         rejload =13,
49
-       
49
+      
50
     }
50
     }
51
 }
51
 }

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

88
             set;get;
88
             set;get;
89
         }
89
         }
90
         public int? F_LimitTime { set; get; }
90
         public int? F_LimitTime { set; get; }
91
+        public string F_Content { set; get; }
91
         #endregion Model
92
         #endregion Model
92
 
93
 
93
     }
94
     }

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

555
         public string PhoneType { set; get; }
555
         public string PhoneType { set; get; }
556
 
556
 
557
         public int? Callback { set; get; }
557
         public int? Callback { set; get; }
558
+        public int? Business { set; get; }
558
         #endregion Model
559
         #endregion Model
559
 
560
 
560
     }
561
     }

Datei-Diff unterdrückt, da er zu groß ist
+ 38 - 29
CallCenterCommon/CallCenter.QuartzService/SatisfactionClose.cs


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

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
         private void submit_dept_crnt_status(object sender, EventArgs e)
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
             string token = GetToken();
63
             string token = GetToken();
64
            
64
            
65
             paras paras = new paras();
65
             paras paras = new paras();
110
 
110
 
111
             paras.TDY_TELRATE = TDY_TELRATE;
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
             string jsonParam = "access_token=" + token + "&paras=" + paras.ToJson();
114
             string jsonParam = "access_token=" + token + "&paras=" + paras.ToJson();
119
            var responseString = HttpMethods.HttpPost("http://59.227.104.19:8000/share/submit_dept_crnt_status", jsonParam);
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
         private string GetToken()
120
         private string GetToken()

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

573
                     str = dr["Oncedissatisfied"].ToString();
573
                     str = dr["Oncedissatisfied"].ToString();
574
                     break;
574
                     break;
575
                 case 16:
575
                 case 16:
576
-                    str = dr["dissatisfied"].ToString();
576
+                    str = dr["twocedissatisfied"].ToString();
577
                     break;
577
                     break;
578
                 case 17:
578
                 case 17:
579
-                    str = dr["satisfiedrate"].ToString();
579
+                    str = dr["dissatisfied"].ToString();
580
                     break;
580
                     break;
581
                 case 18:
581
                 case 18:
582
-                    str = dr["satisfiedscore"].ToString();
582
+                    str = dr["satisfiedrate"].ToString();
583
                     break;
583
                     break;
584
                 case 19:
584
                 case 19:
585
-                    str = dr["total"].ToString();
585
+                    str = dr["satisfiedscore"].ToString();
586
                     break;
586
                     break;
587
                 case 20:
587
                 case 20:
588
+                    str = dr["total"].ToString();
589
+                    break;
590
+                case 21:
588
                     str = index.ToString();
591
                     str = index.ToString();
589
                     break;
592
                     break;
590
 
593
 
603
             public int Oncapacity { set; get; }//接通量
606
             public int Oncapacity { set; get; }//接通量
604
             public int seatsCount { set; get; }
607
             public int seatsCount { set; get; }
605
             public string seats { set; get; }
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
         /// <summary>
615
         /// <summary>
608
-        /// 督办数据报表导出
616
+        /// 数据报表导出
609
         /// </summary>
617
         /// </summary>
610
         /// <param name="ds"></param>
618
         /// <param name="ds"></param>
611
         /// <returns></returns>
619
         /// <returns></returns>
636
                 sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 4));
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
                 IRow irow4 = sheet.CreateRow(1);
650
                 IRow irow4 = sheet.CreateRow(1);
642
                 int icolIndex = 0;
651
                 int icolIndex = 0;
643
                 foreach (string dc in cols)
652
                 foreach (string dc in cols)
660
                     cell.SetCellValue(dr.time );
669
                     cell.SetCellValue(dr.time );
661
                     cell.CellStyle = cellStylebt;
670
                     cell.CellStyle = cellStylebt;
662
                     ICell cel2 = irow.CreateCell(1);
671
                     ICell cel2 = irow.CreateCell(1);
663
-                    cel2.SetCellValue(dr.IncomingCount );
672
+                    cel2.SetCellValue(dr.newIncomingCount );
664
                     cel2.CellStyle = cellStylebt;
673
                     cel2.CellStyle = cellStylebt;
665
                     ICell cel3 = irow.CreateCell(2);
674
                     ICell cel3 = irow.CreateCell(2);
666
-                    cel3.SetCellValue(dr.Oncapacity );
675
+                    cel3.SetCellValue(dr.newOncapacity  );
667
                     cel3.CellStyle = cellStylebt;
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
                     if (dr.time=="共计")
684
                     if (dr.time=="共计")
669
                     {
685
                     {
670
-                        ICell cel4 = irow.CreateCell(3);
686
+                        ICell cel4 = irow.CreateCell(5);
671
                         cel4.SetCellValue("");
687
                         cel4.SetCellValue("");
672
                         cel4.CellStyle = cellStylebt;
688
                         cel4.CellStyle = cellStylebt;
673
                     }
689
                     }
674
                     else
690
                     else
675
                     {
691
                     {
676
-                        ICell cel4 = irow.CreateCell(3);
692
+                        ICell cel4 = irow.CreateCell(5);
677
                         cel4.SetCellValue(dr.seatsCount);
693
                         cel4.SetCellValue(dr.seatsCount);
678
                         cel4.CellStyle = cellStylebt;
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
                     irow.Height = 50*15;
716
                     irow.Height = 50*15;
684
                     iRowIndex++;
717
                     iRowIndex++;
685
                 }
718
                 }
760
                 string[] cols = {"序号","联动单位","承办件",
793
                 string[] cols = {"序号","联动单位","承办件",
761
                 "承办率","得分(5分)","超期件","按时反馈率","得分(20分)",
794
                 "承办率","得分(5分)","超期件","按时反馈率","得分(20分)",
762
                 "未果件","办结率","得分(10分)","退单件","有效回复率",
795
                 "未果件","办结率","得分(10分)","退单件","有效回复率",
763
-                "得分(15分)","群众评议总数","一次不满意件","不满意件","满意率","得分(50分)","总分","排名"};
796
+                "得分(15分)","群众评议总数","一次不满意件","二次不满意件","不满意件","满意率","得分(50分)","总分","排名"};
764
                 IRow irow4 = sheet.CreateRow(4);
797
                 IRow irow4 = sheet.CreateRow(4);
765
                 int icolIndex = 0;
798
                 int icolIndex = 0;
766
                 foreach (string dc in cols)
799
                 foreach (string dc in cols)
778
                     index++;
811
                     index++;
779
                     int iCellIndex = 0;
812
                     int iCellIndex = 0;
780
                     IRow irow = sheet.CreateRow(iRowIndex );
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
                         ICell cell = irow.CreateCell(iCellIndex);
816
                         ICell cell = irow.CreateCell(iCellIndex);
784
                         cell.SetCellValue(GetCellValue(dr, index,i ));
817
                         cell.SetCellValue(GetCellValue(dr, index,i ));
811
                     index++;
844
                     index++;
812
                     int iCellIndex = 0;
845
                     int iCellIndex = 0;
813
                     IRow irow = sheet.CreateRow(iRowIndex);
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
                         ICell cell = irow.CreateCell(iCellIndex);
849
                         ICell cell = irow.CreateCell(iCellIndex);
817
                         cell.SetCellValue(GetCellValue(dr, index,i ));
850
                         cell.SetCellValue(GetCellValue(dr, index,i ));
843
                     index++;
876
                     index++;
844
                     int iCellIndex = 0;
877
                     int iCellIndex = 0;
845
                     IRow irow = sheet.CreateRow(iRowIndex);
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
                         ICell cell = irow.CreateCell(iCellIndex);
881
                         ICell cell = irow.CreateCell(iCellIndex);
849
                         cell.SetCellValue(GetCellValue(dr, index,i ));
882
                         cell.SetCellValue(GetCellValue(dr, index,i ));
875
                     index++;
908
                     index++;
876
                     int iCellIndex = 0;
909
                     int iCellIndex = 0;
877
                     IRow irow = sheet.CreateRow(iRowIndex);
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
                         ICell cell = irow.CreateCell(iCellIndex);
913
                         ICell cell = irow.CreateCell(iCellIndex);
881
                         cell.SetCellValue(GetCellValue(dr, index,i ));
914
                         cell.SetCellValue(GetCellValue(dr, index,i ));