Browse Source

工单修改

duhongyu 6 years ago
parent
commit
058cf03943

+ 414 - 103
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderNewController.cs

@@ -1,11 +1,14 @@
1 1
 using CallCenter.Utility;
2
+using CallCenterApi.Common;
2 3
 using CallCenterApi.DB;
3 4
 using CallCenterApi.Interface.Controllers.Base;
4 5
 using CallCenterApi.Interface.Models.Enum;
5 6
 using CallCenterApi.Interface.Models.Input;
7
+using CallCenterApi.Model;
6 8
 using System;
7 9
 using System.Collections.Generic;
8 10
 using System.Data;
11
+using System.IO;
9 12
 using System.Linq;
10 13
 using System.Text.RegularExpressions;
11 14
 using System.Web;
@@ -30,7 +33,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
30 33
         /// </summary>
31 34
         /// <returns></returns>
32 35
         public ActionResult GetList(string code, string cusname, string cusphone, string companyname, string province, string city,
33
-            string country, string township, string touser, int source=0,int type = 0, int state=0, int pageindex = 1,int pagesize = 10)
36
+            string country, string township, string touser, int source=0,int type = 0, int state=-1, int pageindex = 1,int pagesize = 10)
34 37
         {
35 38
            
36 39
               int userId = CurrentUser.UserData.F_UserId;
@@ -75,7 +78,8 @@ namespace CallCenterApi.Interface.Controllers.workorder
75 78
                         {
76 79
                             uwhere = "";
77 80
                         }
78
-                        sql += $" and F_State=" + (int)EnumWorkOrderState.neworder + " " + uwhere;
81
+                        sql += $" and F_State in(" + (int)EnumWorkOrderState.neworder + "," + (int)EnumWorkOrderState.reassign +")"+ " " + uwhere;
82
+                    //    sql +=  "and T_Wo_WorkOrder.F_ID in (" + GetBackWorkOrderID(ua.F_UserCode) + ") ";
79 83
                         break;
80 84
                     case 1://待接单的
81 85
                       if (GetDJDWorkOrderID(ua.F_UserCode)!="")
@@ -234,6 +238,18 @@ namespace CallCenterApi.Interface.Controllers.workorder
234 238
 
235 239
         }
236 240
         /// <summary>
241
+        /// 获取异常
242
+        /// </summary>
243
+        /// <param name="user"></param>
244
+        /// <returns></returns>
245
+        public string GetBackWorkOrderID(string user)
246
+        {
247
+            string str = string.Empty;
248
+            str = "select F_WoID from T_Wo_WorkOrderItem_New where F_NextUser='" + user + "' " + " and  F_WoState=" + (int)EnumWorkOrderState.reback + " " + " and isnull(F_IsUsed,'0')='0' "; ;
249
+              
250
+            return str;
251
+        }
252
+        /// <summary>
237 253
         /// 获取我参与的工单编号
238 254
         /// </summary>
239 255
         /// <param name="user"></param>
@@ -334,7 +350,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
334 350
                     sql += " and F_IsDelete=0";
335 351
                     list = workOrder.GetModelList(sql);
336 352
                 }
337
-                var itemlasts = itembll.GetModelList("  F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID=" + id + " ");
353
+                var itemlasts = itembll.GetModelList("  F_WoID=" + +id + " ");
338 354
 
339 355
                 if (list.Count > 0)
340 356
                 {
@@ -366,10 +382,45 @@ namespace CallCenterApi.Interface.Controllers.workorder
366 382
             }
367 383
         }
368 384
         /// <summary>
385
+        /// 查询工单记录列表
386
+        /// </summary>
387
+        /// <param name="id"></param>
388
+        /// <param name="type"></param>
389
+        /// <returns></returns>
390
+        public ActionResult GetItemList(int id, int type=1)
391
+        {
392
+            int userId = CurrentUser.UserData.F_UserId;
393
+            if (userId != 0)
394
+            {
395
+                  if (id <=0)
396
+                    return Error("请输入正确的id");
397
+                var itemlasts = itembll.GetModelList("  F_ItemType=" + type + " and  F_WoID=" + id + " ");
398
+                if (itemlasts != null)
399
+                {
400
+                        var obj = new
401
+                        {
402
+                            state = "success",
403
+                            message = "成功",
404
+                            rows = itemlasts,
405
+                            total = itemlasts.Count,
406
+                        };
407
+                        return Content(obj.ToJson());
408
+                }
409
+                else
410
+                {
411
+                    return Error("暂无工单记录");
412
+                }
413
+            }
414
+            {
415
+                return Error("无操作权限!");
416
+            }
417
+
418
+        }
419
+        /// <summary>
369 420
         ///综合查询列表
