Kaynağa Gözat

提交更新

zhangkun 5 yıl önce
ebeveyn
işleme
835eefcdf6

BIN
data/工单流程图/工单流程图1.0.eddx


BIN
data/工单流程图/工单流程图1.0.jpg


BIN
data/工单流程图/工单流程图2.0.jpg


+ 7 - 1
data/数据迁移准备sql/二期/作业/工单超时刷新.txt

@@ -1 +1,7 @@
1
-UPDATE T_Wo_WorkOrderBase SET F_OVERTIMES=CASE WHEN ISNULL(DATEDIFF(second, DATEADD(day,5,F_CREATEDATE), GETDATE()),0)<1 THEN 0 ELSE DATEDIFF(second, DATEADD(day,5,F_CREATEDATE), GETDATE()) END  WHERE F_WORKORDERSTATEID<2;
1
+UPDATE T_Wo_WorkOrderBase 
2
+SET F_OVERTIMES=CASE WHEN ISNULL(DATEDIFF(second, DATEADD(day,5,F_SENTORDERTIME), GETDATE()),0)<1 THEN 0 ELSE DATEDIFF(second, DATEADD(day,5,F_SENTORDERTIME), GETDATE()) END  
3
+WHERE F_WORKORDERSTATEID =1 AND F_RETURNVISITFLAG=0 ;
4
+
5
+UPDATE T_Wo_WorkOrderBase 
6
+SET F_OVERTIMES=CASE WHEN ISNULL(DATEDIFF(second, DATEADD(day,5,F_SENTORDERTIME), GETDATE()),0)<1 THEN 0 ELSE DATEDIFF(second, DATEADD(day,5,F_SENTORDERTIME), GETDATE()) END  
7
+WHERE F_WORKORDERSTATEID IN(1,3) AND F_RETURNVISITFLAG=1 ;

+ 1 - 1
web/BaseCallCenter.BLL/Report/ReportBLL.cs

@@ -49,7 +49,7 @@ namespace YTSoft.BaseCallCenter.BLL
49 49
         }
50 50
 
51 51
         /// <summary>
52
-        /// 获取转出
52
+        /// 获取办结
53 53
         /// </summary>
54 54
         /// <param name="StartDate">开始日期</param>
55 55
         /// <param name="EndDate">结束日期</param>

+ 7 - 0
web/BaseCallCenter.BLL/T_Call_CallRecords.cs

@@ -449,6 +449,13 @@ namespace YTSoft.BaseCallCenter.BLL
449 449
 
450 450
         #endregion
451 451
 
452
+        /// <summary>
453
+        /// 重新设置线路
454
+        /// </summary>
455
+        public bool SetLine(int F_Linenum, string CallId)
456
+        {
457
+            return dal.SetLine(F_Linenum, CallId);
458
+        }
452 459
 
453 460
     }
454 461
 }

+ 171 - 48
web/BaseCallCenter.DAL/T_Wo_WorkOrderBase.cs

@@ -250,9 +250,9 @@ F_RETURNVISITID,F_RETURNVISITOPINION,F_RETURNVISITPROBLEM,F_CallId,F_CREATEBYids
250 250
                     new SqlParameter("@F_USERPHONE", SqlDbType.VarChar,20),
251 251
                     new SqlParameter("@F_RETURNVISITTIME", SqlDbType.DateTime),
252 252
                     new SqlParameter("@F_REQUESTSERVICETIME", SqlDbType.DateTime),
253
-                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,50),
253
+                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,1000),
254 254
                     new SqlParameter("@F_DECLARATIONTIME", SqlDbType.Decimal,9),
255
-                    new SqlParameter("@F_SERVICENATURE", SqlDbType.NVarChar,20),
255
+                    new SqlParameter("@F_SERVICENATURE", SqlDbType.NVarChar,200),
256 256
                     new SqlParameter("@F_SERVICEWAY", SqlDbType.NVarChar,20),
257 257
                     new SqlParameter("@F_RETURNVISITMAN", SqlDbType.NVarChar,20),
258 258
                     new SqlParameter("@F_RETURNVISITID", SqlDbType.Int,4),
@@ -447,9 +447,9 @@ F_RETURNVISITOPINION,F_RETURNVISITPROBLEM,F_CallId,F_CREATEBYids)");
447 447
                     new SqlParameter("@F_USERPHONE", SqlDbType.VarChar,20),
448 448
                     new SqlParameter("@F_RETURNVISITTIME", SqlDbType.DateTime),
449 449
                     new SqlParameter("@F_REQUESTSERVICETIME", SqlDbType.DateTime),
450
-                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,50),
450
+                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,1000),
451 451
                     new SqlParameter("@F_DECLARATIONTIME", SqlDbType.Decimal,9),
452
-                    new SqlParameter("@F_SERVICENATURE", SqlDbType.NVarChar,20),
452
+                    new SqlParameter("@F_SERVICENATURE", SqlDbType.NVarChar,200),
453 453
                     new SqlParameter("@F_SERVICEWAY", SqlDbType.NVarChar,20),
454 454
                     new SqlParameter("@F_RETURNVISITMAN", SqlDbType.NVarChar,20),
455 455
                     new SqlParameter("@F_RETURNVISITID", SqlDbType.Int,4),
@@ -701,9 +701,9 @@ F_RETURNVISITOPINION,F_RETURNVISITPROBLEM,F_CallId,F_CREATEBYids)");
701 701
                     new SqlParameter("@F_USERPHONE", SqlDbType.VarChar,20),
702 702
                     new SqlParameter("@F_RETURNVISITTIME", SqlDbType.DateTime),
703 703
                     new SqlParameter("@F_REQUESTSERVICETIME", SqlDbType.DateTime),
704
-                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,50),
704
+                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,1000),
705 705
                     new SqlParameter("@F_DECLARATIONTIME", SqlDbType.Decimal,9),
706
-                    new SqlParameter("@F_SERVICENATURE", SqlDbType.NVarChar,20),
706
+                    new SqlParameter("@F_SERVICENATURE", SqlDbType.NVarChar,200),
707 707
                     new SqlParameter("@F_SERVICEWAY", SqlDbType.NVarChar,20),
708 708
                     new SqlParameter("@F_RETURNVISITMAN", SqlDbType.NVarChar,20),
709 709
                     new SqlParameter("@F_RETURNVISITID", SqlDbType.Int,4),
@@ -868,6 +868,8 @@ F_RETURNVISITOPINION,F_RETURNVISITPROBLEM,F_CallId,F_CREATEBYids)");
868 868
             strSql.Append(" F_WORKORDERSTATEID=5, ");
869 869
             strSql.Append(" F_REPAIRREQUEST='已定责', ");
870 870
             strSql.Append(" F_CITY=@F_CITY, ");
871
+            strSql.Append(" F_SERVICENATURE=@F_SERVICENATURE, ");
872
+            strSql.Append(" F_SERVICETYPE=@F_SERVICETYPE, ");
871 873
             strSql.Append(" F_HASTENCOUNTS=ISNULL(F_HASTENCOUNTS,0)+1, ");
872 874
             strSql.Append(" F_AREA=@F_AREA ");
873 875
             strSql.Append(" where F_WORKORDERID=@F_WORKORDERID AND F_WORKORDERSTATEID>3");
@@ -875,7 +877,11 @@ F_RETURNVISITOPINION,F_RETURNVISITPROBLEM,F_CallId,F_CREATEBYids)");
875 877
                     new SqlParameter("@F_PROVINCE",model.F_PROVINCE ),
876 878
                     new SqlParameter("@F_CITY", model.F_CITY),
877 879
                     new SqlParameter("@F_AREA", model.F_AREA),
