liyuanyuan 3 年 前
コミット
e180ea67b8

+ 1 - 0
.gitignore

@@ -20,3 +20,4 @@ RMYY_CallCenter_Api/log/
20 20
 RMYY_CallCenter_Api/obj/
21 21
 RMYY_CallCenter_Api/Upload/Pic/
22 22
 packages/
23
+/RMYY_CallCenter_Api/Upload/Files/2022/09/01

+ 10 - 3
RMYY_CallCenter_Api.Dal/T_Call_CallRecords.cs

@@ -223,7 +223,8 @@ namespace RMYY_CallCenter_Api.Dal
223 223
             strSql.Append("F_CallInType=@F_CallInType,");
224 224
             strSql.Append("F_CallOutType=@F_CallOutType,");
225 225
             strSql.Append("PhoneType=@PhoneType,");
226
-            strSql.Append("TaskType=@TaskType");
226
+            strSql.Append("TaskType=@TaskType,");
227
+            strSql.Append("IsReply=@IsReply");
227 228
             strSql.Append(" where CallRecordsId=@CallRecordsId");
228 229
             SqlParameter[] parameters = {
229 230
                     new SqlParameter("@CallId", SqlDbType.VarChar,50),
@@ -278,7 +279,11 @@ namespace RMYY_CallCenter_Api.Dal
278 279
                     new SqlParameter("@F_CallOutType", SqlDbType.Int,4),
279 280
                     new SqlParameter("@PhoneType", SqlDbType.VarChar,50),
280 281
                     new SqlParameter("@TaskType", SqlDbType.VarChar,50),
281
-                    new SqlParameter("@CallRecordsId", SqlDbType.Int,4)};
282
+                    new SqlParameter("@IsReply", SqlDbType.Int,4),
283
+                    new SqlParameter("@CallRecordsId", SqlDbType.Int,4)
284
+
285
+
286
+            };
282 287
             parameters[0].Value = model.CallId;
283 288
             parameters[1].Value = model.CallNumber;
284 289
             parameters[2].Value = model.CusId;
@@ -331,7 +336,9 @@ namespace RMYY_CallCenter_Api.Dal
331 336
             parameters[49].Value = model.F_CallOutType;
332 337
             parameters[50].Value = model.PhoneType;
333 338
             parameters[51].Value = model.TaskType;
334
-            parameters[52].Value = model.CallRecordsId;
339
+            parameters[52].Value = model.IsReply;
340
+            
341
+            parameters[53].Value = model.CallRecordsId;
335 342
 
336 343
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
337 344
             if (rows > 0)

+ 1 - 1
RMYY_CallCenter_Api.Dal/T_Sys_UserAccount.cs

@@ -217,7 +217,7 @@ namespace RMYY_CallCenter_Api.Dal
217 217
         public bool DeleteList(string F_UserIdlist)
218 218
         {
219 219
             StringBuilder strSql = new StringBuilder();
220
-            strSql.Append("delete from T_Sys_UserAccount ");
220
+            strSql.Append("update    T_Sys_UserAccount  set F_DeleteFlag=1");
221 221
             strSql.Append(" where F_UserId in (" + F_UserIdlist + ")  ");
222 222
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
223 223
             if (rows > 0)

+ 9 - 0
RMYY_CallCenter_Api.Model/T_Call_CallRecords.cs

@@ -60,6 +60,9 @@ namespace RMYY_CallCenter_Api.Model
60 60
         private int? _f_callouttype;
61 61
         private int? _actionid = 1;
62 62
         private int? _actiontype = 0;
63
+
64
+        private int? _isreply = 0;
65
+
63 66
         private string _tasktype;
64 67
         /// <summary>
65 68
         /// 呼叫编号
@@ -471,6 +474,12 @@ namespace RMYY_CallCenter_Api.Model
471 474
         }
472 475
         public string WorkOrderId { set; get; }
473 476
         public string PhoneType { set; get; }
477
+
478
+        public int? IsReply
479
+        {
480
+            set { _isreply = value; }
481
+            get { return _isreply; }
482
+        }
474 483
         #endregion Model
475 484
 
476 485
     }

+ 11 - 2
RMYY_CallCenter_Api/Controllers/CallTel/CallrecordsController.cs