370 421
         /// </summary>
371 422
         public ActionResult GetComprehensive(string code, string cusname, string cusphone, string companyname, string province, string city,
372
-            string country, string township, string touser, int source = 0, int type = 0, int pageindex = 1, int pagesize = 10)
423
+            string country, string township, string touser, int source = 0,int state=-1, int type = 0, int pageindex = 1, int pagesize = 10)
373 424
         {
374 425
             int userId = CurrentUser.UserData.F_UserId;
375 426
             if (userId != 0)
@@ -379,8 +430,8 @@ namespace CallCenterApi.Interface.Controllers.workorder
379 430
                 #region 筛选条件
380 431
                 if (type > 0 && type < 4)//工单类型
381 432
                     sql += $" and F_Type=" + type;
382
-            //    if (state >= 0)//工单状态
383
-           //         sql += $" and F_State=" + state;
433
+              if (state >= 0)//工单状态
434
+                   sql += $" and F_State=" + state;
384 435
                 if (source > 0)//工单来源
385 436
                     sql += $" and F_Source=" + source;
386 437
                 if (!string.IsNullOrWhiteSpace(touser))//参与人
@@ -405,53 +456,15 @@ namespace CallCenterApi.Interface.Controllers.workorder
405 456
                 Model.T_Sys_RoleInfo ro = rolebll.GetModel(ua.F_RoleId);
406 457
                 if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "YWY")
407 458
                 {
408
-                    sql +=  " and F_DealBy = '" + ua.F_UserCode + "' ";
409
-                }
410
-                sql += " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + ")";
411
-                sql += $" and F_IsOver=" + 1;
412
-                #endregion
413
-                int recordCount = 0;
414
-                if (!string.IsNullOrWhiteSpace(sql))
415
-                {
416
-
417
-                    dt = BLL.PagerBLL.GetListPager(
418
-                        "T_Wo_WorkOrder",
419
-                        "F_ID",
420
-                        "*",
421
-                        sql,
422
-                        "ORDER BY T_Wo_WorkOrder.F_ID desc",
423
-                        pagesize,
424
-                        pageindex,
425
-                        true,
426
-                        out recordCount);
427
-                }
428
-                int total = 0;
429
-                List<long> woid = new List<long>();
430
-                List<Model.T_Wo_WorkOrder> modlelist = new BLL.T_Wo_WorkOrder().DataTableToList(dt);
431
-                List<Model.T_Wo_WorkOrder> list = new List<Model.T_Wo_WorkOrder>();
432
-             
433
-                if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "YWY" )
434
-                {
435
-                    if (modlelist.Count > 0)
436
-                    {
437
-                        foreach (var it in modlelist)
438
-                        {
439
-                            if (it.F_DealBy == ua.F_UserCode)
440
-                            {
441
-                                    list.Add(it);
442
-                                    total++;
443
-                            }
444
-                        }
445
-                    }
459
+                    sql += " and F_DealBy = '" + ua.F_UserCode + "' ";
446 460
                 }
447 461
                 else if (ro.F_RoleCode == "DQJL" || ro.F_RoleCode == "FGSJL" || ro.F_RoleCode == "BLRY" || ro.F_RoleCode == "ZG")