878
-                    new SqlParameter("@F_WORKORDERID", model.F_WORKORDERID)};
880
+                    new SqlParameter("@F_WORKORDERID", model.F_WORKORDERID),
881
+                    new SqlParameter("@F_SERVICENATURE", model.F_SERVICENATURE),
882
+                    new SqlParameter("@F_SERVICETYPE", model.F_SERVICETYPE)
883
+
884
+            };
879 885
 
880 886
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
881 887
             if (rows > 0)
@@ -1421,42 +1427,53 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1421 1427
             //历史工单id
1422 1428
             int historyId = 0;
1423 1429
             Model.T_Wo_WorkOrderBase modelbase = GetModel(model.F_WORKORDERID);
1430
+
1424 1431
             // 提交
1425 1432
             if (model.F_WORKORDERSTATEID > 0)
1426 1433
             {
1434
+                if (model.F_RETURNVISITFLAG == null)
1435
+                {
1436
+                    model.F_RETURNVISITFLAG = 0;
1437
+                }
1438
+
1427 1439
                 if (model.F_HOUSING == "表扬" || model.F_HOUSING == "咨询" || model.F_HOUSING == "挂失")
1428 1440
                 {
1429
-                    if (model.F_WORKORDERTYPEID == 3)
1441
+                    model.F_WORKORDERTYPEID = 3;
1442
+
1443
+                    if (model.F_HOUSING == "表扬")
1430 1444
                     {
1431
-                        if (model.F_HOUSING == "表扬")
1445
+                        if (model.HistoryOrderList != null && model.HistoryOrderList.Count > 0)
1432 1446
                         {
1433
-                            if (model.HistoryOrderList != null && model.HistoryOrderList.Count > 0)
1447
+                            foreach (Model.T_Wo_WorkOrderHistory historyModel in model.HistoryOrderList)
1434 1448
                             {
1435
-                                foreach (Model.T_Wo_WorkOrderHistory historyModel in model.HistoryOrderList)
1436
-                                {
1437
-                                    Model.T_Wo_WorkOrderNotice modelNotice = new Model.T_Wo_WorkOrderNotice();
1438
-                                    modelNotice.OrderId = model.F_WORKORDERID;
1439
-                                    modelNotice.NoticeType = 0;
1440
-                                    modelNotice.NoticeState = 1;
1441
-                                    modelNotice.NoticeDeptName = historyModel.F_NEXTOWNERARRID.ToMyString();
1442
-                                    modelNotice.NoticeDeptId = historyModel.F_OPTBTNID.ToInt32();
1443
-                                    NoticeBll.Add(modelNotice);
1444
-                                }
1449
+                                Model.T_Wo_WorkOrderNotice modelNotice = new Model.T_Wo_WorkOrderNotice();
1450
+                                modelNotice.OrderId = model.F_WORKORDERID;
1451
+                                modelNotice.NoticeType = 0;
1452
+                                modelNotice.NoticeState = 1;
1453
+                                modelNotice.NoticeDeptName = historyModel.F_NEXTOWNERARRID.ToMyString();
1454
+                                modelNotice.NoticeDeptId = historyModel.F_OPTBTNID.ToInt32();
1455
+                                NoticeBll.Add(modelNotice);
1445 1456
                             }
1446 1457
                         }
1447
-                        //if (model.F_RETURNVISITFLAG == 0)
1448
-                        //{
1449
-                        //    model.F_ENDTIME = DateTime.Now;
1450
-                        //}
1458
+                    }
1459
+                    if (model.F_RETURNVISITFLAG == 1)
1460
+                    {
1461
+                        model.F_WORKORDERSTATEID = 3;
1462
+                        model.F_ENDTIME = DateTime.Now;
1463
+                        model.F_REPAIRREQUEST = "待回访";
1464
+                    }
1465
+                    else
1466
+                    {
1451 1467
                         model.F_ENDTIME = DateTime.Now;
1452
-                        model.F_WORKORDERSTATEID = 2;
1453
-                        model.F_REPAIRREQUEST = "已办结";
1468
+                        model.F_WORKORDERSTATEID = 5;
1469
+                        model.F_REPAIRREQUEST = "已处理";
1454 1470
                     }
1455
-                    
1471
+
1456 1472
                 }
1457 1473
                 else if (model.F_WORKORDERTYPEID == 1)
1458
-                {//转单
1459
-
1474
+                {
1475
+                    //转单
1476
+                    model.F_WORKORDERSTATEID = 1;
1460 1477
                     if (model.F_REQUESTSERVICETIME == null)
1461 1478
                     {
1462 1479
                         model.F_REQUESTSERVICETIME = null;
@@ -1473,15 +1490,58 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1473 1490
                     historyId = model.HistoryOrderList.Count;
1474 1491
 
1475 1492
                 }
1493
+                else if(modelbase.F_HOUSING == "投诉")
1494
+                {
1495
+                    if (model.F_RETURNVISITFLAG == 1)
1496
+                    {
1497
+                        model.F_WORKORDERSTATEID = 3;
1498
+                        model.F_ENDTIME = DateTime.Now;
1499
+                        model.F_REPAIRREQUEST = "待回访";
1500
+                    }
1501
+                    else
1502
+                    {
1503
+                        model.F_WORKORDERSTATEID = 4;
1504
+                        model.F_ENDTIME = DateTime.Now;
1505
+                        model.F_REPAIRREQUEST = "待定责";
1506
+                    }
1507
+
1508
+                    foreach (Model.T_Wo_WorkOrderHistory historyModel in model.HistoryOrderList)
1509
+                    {
1510
+                        historyId = InsertWorkOrderHistoryModel(historyModel);
1511
+                    }
1512
+                }
1513
+                else if(modelbase.F_HOUSING == "建议")
1514
+                {
1515
+
1516
+                    if (model.F_RETURNVISITFLAG == 1)
1517
+                    {
1518
+                        model.F_WORKORDERSTATEID = 3;
1519
+                        model.F_ENDTIME = DateTime.Now;
1520
+                        model.F_REPAIRREQUEST = "待回访";
1521
+                    }
1522
+                    else
1523
+                    {
1524
+                        model.F_WORKORDERSTATEID = 5;
1525
+                        model.F_ENDTIME = DateTime.Now;
1526
+                        model.F_REPAIRREQUEST = "已处理";
1527
+                    }
1528
+
1529
+
1530
+                    foreach (Model.T_Wo_WorkOrderHistory historyModel in model.HistoryOrderList)
1531
+                    {
1532
+                        historyId = InsertWorkOrderHistoryModel(historyModel);
1533
+                    }
1534
+                }
1476 1535
                 //记录派单时间计算工单超时
1477 1536
                 model.F_SENTORDERTIME = DateTime.Now;
1478 1537
                 //超时时间 直接结束的工单超时时间为0
1479
-                int tempn = (int)DateUtil.DateDiff(DateInterval.Second, modelbase.F_CREATEBY.ToDateTime().AddDays(5), DateTime.Now);
1480
-                if (tempn < 0)
1481
-                {
1482
-                    tempn = 0;
1483
-                }
1484
-                model.F_OVERTIMES = tempn;
1538
+                //int tempn = (int)DateUtil.DateDiff(DateInterval.Second, modelbase.F_CREATEBY.ToDateTime().AddDays(5), DateTime.Now);
1539
+                //if (tempn < 0)
1540
+                //{
1541
+                //    tempn = 0;
1542
+                //}
1543
+                model.F_OVERTIMES = 0;
1544
+
1485 1545
             }
1486 1546
 
1487 1547
 
@@ -1646,11 +1706,16 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1646 1706
         /// <returns></returns>
1647 1707
         public int InsertWorkOrderHistoryModel(YTSoft.BaseCallCenter.Model.T_Wo_WorkOrderHistory model)
1648 1708
         {
1709
+            object time = model.ReplayTime;
1710
+            if (model.ReplayTime.Year == 1)
1711
+            {
1712
+                time = null;
1713
+            }
1649 1714
             StringBuilder strSql = new StringBuilder();
1650 1715
             strSql.Append("insert into T_Wo_WorkOrderHistory(");
1651
-            strSql.Append("F_WORKORDERSTATEID,F_OPTUSERID,F_OPTDATE,F_NEXTOWNERARRID,F_REMARK,F_OPTBTNID,F_INSTANCEID,F_StateName,F_UserName,NeedReplayTime,F_TASKFLAG)");
1716
+            strSql.Append("F_WORKORDERSTATEID,F_OPTUSERID,F_OPTDATE,F_NEXTOWNERARRID,F_REMARK,F_OPTBTNID,F_INSTANCEID,F_StateName,F_UserName,NeedReplayTime,F_TASKFLAG,ReplayTime)");
1652 1717
             strSql.Append(" values (");
1653
-            strSql.Append("@F_WORKORDERSTATEID,@F_OPTUSERID,@F_OPTDATE,@F_NEXTOWNERARRID,@F_REMARK,@F_OPTBTNID,@F_INSTANCEID,@F_StateName,@F_UserName,@NeedReplayTime,@F_TASKFLAG)");
1718
+            strSql.Append("@F_WORKORDERSTATEID,@F_OPTUSERID,@F_OPTDATE,@F_NEXTOWNERARRID,@F_REMARK,@F_OPTBTNID,@F_INSTANCEID,@F_StateName,@F_UserName,@NeedReplayTime,@F_TASKFLAG,@ReplayTime)");
1654 1719
             strSql.Append(";select @@IDENTITY");
1655 1720
             SqlParameter[] parameters = {
1656 1721
                     new SqlParameter("@F_WORKORDERSTATEID", SqlDbType.Int,4),
@@ -1662,8 +1727,9 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1662 1727
                     new SqlParameter("@F_INSTANCEID", SqlDbType.Int,4),
1663 1728
                     new SqlParameter("@F_StateName", SqlDbType.NVarChar,200),
1664 1729
                     new SqlParameter("@F_UserName", SqlDbType.NVarChar,200),
1665
-                     new SqlParameter("@NeedReplayTime", SqlDbType.DateTime),
1666
-                     new SqlParameter("@F_TASKFLAG", SqlDbType.Int,4)
1730
+                    new SqlParameter("@NeedReplayTime", SqlDbType.DateTime),
1731
+                    new SqlParameter("@F_TASKFLAG", SqlDbType.Int,4),
1732
+                    new SqlParameter("@ReplayTime", time)
1667 1733
                                         };
1668 1734
             parameters[0].Value = model.F_WORKORDERSTATEID;
1669 1735
             parameters[1].Value = model.F_OPTUSERID;
@@ -1676,6 +1742,7 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1676 1742
             parameters[8].Value = model.F_UserName;
1677 1743
             parameters[9].Value = model.NeedReplayTime;
1678 1744
             parameters[10].Value = model.F_TASKFLAG;
1745
+
1679 1746
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
1680 1747
             if (obj == null)
1681 1748
             {
@@ -1772,7 +1839,7 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1772 1839
                     if (n == 0)
1773 1840
                     {
1774 1841
                         LogAciton.AddAction(model.F_UserName, model.F_OPTUSERID.ToInt32(), "历史工单模块调用工单模块", "模块调用", "DAL/T_Wo_WorkOrderBase/SubmitOrder", "DAL/T_Wo_WorkOrderBase/UpdateOrderToHF");
1775
-                        UpdateOrderToHF(eidthistoryModel.F_INSTANCEID);
1842
+                        UpdateOrderToHF(eidthistoryModel.F_INSTANCEID.ToInt32());
1776 1843
                     }
1777 1844
                     //如果有转办信息插入转办信息
1778 1845
 
@@ -1784,16 +1851,39 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1784 1851
         }
1785 1852
 
1786 1853
         //转单处理完  转回复
1787
-        public void UpdateOrderToHF(int? F_WORKORDERID)
1854
+        public void UpdateOrderToHF(int F_WORKORDERID)
1788 1855
         {
1856
+            Model.T_Wo_WorkOrderBase modelbase = GetModel(F_WORKORDERID);
1857
+
1789 1858
             StringBuilder strSql = new StringBuilder();
1790 1859
             strSql.Append("update T_Wo_WorkOrderBase set ");
1791
-            strSql.Append("F_ENDTIME=CASE WHEN F_RETURNVISITFLAG=1 THEN GETDATE() ELSE F_ENDTIME END, F_WORKORDERSTATEID=3,F_WORKORDERTYPEID=3,F_OVERTIMES=CASE WHEN ISNULL(DATEDIFF(second, DATEADD(day,5,F_SENTORDERTIME), GETDATE()),0)<1 THEN 0 ELSE DATEDIFF(second, DATEADD(day,5,F_SENTORDERTIME), GETDATE()) END ");
1860
+
1861
+            if (modelbase.F_RETURNVISITFLAG == 1)
1862
+            {
1863
+                strSql.Append("F_REPAIRREQUEST='待回访', ");
1864
+                strSql.Append("F_WORKORDERSTATEID=3,");
1865
+           }
1866
+            else if(modelbase.F_HOUSING=="投诉")
1867
+            {
1868
+                strSql.Append("F_ENDTIME=GETDATE(),  ");
1869
+                strSql.Append("F_WORKORDERSTATEID=4,");
1870
+                strSql.Append("F_REPAIRREQUEST='待定责', ");
1871
+            }
1872
+            else 
1873
+            {
1874
+                strSql.Append("F_ENDTIME=GETDATE(),  "); 
1875
+                strSql.Append("F_WORKORDERSTATEID=5,");
1876
+                strSql.Append("F_REPAIRREQUEST='已处理', ");
1877
+            }
1878
+            strSql.Append("F_OVERTIMES=CASE WHEN ISNULL(DATEDIFF(second, DATEADD(day,5,F_SENTORDERTIME), GETDATE()),0)<1  THEN 0 ELSE DATEDIFF(second, DATEADD(day,5,F_SENTORDERTIME), GETDATE()) END ");
1879
+
1880
+
1792 1881
             //转单F_WORKORDERTYPEID= 1转单 3客服处理  处理中    F_WORKORDERSTATEID=0未处理 1处理中  2已办结(结束) 3待回访 4待定责 5待通知 
1793 1882
             strSql.Append(" where F_WORKORDERID=@F_WORKORDERID and F_WORKORDERTYPEID=1 and F_WORKORDERSTATEID=1");
1794 1883
             SqlParameter[] parameters = {
1795 1884
                     new SqlParameter("@F_WORKORDERID",F_WORKORDERID)};
1796 1885
 
1886
+
1797 1887
             DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
1798 1888
         }
1799 1889
         /// <summary>
@@ -1812,7 +1902,7 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1812 1902
             strSql.Append("F_WORKORDERSTATEID=1,");//转单
1813 1903
             strSql.Append("F_WORKORDERTYPEID=1,");//待回访转处理中
1814 1904
             strSql.Append("F_REPAIRREQUEST=@F_REPAIRREQUEST");
1815
-            strSql.Append(" where F_WORKORDERID=@F_WORKORDERID and F_WORKORDERTYPEID=3 and F_WORKORDERSTATEID=3");
1905
+            strSql.Append(" where F_WORKORDERID=@F_WORKORDERID  and F_WORKORDERSTATEID=3");
1816 1906
             SqlParameter[] parameters = {
1817 1907
                     new SqlParameter("@F_REMAINDERENDTIME",model.F_REMAINDERENDTIME),
1818 1908
                     new SqlParameter("@F_RETURNVISITRESULT", model.F_RETURNVISITRESULT),
@@ -1824,7 +1914,7 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1824 1914
         }
1825 1915
 
1826 1916
         /// <summary>
1827
-        /// 回复转 转单  ,回复转定责
1917
+        /// 回访转定责
1828 1918
         /// </summary>
1829 1919
         /// <param name="F_WORKORDERID"></param>
1830 1920
         /// <param name="type">type 0转单 1定责</param>
@@ -1835,11 +1925,12 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1835 1925
             strSql.Append("F_REMAINDERENDTIME=@F_REMAINDERENDTIME,");
1836 1926
             strSql.Append("F_RETURNVISITRESULT=@F_RETURNVISITRESULT,");
1837 1927
             strSql.Append("F_ROAD=@F_ROAD,");
1838
-            strSql.Append("F_ENDTIME=@F_ENDTIME,");
1928
+            strSql.Append("F_ENDTIME=@F_ENDTIME,"); 
1929
+            strSql.Append("F_OVERTIMES= CASE WHEN ISNULL(DATEDIFF(second, DATEADD(day,5,F_SENTORDERTIME), GETDATE()),0)< 1 OR F_HOUSING!= '投诉' THEN 0 ELSE DATEDIFF(second, DATEADD(day,5,F_SENTORDERTIME), GETDATE()) END,");
1839 1930
             strSql.Append("F_RETURNVISITOPINION=@F_RETURNVISITOPINION,");
1840 1931
             strSql.Append("F_WORKORDERSTATEID=4,");//定责
1841 1932
             strSql.Append("F_REPAIRREQUEST=@F_REPAIRREQUEST");
1842
-            strSql.Append(" where F_WORKORDERID=@F_WORKORDERID and F_WORKORDERTYPEID=3 and F_WORKORDERSTATEID=3");
1933
+            strSql.Append(" where F_WORKORDERID=@F_WORKORDERID  and F_WORKORDERSTATEID=3");
1843 1934
             SqlParameter[] parameters = {
1844 1935
                     new SqlParameter("@F_REMAINDERENDTIME",model.F_REMAINDERENDTIME),
1845 1936
                     new SqlParameter("@F_RETURNVISITRESULT", model.F_RETURNVISITRESULT),
@@ -1850,6 +1941,33 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1850 1941
                     new SqlParameter("@F_WORKORDERID", model.F_WORKORDERID)};
1851 1942
             return DbHelperSQL.ExecuteSql(strSql.ToString(), parameters) > 0;
1852 1943
         }
1944
+        /// <summary>
1945
+        /// 回访转已处理
1946
+        /// </summary>
1947
+        /// <param name="F_WORKORDERID"></param>
1948
+        /// <param name="type">type 0转单 1定责</param>
1949
+        public bool UpdateOrderToOver(Model.T_Wo_WorkOrderBase model)
1950
+        {
1951
+            StringBuilder strSql = new StringBuilder();
1952
+            strSql.Append("update T_Wo_WorkOrderBase set ");
1953
+            strSql.Append("F_REMAINDERENDTIME=@F_REMAINDERENDTIME,");
1954
+            strSql.Append("F_RETURNVISITRESULT=@F_RETURNVISITRESULT,");
1955
+            strSql.Append("F_ROAD=@F_ROAD,");
1956
+            strSql.Append("F_ENDTIME=@F_ENDTIME,");
1957
+            strSql.Append("F_RETURNVISITOPINION=@F_RETURNVISITOPINION,");
1958
+            strSql.Append("F_WORKORDERSTATEID=5,");//定责
1959
+            strSql.Append("F_REPAIRREQUEST=@F_REPAIRREQUEST");
1960
+            strSql.Append(" where F_WORKORDERID=@F_WORKORDERID  and F_WORKORDERSTATEID=3");
1961
+            SqlParameter[] parameters = {
1962
+                    new SqlParameter("@F_REMAINDERENDTIME",model.F_REMAINDERENDTIME),
1963
+                    new SqlParameter("@F_RETURNVISITRESULT", model.F_RETURNVISITRESULT),
1964
+                    new SqlParameter("@F_ROAD", ""),//原为满意度,前端没有用,后用作定责人员
1965
+                    new SqlParameter("@F_RETURNVISITOPINION", model.F_RETURNVISITOPINION),
1966
+                    new SqlParameter("@F_REPAIRREQUEST","已处理"),
1967
+                    new SqlParameter("@F_ENDTIME",model.F_ENDTIME),
1968
+                    new SqlParameter("@F_WORKORDERID", model.F_WORKORDERID)};
1969
+            return DbHelperSQL.ExecuteSql(strSql.ToString(), parameters) > 0;
1970
+        }
1853 1971
 
1854 1972
 
1855 1973
         //修改并插入转办历史信息
@@ -1953,9 +2071,14 @@ F_SERVICETYPE,F_DECLARATIONTIME,F_SERVICENATURE,F_SERVICEWAY,F_RETURNVISITMAN,F_
1953 2071
                     LogAciton.AddAction(model.F_USERNAME, model.F_USERID.ToInt32(), "回访模块转转单模块", "模块调用", "DAL/T_Wo_WorkOrderBase/SubmitOrderHF", "DAL/T_Wo_WorkOrderBase/UpdateOrderToZD");
1954 2072
                     EditStatus = UpdateOrderToZD(model);
1955 2073
                 }
1956
-                else if (model.F_WORKORDERSTATEID == 4)//回访完成 转定责
2074
+                else if (model.F_WORKORDERSTATEID == 4&& modelbase.F_HOUSING!= "投诉")//回访完成 转已处理
2075
+                {
2076
+                    LogAciton.AddAction(model.F_USERNAME, model.F_USERID.ToInt32(), "回访模块转已处理模块", "模块调用", "DAL/T_Wo_WorkOrderBase/SubmitOrderHF", "DAL/T_Wo_WorkOrderBase/UpdateOrderToDZ");
2077
+                    EditStatus = UpdateOrderToOver(model);
2078
+                }
2079
+                else if (model.F_WORKORDERSTATEID == 4 && modelbase.F_HOUSING == "投诉")//回访完成 转定责
1957 2080
                 {
1958
-                    LogAciton.AddAction(model.F_USERNAME, model.F_USERID.ToInt32(), "回访模块转定责模块", "模块调用", "DAL/T_Wo_WorkOrderBase/SubmitOrderHF", "DAL/T_Wo_WorkOrderBase/UpdateOrderToDZ");
2081
+                    LogAciton.AddAction(model.F_USERNAME, model.F_USERID.ToInt32(), "回访模块转定责模块", "模块调用", "DAL/T_Wo_WorkOrderBase/SubmitOrderHF", "DAL/T_Wo_WorkOrderBase/UpdateOrderToDZ");
1959 2082
                     EditStatus = UpdateOrderToDZ(model);
1960 2083
                 }
1961 2084
 

+ 14 - 14
web/BaseCallCenter.DAL/Report/ReportDAL.cs

@@ -155,7 +155,7 @@ namespace YTSoft.BaseCallCenter.DAL
155 155
             // 未超时1
156 156
             strSql.Append("  ELSE 1 END AS CallState,F_HOUSING FROM T_Wo_WorkOrderBase   ");
157 157
 
158
-            strSql.Append(" where 1=1 ");
158
+            strSql.Append(" where 1=1 AND F_HOUSING in ('投诉','建议','咨询')");
159 159
             if (!string.IsNullOrEmpty(startDate))
160 160
             {
161 161
                 strSql.Append(" and F_CreateDate>='" + startDate + "  00:00:00' ");
@@ -236,8 +236,8 @@ namespace YTSoft.BaseCallCenter.DAL
236 236
         public DataTable GetOtherData6(string startDate, string endDate)
237 237
         {
238 238
             StringBuilder strSql = new StringBuilder();
239
-            strSql.Append("SELECT DealResult,COUNT(1)AS num  FROM dbo.T_Wo_WorkOrderNotice  ");
240
-            strSql.Append(" WHERE NoticeState=1   ");
239
+            strSql.Append("SELECT F_SERVICENATURE,COUNT(1)AS num  FROM dbo.T_Wo_WorkOrderBase  ");
240
+            strSql.Append(" WHERE F_WORKORDERSTATEID=5 and  F_HOUSING='投诉'  ");
241 241
             if (!string.IsNullOrEmpty(startDate))
242 242
             {
243 243
                 strSql.Append(" and Addtime>='" + startDate + "  00:00:00' ");
@@ -248,7 +248,7 @@ namespace YTSoft.BaseCallCenter.DAL
248 248
                 strSql.Append(" and Addtime<='" + endDate + " 23:59:59' ");
249 249
             }
250 250
 
251
-            strSql.Append(" GROUP BY  DealResult ");
251
+            strSql.Append(" GROUP BY  F_SERVICENATURE ");
252 252
 
253 253
             DataSet ds = DbHelperSQL.Query(strSql.ToString());
254 254
             if (ds.Tables[0].Rows.Count > 0)
@@ -275,11 +275,11 @@ namespace YTSoft.BaseCallCenter.DAL
275 275
             strSql.Append("SELECT COUNT(1) num,t.CallState FROM   ");
276 276
             strSql.Append(" (SELECT CASE   ");
277 277
             //首呼解决
278
-            strSql.Append("  WHEN F_FORMID =0 AND F_WORKORDERSTATEID IN(2, 4, 5)  THEN 1   ");
278
+            strSql.Append("  WHEN F_WORKORDERTYPEID=3  THEN 1   ");
279 279
             //转单
280
-            strSql.Append("  ELSE 0 END AS CallState FROM T_Wo_WorkOrderBase   ");
280
+            strSql.Append("  ELSE 0 END AS CallState,F_HOUSING FROM T_Wo_WorkOrderBase   ");
281 281
 
282
-            strSql.Append(" where 1=1 ");
282
+            strSql.Append(" where 1=1 AND F_HOUSING IN('投诉','建议') ");
283 283
             if (!string.IsNullOrEmpty(startDate))
284 284
             {
285 285
                 strSql.Append(" and F_CreateDate>='" + startDate + "  00:00:00' ");
@@ -291,7 +291,7 @@ namespace YTSoft.BaseCallCenter.DAL
291 291
             }
292 292
 
293 293
 
294
-            strSql.Append(" ) t GROUP BY t.CallState");
294
+            strSql.Append(" ) t GROUP BY t.F_HOUSING,t.CallState");
295 295
 
296 296
             DataSet ds = DbHelperSQL.Query(strSql.ToString());
297 297
             if (ds.Tables[0].Rows.Count > 0)
@@ -315,10 +315,10 @@ namespace YTSoft.BaseCallCenter.DAL
315 315
             strSql.Append("SELECT  F_PROVINCE as name,COUNT(1)AS num  FROM (");
316 316
             strSql.Append(" SELECT DISTINCT F_WORKORDERID,F_PROVINCE,F_CITY,F_AREA FROM  ");
317 317
             strSql.Append("   dbo.T_Wo_WorkOrderBase a INNER JOIN T_Wo_WorkOrderNotice b ON a.F_WORKORDERID=b.OrderId");
318
-            strSql.Append("  Where NoticeState=1 AND NoticeType=1");
318
+            strSql.Append("  Where NoticeState=1 AND NoticeType=1 and F_WORKORDERSTATEID=5");
319 319
             if (!string.IsNullOrEmpty(startDate))
320 320
             {
321
-                strSql.Append(" and a.F_CreateDate>='" + startDate + "  00:00:00' ");
321
+                strSql.Append(" and a.F_CreateDate>='" + startDate + " 00:00:00' ");
322 322
             }
323 323
 
324 324
             if (!string.IsNullOrEmpty(endDate))
@@ -345,10 +345,10 @@ namespace YTSoft.BaseCallCenter.DAL
345 345
             strSql.Append("SELECT F_CITY as name,COUNT(1)AS num  FROM (");
346 346
             strSql.Append(" SELECT DISTINCT F_WORKORDERID,F_PROVINCE,F_CITY,F_AREA FROM  ");
347 347
             strSql.Append("   dbo.T_Wo_WorkOrderBase a INNER JOIN T_Wo_WorkOrderNotice b ON a.F_WORKORDERID=b.OrderId");
348
-            strSql.Append("  Where NoticeState=1 AND NoticeType=1");
348
+            strSql.Append("  Where NoticeState=1 AND NoticeType=1  and F_WORKORDERSTATEID=5");
349 349
             if (!string.IsNullOrEmpty(startDate))
350 350
             {
351
-                strSql.Append(" and a.F_CreateDate>='" + startDate + "  00:00:00' ");
351
+                strSql.Append(" and a.F_CreateDate>='" + startDate + " 00:00:00' ");
352 352
             }
353 353
 
354 354
             if (!string.IsNullOrEmpty(endDate))
@@ -375,10 +375,10 @@ namespace YTSoft.BaseCallCenter.DAL
375 375
             strSql.Append("SELECT  F_AREA as name,COUNT(1)AS num  FROM (");
376 376
             strSql.Append(" SELECT DISTINCT F_WORKORDERID,F_PROVINCE,F_CITY,F_AREA FROM  ");
377 377
             strSql.Append("   dbo.T_Wo_WorkOrderBase a INNER JOIN T_Wo_WorkOrderNotice b ON a.F_WORKORDERID=b.OrderId");
378
-            strSql.Append("  Where NoticeState=1 AND NoticeType=1");
378
+            strSql.Append("  Where NoticeState=1 AND NoticeType=1  and F_WORKORDERSTATEID=5");
379 379
             if (!string.IsNullOrEmpty(startDate))
380 380
             {
381
-                strSql.Append(" and a.F_CreateDate>='" + startDate + "  00:00:00' ");
381
+                strSql.Append(" and a.F_CreateDate>='" + startDate + " 00:00:00' ");
382 382
             }
383 383
 
384 384
             if (!string.IsNullOrEmpty(endDate))

+ 28 - 0
web/BaseCallCenter.DAL/T_Call_CallRecords.cs

@@ -1712,6 +1712,34 @@ OperateObject,OperateTime,Remark,MYD,BusinessType,Location,groupcode,TaskType,Ta
1712 1712
 
1713 1713
         #endregion
1714 1714
 
1715
+
1716
+        /// <summary>
1717
+        /// 重新设置线路
1718
+        /// </summary>
1719
+        public bool SetLine(int F_Linenum,string CallId)
1720
+        {
1721
+            StringBuilder strSql = new StringBuilder();
1722
+            strSql.Append("Update T_Call_CallRecords ");
1723
+            strSql.Append(" set F_Linenum=@F_Linenum");
1724
+            strSql.Append(" Where CallId=@CallId");
1725
+            SqlParameter[] parameters = {
1726
+                    new SqlParameter("@F_Linenum", SqlDbType.Int,4),
1727
+                    new SqlParameter("@CallId", SqlDbType.VarChar,10)
1728
+            };
1729
+            parameters[0].Value = F_Linenum;
1730
+            parameters[1].Value = CallId;
1731
+
1732
+            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
1733
+            if (rows > 0)
1734
+            {
1735
+                return true;
1736
+            }
1737
+            else
1738
+            {
1739
+                return false;
1740
+            }
1741
+        }
1742
+
1715 1743
     }
1716 1744
 }
1717 1745
 

+ 1 - 1
web/BaseCallCenter.DAL/YTSoft.BaseCallCenter.DAL.csproj

@@ -136,7 +136,7 @@
136 136
     <Compile Include="T_Wf_WorkFlow.cs" />
137 137
     <Compile Include="T_Wo_StateAlarmDate.cs" />
138 138
     <Compile Include="T_Wo_TypeAlarmDate.cs" />
139
-    <Compile Include="T_Wo_WorkOrderBase.cs" />
139
+    <Compile Include="Order\T_Wo_WorkOrderBase.cs" />
140 140
     <Compile Include="T_Wo_WorkOrderButton.cs" />
141 141
     <Compile Include="T_Wo_WorkOrderConstructor.cs" />
142 142
     <Compile Include="T_Wo_WorkOrderEvaluation.cs" />

+ 6 - 0
web/BaseCallCenter.Model/Order/T_Wo_WorkOrderNotice.cs

@@ -274,6 +274,12 @@ namespace YTSoft.BaseCallCenter.Model
274 274
         public int Classid3 { get; set; }
275 275
         public string ClassName3 { get; set; }
276 276
 
277
+        // 处理意见
278
+        public string F_SERVICETYPE { get; set; }
279
+        // 定性定责结果
280
+        public string F_SERVICENATURE { get; set; }
281
+
282
+
277 283
         public int orderid { get; set; }
278 284
 
279 285
 

+ 1 - 1
web/YTSoft.BaseCallCenter.MVCWeb/Controllers/Com/LogActionController.cs

@@ -34,7 +34,7 @@ namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
34 34
 
35 35
         //操作记录  敏感信息 主要设置
36 36
         [ActionName("GetListData")]
37
-        public string GetListData(string Table = "", string id = "", int page = 0, int limit = 20,string actionname= "")
37
+        public string GetListData(string Table = "", string id = "", int page = 1, int limit = 20,string actionname= "")
38 38
         {
39 39
             string strWhere = "";
40 40
             if (Table == "kf_quick_msgs")

+ 102 - 0
web/YTSoft.BaseCallCenter.MVCWeb/Controllers/HW/CallHelperController.cs

@@ -0,0 +1,102 @@
1
+using Newtonsoft.Json;
2
+using System;
3
+using System.Collections.Generic;
4
+using System.Data;
5
+using System.IO;
6
+using System.Linq;
7
+using System.Web;
8
+using System.Web.Mvc;
9
+using YTSoft.BaseCallCenter.Model;
10
+using YTSoft.BaseCallCenter.MVCWeb.Models;
11
+
12
+/// <summary>
13
+///来电辅助类
14
+/// </summary>
15
+namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
16
+{
17
+    public class CallHelperController : BaseController
18
+    {
19
+        BLL.T_Call_CallRecords busCallRecords = new BLL.T_Call_CallRecords();
20
+        //工单信息
21
+        BLL.T_Wo_WorkOrderBase orderBLL = new BLL.T_Wo_WorkOrderBase();
22
+
23
+        BLL.T_Cus_CustomerBase cusBLL = new BLL.T_Cus_CustomerBase();
24
+
25
+        [ActionName("setline")]
26
+        public string SetLine(int lineNum,string CallId)
27
+        {          
28
+
29
+            if (busCallRecords.SetLine(lineNum, CallId))
30
+            {
31
+                AddAction("T_Call_CallRecords", CallId, "修改IVR选择线路", "将线路修改为"+ lineNum);
32
+                AddAction("T_Call_CallRecords", CallId, "修改IVR选择线路", "将线路修改为" + lineNum,"关键信息");
33
+                return Success("成功");
34
+            }
35
+            else
36
+                return Error("失败");
37
+        }
38
+
39
+
40
+        /// <summary>
41
+        /// 来电弹屏页面
42
+        /// </summary>
43
+        /// <param name="workOrderNum">工单编号</param>
44
+        /// <returns></returns>
45
+        public string CallScreen(string workOrderNum)
46
+        {
47
+
48
+            //workOrderNum = "12";
49
+            //实例化基础信息表
50
+            CallScreenModel callScreenModel = new CallScreenModel();
51
+
52
+            //获取业务工单信息
53
+            if (!string.IsNullOrEmpty(workOrderNum))
54
+            {
55
+                callScreenModel.WorkOrderBaseModel = orderBLL.GetModel(int.Parse(workOrderNum.ToString()));
56
+                if (callScreenModel.WorkOrderBaseModel == null)
57
+                {
58
+                    callScreenModel.WorkOrderBaseModel = new Model.T_Wo_WorkOrderBase()
59
+                    {
60
+                        CustomerBaseModel = new T_Cus_CustomerBase { F_CustomerId = 0 },
61
+                        F_WORKORDERID = 0
62
+                    };
63
+                }
64
+                //如果电话号码不为空
65
+                if (callScreenModel.WorkOrderBaseModel != null && !string.IsNullOrEmpty(callScreenModel.WorkOrderBaseModel.F_CUSTOMERTELEPHONE))
66
+                {
67
+                    //获取客户基本信息
68
+                    callScreenModel.WorkOrderBaseModel.CustomerBaseModel = cusBLL.GetCusInfoModel(callScreenModel.WorkOrderBaseModel.F_CUSTOMERTELEPHONE);
69
+                }
70
+
71
+                if (callScreenModel.WorkOrderBaseModel != null && !string.IsNullOrEmpty(callScreenModel.WorkOrderBaseModel.F_KSHADDRESSCODE))
72
+                {
73
+                    Model.T_Call_CallRecords callRecordModel = busCallRecords.GetModelByCallId(callScreenModel.WorkOrderBaseModel.F_KSHADDRESSCODE);
74
+
75
+                    if (callRecordModel != null)
76
+                    {
77
+                        if (callRecordModel.BusinessType != null)
78
+                        {
79
+                            //业务选择按键
80
+                            callScreenModel.SelectBussType = int.Parse(callRecordModel.BusinessType.ToString());
81
+                        }
82
+                        else
83
+                        {
84
+                            callScreenModel.SelectBussType = 1;
85
+                        }
86
+
87
+                    }
88
+                }
89
+
90
+            }
91
+            callScreenModel.WorkOrderTypeModelList = GetWorkTypeModelList();//业务类型字典表
92
+            //获取处理年龄段字典表                                                             
93
+            callScreenModel.AgeModelList = GetCodeType("NLD");
94
+
95
+
96
+            return Success("成功",callScreenModel);
97
+        }
98
+
99
+
100
+
101
+    }
102
+}

+ 31 - 1
web/YTSoft.BaseCallCenter.MVCWeb/Controllers/HW/CallRecordController.cs

@@ -557,6 +557,15 @@ namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
557 557
             //workOrderBaseModel.F_USERID = F_UserID;//id
558 558
             //workOrderBaseModel.F_LINKMAN = F_UserCode;//工号
559 559
             //workOrderBaseModel.F_REPAIRMANNAME = "12";//姓名
560
+
561
+            workOrderBaseModel.F_DEPTID = F_DeptId;
562
+            T_Sys_Department deptmodel = deptBll.GetModel(F_DeptId);
563
+            if (deptmodel != null)
564
+            {
565
+                workOrderBaseModel.F_DEPTCODE = deptmodel.F_DeptName;
566
+            }
567
+
568
+
560 569
             AddAction("T_Wo_WorkOrderBase", workOrderBaseModel.F_WORKORDERID.ToMyString(), "录入工单", "数据:"+JsonConvert.SerializeObject(workOrderBaseModel), "关键信息");
561 570
 
562 571
             if (workOrderBaseModel.F_CONTENT == null)
@@ -599,6 +608,27 @@ namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
599 608
             if (workOrderBaseModel.F_WORKORDERSTATEID > 0)
600 609
             {
601 610
                 workOrderBaseModel.F_CODE= orderBLL.GetOrderNumber(workOrderBaseModel.F_REPAIRLEVEL.ToInt32());
611
+                if (workOrderBaseModel.F_HOUSING == "表扬" || workOrderBaseModel.F_HOUSING == "咨询" || workOrderBaseModel.F_HOUSING == "挂失")
612
+                {
613
+                    workOrderBaseModel.F_WORKORDERTYPEID = 3;
614
+                }
615
+                else if(workOrderBaseModel.F_WORKORDERTYPEID==3)
616
+                {
617
+                    Model.T_Wo_WorkOrderHistory historyModel = new Model.T_Wo_WorkOrderHistory();
618
+                    historyModel.F_INSTANCEID = workOrderBaseModel.F_WORKORDERID;
619
+                    historyModel.F_OPTDATE = DateTime.Now;
620
+                    historyModel.ReplayTime = DateTime.Now;
621
+                    historyModel.F_WORKORDERSTATEID = 1;
622
+                    historyModel.F_StateName = "已处理";
623
+                    historyModel.NeedReplayTime = workOrderBaseModel.F_REQUESTSERVICETIME;
624
+                    historyModel.F_OPTUSERID = F_UserID;
625
+                    historyModel.F_OPTBTNID = F_DeptId;
626
+                    historyModel.F_UserName = F_UserName; 
627
+                    historyModel.F_REMARK = workOrderBaseModel.F_RETURNVISITCONTENT;
628
+                    historyModel.F_NEXTOWNERARRID = "计划经营部"; 
629
+                    workOrderBaseModel.HistoryOrderList = new List<T_Wo_WorkOrderHistory>();
630
+                    workOrderBaseModel.HistoryOrderList.Add(historyModel);
631
+                }
602 632
                 if (workOrderBaseModel.F_WORKORDERTYPEID == 1)
603 633
                 {
604 634
                     AddAction("t_wo_workorderbase", workOrderBaseModel.F_WORKORDERID.ToMyString(), "转单处理工单", workOrderBaseModel.F_CODE);
@@ -974,7 +1004,7 @@ namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
974 1004
             dt = BLL.PagerBLL.GetTableList(
975 1005
                 " (T_Call_CallRecords T1 LEFT JOIN T_Wo_WorkOrderBase T2 ON T1.CallId=T2.F_KSHADDRESSCODE ) ",
976 1006
                 "CallRecordsId",
977
-                "T1.*,F_HOUSING,CONVERT(varchar,BeginTime, 120 ) as BeginTimeNew,CONVERT(varchar,TalkStartTime, 120 ) as TalkStartTimeNew,CONVERT(varchar,TalkEndTime, 120 ) as TalkEndTimeNew"
1007
+                "T1.*,F_WORKORDERID,F_HOUSING,CONVERT(varchar,BeginTime, 120 ) as BeginTimeNew,CONVERT(varchar,TalkStartTime, 120 ) as TalkStartTimeNew,CONVERT(varchar,TalkEndTime, 120 ) as TalkEndTimeNew"
978 1008
                 + @",(select top 1 F_ScaleResume from T_Cus_CustomerBase n where
979 1009
 CallNumber=F_Telephone) as F_ScaleResume,
980 1010
 replace(replace(FilePath,'\','/'),'" + GetSysconfig("newFilePath") + "','" + GetSysconfig("newPlayPath") + "')" +

Dosya farkı çok büyük olduğundan ihmal edildi
+ 394 - 64
web/YTSoft.BaseCallCenter.MVCWeb/Controllers/Order/OrderController.cs


+ 0 - 32
web/YTSoft.BaseCallCenter.MVCWeb/Controllers/OtherPageController.cs

@@ -13,38 +13,6 @@ namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
13 13
 {
14 14
     public class OtherPageController : BaseController
15 15
     {
16
-        //
17
-        // GET: /OtherPage/
18
-
19
-        /// <summary>
20
-        /// 微信页面
21
-        /// </summary>
22
-        /// <returns></returns>
23
-        //public ActionResult WebChart(int pageType)
24
-        //{
25
-        //    if (pageType == 1)
26
-        //    {
27
-        //        return Redirect("http://rexian.zzmetro.com/customer/" + F_PId);
28
-        //    }
29
-        //    else
30
-        //    {
31
-        //        return Redirect("http://rexian.zzmetro.com/customer_weibo/" + F_PId);
32
-        //    }
33
-
34
-
35
-
36
-
37
-
38
-        //}
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48 16
 
49 17
         /// <summary>
50 18
         /// 获取未读聊天消息个数

+ 61 - 18
web/YTSoft.BaseCallCenter.MVCWeb/Controllers/Report/ReportOtherController.cs

@@ -148,27 +148,70 @@ namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
148 148
                 datas = busReport.GetOtherData10(startDate, endDate);
149 149
                 if (datas != null && datas.Rows.Count > 0)
150 150
                 {
151
-                    string data1 = "-";
151
+                    string data1 = "100.00%";
152
+                    string data2 = "-";
153
+                    string data3 = "-";
152 154
                     int tempTotal = 0;
153 155
                     int tempint = 0;
156
+                    int tempTotal1 = 0;
157
+                    int tempint1 = 0;
158
+                    int tempTotal2 = 0;
159
+                    int tempint2 = 0;
154 160
                     foreach (DataRow thisRow in datas.Rows)
155 161
                     {
156
-                        if (thisRow["CallState"].ToInt32() == 1)
162
+                        //if (thisRow["F_HOUSING"].ToMyString() == "咨询")
163
+                        //{
164
+                        //    if (thisRow["CallState"].ToInt32() == 1)
165
+                        //    {
166
+                        //        tempint = thisRow["num"].ToInt32();
167
+                        //    }
168
+                        //    tempTotal += thisRow["num"].ToInt32();
169
+                        //}
170
+                        if (thisRow["F_HOUSING"].ToMyString() == "建议")
157 171
                         {
158
-                            tempint = thisRow["num"].ToInt32();
172
+                            if (thisRow["CallState"].ToInt32() == 1)
173
+                            {
174
+                                tempint1 = thisRow["num"].ToInt32();
175
+                            }
176
+                            tempTotal1 += thisRow["num"].ToInt32();
177
+                        }
178
+                        if (thisRow["F_HOUSING"].ToMyString() == "投诉")
179
+                        {
180
+
181
+                            if (thisRow["CallState"].ToInt32() == 1)
182
+                            {
183
+                                tempint2 = thisRow["num"].ToInt32();
184
+                            }
185
+                            tempTotal2 += thisRow["num"].ToInt32();
159 186
                         }
160
-                        tempTotal += thisRow["num"].ToInt32();
161 187
 
162 188
                     }
163
-                    if (tempTotal != 0)
189
+                    //if (tempTotal != 0)
190
+                    //{
191
+                    //    data1 = (tempint / (double)tempTotal).ToString("0.00%");
192
+                    //}
193
+                    if (tempTotal1 != 0)
164 194
                     {
165
-                        data1 = (tempint / (double)tempTotal).ToString("0.00%");
195
+                        data2 = (tempint1 / (double)tempTotal1).ToString("0.00%");
196
+                    }
197
+                    if (tempTotal2 != 0)
198
+                    {
199
+                        data3 = (tempint2 / (double)tempTotal2).ToString("0.00%");
166 200
                     }
167 201
                     dataRow = newTable.NewRow();
168
-                    dataRow["指标名称"] = "首呼解决率";
202
+                    dataRow["指标名称"] = "咨询首呼解决率";
169 203
                     dataRow["指标值"] = data1;
170 204
                     newTable.Rows.Add(dataRow);
205
+                    dataRow = newTable.NewRow();
206
+                    dataRow["指标名称"] = "建议首呼解决率";
207
+                    dataRow["指标值"] = data2;
208
+                    newTable.Rows.Add(dataRow);
209
+                    dataRow = newTable.NewRow();
210
+                    dataRow["指标名称"] = "投诉首呼解决率";
211
+                    dataRow["指标值"] = data3;
212
+                    newTable.Rows.Add(dataRow);
171 213
                 }
214
+
172 215
                 #endregion
173 216
 
174 217
                 #region 按时办结率
@@ -195,13 +238,13 @@ namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
195 238
 
196 239
                         if (thisRow["F_HOUSING"].ToMyString() == "咨询")
197 240
                         {
198
-                        if (thisRow["CallState"].ToInt32() == 1)
199
-                        {
200
-                            tempint = thisRow["num"].ToInt32();
201
-                        }
202
-                        tempTotal += thisRow["num"].ToInt32();
241
+                            if (thisRow["CallState"].ToInt32() == 1)
242
+                            {
243
+                                tempint = thisRow["num"].ToInt32();
244
+                            }
245
+                            tempTotal += thisRow["num"].ToInt32();
203 246
                         }
204
-                        else if (thisRow["F_HOUSING"].ToMyString() == "建议")
247
+                        if (thisRow["F_HOUSING"].ToMyString() == "建议")
205 248
                         {
206 249
 
207 250
                             if (thisRow["CallState"].ToInt32() == 1)
@@ -210,7 +253,7 @@ namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
210 253
                             }
211 254
                             tempTotal1 += thisRow["num"].ToInt32();
212 255
                         }
213
-                        else if (thisRow["F_HOUSING"].ToMyString() == "投诉")
256
+                        if (thisRow["F_HOUSING"].ToMyString() == "投诉")
214 257
                         {
215 258
 
216 259
                             if (thisRow["CallState"].ToInt32() == 1)
@@ -311,21 +354,21 @@ namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
311 354
 
312 355
 
313 356
 
314
-                            if (thisRow["DealResult"].ToMyString().Contains("无效投诉"))
357
+                            if (thisRow["F_SERVICENATURE"].ToMyString().Contains("无效投诉"))
315 358
                             {
316 359
                                 tempint1 += thisRow["num"].ToInt32();
317 360
                                 tempTotal1 += thisRow["num"].ToInt32();
318 361
                             }
319
-                            else if (thisRow["DealResult"].ToMyString().Contains("责投诉"))
362
+                            else if (thisRow["F_SERVICENATURE"].ToMyString().Contains("责投诉"))
320 363
                             {
321 364
                                 tempint2 += thisRow["num"].ToInt32();
322 365
                                 tempTotal1 += thisRow["num"].ToInt32();
323 366
                             }
324
-                            if (thisRow["DealResult"].ToMyString().Contains("有责投诉"))
367
+                            if (thisRow["F_SERVICENATURE"].ToMyString().Contains("有责投诉"))
325 368
                             {
326 369
                                 tempint3 += thisRow["num"].ToInt32();
327 370
                             }
328
-                            else if (thisRow["DealResult"].ToMyString().Contains("有效无责投诉"))
371
+                            else if (thisRow["F_SERVICENATURE"].ToMyString().Contains("有效无责投诉"))
329 372
                             {
330 373
                                 tempint4 += thisRow["num"].ToInt32();
331 374
                             }

+ 41 - 0
web/YTSoft.BaseCallCenter.MVCWeb/Controllers/SystemManageController.cs

@@ -531,6 +531,47 @@ namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
531 531
         }
532 532
 
533 533
 
534
+        /// <summary>
535
+        /// 获取字典值数据
536
+        /// </summary>
537
+        /// <param name="page">当前页码</param>
538
+        /// <param name="limit">每页数据量</param>
539
+        /// <returns></returns>
540
+        [ActionName("DictionaryDateOut")]
541
+        [HttpGet]
542
+        public string DictionaryDateOut(DateTime? NowDateTime, int page, int limit, string dictionaryFlag)
543
+        {
544
+            AddAction("t_sys_dictionarybase".ToLower(), "page", "获取字典列表", page + "-" + limit);
545
+            //数据结果集
546
+            ResponseData dataModel = new ResponseData();
547
+            string sql = "and (F_DictionaryFlag='ZDXX' OR F_DictionaryFlag='ZDXX2')";
548
+
549
+            DataTable dt = new DataTable();
550
+            int recordCount = 0;
551
+            Model.PageData<Model.T_Wo_WorkOrderBase> pageModel = new Model.PageData<Model.T_Wo_WorkOrderBase>();
552
+
553
+
554
+            dt = BLL.PagerBLL.GetListPager(
555
+                "T_Sys_DictionaryValue",
556
+                "F_DictionaryValueId",
557
+                "*",
558
+                sql,
559
+                "ORDER BY F_Sort asc ",
560
+                limit,
561
+                page,
562
+                true,
563
+                out recordCount);
564
+
565
+
566
+
567
+            dataModel.code = 0;
568
+            dataModel.count = recordCount;
569
+            dataModel.data = dt;
570
+
571
+            return JsonConvert.SerializeObject(dataModel);
572
+        }
573
+
574
+
534 575
 
535 576
         /// <summary>
536 577
         /// 字典项编辑

+ 2 - 2
web/YTSoft.BaseCallCenter.MVCWeb/Views/Order/EditMyOrder.cshtml

@@ -624,14 +624,14 @@
624 624
                   <i class="layui-icon layui-timeline-axis" style="top:5px;">&#xe63f;</i>
625 625
                   <div class="layui-timeline-content layui-text">
626 626
                     <h3 class="layui-timeline-title" style="font-size:14px; font-weight: bold">
627
-                      1、<i class="layui-icon" style="font-size: 20px; color: #1E9FFF;">&#xe60e;</i>
627
+                      第 @Model.Noticelist[i].DZNumber 次定责、<i class="layui-icon" style="font-size: 20px; color: #1E9FFF;">&#xe60e;</i>
628 628
                       操作时间:@string.Format("{0:yyyy-MM-dd HH:mm:ss}", @Model.Noticelist[i].Addtime)
629 629
                       <i class="layui-icon" style="font-size: 20px; color: #1E9FFF;">&#xe60c;</i>
630 630
                       定责处理意见:@Model.Noticelist[i].DealAdvise
631 631
                       <i class="layui-icon" style="font-size: 20px; color: #1E9FFF;">&#xe756;</i>
632 632
                       定责结果: @Model.Noticelist[i].DealResult
633 633
                       <i class="layui-icon" style="font-size: 20px; color: #1E9FFF;">&#xe612;</i>
634
-                      部门名称:@Model.Noticelist[i].NoticeDeptName
634
+                      通知部门:@Model.Noticelist[i].NoticeDeptName
635 635
                     </h3>
636 636
                   </div>
637 637
                 </div>

+ 1 - 0
web/YTSoft.BaseCallCenter.MVCWeb/YTSoft.BaseCallCenter.MVCWeb.csproj

@@ -122,6 +122,7 @@
122 122
     <Compile Include="Controllers\CustomerController.cs" />
123 123
     <Compile Include="Controllers\DefaultController.cs" />
124 124
     <Compile Include="Controllers\HrEmployeeBaseController.cs" />
125
+    <Compile Include="Controllers\HW\CallHelperController.cs" />
125 126
     <Compile Include="Controllers\HW\MobileDataController.cs" />
126 127
     <Compile Include="Controllers\HW\DutyNumberController.cs" />
127 128
     <Compile Include="Controllers\KF\QuickMsgsController.cs" />