Bladeren bron

工单修改

duhongyu 6 jaren geleden
bovenliggende
commit
058cf03943

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

1
 using CallCenter.Utility;
1
 using CallCenter.Utility;
2
+using CallCenterApi.Common;
2
 using CallCenterApi.DB;
3
 using CallCenterApi.DB;
3
 using CallCenterApi.Interface.Controllers.Base;
4
 using CallCenterApi.Interface.Controllers.Base;
4
 using CallCenterApi.Interface.Models.Enum;
5
 using CallCenterApi.Interface.Models.Enum;
5
 using CallCenterApi.Interface.Models.Input;
6
 using CallCenterApi.Interface.Models.Input;
7
+using CallCenterApi.Model;
6
 using System;
8
 using System;
7
 using System.Collections.Generic;
9
 using System.Collections.Generic;
8
 using System.Data;
10
 using System.Data;
11
+using System.IO;
9
 using System.Linq;
12
 using System.Linq;
10
 using System.Text.RegularExpressions;
13
 using System.Text.RegularExpressions;
11
 using System.Web;
14
 using System.Web;
30
         /// </summary>
33
         /// </summary>
31
         /// <returns></returns>
34
         /// <returns></returns>
32
         public ActionResult GetList(string code, string cusname, string cusphone, string companyname, string province, string city,
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
               int userId = CurrentUser.UserData.F_UserId;
39
               int userId = CurrentUser.UserData.F_UserId;
75
                         {
78
                         {
76
                             uwhere = "";
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
                         break;
83
                         break;
80
                     case 1://待接单的
84
                     case 1://待接单的
81
                       if (GetDJDWorkOrderID(ua.F_UserCode)!="")
85
                       if (GetDJDWorkOrderID(ua.F_UserCode)!="")
234
 
238
 
235
         }
239
         }
236
         /// <summary>
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
         /// </summary>
254
         /// </summary>
239
         /// <param name="user"></param>
255
         /// <param name="user"></param>
334
                     sql += " and F_IsDelete=0";
350
                     sql += " and F_IsDelete=0";
335
                     list = workOrder.GetModelList(sql);
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
                 if (list.Count > 0)
355
                 if (list.Count > 0)
340
                 {
356
                 {
366
             }
382
             }
367
         }
383
         }
368
         /// <summary>
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
         /// </summary>
421
         /// </summary>
371
         public ActionResult GetComprehensive(string code, string cusname, string cusphone, string companyname, string province, string city,
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
             int userId = CurrentUser.UserData.F_UserId;
425
             int userId = CurrentUser.UserData.F_UserId;
375
             if (userId != 0)
426
             if (userId != 0)
379
                 #region 筛选条件
430
                 #region 筛选条件
380
                 if (type > 0 && type < 4)//工单类型
431
                 if (type > 0 && type < 4)//工单类型
381
                     sql += $" and F_Type=" + type;
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
                 if (source > 0)//工单来源
435
                 if (source > 0)//工单来源
385
                     sql += $" and F_Source=" + source;
436
                     sql += $" and F_Source=" + source;
386
                 if (!string.IsNullOrWhiteSpace(touser))//参与人
437
                 if (!string.IsNullOrWhiteSpace(touser))//参与人
405
                 Model.T_Sys_RoleInfo ro = rolebll.GetModel(ua.F_RoleId);
456
                 Model.T_Sys_RoleInfo ro = rolebll.GetModel(ua.F_RoleId);
406
                 if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "YWY")
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
                 else if (ro.F_RoleCode == "DQJL" || ro.F_RoleCode == "FGSJL" || ro.F_RoleCode == "BLRY" || ro.F_RoleCode == "ZG")
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
                     var deparmentlist = new List<Model.T_Sys_Department>();
464
                     var deparmentlist = new List<Model.T_Sys_Department>();
451
                     Model.T_Sys_Department dModel = departmentBLL.GetModel(ua.F_DeptId);