448 462
                 {
449
-                    List<int> detpid = new List<int>();
463
+                    string detpid = "";
450 464
                     var deparmentlist = new List<Model.T_Sys_Department>();
451 465
                     Model.T_Sys_Department dModel = departmentBLL.GetModel(ua.F_DeptId);
452 466
                     if (dModel != null)
453 467
                     {
454
-
455 468
                         if (dModel.F_Layer == 1)
456 469
                         {
457 470
                             deparmentlist = new BLL.T_Sys_Department().GetModelList(" F_State=1 and F_Layer=" + 2 + " and F_ParentId=" + dModel.F_DeptId);
@@ -459,43 +472,18 @@ namespace CallCenterApi.Interface.Controllers.workorder
459 472
                             {
460 473
                                 foreach (var it in deparmentlist)
461 474
                                 {
462
-                                    detpid.Add(it.F_DeptId);
463
-
464
-                                }
465
-                            }
466
-                        }
467
-                        detpid.Add(dModel.F_DeptId);
468
-                        var itemlast = itembll.GetModelList(" isnull(F_IsUsed,'0')='0' " + " ");
469
-                        if (itemlast.Count > 0)
470
-                        {
471
-                            foreach (var it in itemlast)
472
-                            {
473
-                                for (int i = 0; i < detpid.Count; i++)
474
-                                {
475
-                                    if (it.F_NextDept == detpid[i])
475
+                                    if (detpid != "")
476 476
                                     {
477
-                                        woid.Add(it.F_WoID);
477
+                                        detpid += "," + it.F_DeptId;
478 478
                                     }
479 479
                                 }
480 480
                             }
481 481
                         }
482
-                        if (modlelist.Count > 0 && woid.Count > 0)
482
+                        else
483 483
                         {
484
-                            foreach (var it in modlelist)
485
-                            {
486
-                                for (int i = 0; i < woid.Count; i++)
487
-                                {
488
-                                    if (it.F_ID == woid[i])
489
-                                    {
490
-                                        if (it.F_IsOver == 1)
491
-                                        {
492
-                                            list.Add(it);
493
-                                            total++;
494
-                                        }
495
-                                    }
496
-                                }
497
-                            }
484
+                            detpid = ua.F_DeptId.ToString();
498 485
                         }
486
+                        sql += $"  and T_Wo_WorkOrder.F_ID in ( " + GetDeptWorkOrderID(detpid) + ") ";
499 487
 
500 488
                     }
501 489
                     else
@@ -503,37 +491,38 @@ namespace CallCenterApi.Interface.Controllers.workorder
503 491
                         return Error("加载失败");
504 492
                     }
505 493
                 }
506
-                else if (ro.F_RoleCode == "QTJS")
507
-                {
508
-                    return Error("无操作权限!");
509
-                }
510
-                else
494
+                #endregion
495
+                int recordCount = 0;
496
+                if (!string.IsNullOrWhiteSpace(sql))
511 497
                 {
512
-                    if (modlelist.Count > 0)
513
-                    {
514
-                        foreach (var it in modlelist)
515
-                        {
516
-                                list.Add(it);
517
-                                total++;
518
-                        }
519
-                    }
498
+
499
+                    dt = BLL.PagerBLL.GetListPager(
500
+                        "T_Wo_WorkOrder",
501
+                        "F_ID",
502
+                        "*",
503
+                        sql,
504
+                        "ORDER BY T_Wo_WorkOrder.F_ID desc",
505
+                        pagesize,
506
+                        pageindex,
507
+                        true,
508
+                        out recordCount);
520 509
                 }
521
-                if (list.Count > 0)
510
+                List<Model.T_Wo_WorkOrder> modlelist = new BLL.T_Wo_WorkOrder().DataTableToList(dt);
511
+                if (modlelist.Count > 0)
522 512
                 {
523
-                    List<WorkOrderNewInput> Input = modeltooip(list);
513
+                    List<WorkOrderNewInput> Input = modeltooip(modlelist);
524 514
                     var obj = new
525 515
                     {
526 516
                         state = "success",
527 517
                         message = "成功",
528 518
                         rows = Input,
529
-                        total = total
519
+                        total = recordCount
530 520
                     };
531 521
 
532 522
                     return Content(obj.ToJson()); ;
533 523
                 }
534 524
                 else
535 525
                 {
536
-
537 526
                     return Success("暂无工单"); ;
538 527
                 }
539 528
             }
@@ -666,9 +655,236 @@ namespace CallCenterApi.Interface.Controllers.workorder
666 655
         /// 工单导入
667 656
         /// 导入excel
668 657
         /// </summary>
