zhangkun %!s(int64=5) %!d(string=hace) años
padre
commit
835eefcdf6

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


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


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


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

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
         }
49
         }
50
 
50
 
51
         /// <summary>
51
         /// <summary>
52
-        /// 获取转出
52
+        /// 获取办结
53
         /// </summary>
53
         /// </summary>
54
         /// <param name="StartDate">开始日期</param>
54
         /// <param name="StartDate">开始日期</param>
55
         /// <param name="EndDate">结束日期</param>
55
         /// <param name="EndDate">结束日期</param>

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

449
 
449
 
450
         #endregion
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
                     new SqlParameter("@F_USERPHONE", SqlDbType.VarChar,20),
250
                     new SqlParameter("@F_USERPHONE", SqlDbType.VarChar,20),
251
                     new SqlParameter("@F_RETURNVISITTIME", SqlDbType.DateTime),
251
                     new SqlParameter("@F_RETURNVISITTIME", SqlDbType.DateTime),
252
                     new SqlParameter("@F_REQUESTSERVICETIME", SqlDbType.DateTime),
252
                     new SqlParameter("@F_REQUESTSERVICETIME", SqlDbType.DateTime),
253
-                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,50),
253
+                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,1000),
254
                     new SqlParameter("@F_DECLARATIONTIME", SqlDbType.Decimal,9),
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
                     new SqlParameter("@F_SERVICEWAY", SqlDbType.NVarChar,20),
256
                     new SqlParameter("@F_SERVICEWAY", SqlDbType.NVarChar,20),
257
                     new SqlParameter("@F_RETURNVISITMAN", SqlDbType.NVarChar,20),
257
                     new SqlParameter("@F_RETURNVISITMAN", SqlDbType.NVarChar,20),
258
                     new SqlParameter("@F_RETURNVISITID", SqlDbType.Int,4),
258
                     new SqlParameter("@F_RETURNVISITID", SqlDbType.Int,4),
447
                     new SqlParameter("@F_USERPHONE", SqlDbType.VarChar,20),
447
                     new SqlParameter("@F_USERPHONE", SqlDbType.VarChar,20),
448
                     new SqlParameter("@F_RETURNVISITTIME", SqlDbType.DateTime),
448
                     new SqlParameter("@F_RETURNVISITTIME", SqlDbType.DateTime),
449
                     new SqlParameter("@F_REQUESTSERVICETIME", SqlDbType.DateTime),
449
                     new SqlParameter("@F_REQUESTSERVICETIME", SqlDbType.DateTime),
450
-                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,50),
450
+                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,1000),
451
                     new SqlParameter("@F_DECLARATIONTIME", SqlDbType.Decimal,9),
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
                     new SqlParameter("@F_SERVICEWAY", SqlDbType.NVarChar,20),
453
                     new SqlParameter("@F_SERVICEWAY", SqlDbType.NVarChar,20),
454
                     new SqlParameter("@F_RETURNVISITMAN", SqlDbType.NVarChar,20),
454
                     new SqlParameter("@F_RETURNVISITMAN", SqlDbType.NVarChar,20),
455
                     new SqlParameter("@F_RETURNVISITID", SqlDbType.Int,4),
455
                     new SqlParameter("@F_RETURNVISITID", SqlDbType.Int,4),
701
                     new SqlParameter("@F_USERPHONE", SqlDbType.VarChar,20),
701
                     new SqlParameter("@F_USERPHONE", SqlDbType.VarChar,20),
702
                     new SqlParameter("@F_RETURNVISITTIME", SqlDbType.DateTime),
702
                     new SqlParameter("@F_RETURNVISITTIME", SqlDbType.DateTime),
703
                     new SqlParameter("@F_REQUESTSERVICETIME", SqlDbType.DateTime),
703
                     new SqlParameter("@F_REQUESTSERVICETIME", SqlDbType.DateTime),
704
-                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,50),
704
+                    new SqlParameter("@F_SERVICETYPE", SqlDbType.NVarChar,1000),
705
                     new SqlParameter("@F_DECLARATIONTIME", SqlDbType.Decimal,9),
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
                     new SqlParameter("@F_SERVICEWAY", SqlDbType.NVarChar,20),