@@ -82,7 +82,7 @@ namespace RMYY_CallCenter_Api.Controllers.CallTel
82 82
                 var dtdc = DbHelperSQL.Query(" select   ROW_NUMBER()  OVER(ORDER BY CallRecordsId desc) 编号, CallNumber 电话号码,(case CallType when 0 then '呼入' else '呼出' end ) 呼叫方向,(case CallState when 0 then ( case  when CallType=0 and isnull(UserCode,'')='' then  '主动放弃' else '未接通'   end    ) else '已接通' end ) 呼叫状态,UserCode 坐席工号,dbo.GetUserName(UserCode) as 坐席姓名, "
83 83
                     + "BeginTime 开始时间,TalkStartTime 通话开始时间 ,TalkEndTime " +
84 84
                     " 通话结束时间 ,EndTime 结束时间 ,LongTime 通话时长 ,PhoneType " +
85
-                    "电话类别"
85
+                    "电话类别,"+ "case CallState when 0 then (case IsReply when 1 then '已回复' else '未回复' end) else '' end  是否回复  "
86 86
                    + " from T_Call_CallRecords  a WITH(NOLOCK)  where 1=1 " + sql+ "ORDER BY CallRecordsId desc").Tables[0];
87 87
                 var msg = new NPOIHelper().ExportToExcel("通话记录", dtdc);
88 88
                 if (msg == "")
@@ -100,7 +100,7 @@ namespace RMYY_CallCenter_Api.Controllers.CallTel
100 100
                 dt = Bll.PagerBll.GetListPager(
101 101
                     "T_Call_CallRecords WITH(NOLOCK)",
102 102
                     "CallRecordsId",
103
-                    "*,dbo.GetUserName(UserCode) as UserName, WorkOrderId,dbo.GetDictionaryName(F_CallInType) as TypeName",
103
+                    "*,dbo.GetUserName(UserCode) as UserName, WorkOrderId,dbo.GetDictionaryName(F_CallInType) as TypeName,case CallState when 0 then (case IsReply when 1 then '已回复' else '未回复' end) else '' end  showstate ",
104 104
                     sql,
105 105
                     "ORDER BY CallRecordsId desc",
106 106
                     pagesize,
@@ -274,5 +274,14 @@ namespace RMYY_CallCenter_Api.Controllers.CallTel
274 274
             }
275 275
 
276 276
         }
277
+
278
+        public ActionResult UpdateCallRecord(int id)
279
+        {
280
+            Bll.T_Call_CallRecords bll = new Bll.T_Call_CallRecords();
281
+            Model.T_Call_CallRecords model = bll.GetModel(id);
282
+            model.IsReply = 1;
283
+            bll.Update(model);
284
+            return Success("更新成功");
285
+        }
277 286
     }
278 287
 }

+ 2 - 0
RMYY_CallCenter_Api/Controllers/System/DepartmentController.cs

@@ -101,6 +101,8 @@ namespace RMYY_CallCenter_Api.Controllers.System
101 101
             {
102 102
                 item = data.FindAll(t => t.F_ParentId.ToString() == parentId);//data建议在调用此扩展方法前已经排序过
103 103
             }
104
+
105
+            item =  item.OrderBy(t => t.F_Sort).ToList();
104 106
             if (item.Count > 0)