669
-        public ActionResult ImportExcel()
658
+        public ActionResult ImportExcel(int type)
670 659
         {
671
-            return null;
660
+            string usercode = CurrentUser.UserData.F_UserCode;
661
+            string ip = DTRequest.GetIP();
662
+            if (!string.IsNullOrWhiteSpace(usercode))
663
+            {
664
+                HttpPostedFile _upFile = RequestString.GetFile("upFile");
665
+                if (_upFile != null)
666
+                {
667
+                    int headrow = 0;
668
+                    #region 上传文件
669
+                    string filepath = "";
670
+                    string datepath = DateTime.Now.ToString("yyyyMMddHHMMss");
671
+                    string aLastName = Path.GetExtension(_upFile.FileName);
672
+                    string oriname = Path.GetFileNameWithoutExtension(_upFile.FileName);
673
+                    if (aLastName != ".xls" && aLastName != ".xlsx")
674
+                    {
675
+                        return Error("文件类型错误,请选择Excel文件");
676
+                    }
677
+                    string newpath = datepath + "_" + _upFile.FileName;
678
+                    if (!Directory.Exists(Server.MapPath(this.Request.ApplicationPath + "\\ExcelData")))
679
+                    {
680
+                        Directory.CreateDirectory(Server.MapPath(this.Request.ApplicationPath + "\\ExcelData"));
681
+                    }
682
+                    filepath = this.Request.ApplicationPath + "/ExcelData/" + newpath;
683
+                    string PhysicalPath = Server.MapPath(filepath);
684
+                    _upFile.SaveAs(PhysicalPath);
685
+                    #endregion
686
+                    #region 添加附件日志
687
+                    Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
688
+                    model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
689
+                    model_T_Sys_Accessories.F_FileName = newpath;//附件名称
690
+                    model_T_Sys_Accessories.F_FileType = aLastName;//附件类型
691
+                    model_T_Sys_Accessories.F_FileUrl = filepath;//附件地址
692
+                    model_T_Sys_Accessories.F_UserCode = usercode;//上传人  
693
+                    model_T_Sys_Accessories.F_OriName = oriname;
694
+                    int fid = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
695
+                    #endregion
696
+                    NPOIHelper np = new NPOIHelper();
697
+                    DataTable dt = np.ExcelToTable(_upFile, headrow);
698
+                    string msg = string.Empty;
699
+                    if (dt == null || dt.Rows.Count == 0)
700
+                        return Error("文件没有数据");
701
+                    else
702
+                    {
703
+                        Model.T_Wo_WorkOrder dModel = new Model.T_Wo_WorkOrder();
704
+                        dModel.F_State =13 ;
705
+                        dModel.F_CreateBy = usercode;
706
+                        dModel.F_IsDelete = 0;
707
+                        dModel.F_Source = "4";
708
+                        dModel.F_Files = fid.ToString ();
709
+                        dModel.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");  //工单编号  
710
+                        foreach (DataRow dr in dt.Rows)
711
+                        {
712
+                            #region 数据入库
713
+                            headrow = headrow + 1;
714
+
715
+                            if (type>0)
716
+                            {
717
+                                #region 基本字段
718
+                                dModel.F_CusName = dr["客户姓名"].ToString();
719
+                                dModel.F_CusPhone = dr["客户电话"].ToString();
720
+                                dModel.F_CompanyName = dr["公司名称"].ToString();
721
+                                dModel.F_IncidentProvince = dr["省"].ToString();
722
+                                dModel.F_IncidentCity = dr["市"].ToString();
723
+                                dModel.F_IncidentCountry = dr["县"].ToString();
724
+                                dModel.F_IncidentTownship = dr["乡"].ToString();
725
+                                dModel.F_IncidentDetailed = dr["详细地址"].ToString();
726
+                                dModel.F_SalesBase = dr["销售基地"].ToString();
727
+                                dModel.F_Description = dr["问题描述"].ToString();
728
+                                dModel.F_QuestionType = dr["问题类别"].ToString();
729
+                                dModel.F_DealType = dr["处理方式"].ToString();
730
+                                dModel.F_DealBy = dr["处理人"].ToString();
731
+                                dModel.F_DealTime = DateTime.Parse(dr["处理时间"].ToString());
732
+                                dModel.F_DealContent = dr["处理内容"].ToString();
733
+                                dModel.F_DealResult = dr["处理结果"].ToString();
734
+                                dModel.F_DealReasons = dr["未处理原因"].ToString();
735
+                                dModel.F_CreateOn = DateTime.Parse(dr["创建时间"].ToString());
736
+                                #endregion
737
+                                #region
738
+                                if (type ==1)
739
+                                {
740
+                                    dModel.F_Type ="1";
741
+                                    dModel.F_ZX_ProName = dr["产品名称"].ToString();
742
+                                    dModel.F_ZX_Quantity = dr["问题数量"].ToString();
743
+                                    dModel.F_ZX_Area = dr["大区"].ToString();
744
+                                    dModel.F_ZX_Branch = dr["分公司"].ToString();
745
+                                }
746
+                                #region 
747
+                                else if (type == 2)
748
+                                {
749
+                                    dModel.F_Type = "2";
750
+                                  if (dr["客户编号"].ToString()!="")
751
+                                    {
752
+                                        if (valcode(dr["客户编号"].ToString(), 10))
753
+                                        {
754
+                                            dModel.F_CustomerID = int.Parse(dr["客户编号"].ToString());
755
+                                        }
756
+                                        else
757
+                                        {
758
+                                            msg = msg + "第" + headrow + "行,客户编号为10位纯数字,未导入<br>";
759
+                                            return Error(msg);
760
+                                        }
761
+                                    }
762
+                                    if (dr["物料编码"].ToString() != "")
763
+                                    {
764
+                                        if (valcode(dr["物料编码"].ToString(), 11))
765
+                                        {
766
+                                            dModel.F_ZX_Quantity = dr["物料编码"].ToString();
767
+                                        }
768
+                                        else
769
+                                        {
770
+                                            msg = msg + "第" + headrow + "行,物料编码为11位纯数字,未导入<br>";   
771
+                                            return Error(msg);
772
+                                        }
773
+                                    }
774
+                                    if (dr["生产批次号"].ToString() != "")
775
+                                    {
776
+                                        if (vaBatchNumber(dr["生产批次号"].ToString()))
777
+                                        {
778
+                                            dModel.F_BatchNumber = dr["生产批次号"].ToString();
779
+                                        }
780
+                                        else
781
+                                        {
782
+                                            msg = msg + "第" + headrow + "行,生产批次号错误,未导入<br>";
783
+                                            return Error(msg);
784
+                                        }
785
+                                    }
786
+
787
+                                    dModel.F_TS_Formula = dr["配方"].ToString();
788
+                                    dModel.F_TS_Category = dr["产品种类"].ToString();
789
+                                    dModel.F_TS_Quantity = dr["问题数量"].ToString();
790
+                                    dModel.F_TS_Level = dr["重要级别"].ToString();
791
+                                    dModel.F_SC_ProductBase = dr["生产基地"].ToString();
792
+                                    dModel.F_SC_QualityMonth = dr["超出质保期限"].ToString();
793
+                                    dModel.F_SC_PreliminaryOpinion = dr["初审意见"].ToString();
794
+                                    dModel.F_ZL_QualityEventLevel = dr["质量事件等级"].ToString();
795
+                                    dModel.F_ZL_ClaimAmount = dr["索赔金额"].ToString();
796
+                                    dModel.F_ZL_ResponsibleUnit = dr["责任单位"].ToString();
797
+                                    dModel.F_ZL_ApprovalOpinions = dr["审批意见"].ToString();
798
+                                    dModel.F_ZL_ApprovalDisagree = dr["不同意意见"].ToString();
799
+                                    dModel.F_ZL_CompensationMethod = dr["补偿方式"].ToString();
800
+                                    dModel.F_ZL_CompensationMoney = dr["补偿钱款"].ToString();
801
+                                    dModel.F_ZL_CResponsibleUnits = dr["对应责任单位"].ToString();
802
+                                    dModel.F_ZL_Fquantity = dr["确认实收数量"].ToString();
803
+                                    dModel.F_ZL_ImprovementRequirements = dr["改进要求"].ToString();
804
+                                    dModel.F_ZL_CApprovalNo = dr["对应审批工作流单号"].ToString();
805
+                                }
806
+                                #endregion
807
+                                #region 
808
+                                else if (type == 3)
809
+                                {
810
+                                    dModel.F_Type = "3";
811
+                                    if (dr["客户编号"].ToString() != "")
812
+                                    {
813
+                                        if (valcode(dr["客户编号"].ToString(), 10))
814
+                                        {
815
+                                            dModel.F_CustomerID = int.Parse(dr["客户编号"].ToString());
816
+                                        }
817
+                                        else
818
+                                        {
819
+                                            msg = msg + "第" + headrow + "行,客户编号为10位纯数字,未导入<br>";
820
+                                            return Error(msg);
821
+                                        }
822
+                                    }
823
+                                    if (dr["物料编码"].ToString() != "")
824
+                                    {
825
+                                        if (valcode(dr["物料编码"].ToString(), 11))
826
+                                        {
827
+                                            dModel.F_ZX_Quantity = dr["物料编码"].ToString();
828
+                                        }
829
+                                        else
830
+                                        {
831
+                                            msg = msg + "第" + headrow + "行,物料编码为11位纯数字,未导入<br>";
832
+                                            return Error(msg);
833
+                                        }
834
+                                    }
835
+                                    if (dr["生产批次号"].ToString() != "")
836
+                                    {
837
+                                        if (vaBatchNumber(dr["生产批次号"].ToString()))
838
+                                        {
839
+                                            dModel.F_BatchNumber = dr["生产批次号"].ToString();
840
+                                        }
841
+                                        else
842
+                                        {
843
+                                            msg = msg + "第" + headrow + "行,生产批次号错误,未导入<br>";
844
+                                            return Error(msg);
845
+                                        }
846
+                                    }
847
+                                    dModel.F_CJ_Time =DateTime .Parse ( dr["抽检时间"].ToString());
848
+                                    dModel.F_CJ_Level = dr["抽检级别"].ToString();
849
+                                    dModel.F_CJ_Unit = dr["抽检单位"].ToString();
850
+                                    dModel.F_CJ_TestUnit = dr["化验单位"].ToString();
851
+                                    dModel.F_CJ_Tonnage = dr["抽检吨数"].ToString();
852
+                                    dModel.F_CJ_BagNo = dr["抽检袋数"].ToString();
853
+                                    dModel.F_SC_ProductBase = dr["生产基地"].ToString();
854
+                                    dModel.F_SC_CJ_SpotResult = dr["抽检结果"].ToString();
855
+                                    dModel.F_SC_CJ_SelfResult = dr["自检结果"].ToString();
856
+                                    dModel.F_SC_CJ_ApprovalNo = dr["对应审批工作流单号"].ToString();
857
+                                    dModel.F_SC_CJ_ReturnAccount = dr["确认返账金额"].ToString();
858
+                                    dModel.F_ZL_CJ_IsRecord = dr["是否备案"].ToString();
859
+                                }
860
+                                #endregion
861
+                                #endregion
862
+                                var res = workOrder .Add(dModel);
863
+                                    if (res > 0)
864
+                                    {
865
+                                    addoptlog(usercode, ip, EnumOpt.import.ToString(), res.ToString(), "导入成功,导入的文件为:" + newpath + ",当前为第" + headrow + "行");
866
+                                    }
867
+                                    else
868
+                                    {
869
+
870
+                                        msg = msg + "第" + headrow + "行,导入失败<br>";
871
+                                    }
872
+                             
873
+                                
874
+                            }
875
+                            else
876
+                                msg = msg + "第" + headrow + "行,未选择工单类型,未导入<br>";
877
+                            #endregion
878
+                        }
879
+                        if (string.IsNullOrEmpty(msg))
880
+                            return Success("导入成功 ");
881
+                        else
882
+                            return Error(msg);
883
+                    }
884
+                }
885
+                return Error("数据源上传失败");
886
+            }
887
+            return Error("用户登录失败,请重新登录");
672 888
         }