707
                     new SqlParameter("@F_SERVICEWAY", SqlDbType.NVarChar,20),
708
                     new SqlParameter("@F_RETURNVISITMAN", SqlDbType.NVarChar,20),
708
                     new SqlParameter("@F_RETURNVISITMAN", SqlDbType.NVarChar,20),
709
                     new SqlParameter("@F_RETURNVISITID", SqlDbType.Int,4),
709
                     new SqlParameter("@F_RETURNVISITID", SqlDbType.Int,4),
868
             strSql.Append(" F_WORKORDERSTATEID=5, ");
868
             strSql.Append(" F_WORKORDERSTATEID=5, ");
869
             strSql.Append(" F_REPAIRREQUEST='已定责', ");
869
             strSql.Append(" F_REPAIRREQUEST='已定责', ");
870
             strSql.Append(" F_CITY=@F_CITY, ");
870
             strSql.Append(" F_CITY=@F_CITY, ");
871
+            strSql.Append(" F_SERVICENATURE=@F_SERVICENATURE, ");
872
+            strSql.Append(" F_SERVICETYPE=@F_SERVICETYPE, ");
871
             strSql.Append(" F_HASTENCOUNTS=ISNULL(F_HASTENCOUNTS,0)+1, ");
873
             strSql.Append(" F_HASTENCOUNTS=ISNULL(F_HASTENCOUNTS,0)+1, ");
872
             strSql.Append(" F_AREA=@F_AREA ");
874
             strSql.Append(" F_AREA=@F_AREA ");
873
             strSql.Append(" where F_WORKORDERID=@F_WORKORDERID AND F_WORKORDERSTATEID>3");
875
             strSql.Append(" where F_WORKORDERID=@F_WORKORDERID AND F_WORKORDERSTATEID>3");
875
                     new SqlParameter("@F_PROVINCE",model.F_PROVINCE ),
877
                     new SqlParameter("@F_PROVINCE",model.F_PROVINCE ),
876
                     new SqlParameter("@F_CITY", model.F_CITY),
878
                     new SqlParameter("@F_CITY", model.F_CITY),
877
                     new SqlParameter("@F_AREA", model.F_AREA),
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
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
886
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
881
             if (rows > 0)
887
             if (rows > 0)
1421
             //历史工单id
1427
             //历史工单id
1422
             int historyId = 0;
1428
             int historyId = 0;
1423
             Model.T_Wo_WorkOrderBase modelbase = GetModel(model.F_WORKORDERID);
1429
             Model.T_Wo_WorkOrderBase modelbase = GetModel(model.F_WORKORDERID);
1430
+
1424
             // 提交
1431
             // 提交
1425
             if (model.F_WORKORDERSTATEID > 0)
1432
             if (model.F_WORKORDERSTATEID > 0)