105 107
             {
106 108
                 foreach (Model.T_Sys_Department entity in item)

+ 321 - 4
RMYY_CallCenter_Api/Controllers/System/UserAccountController.cs

@@ -1,8 +1,12 @@
1
-using RMYY_CallCenter_Api.Utility;
1
+using RMYY_CallCenter_Api.DB;
2
+using RMYY_CallCenter_Api.Utility;
2 3
 using System;
3 4
 using System.Collections.Generic;
4 5
 using System.Data;
6
+using System.Data.SqlClient;
7
+using System.IO;
5 8
 using System.Linq;
9
+using System.Text;
6 10
 using System.Web;
7 11
 using System.Web.Mvc;
8 12
 
@@ -19,10 +23,10 @@ namespace RMYY_CallCenter_Api.Controllers.System
19 23
         /// </summary>
20 24
         /// <returns></returns>
21 25
         //[HttpGet]
22
-        public ActionResult GetList(string key, int roleid = 0, int deptid = 0, int page = 1, int pagesize = 10)
26
+        public ActionResult GetList(string key,int isexport=0, int roleid = 0, int deptid = 0, int page = 1, int pagesize = 10)
23 27
         {
24 28
             DataTable dt = new DataTable();
25
-            string sql = string.Empty;
29
+            string sql = " and F_DeleteFlag=0";
26 30
 
27 31
             if (deptid > 0)
28 32
             {
@@ -39,6 +43,24 @@ namespace RMYY_CallCenter_Api.Controllers.System
39 43
             }
40 44
 
41 45
             int recordCount = 0;
46
+
47
+            if (isexport == 1)
48
+            {
49
+                string sql1 = " 1=1" + sql;
50
+                dt =DbHelperSQL.Query(" select F_UserName,F_UserCode ,[dbo].[GetDepName](F_DeptId) deptname,[F_Sex],[F_Telephone],[F_WorkPhone]  ,[F_HomeAddress]  ,[F_Job] from T_Sys_UserAccount where '" + sql1+"'").Tables[0];
51
+                NPOIHelper npoi = new NPOIHelper();
52
+                if (npoi.ExportToExcel("用户信息", dt, col()) == "")
53
+                {
54
+                    return Success("导出成功");
55
+                }
56
+                else
57
+                {
58
+                    return Error("导出失败");
59
+                }
60
+            }
61
+
62
+
63
+
42 64
             dt = Bll.PagerBll.GetListPager(
43 65
                                     "T_Sys_UserAccount a with(nolock)",
44 66
                                     "F_UserId",
@@ -58,7 +80,14 @@ namespace RMYY_CallCenter_Api.Controllers.System
58 80
 
59 81
             return Content(obj.ToJson());
60 82
         }
83
+        private string[] col()
84
+        {
85
+            string[] ccc = {
86
+                   "姓名","工号","部门","性别","电话","单位电话","家庭住址","职务" 
87
+            };
61 88
 
89
+            return ccc;
90
+        }
62 91
         /// <summary>
63 92
         /// 获取用户信息
64 93
         /// </summary>
@@ -204,7 +233,7 @@ namespace RMYY_CallCenter_Api.Controllers.System
204 233
         /// <param name="usercode"></param>
205 234
         /// <param name="pwd"></param>
206 235
         /// <returns></returns>
207
-        public ActionResult ResetPwd(string usercode = "", string pwd = "")
236
+        public ActionResult ResetPwd(string oldpwd, string usercode = "", string pwd = "")
208 237
         {
209 238
             if (User!=null)
210 239
             {
@@ -212,6 +241,13 @@ namespace RMYY_CallCenter_Api.Controllers.System
212 241
                     return Error("请输入密码");
213 242
                 var model = userbll.GetModel(usercode);
214 243
                 if (model == null) return Error("此用户不存在");
244
+
245
+                var oldmodel = userbll.GetModelList(" F_UserCode='" + usercode + "' and F_Password='" + oldpwd + "'");
246
+                if (oldmodel == null || oldmodel.Count == 0)
247
+                {
248
+                    return Error("旧密码错误");
249
+
250
+                }
215 251
                 model.F_Password = pwd;
216 252
                 if (userbll.Update(model))
217 253
                     return Success("重置密码成功");
@@ -330,5 +366,286 @@ namespace RMYY_CallCenter_Api.Controllers.System
330 366
             return Success("列表加载成功", result);
331 367
         }
332 368
 
369
+        // 导入号码读取填入数据库
370
+        int vfileid = 0;
371
+        public ActionResult  UserInput(int deptid)
372
+        {
373
+            DataTable dtres = new DataTable();
374
+            string errres = "";
375
+            int i = 0;
376
+            int count = 0;//导入成功的条数
377
+            string Excelsource = "";
378
+            int rcount = 0;
379
+            int ccount = 0;
380
+            StringBuilder strBuilder = null;
381
+         
382
+            Excelsource = uploadexcel();
383
+            #region 将文件中的数据导入数据库
384
+
385
+            try
386
+            {
387
+
388
+                //************************将文件中的数据导入数据库*************************//
389
+                DataSet dt = ReadEcxel(Excelsource, 0);
390
+                try
391
+                {
392
+                    List<Model.T_Sys_UserAccount> userlist = userbll.GetModelList(" F_DeleteFlag=0");
393
+
394
+                    if (dt != null && dt.Tables[0].Rows.Count != 0)
395
+                    {
396
+                        rcount = dt.Tables[0].Rows.Count;
397
+                        ccount = dt.Tables[0].Columns.Count;
398
+                        strBuilder = new StringBuilder();//用于如果导入失败,删除已经导入过的
399
+
400
+                        DataTable dtInputData = dt.Tables[0];//要导入的电话号码
401
+                        List<string> sqlList = new List<string>();
402
+                        List<string> lstsql = new List<string>();
403
+                        int ilns = dt.Tables[0].Columns.Count;
404
+                        DataSet dsnew = new DataSet();
405
+
406
+
407
+                        #region MyRegion
408
+                        using (SqlConnection coon = new SqlConnection(DbHelperSQL.connectionString))
409
+                        {
410
+                            try
411
+                            {
412
+                                coon.Open();
413
+                                int colscount = dtInputData.Columns.Count;//列数
414
+                                int rowscount = dtInputData.Rows.Count;//行数
415
+
416
+                               
417
+                                Model.T_Sys_UserAccount modelusermport = new Model.T_Sys_UserAccount();
418
+                                #region
419
+                                modelusermport.F_CreateUser = User.F_UserCode;
420
+
421
+                                modelusermport.F_CreateTime = DateTime.Now;
422
+                                modelusermport.F_DeleteFlag = 0;
423
+                                modelusermport.F_DeptId = deptid;
424
+                                modelusermport.F_Password = "e10adc3949ba59abbe56e057f20f883e";
425
+
426
+                                #endregion
427
+                                if (rowscount > 0)
428
+                                {
429
+                                    foreach (DataRow dr in dtInputData.Rows)
430
+                                    {
431
+                                        sqlList.Clear();
432
+                                        lstsql.Clear();
433
+                                        #region 导入表内容
434
+                                        //姓名	工号	电话	性别	单位电话	职务	家庭住址
435
+                                        modelusermport.F_UserName = dr[0].ToString();//姓名
436
+                                        string usercode= dr[1].ToString();//工号 
437
+                                        Model.T_Sys_UserAccount oldusermodel = userlist.Find(t => t.F_UserCode == usercode);
438
+                                        if (oldusermodel == null)
439
+                                        {
440
+                                            modelusermport.F_UserCode = dr[1].ToString();//工号 
441
+                                        }
442
+                                        else
443
+                                        {
444
+                                            continue;
445
+                                        }
446
+
447
+                                        modelusermport.F_Telephone= dr[2].ToString();//电话
448
+                                        modelusermport.F_Sex = dr[3].ToString();//性别
449
+
450
+                                        modelusermport.F_WorkPhone = dr[4].ToString();//单位电话 
451
+
452
+                                        modelusermport.F_Job = dr[5].ToString();//职务 
453
+                                        modelusermport.F_HomeAddress = dr[6].ToString();//家庭住址 
454
+                                       
455
+                                        #endregion
456
+                                        int rmw = userbll.Add(modelusermport);
457
+                                            if (rmw > 0)
458
+                                            {
459
+                                                count += 1;//导入成功,+1
460
+                                            }
461
+                                        
462
+
463
+                                    }
464
+                                    dtres = dtInputData;
465
+
466
+                                }
467
+                                else
468
+                                {
469
+                                    errres += "该文档的内容为空";
470
+                                }
471
+                            }
472
+                            catch (Exception ex)
473
+                            {
474
+                                if (coon.State == ConnectionState.Open)
475
+                                {
476
+                                    coon.Close();
477
+                                }
478
+                                i++;
479
+                                errres += i.ToString() + ".导入出现异常,共导入" + count + "条数据,请从第" + (count + 2).ToString() + "行开始导入;\n";
480
+                                if (strBuilder.Length > 0)
481
+                                {
482
+                                    errres += "重复的工号为:" + strBuilder.ToString() + "\n";
483
+                                }
484
+                            }
485
+                            finally
486
+                            {
487
+                                if (coon.State == ConnectionState.Open)
488
+                                {
489
+                                    coon.Close();
490
+                                }
491
+                            }
492
+
493
+
494
+                        }
495
+
496
+                        #endregion
497
+
498
+                    }
499
+                    else
500
+                    {
501
+                        i++;
502
+                        errres += i.ToString() + ".Excel中无数据;\n";
503
+                    }
504
+
505
+                }
506
+                catch
507
+                {
508
+                    i++;
509
+                    errres += i.ToString() + ".导入出现异常,导入失败;\n";
510
+                }
511
+                finally
512
+                {
513
+                    dt.Clear();
514
+                    dt.Dispose();
515
+                }
516
+
517
+            }
518
+            catch
519
+            {
520
+                errres += i.ToString() + ".Excel格式不正确,系统错误,导入失败;\n";
521
+            }
522
+
523
+            #endregion
524
+            if (errres != "")
525
+            {
526
+                return Error("导入失败!错误信息:" + errres);
527
+            }
528
+            else
529
+            {
530
+                string info = "本文件有" + rcount.ToString() + "行" + ccount.ToString() + "列数据";
531
+                return Success("导入成功!" + info, vfileid);
532
+            }
533
+        }
534
+
535
+        private string uploadexcel()
536
+        {
537
+            string Excelsource = "";
538
+            try
539
+            {
540
+               
541
+                HttpPostedFile _upfile = RequestString.GetFile("upFile");
542
+                if (_upfile != null)
543
+                {
544
+                    string imgPath = "";
545
+
546
+                    string newFileName = DateTime.Now.ToString("yyyyMMddHHmmss");
547
+                    newFileName = newFileName + "_" + _upfile.FileName;
548
+                    if (!Directory.Exists(Server.MapPath(this.Request.ApplicationPath + "\\ExcelData")))
549
+                    {
550
+                        Directory.CreateDirectory(Server.MapPath(this.Request.ApplicationPath + "\\ExcelData"));
551
+                    }
552
+
553
+                    imgPath = this.Request.ApplicationPath + "/ExcelData/" + newFileName.ToString();
554
+                    string PhysicalPath = Server.MapPath(imgPath);
555
+                    _upfile.SaveAs(PhysicalPath);
556
+
557
+                    Excelsource = Server.MapPath(this.Request.ApplicationPath + "\\ExcelData\\") + newFileName.ToString();
558
+
559
+                    Model.T_Sys_Accessories filesmodel = new Model.T_Sys_Accessories();
560
+                
561
+               
562
+                    filesmodel.F_FileName = newFileName;
563
+                 
564
+                    filesmodel.F_FileUrl = Excelsource;                   
565
+                   
566
+                    filesmodel.F_FileType = _upfile.FileName.Substring(_upfile.FileName.LastIndexOf('.') + 1);
567
+                    filesmodel.F_AddTime = DateTime.Now;
568
+                    filesmodel.F_UserCode = User.F_UserCode;
569
+                    Bll.T_Sys_Accessories bllfile = new Bll.T_Sys_Accessories();
570
+
571
+                      vfileid = bllfile.Add(filesmodel);
572
+                }
573
+            }
574
+            catch (Exception ex) { }
575
+            return Excelsource;
576
+        }
577
+
578
+
579
+        private DataSet ReadEcxel(string FileName, int Rows)
580
+        {
581
+            return ToDataTable(FileName);
582
+        }
583
+        private DataSet ToDataTable(string filePath)
584
+        {
585
+            DataSet ds = new DataSet();
586
+            DataTable dt = null;
587
+
588
+            try
589
+            {
590
+                FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
591
+
592
+                NPOI.SS.UserModel.IWorkbook book = null;
593
+                if (filePath.IndexOf(".xlsx") > 0) // 2007版本
594
+                    book = new NPOI.XSSF.UserModel.XSSFWorkbook(fs);
595
+                else if (filePath.IndexOf(".xls") > 0) // 2003版本
596
+                    book = new NPOI.HSSF.UserModel.HSSFWorkbook(fs);
597
+              
598
+
599
+                NPOI.SS.UserModel.ISheet sheet = book.GetSheetAt(0);
600
+
601
+
602
+                NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
603
+
604
+
605
+                int firstCellNum = row.FirstCellNum;
606
+                int lastCellNum = row.LastCellNum;
607
+                 
608
+
609
+                dt = new DataTable(sheet.SheetName);
610
+               
611
+                for (int i = firstCellNum; i < 12; i++)
612
+                {
613
+                    if (row.GetCell(i) != null)
614
+                    {
615
+                        dt.Columns.Add(row.GetCell(i).ToString() + i.ToString(), typeof(string));
616
+                    }
617
+                    else
618
+                    {
619
+                        dt.Columns.Add(i.ToString(), typeof(string));
620
+                    }
621
+                }
622
+
623
+                for (int i = 1; i <= sheet.LastRowNum; i++)
624
+                {
625
+                    if (sheet.GetRow(i).GetCell(1) != null && sheet.GetRow(i).GetCell(1).ToString() != "")
626
+                    {
627
+                        DataRow newRow = dt.Rows.Add();
628
+                        for (int j = firstCellNum; j < 12; j++)
629
+                        {
630
+                            if (sheet.GetRow(i).GetCell(j) != null)
631
+                            {
632
+                                newRow[j] = sheet.GetRow(i).GetCell(j).ToString();
633
+                            }
634
+                            else
635
+                            {
636
+                                newRow[j] = "";
637
+                            }
638
+                        }
639
+                    }
640
+                }
641
+
642
+                ds.Tables.Add(dt);
643
+            }
644
+            catch (Exception ex)
645
+            {
646
+                 
647
+            }
648
+            return ds;
649
+        }
333 650
     }
334 651
 }

+ 8 - 8
RMYY_CallCenter_Api/RMYY_CallCenter_Api.csproj

@@ -52,17 +52,17 @@
52 52
       <HintPath>..\packages\SharpZipLib.1.3.3\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
53 53
     </Reference>
54 54
     <Reference Include="Microsoft.CSharp" />
55
-    <Reference Include="NPOI, Version=2.5.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
56
-      <HintPath>..\packages\NPOI.2.5.6\lib\net45\NPOI.dll</HintPath>
55
+    <Reference Include="NPOI, Version=2.3.0.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
56
+      <HintPath>..\packages\NPOI.2.3.0\lib\net40\NPOI.dll</HintPath>
57 57
     </Reference>
58
-    <Reference Include="NPOI.OOXML, Version=2.5.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
59
-      <HintPath>..\packages\NPOI.2.5.6\lib\net45\NPOI.OOXML.dll</HintPath>
58
+    <Reference Include="NPOI.OOXML, Version=2.3.0.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
59
+      <HintPath>..\packages\NPOI.2.3.0\lib\net40\NPOI.OOXML.dll</HintPath>
60 60
     </Reference>
61
-    <Reference Include="NPOI.OpenXml4Net, Version=2.5.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
62
-      <HintPath>..\packages\NPOI.2.5.6\lib\net45\NPOI.OpenXml4Net.dll</HintPath>
61
+    <Reference Include="NPOI.OpenXml4Net, Version=2.3.0.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
62
+      <HintPath>..\packages\NPOI.2.3.0\lib\net40\NPOI.OpenXml4Net.dll</HintPath>
63 63
     </Reference>
64
-    <Reference Include="NPOI.OpenXmlFormats, Version=2.5.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
65
-      <HintPath>..\packages\NPOI.2.5.6\lib\net45\NPOI.OpenXmlFormats.dll</HintPath>
64
+    <Reference Include="NPOI.OpenXmlFormats, Version=2.3.0.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
65
+      <HintPath>..\packages\NPOI.2.3.0\lib\net40\NPOI.OpenXmlFormats.dll</HintPath>
66 66
     </Reference>
67 67
     <Reference Include="System" />
68 68
     <Reference Include="System.Data" />

+ 4 - 0
RMYY_CallCenter_Api/Web.config

@@ -64,6 +64,10 @@
64 64
         <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
65 65
         <bindingRedirect oldVersion="1.0.0.0-5.2.4.0" newVersion="5.2.4.0" />
66 66
       </dependentAssembly>
67
+      <dependentAssembly>
68
+        <assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral" />
69
+        <bindingRedirect oldVersion="0.0.0.0-1.3.3.11" newVersion="1.3.3.11" />
70
+      </dependentAssembly>
67 71
     </assemblyBinding>
68 72
   </runtime>
69 73
   <system.codedom>

+ 1 - 1
RMYY_CallCenter_Api/packages.config

@@ -14,7 +14,7 @@
14 14
   <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
15 15
   <package id="Modernizr" version="2.8.3" targetFramework="net45" />
16 16
   <package id="Newtonsoft.Json" version="11.0.1" targetFramework="net45" />
17
-  <package id="NPOI" version="2.5.6" targetFramework="net45" />
17
+  <package id="NPOI" version="2.3.0" targetFramework="net45" />
18 18
   <package id="Portable.BouncyCastle" version="1.8.9" targetFramework="net45" />
19 19
   <package id="SharpZipLib" version="1.3.3" targetFramework="net45" />
20 20
   <package id="WebGrease" version="1.6.0" targetFramework="net45" />