465
                     Model.T_Sys_Department dModel = departmentBLL.GetModel(ua.F_DeptId);
452
                     if (dModel != null)
466
                     if (dModel != null)
453
                     {
467
                     {
454
-
455
                         if (dModel.F_Layer == 1)
468
                         if (dModel.F_Layer == 1)
456
                         {
469
                         {
457
                             deparmentlist = new BLL.T_Sys_Department().GetModelList(" F_State=1 and F_Layer=" + 2 + " and F_ParentId=" + dModel.F_DeptId);
470
                             deparmentlist = new BLL.T_Sys_Department().GetModelList(" F_State=1 and F_Layer=" + 2 + " and F_ParentId=" + dModel.F_DeptId);
459
                             {
472
                             {
460
                                 foreach (var it in deparmentlist)
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
                     else
489
                     else
503
                         return Error("加载失败");
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
                     var obj = new
514
                     var obj = new
525
                     {
515
                     {
526
                         state = "success",
516
                         state = "success",
527
                         message = "成功",
517
                         message = "成功",
528
                         rows = Input,
518
                         rows = Input,
529
-                        total = total
519
+                        total = recordCount
530
                     };
520
                     };
531
 
521
 
532
                     return Content(obj.ToJson()); ;
522
                     return Content(obj.ToJson()); ;
533
                 }
523
                 }
534
                 else
524
                 else
535
                 {
525
                 {
536
-
537
                     return Success("暂无工单"); ;
526
                     return Success("暂无工单"); ;
538
                 }
527
                 }
539
             }
528
             }
666
         /// 工单导入
655
         /// 工单导入
667
         /// 导入excel
656
         /// 导入excel
668
         /// </summary>
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
         /// <summary>
889
         /// <summary>
674
         /// 更新工单
890
         /// 更新工单
788
 
1004
 
789
         }
1005
         }
790
         /// <summary>
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
         /// </summary>
1020
         /// </summary>
793
         /// <returns></returns>
1021
         /// <returns></returns>
800
                 Model.T_Sys_UserAccount ua = sysUserAccountBll.GetModel(userId);
1028
                 Model.T_Sys_UserAccount ua = sysUserAccountBll.GetModel(userId);
801
 
1029
 
802
                 #region 添加验证判断
1030
                 #region 添加验证判断
803
-                if (!(input.F_Type > 0 && input.F_Type < 4))
1031
+                if (!(input.F_Type> 0 && input.F_Type < 4))
804
                     return Error("工单类型错误!");
1032
                     return Error("工单类型错误!");
805
                 if (input .F_State ==2&&!vaBatchNumber(input .F_BatchNumber ))
1033
                 if (input .F_State ==2&&!vaBatchNumber(input .F_BatchNumber ))
806
                     return Error("请输入正确的工单批次号!");
1034
                     return Error("请输入正确的工单批次号!");
899
                 #region 添加验证判断
1127
                 #region 添加验证判断
900
                 if (input.F_ID <= 0)
1128
                 if (input.F_ID <= 0)
901
                     return Error("参数错误!");
1129
                     return Error("参数错误!");
902
-                if (!(input.F_Type > 0 && input.F_Type < 4))
1130
+                if (!(input.F_Type> 0 && input.F_Type < 4))
903
                     return Error("工单类型错误!");
1131
                     return Error("工单类型错误!");
904
-                if (input.F_State == 2 && !vaBatchNumber(input.F_BatchNumber))
1132
+                if (input.F_State== 2 && !vaBatchNumber(input.F_BatchNumber))
905
                     return Error("请输入正确的工单批次号!");
1133
                     return Error("请输入正确的工单批次号!");
906
                 if (input.F_Type == 1 || input.F_Type == 3)
1134
                 if (input.F_Type == 1 || input.F_Type == 3)