1426
             {
1433
             {
1434
+                if (model.F_RETURNVISITFLAG == null)
1435
+                {
1436
+                    model.F_RETURNVISITFLAG = 0;
1437
+                }
1438
+
1427
                 if (model.F_HOUSING == "表扬" || model.F_HOUSING == "咨询" || model.F_HOUSING == "挂失")
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
                         model.F_ENDTIME = DateTime.Now;
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
                 else if (model.F_WORKORDERTYPEID == 1)
1473
                 else if (model.F_WORKORDERTYPEID == 1)
1458
-                {//转单
1459
-
1474
+                {
1475
+                    //转单
1476
+                    model.F_WORKORDERSTATEID = 1;
1460
                     if (model.F_REQUESTSERVICETIME == null)
1477
                     if (model.F_REQUESTSERVICETIME == null)
1461
                     {
1478
                     {
1462
                         model.F_REQUESTSERVICETIME = null;
1479
                         model.F_REQUESTSERVICETIME = null;
1473
                     historyId = model.HistoryOrderList.Count;
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
                 model.F_SENTORDERTIME = DateTime.Now;
1536
                 model.F_SENTORDERTIME = DateTime.Now;
1478
                 //超时时间 直接结束的工单超时时间为0
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
         /// <returns></returns>
1706
         /// <returns></returns>
1647
         public int InsertWorkOrderHistoryModel(YTSoft.BaseCallCenter.Model.T_Wo_WorkOrderHistory model)
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
             StringBuilder strSql = new StringBuilder();
1714
             StringBuilder strSql = new StringBuilder();
1650
             strSql.Append("insert into T_Wo_WorkOrderHistory(");
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
             strSql.Append(" values (");
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
             strSql.Append(";select @@IDENTITY");
1719
             strSql.Append(";select @@IDENTITY");
1655
             SqlParameter[] parameters = {
1720
             SqlParameter[] parameters = {
1656
                     new SqlParameter("@F_WORKORDERSTATEID", SqlDbType.Int,4),
1721
                     new SqlParameter("@F_WORKORDERSTATEID", SqlDbType.Int,4),
1662
                     new SqlParameter("@F_INSTANCEID", SqlDbType.Int,4),
1727
                     new SqlParameter("@F_INSTANCEID", SqlDbType.Int,4),
1663
                     new SqlParameter("@F_StateName", SqlDbType.NVarChar,200),
1728
                     new SqlParameter("@F_StateName", SqlDbType.NVarChar,200),
1664
                     new SqlParameter("@F_UserName", SqlDbType.NVarChar,200),
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
             parameters[0].Value = model.F_WORKORDERSTATEID;
1734
             parameters[0].Value = model.F_WORKORDERSTATEID;
1669
             parameters[1].Value = model.F_OPTUSERID;
1735
             parameters[1].Value = model.F_OPTUSERID;
1676
             parameters[8].Value = model.F_UserName;
1742
             parameters[8].Value = model.F_UserName;
1677
             parameters[9].Value = model.NeedReplayTime;
1743
             parameters[9].Value = model.NeedReplayTime;
1678
             parameters[10].Value = model.F_TASKFLAG;
1744
             parameters[10].Value = model.F_TASKFLAG;
1745
+
1679
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
1746
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
1680
             if (obj == null)
1747
             if (obj == null)
1681
             {
1748
             {
1772
                     if (n == 0)
1839
                     if (n == 0)
1773
                     {
1840
                     {
1774
                         LogAciton.AddAction(model.F_UserName, model.F_OPTUSERID.ToInt32(), "历史工单模块调用工单模块", "模块调用", "DAL/T_Wo_WorkOrderBase/SubmitOrder", "DAL/T_Wo_WorkOrderBase/UpdateOrderToHF");
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
         }
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
             StringBuilder strSql = new StringBuilder();
1858
             StringBuilder strSql = new StringBuilder();
1790
             strSql.Append("update T_Wo_WorkOrderBase set ");
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
             //转单F_WORKORDERTYPEID= 1转单 3客服处理  处理中    F_WORKORDERSTATEID=0未处理 1处理中  2已办结(结束) 3待回访 4待定责 5待通知 
1881
             //转单F_WORKORDERTYPEID= 1转单 3客服处理  处理中    F_WORKORDERSTATEID=0未处理 1处理中  2已办结(结束) 3待回访 4待定责 5待通知 
1793
             strSql.Append(" where F_WORKORDERID=@F_WORKORDERID and F_WORKORDERTYPEID=1 and F_WORKORDERSTATEID=1");
1882
             strSql.Append(" where F_WORKORDERID=@F_WORKORDERID and F_WORKORDERTYPEID=1 and F_WORKORDERSTATEID=1");
1794
             SqlParameter[] parameters = {
1883
             SqlParameter[] parameters = {
1795
                     new SqlParameter("@F_WORKORDERID",F_WORKORDERID)};
1884
                     new SqlParameter("@F_WORKORDERID",F_WORKORDERID)};
1796
 
1885
 
1886
+
1797
             DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
1887
             DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
1798
         }
1888
         }
1799
         /// <summary>
1889
         /// <summary>
1812
             strSql.Append("F_WORKORDERSTATEID=1,");//转单
1902
             strSql.Append("F_WORKORDERSTATEID=1,");//转单
1813
             strSql.Append("F_WORKORDERTYPEID=1,");//待回访转处理中
1903
             strSql.Append("F_WORKORDERTYPEID=1,");//待回访转处理中
1814
             strSql.Append("F_REPAIRREQUEST=@F_REPAIRREQUEST");
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
             SqlParameter[] parameters = {
1906
             SqlParameter[] parameters = {
1817
                     new SqlParameter("@F_REMAINDERENDTIME",model.F_REMAINDERENDTIME),
1907
                     new SqlParameter("@F_REMAINDERENDTIME",model.F_REMAINDERENDTIME),
1818
                     new SqlParameter("@F_RETURNVISITRESULT", model.F_RETURNVISITRESULT),
1908
                     new SqlParameter("@F_RETURNVISITRESULT", model.F_RETURNVISITRESULT),
1824
         }
1914
         }
1825
 
1915
 
1826
         /// <summary>
1916
         /// <summary>
1827
-        /// 回复转 转单  ,回复转定责
1917
+        /// 回访转定责
1828
         /// </summary>
1918
         /// </summary>
1829
         /// <param name="F_WORKORDERID"></param>
1919
         /// <param name="F_WORKORDERID"></param>
1830
         /// <param name="type">type 0转单 1定责</param>
1920
         /// <param name="type">type 0转单 1定责</param>
1835
             strSql.Append("F_REMAINDERENDTIME=@F_REMAINDERENDTIME,");
1925
             strSql.Append("F_REMAINDERENDTIME=@F_REMAINDERENDTIME,");
1836
             strSql.Append("F_RETURNVISITRESULT=@F_RETURNVISITRESULT,");
1926
             strSql.Append("F_RETURNVISITRESULT=@F_RETURNVISITRESULT,");
1837
             strSql.Append("F_ROAD=@F_ROAD,");
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
             strSql.Append("F_RETURNVISITOPINION=@F_RETURNVISITOPINION,");
1930
             strSql.Append("F_RETURNVISITOPINION=@F_RETURNVISITOPINION,");
1840
             strSql.Append("F_WORKORDERSTATEID=4,");//定责
1931
             strSql.Append("F_WORKORDERSTATEID=4,");//定责
1841
             strSql.Append("F_REPAIRREQUEST=@F_REPAIRREQUEST");
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
             SqlParameter[] parameters = {
1934
             SqlParameter[] parameters = {
1844
                     new SqlParameter("@F_REMAINDERENDTIME",model.F_REMAINDERENDTIME),
1935
                     new SqlParameter("@F_REMAINDERENDTIME",model.F_REMAINDERENDTIME),
1845
                     new SqlParameter("@F_RETURNVISITRESULT", model.F_RETURNVISITRESULT),
1936
                     new SqlParameter("@F_RETURNVISITRESULT", model.F_RETURNVISITRESULT),
1850
                     new SqlParameter("@F_WORKORDERID", model.F_WORKORDERID)};
1941
                     new SqlParameter("@F_WORKORDERID", model.F_WORKORDERID)};
1851
             return DbHelperSQL.ExecuteSql(strSql.ToString(), parameters) > 0;
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
                     LogAciton.AddAction(model.F_USERNAME, model.F_USERID.ToInt32(), "回访模块转转单模块", "模块调用", "DAL/T_Wo_WorkOrderBase/SubmitOrderHF", "DAL/T_Wo_WorkOrderBase/UpdateOrderToZD");
2071
                     LogAciton.AddAction(model.F_USERNAME, model.F_USERID.ToInt32(), "回访模块转转单模块", "模块调用", "DAL/T_Wo_WorkOrderBase/SubmitOrderHF", "DAL/T_Wo_WorkOrderBase/UpdateOrderToZD");
1954
                     EditStatus = UpdateOrderToZD(model);
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
                     EditStatus = UpdateOrderToDZ(model);
2082
                     EditStatus = UpdateOrderToDZ(model);
1960
                 }
2083
                 }
1961
 
2084
 

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

155
             // 未超时1
155
             // 未超时1
156
             strSql.Append("  ELSE 1 END AS CallState,F_HOUSING FROM T_Wo_WorkOrderBase   ");
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
             if (!string.IsNullOrEmpty(startDate))
159
             if (!string.IsNullOrEmpty(startDate))
160
             {
160
             {
161
                 strSql.Append(" and F_CreateDate>='" + startDate + "  00:00:00' ");
161
                 strSql.Append(" and F_CreateDate>='" + startDate + "  00:00:00' ");
236
         public DataTable GetOtherData6(string startDate, string endDate)
236
         public DataTable GetOtherData6(string startDate, string endDate)
237
         {
237
         {
238
             StringBuilder strSql = new StringBuilder();
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
             if (!string.IsNullOrEmpty(startDate))
241
             if (!string.IsNullOrEmpty(startDate))
242
             {
242
             {
243
                 strSql.Append(" and Addtime>='" + startDate + "  00:00:00' ");
243
                 strSql.Append(" and Addtime>='" + startDate + "  00:00:00' ");
248
                 strSql.Append(" and Addtime<='" + endDate + " 23:59:59' ");
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
             DataSet ds = DbHelperSQL.Query(strSql.ToString());
253
             DataSet ds = DbHelperSQL.Query(strSql.ToString());
254
             if (ds.Tables[0].Rows.Count > 0)
254
             if (ds.Tables[0].Rows.Count > 0)
275
             strSql.Append("SELECT COUNT(1) num,t.CallState FROM   ");
275
             strSql.Append("SELECT COUNT(1) num,t.CallState FROM   ");
276
             strSql.Append(" (SELECT CASE   ");
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
             if (!string.IsNullOrEmpty(startDate))
283
             if (!string.IsNullOrEmpty(startDate))
284
             {
284
             {
285
                 strSql.Append(" and F_CreateDate>='" + startDate + "  00:00:00' ");
285
                 strSql.Append(" and F_CreateDate>='" + startDate + "  00:00:00' ");
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
             DataSet ds = DbHelperSQL.Query(strSql.ToString());
296
             DataSet ds = DbHelperSQL.Query(strSql.ToString());
297
             if (ds.Tables[0].Rows.Count > 0)
297
             if (ds.Tables[0].Rows.Count > 0)
315
             strSql.Append("SELECT  F_PROVINCE as name,COUNT(1)AS num  FROM (");
315
             strSql.Append("SELECT  F_PROVINCE as name,COUNT(1)AS num  FROM (");
316
             strSql.Append(" SELECT DISTINCT F_WORKORDERID,F_PROVINCE,F_CITY,F_AREA FROM  ");
316
             strSql.Append(" SELECT DISTINCT F_WORKORDERID,F_PROVINCE,F_CITY,F_AREA FROM  ");
317
             strSql.Append("   dbo.T_Wo_WorkOrderBase a INNER JOIN T_Wo_WorkOrderNotice b ON a.F_WORKORDERID=b.OrderId");
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
             if (!string.IsNullOrEmpty(startDate))
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
             if (!string.IsNullOrEmpty(endDate))
324
             if (!string.IsNullOrEmpty(endDate))
345
             strSql.Append("SELECT F_CITY as name,COUNT(1)AS num  FROM (");
345
             strSql.Append("SELECT F_CITY as name,COUNT(1)AS num  FROM (");
346
             strSql.Append(" SELECT DISTINCT F_WORKORDERID,F_PROVINCE,F_CITY,F_AREA FROM  ");
346
             strSql.Append(" SELECT DISTINCT F_WORKORDERID,F_PROVINCE,F_CITY,F_AREA FROM  ");
347
             strSql.Append("   dbo.T_Wo_WorkOrderBase a INNER JOIN T_Wo_WorkOrderNotice b ON a.F_WORKORDERID=b.OrderId");
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
             if (!string.IsNullOrEmpty(startDate))
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
             if (!string.IsNullOrEmpty(endDate))
354
             if (!string.IsNullOrEmpty(endDate))
375
             strSql.Append("SELECT  F_AREA as name,COUNT(1)AS num  FROM (");
375
             strSql.Append("SELECT  F_AREA as name,COUNT(1)AS num  FROM (");
376
             strSql.Append(" SELECT DISTINCT F_WORKORDERID,F_PROVINCE,F_CITY,F_AREA FROM  ");
376
             strSql.Append(" SELECT DISTINCT F_WORKORDERID,F_PROVINCE,F_CITY,F_AREA FROM  ");
377
             strSql.Append("   dbo.T_Wo_WorkOrderBase a INNER JOIN T_Wo_WorkOrderNotice b ON a.F_WORKORDERID=b.OrderId");
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
             if (!string.IsNullOrEmpty(startDate))
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
             if (!string.IsNullOrEmpty(endDate))
384
             if (!string.IsNullOrEmpty(endDate))

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

1712
 
1712
 
1713
         #endregion
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
     <Compile Include="T_Wf_WorkFlow.cs" />
136
     <Compile Include="T_Wf_WorkFlow.cs" />
137
     <Compile Include="T_Wo_StateAlarmDate.cs" />
137
     <Compile Include="T_Wo_StateAlarmDate.cs" />
138
     <Compile Include="T_Wo_TypeAlarmDate.cs" />
138
     <Compile Include="T_Wo_TypeAlarmDate.cs" />
139
-    <Compile Include="T_Wo_WorkOrderBase.cs" />
139
+    <Compile Include="Order\T_Wo_WorkOrderBase.cs" />
140
     <Compile Include="T_Wo_WorkOrderButton.cs" />
140
     <Compile Include="T_Wo_WorkOrderButton.cs" />
141
     <Compile Include="T_Wo_WorkOrderConstructor.cs" />
141
     <Compile Include="T_Wo_WorkOrderConstructor.cs" />
142
     <Compile Include="T_Wo_WorkOrderEvaluation.cs" />
142
     <Compile Include="T_Wo_WorkOrderEvaluation.cs" />

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

274
         public int Classid3 { get; set; }
274
         public int Classid3 { get; set; }
275
         public string ClassName3 { get; set; }
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
         public int orderid { get; set; }
283
         public int orderid { get; set; }
278
 
284
 
279
 
285
 

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

34
 
34
 
35
         //操作记录  敏感信息 主要设置
35
         //操作记录  敏感信息 主要设置
36
         [ActionName("GetListData")]
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
             string strWhere = "";
39
             string strWhere = "";
40
             if (Table == "kf_quick_msgs")
40
             if (Table == "kf_quick_msgs")

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

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
             //workOrderBaseModel.F_USERID = F_UserID;//id
557
             //workOrderBaseModel.F_USERID = F_UserID;//id
558
             //workOrderBaseModel.F_LINKMAN = F_UserCode;//工号
558
             //workOrderBaseModel.F_LINKMAN = F_UserCode;//工号
559
             //workOrderBaseModel.F_REPAIRMANNAME = "12";//姓名
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
             AddAction("T_Wo_WorkOrderBase", workOrderBaseModel.F_WORKORDERID.ToMyString(), "录入工单", "数据:"+JsonConvert.SerializeObject(workOrderBaseModel), "关键信息");
569
             AddAction("T_Wo_WorkOrderBase", workOrderBaseModel.F_WORKORDERID.ToMyString(), "录入工单", "数据:"+JsonConvert.SerializeObject(workOrderBaseModel), "关键信息");
561
 
570
 
562
             if (workOrderBaseModel.F_CONTENT == null)
571
             if (workOrderBaseModel.F_CONTENT == null)
599
             if (workOrderBaseModel.F_WORKORDERSTATEID > 0)
608
             if (workOrderBaseModel.F_WORKORDERSTATEID > 0)
600
             {
609
             {
601
                 workOrderBaseModel.F_CODE= orderBLL.GetOrderNumber(workOrderBaseModel.F_REPAIRLEVEL.ToInt32());
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
                 if (workOrderBaseModel.F_WORKORDERTYPEID == 1)
632
                 if (workOrderBaseModel.F_WORKORDERTYPEID == 1)
603
                 {
633
                 {
604
                     AddAction("t_wo_workorderbase", workOrderBaseModel.F_WORKORDERID.ToMyString(), "转单处理工单", workOrderBaseModel.F_CODE);
634
                     AddAction("t_wo_workorderbase", workOrderBaseModel.F_WORKORDERID.ToMyString(), "转单处理工单", workOrderBaseModel.F_CODE);
974
             dt = BLL.PagerBLL.GetTableList(
1004
             dt = BLL.PagerBLL.GetTableList(
975
                 " (T_Call_CallRecords T1 LEFT JOIN T_Wo_WorkOrderBase T2 ON T1.CallId=T2.F_KSHADDRESSCODE ) ",
1005
                 " (T_Call_CallRecords T1 LEFT JOIN T_Wo_WorkOrderBase T2 ON T1.CallId=T2.F_KSHADDRESSCODE ) ",
976
                 "CallRecordsId",
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
                 + @",(select top 1 F_ScaleResume from T_Cus_CustomerBase n where
1008
                 + @",(select top 1 F_ScaleResume from T_Cus_CustomerBase n where
979
 CallNumber=F_Telephone) as F_ScaleResume,
1009
 CallNumber=F_Telephone) as F_ScaleResume,
980
 replace(replace(FilePath,'\','/'),'" + GetSysconfig("newFilePath") + "','" + GetSysconfig("newPlayPath") + "')" +
1010
 replace(replace(FilePath,'\','/'),'" + GetSysconfig("newFilePath") + "','" + GetSysconfig("newPlayPath") + "')" +

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 394 - 64
web/YTSoft.BaseCallCenter.MVCWeb/Controllers/Order/OrderController.cs


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

13
 {
13
 {
14
     public class OtherPageController : BaseController
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
         /// <summary>
17
         /// <summary>
50
         /// 获取未读聊天消息个数
18
         /// 获取未读聊天消息个数

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

148
                 datas = busReport.GetOtherData10(startDate, endDate);
148
                 datas = busReport.GetOtherData10(startDate, endDate);
149
                 if (datas != null && datas.Rows.Count > 0)
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
                     int tempTotal = 0;
154
                     int tempTotal = 0;
153
                     int tempint = 0;
155
                     int tempint = 0;
156
+                    int tempTotal1 = 0;
157
+                    int tempint1 = 0;
158
+                    int tempTotal2 = 0;
159
+                    int tempint2 = 0;
154
                     foreach (DataRow thisRow in datas.Rows)
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
                     dataRow = newTable.NewRow();
201
                     dataRow = newTable.NewRow();
168
-                    dataRow["指标名称"] = "首呼解决率";
202
+                    dataRow["指标名称"] = "咨询首呼解决率";
169
                     dataRow["指标值"] = data1;
203
                     dataRow["指标值"] = data1;
170
                     newTable.Rows.Add(dataRow);
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
                 #endregion
215
                 #endregion
173
 
216
 
174
                 #region 按时办结率
217
                 #region 按时办结率
195
 
238
 
196
                         if (thisRow["F_HOUSING"].ToMyString() == "咨询")
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
                             if (thisRow["CallState"].ToInt32() == 1)
250
                             if (thisRow["CallState"].ToInt32() == 1)
210
                             }
253
                             }
211
                             tempTotal1 += thisRow["num"].ToInt32();
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
                             if (thisRow["CallState"].ToInt32() == 1)
259
                             if (thisRow["CallState"].ToInt32() == 1)
311
 
354
 
312
 
355
 
313
 
356
 
314
-                            if (thisRow["DealResult"].ToMyString().Contains("无效投诉"))
357
+                            if (thisRow["F_SERVICENATURE"].ToMyString().Contains("无效投诉"))
315
                             {
358
                             {
316
                                 tempint1 += thisRow["num"].ToInt32();
359
                                 tempint1 += thisRow["num"].ToInt32();
317
                                 tempTotal1 += thisRow["num"].ToInt32();
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
                                 tempint2 += thisRow["num"].ToInt32();
364
                                 tempint2 += thisRow["num"].ToInt32();
322
                                 tempTotal1 += thisRow["num"].ToInt32();
365
                                 tempTotal1 += thisRow["num"].ToInt32();
323
                             }
366
                             }
324
-                            if (thisRow["DealResult"].ToMyString().Contains("有责投诉"))
367
+                            if (thisRow["F_SERVICENATURE"].ToMyString().Contains("有责投诉"))
325
                             {
368
                             {
326
                                 tempint3 += thisRow["num"].ToInt32();
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
                                 tempint4 += thisRow["num"].ToInt32();
373
                                 tempint4 += thisRow["num"].ToInt32();
331
                             }
374
                             }

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

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
         /// <summary>
576
         /// <summary>
536
         /// 字典项编辑
577
         /// 字典项编辑

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

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

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

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