673 889
         /// <summary>
674 890
         /// 更新工单
@@ -788,6 +1004,18 @@ namespace CallCenterApi.Interface.Controllers.workorder
788 1004
 
789 1005
         }
790 1006
         /// <summary>
1007
+        /// 操作日志
1008
+        /// </summary>
1009
+        /// <param name="usercode">操作人工号</param>
1010
+        /// <param name="ip">操作人IP</param>
1011
+        /// <param name="optcode">操作编号</param>
1012
+        /// <param name="optid">操作id</param>
1013
+        /// <param name="des">操作描述</param>
1014
+        private void addoptlog(string usercode, string ip, string optcode, string optid, string des)
1015
+        {
1016
+            new BLL.T_Sys_OperateLogs().AddOptLog("客户管理", usercode, ip, des, optcode, "T_Cus_CustomerBaseNew", optid);
1017
+        }
1018
+        /// <summary>
791 1019
         /// 添加工单
792 1020
         /// </summary>
793 1021
         /// <returns></returns>
@@ -800,7 +1028,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
800 1028
                 Model.T_Sys_UserAccount ua = sysUserAccountBll.GetModel(userId);
801 1029
 
802 1030
                 #region 添加验证判断
803
-                if (!(input.F_Type > 0 && input.F_Type < 4))
1031
+                if (!(input.F_Type> 0 && input.F_Type < 4))
804 1032
                     return Error("工单类型错误!");