907
                 {
1135
                 {
1025
                     #region 基本字段
1253
                     #region 基本字段
1026
                     model.F_ID = model1[i].F_ID;//
1254
                     model.F_ID = model1[i].F_ID;//
1027
                     model.F_WorkOrderCode = model1[i].F_WorkOrderCode;//工单编号
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
                     model.F_CusName = model1[i].F_CusName;//客户姓名
1334
                     model.F_CusName = model1[i].F_CusName;//客户姓名
1031
                     model.F_CusPhone = model1[i].F_CusPhone;//客户电话
1335
                     model.F_CusPhone = model1[i].F_CusPhone;//客户电话
1032
                     model.F_CompanyName = model1[i].F_CompanyName;//公司名称
1336
                     model.F_CompanyName = model1[i].F_CompanyName;//公司名称
1062
                     model.F_CJ_Tonnage = model1[i].F_CJ_Tonnage;//抽检-抽检吨数
1366
                     model.F_CJ_Tonnage = model1[i].F_CJ_Tonnage;//抽检-抽检吨数
1063
                     model.F_CJ_BagNo = model1[i].F_CJ_BagNo;//抽检-抽检袋数
1367
                     model.F_CJ_BagNo = model1[i].F_CJ_BagNo;//抽检-抽检袋数
1064
                     model.F_CJ_Outlay = model1[i].F_CJ_Outlay;//抽检-公关费用金额:单位元
1368
                     model.F_CJ_Outlay = model1[i].F_CJ_Outlay;//抽检-公关费用金额:单位元
1065
-                    model.F_State = model1[i].F_State;//工单状态
1369
+                   
1066
                     model.F_DealBy = model1[i].F_DealBy;//处理人
1370
                     model.F_DealBy = model1[i].F_DealBy;//处理人
1067
                     model.F_DealTime = model1[i].F_DealTime;//处理时间
1371
                     model.F_DealTime = model1[i].F_DealTime;//处理时间
1068
                     model.F_DealContent = model1[i].F_DealContent;//处理内容
1372
                     model.F_DealContent = model1[i].F_DealContent;//处理内容
1299
             model.F_CJ_Outlay = input.F_CJ_Outlay;//抽检-公关费用金额:单位元】
1603
             model.F_CJ_Outlay = input.F_CJ_Outlay;//抽检-公关费用金额:单位元】
1300
             if (type ==1)
1604
             if (type ==1)
1301
             {
1605
             {
1302
-                model.F_State = input.F_State;//工单状态
1606
+                model.F_State =input.F_State;//工单状态
1303
                 model.F_CreateOn = input.F_CreateOn;//添加时间
1607
                 model.F_CreateOn = input.F_CreateOn;//添加时间
1304
                 model.F_CreateBy = input.F_CreateBy;//添加人
1608
                 model.F_CreateBy = input.F_CreateBy;//添加人
1305
                 model.F_UpdateBy = usercode;//修改人工号
1609
                 model.F_UpdateBy = usercode;//修改人工号
1806
             if (itemid > 0)
2110
             if (itemid > 0)
1807
             {
2111
             {
1808
                 #region 处理工单
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
                 workOrder  .Update(model);
2121
                 workOrder  .Update(model);
1811
                 #endregion
2122
                 #endregion
1812
                 #region 推送消息
2123
                 #region 推送消息

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

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

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

21
             /// <summary>
21
             /// <summary>
22
             /// 工单来源:电话、微信业务员、微信客户、官网
22
             /// 工单来源:电话、微信业务员、微信客户、官网
23
             /// </summary>
23
             /// </summary>
24
-            public int    F_Source
24
+            public int      F_Source
25
             {
25
             {
26
                 get; set;
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
                 get; set;
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
                 get; set;
54
                 get; set;
41
             }
55
             }
328
         /// <summary>
342
         /// <summary>
329
         /// 工单状态
343
         /// 工单状态
330
         /// </summary>
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
             get; set;
354
             get; set;
334
         }
355
         }