805 1033
                 if (input .F_State ==2&&!vaBatchNumber(input .F_BatchNumber ))
806 1034
                     return Error("请输入正确的工单批次号!");
@@ -899,9 +1127,9 @@ namespace CallCenterApi.Interface.Controllers.workorder
899 1127
                 #region 添加验证判断
900 1128
                 if (input.F_ID <= 0)
901 1129
                     return Error("参数错误!");
902
-                if (!(input.F_Type > 0 && input.F_Type < 4))
1130
+                if (!(input.F_Type> 0 && input.F_Type < 4))
903 1131
                     return Error("工单类型错误!");
904
-                if (input.F_State == 2 && !vaBatchNumber(input.F_BatchNumber))
1132
+                if (input.F_State== 2 && !vaBatchNumber(input.F_BatchNumber))
905 1133
                     return Error("请输入正确的工单批次号!");
906 1134
                 if (input.F_Type == 1 || input.F_Type == 3)
907 1135
                 {
@@ -1025,8 +1253,84 @@ namespace CallCenterApi.Interface.Controllers.workorder
1025 1253
                     #region 基本字段
1026 1254
                     model.F_ID = model1[i].F_ID;//
1027 1255
                     model.F_WorkOrderCode = model1[i].F_WorkOrderCode;//工单编号
1028
-                    model.F_Source =int .Parse (  model1[i].F_Source );//工单来源
1029
-                    model.F_Type =int .Parse ( model1[i].F_Type ) ;//工单类型:咨询及需求、投诉、抽检、其他(其它手动输入别的点选)
1256
+                    #region
1257
+                    model.F_Source =int .Parse ( model1[i].F_Source);//工单来源
1258
+                    if (model1[i].F_Source=="1")
1259
+                    {
1260
+                        model.F_SourceName = "电话";
1261
+                    }
1262
+                    else if (model1[i].F_Source == "2")
1263
+                    {
1264
+                        model.F_SourceName = "微信业务员";
1265
+                    }
1266
+                    else if (model1[i].F_Source == "3")
1267
+                    {
1268
+                        model.F_SourceName = "微信客户";
1269
+                    }
1270
+                    else
1271
+                    {
1272
+                        model.F_SourceName = "官网";
1273
+                    }
1274
+
1275
+                    model.F_Type =int .Parse ( model1[i].F_Type);//工单来源
1276
+                    if (model1[i].F_Type == "1")
1277
+                    {
1278
+                        model.F_TypeName = "咨询";//工单类型:咨询及需求、投诉、抽检、其他(其它手动输入别的点选)
1279
+                    }
1280
+                    else if (model1[i].F_Type == "2")
1281
+                    {
1282
+                        model.F_TypeName = "投诉";//工单类型:咨询及需求、投诉、抽检、其他(其它手动输入别的点选)
1283
+                    }
1284
+                    else
1285
+                    {
1286
+                        model.F_TypeName = "抽检";//工单类型:咨询及需求、投诉、抽检、其他(其它手动输入别的点选)
1287
+                    }
1288
+                    model.F_State = model1[i].F_State;
1289
+                    if (model1[i].F_State ==0)//工单状态
1290
+                    {
1291
+                        model.F_StateName = "待指派";
1292
+                    }
1293
+                    else if (model1[i].F_State == 1)
1294
+                    {
1295
+                        model.F_StateName = "待接单";
1296
+                    }
1297
+                    else if (model1[i].F_State == 2)
1298
+                    {
1299
+                        model.F_StateName = "待处理";
1300
+                    }
1301
+                    else if (model1[i].F_State == 3)
1302
+                    {
1303
+                        model.F_StateName = "已退回";
1304
+                    }
1305
+                    else if (model1[i].F_State == 4)
1306
+                    {
1307
+                        model.F_StateName = "异常退回";
1308
+                    }
1309
+                    else if (model1[i].F_State == 5)
1310
+                    {
1311
+                        model.F_StateName = "处理中";
1312
+                    }
1313
+                    else if (model1[i].F_State == 6)
1314
+                    {
1315
+                        model.F_StateName = "待回访";
1316
+                    }
1317
+                    else if (model1[i].F_State == 7)
1318
+                    {
1319
+                        model.F_StateName = "待完结";
1320
+                    }
1321
+                    else if (model1[i].F_State == 10)
1322
+                    {
1323
+                        model.F_StateName = "已完结";
1324
+                    }
1325
+                    else if (model1[i].F_State == 11)
1326
+                    {
1327
+                        model.F_StateName = "已评价";
1328
+                    }
1329
+                    else
1330
+                    {
1331
+                        model.F_StateName = "已退回";
1332
+                    }
1333
+                    #endregion
1030 1334
                     model.F_CusName = model1[i].F_CusName;//客户姓名
1031 1335
                     model.F_CusPhone = model1[i].F_CusPhone;//客户电话
1032 1336
                     model.F_CompanyName = model1[i].F_CompanyName;//公司名称
@@ -1062,7 +1366,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
1062 1366
                     model.F_CJ_Tonnage = model1[i].F_CJ_Tonnage;//抽检-抽检吨数
1063 1367
                     model.F_CJ_BagNo = model1[i].F_CJ_BagNo;//抽检-抽检袋数
1064 1368
                     model.F_CJ_Outlay = model1[i].F_CJ_Outlay;//抽检-公关费用金额:单位元
1065
-                    model.F_State = model1[i].F_State;//工单状态
1369
+                   
1066 1370
                     model.F_DealBy = model1[i].F_DealBy;//处理人
1067 1371
                     model.F_DealTime = model1[i].F_DealTime;//处理时间
1068 1372
                     model.F_DealContent = model1[i].F_DealContent;//处理内容
@@ -1299,7 +1603,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
1299 1603
             model.F_CJ_Outlay = input.F_CJ_Outlay;//抽检-公关费用金额:单位元】
1300 1604
             if (type ==1)
1301 1605
             {
1302
-                model.F_State = input.F_State;//工单状态
1606
+                model.F_State =input.F_State;//工单状态
1303 1607
                 model.F_CreateOn = input.F_CreateOn;//添加时间
1304 1608
                 model.F_CreateBy = input.F_CreateBy;//添加人
1305 1609
                 model.F_UpdateBy = usercode;//修改人工号
@@ -1806,7 +2110,14 @@ namespace CallCenterApi.Interface.Controllers.workorder
1806 2110
             if (itemid > 0)
1807 2111
             {
1808 2112
                 #region 处理工单
1809
-                model.F_State  = wostate;
2113
+                if (model .F_State == (int)EnumWorkOrderState.assign) 
2114
+                {
2115
+                    model.F_State = (int)EnumWorkOrderState.reassign;
2116
+                }
2117
+                else
2118
+                {
2119
+                    model.F_State = wostate;
2120
+                }
1810 2121
                 workOrder  .Update(model);
1811 2122
                 #endregion
1812 2123
                 #region 推送消息

+ 4 - 0
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Enum/EnumWorkOrderState.cs

@@ -31,6 +31,10 @@ namespace CallCenterApi.Interface.Models.Enum
31 31
         finish=10,
32 32
         [Description("已评价")]
33 33
         evaluate,
34
+        [Description("已退回待指派")]
35
+        reassign,
36
+        [Description("导入工单")]
37
+        usedimport,
34 38
     }
35 39
     /// <summary>
36 40
     /// 工单记录类型枚举

+ 31 - 10
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Input/WorkOrderNewInput.cs

@@ -21,21 +21,35 @@ namespace CallCenterApi.Interface.Models.Input
21 21
             /// <summary>
22 22
             /// 工单来源:电话、微信业务员、微信客户、官网
23 23
             /// </summary>
24
-            public int    F_Source
24
+            public int      F_Source
25 25
             {
26 26
                 get; set;
27 27
             }
28
-            /// <summary>
29
-            /// 工单类型:咨询及需求、投诉、抽检、其他
30
-            /// </summary>
31
-            public int  F_Type
28
+        /// <summary>
29
+        /// 工单来源:电话、微信业务员、微信客户、官网
30
+        /// </summary>
31
+         public string F_SourceName
32
+         {
33
+            get; set;
34
+        }
35
+        /// <summary>
36
+        /// 工单类型:咨询及需求、投诉、抽检、其他
37
+        /// </summary>
38
+        public int      F_Type
32 39
             {
33 40
                 get; set;
34 41
             }
35
-            /// <summary>
36
-            /// 客户姓名
37
-            /// </summary>
38
-            public string F_CusName
42
+        /// <summary>
43
+        /// 工单类型:咨询及需求、投诉、抽检、其他
44
+        /// </summary>
45
+        public string F_TypeName
46
+        {
47
+            get; set;
48
+        }
49
+        /// <summary>
50
+        /// 客户姓名
51
+        /// </summary>
52
+        public string F_CusName
39 53
             {
40 54
                 get; set;
41 55
             }
@@ -328,7 +342,14 @@ namespace CallCenterApi.Interface.Models.Input
328 342
         /// <summary>
329 343
         /// 工单状态
330 344
         /// </summary>
331
-        public int? F_State
345
+        public int?  F_State
346
+        {
347
+            get; set;
348
+        }
349
+        /// <summary>
350
+        /// 工单状态
351
+        /// </summary>
352
+        public string F_StateName
332 353
         {
333 354
             get; set;
334 355
         }