Browse Source

工单流程修改,超期修改,用户管理修改

duhongyu 6 years ago
parent
commit
7ae59ddfb6

+ 4 - 1
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/UserAccountController.cs

45
                 }
45
                 }
46
                 if (!string.IsNullOrWhiteSpace(filter.Key))
46
                 if (!string.IsNullOrWhiteSpace(filter.Key))
47
                 {
47
                 {
48
+                 
48
                     sql = "";
49
                     sql = "";
49
-                    string str = string.Format(" and (F_UserCode like '%{0}%' or F_UserName like '%{1}%')", filter.Key, filter.Key);
50
+                    string str = string.Format(" and (F_WorkNumber like '%{0}%' or F_UserName like '%{1}%'" +
51
+                        "or F_Mobile like '%{2}%' "+
52
+                        "or F_Remark like '%{3}%')", filter.Key, filter.Key, filter.Key, filter.Key);
50
                     sql += str;
53
                     sql += str;
51
                 }
54
                 }
52
                 int recordCount = 0;
55
                 int recordCount = 0;

+ 69 - 30
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/WOReportController.cs

2458
                         if (itemList[0].F_NextDept > 0)
2458
                         if (itemList[0].F_NextDept > 0)
2459
                         {
2459
                         {
2460
                             var deptmodel = departmentBLL.GetModel(int.Parse(itemList[0].F_NextDept.ToString()));
2460
                             var deptmodel = departmentBLL.GetModel(int.Parse(itemList[0].F_NextDept.ToString()));
2461
+
2461
                             if (model.overdue.Count > 0)
2462
                             if (model.overdue.Count > 0)
2462
                             {
2463
                             {
2463
                                  
2464
                                  
2489
                                 templates.number = 1;
2490
                                 templates.number = 1;
2490
                                 model.overdue.Add(templates);
2491
                                 model.overdue.Add(templates);
2491
                             }
2492
                             }
2492
-
2493
-
2493
+                        }
2494
+                        else
2495
+                        {
2496
+                            if (itemList[0].F_WoState ==10)
2497
+                            {
2498
+                                var deptmodel = departmentBLL.GetModel(2);
2499
+                                Template templates = new Template();
2500
+                                templates.name = deptmodel.F_DeptName;
2501
+                                templates.number = 1;
2502
+                                model.overdue.Add(templates);
2503
+                            }
2494
                         }
2504
                         }
2495
                     }
2505
                     }
2496
                 }
2506
                 }
2580
         {
2590
         {
2581
             int type = 0;
2591
             int type = 0;
2582
             var modlelist = workOrder.GetModelList(" F_IsDelete=0" + "and F_IsOver=0" + " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," +
2592
             var modlelist = workOrder.GetModelList(" F_IsDelete=0" + "and F_IsOver=0" + " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," +
2583
-                (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + ")");
2593
+                (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.finish + ")");
2584
             if (modlelist.Count > 0)
2594
             if (modlelist.Count > 0)
2585
             {
2595
             {
2586
                 foreach (var it in modlelist)
2596
                 foreach (var it in modlelist)
2615
         /// <returns></returns>
2625
         /// <returns></returns>
2616
         private bool TimeforOver(int id)
2626
         private bool TimeforOver(int id)
2617
         {
2627
         {
2618
-            var itemlasts = itembll.GetModelList("  F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID=" + id + " ");
2628
+            var itemlasts = itembll.GetModelList("  F_WoID=" + id + " order by F_ID desc");
2619
             string time1 = "", time2 = ""; int x = 0, y = 0;
2629
             string time1 = "", time2 = ""; int x = 0, y = 0;
2620
             float time = 0;
2630
             float time = 0;
2621
             if (itemlasts.Count > 0)
2631
             if (itemlasts.Count > 0)
2622
             {
2632
             {
2623
-                for (int i = 0; i < itemlasts.Count; i++)
2633
+                for (int z = 0; z < itemlasts.Count; z++)
2624
                 {
2634
                 {
2625
-                    if (itemlasts[i].F_WoState >= 1)
2635
+                    if (itemlasts[z].F_WoState >= 1)
2626
                     {
2636
                     {
2627
-                        if (itemlasts[i].F_WoState == 1)
2637
+                        if (itemlasts[z].F_WoState == 1)
2628
                         {
2638
                         {
2629
-                            x = i;
2630
-                            time1 = itemlasts[i].F_CreateTime.ToString();
2631
-                            time = float.Parse(itemlasts[i].F_LimitTime);
2639
+                            x = z;
2640
+                            time1 = itemlasts[z].F_CreateTime.ToString();
2641
+                            time = float.Parse(itemlasts[z].F_LimitTime);
2642
+                            break; ;
2632
                         }
2643
                         }
2633
-                        if (itemlasts[i].F_WoState == 10)
2644
+                    }
2645
+                }
2646
+                for (int i = 0; i < itemlasts.Count; i++)
2647
+                {
2648
+                   
2649
+                    if (itemlasts[i].F_WoState >= 1)
2650
+                    {
2651
+                        if (itemlasts[i].F_WoState == 11)
2634
                         {
2652
                         {
2635
                             y = i;
2653
                             y = i;
2636
                             time2 = itemlasts[i].F_CreateTime.ToString();
2654
                             time2 = itemlasts[i].F_CreateTime.ToString();
2643
                     {
2661
                     {
2644
                         if (x > y)
2662
                         if (x > y)
2645
                         {
2663
                         {
2646
-                            int a = (DateTime.Parse(time2) - DateTime.Parse(time1)).Hours;
2647
-                            if (a > time)
2664
+                         
2665
+                            System.TimeSpan a = DateTime.Parse(time2) - DateTime.Parse(time1);
2666
+                            if ((float)a.TotalHours > time)
2648
                             {
2667
                             {
2649
                                 return false;
2668
                                 return false;
2650
                             }
2669
                             }
2651
                         }
2670
                         }
2652
                         else
2671
                         else
2653
                         {
2672
                         {
2654
-                            int a = (DateTime.Now - DateTime.Parse(time1)).Hours;
2655
-                            if (a > time)
2673
+                            System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
2674
+                            if ((float)a.TotalHours > time)
2656
                             {
2675
                             {
2657
                                 return false;
2676
                                 return false;
2658
                             }
2677
                             }
2665
                 }
2684
                 }
2666
                 else if (time1 != "")
2685
                 else if (time1 != "")
2667
                 {
2686
                 {
2668
-                    int a = (DateTime.Now - DateTime.Parse(time1)).Hours;
2669
-                    if (a > time)
2687
+                    System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
2688
+                    if ((float)a.TotalHours > time)
2670
                     {
2689
                     {
2671
                         return false;
2690
                         return false;
2672
                     }
2691
                     }
3113
                                                 x = z;
3132
                                                 x = z;
3114
                                                 timeover = itemList[z].F_CreateTime.ToString();
3133
                                                 timeover = itemList[z].F_CreateTime.ToString();
3115
                                                 //   limit = int.Parse(itemList[z].F_LimitTime);
3134
                                                 //   limit = int.Parse(itemList[z].F_LimitTime);
3116
-                                                continue;
3135
+                                                break; ;
3117
                                             }
3136
                                             }
3118
                                         }
3137
                                         }
3119
                                     }
3138
                                     }
3292
                                         string timeover = "", timeover2 = ""; int x = 0, y = 0;
3311
                                         string timeover = "", timeover2 = ""; int x = 0, y = 0;
3293
                                         var itemList = itembll.GetModelList("  F_WoID=" + it.F_ID + " order by F_ID desc");
3312
                                         var itemList = itembll.GetModelList("  F_WoID=" + it.F_ID + " order by F_ID desc");
3294
                                         if (itemList[0].F_NextDept > 0)
3313
                                         if (itemList[0].F_NextDept > 0)
3314
+
3295
                                         {
3315
                                         {
3296
                                             var deptmodel = departmentBLL.GetModel(int.Parse(itemList[0].F_NextDept.ToString()));
3316
                                             var deptmodel = departmentBLL.GetModel(int.Parse(itemList[0].F_NextDept.ToString()));
3297
                                             if (deptmodel != null)
3317
                                             if (deptmodel != null)
3299
                                                 worker.F_Responsibility = deptmodel.F_DeptName;
3319
                                                 worker.F_Responsibility = deptmodel.F_DeptName;
3300
                                             }
3320
                                             }
3301
                                         }
3321
                                         }
3322
+                                        else
3323
+                                        {
3324
+                                            if (itemList[0].F_WoState ==10)
3325
+                                            {
3326
+                                                var deptmodel = departmentBLL.GetModel(2);
3327
+                                                if (deptmodel != null)
3328
+                                                {
3329
+                                                    worker.F_Responsibility = deptmodel.F_DeptName;
3330
+                                                }
3331
+                                            }
3332
+                                        }
3302
                                         int limit = it.F_limit;
3333
                                         int limit = it.F_limit;
3303
                                         if (itemList != null)
3334
                                         if (itemList != null)
3304
                                         {
3335
                                         {
3319
                                             {
3350
                                             {
3320
                                                 if (itemList[z].F_WoState >= 1)
3351
                                                 if (itemList[z].F_WoState >= 1)
3321
                                                 {
3352
                                                 {
3322
-                                                    if (itemList[z].F_WoState == 10)
3353
+                                                    if (itemList[z].F_WoState == 11)
3323
                                                     {
3354
                                                     {
3324
                                                         y = z;
3355
                                                         y = z;
3325
                                                         timeover2 = itemList[z].F_CreateTime.ToString();
3356
                                                         timeover2 = itemList[z].F_CreateTime.ToString();
4068
            
4099
            
4069
             if (itemlasts.Count > 0)
4100
             if (itemlasts.Count > 0)
4070
             {
4101
             {
4071
-                for (int i = 0; i < itemlasts.Count; i++)
4102
+                for (int z = 0; z < itemlasts.Count; z++)
4072
                 {
4103
                 {
4073
-                    if (itemlasts[i].F_WoState >= 1)
4104
+                    if (itemlasts[z].F_WoState >= 1)
4074
                     {
4105
                     {
4075
-                        if (itemlasts[i].F_WoState == 1)
4106
+                        if (itemlasts[z].F_WoState == 1)
4076
                         {
4107
                         {
4077
-                            x = i;
4078
-                            time1 = itemlasts[i].F_CreateTime.ToString();
4108
+                            x = z;
4109
+                            time1 = itemlasts[z].F_CreateTime.ToString();
4110
+                            break;
4079
                         }
4111
                         }
4112
+                    }
4113
+                }
4114
+                for (int i = 0; i < itemlasts.Count; i++)
4115
+                {
4116
+                    if (itemlasts[i].F_WoState >= 1)
4117
+                    {
4118
+                       
4080
                         if (itemlasts[i].F_WoState == 10)
4119
                         if (itemlasts[i].F_WoState == 10)
4081
                         {
4120
                         {
4082
                             y = i;
4121
                             y = i;
4090
                     {
4129
                     {
4091
                         if (x > y)
4130
                         if (x > y)
4092
                         {
4131
                         {
4093
-                            float a = (DateTime.Parse(time2) - DateTime.Parse(time1)).Hours;
4094
-                            float b = time - a;
4132
+                            System.TimeSpan a = DateTime.Parse(time2) - DateTime.Parse(time1);
4133
+                            float b = time - (float)a.TotalHours;
4095
                             return b;
4134
                             return b;
4096
                         }
4135
                         }
4097
                         else
4136
                         else
4098
                         {
4137
                         {
4099
-                            float a = (DateTime.Now - DateTime.Parse(time1)).Hours;
4100
-                            float b = time - a;
4138
+                            System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
4139
+                            float b = time - (float)a.TotalHours;
4101
                             return b;
4140
                             return b;
4102
                         }
4141
                         }
4103
                     }
4142
                     }
4108
                 }
4147
                 }
4109
                 else if (time1 != "")
4148
                 else if (time1 != "")
4110
                 {
4149
                 {
4111
-                    float a = (DateTime.Now - DateTime.Parse(time1)).Hours;
4112
-                    float b = time - a;
4150
+                    System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
4151
+                    float b = time - (float)a.TotalHours;
4113
                     return b;
4152
                     return b;
4114
                 }
4153
                 }
4115
                 else
4154
                 else

+ 110 - 54
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/weixin/WxLoginController.cs

680
                         case 4://待完成的(待处理)
680
                         case 4://待完成的(待处理)
681
                             if (GetDWCWorkOrderID(ua.F_UserCode) != null)
681
                             if (GetDWCWorkOrderID(ua.F_UserCode) != null)
682
                             {
682
                             {
683
-                                sql += " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.reassign + ") and T_Wo_WorkOrder.F_ID in ( " + GetDWCWorkOrderID(ua.F_UserCode) + ") ";
683
+                                sql += " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback  + ") and T_Wo_WorkOrder.F_ID in ( " + GetDWCWorkOrderID(ua.F_UserCode) + ") ";
684
 
684
 
685
                             }
685
                             }
686
                             else
686
                             else
793
                             if (GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) != "")
793
                             if (GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) != "")
794
                             {
794
                             {
795
 
795
 
796
-                                sql += $" and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.reassign + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")  and T_Wo_WorkOrder.F_ID in ( " +
797
-                           GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) + ") "; ;
796
+                                sql += $" and F_State in(" + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")  and T_Wo_WorkOrder.F_ID in ( " +
797
+                          GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) + ") "; ;
798
 
798
 
799
                             }
799
                             }
800
                             else
800
                             else
1158
                 // string deptuser = "select F_WoID from T_Sys_UserAccount where F_DeptId=" + deptid;
1158
                 // string deptuser = "select F_WoID from T_Sys_UserAccount where F_DeptId=" + deptid;
1159
                 str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1159
                 str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1160
                     + " and isnull(F_IsUsed,'0')='0' " + " and "
1160
                     + " and isnull(F_IsUsed,'0')='0' " + " and "
1161
-                        + "(F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.reback + ") and F_NextDept =" + deptid + ") "//办理中和接单状态的操作人
1162
-                        + " or (F_WoState =" + (int)EnumWorkOrderState.receive + " and F_NextUser in('" + deptuser + "'))";//退回下一步操作人
1161
+                        + "(F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.abreback  + ") and F_NextDept =" + deptid + ") "//办理中和接单状态的操作人
1162
+                        + " or (F_WoState =" + (int)EnumWorkOrderState.assign + " and F_NextUser in('" + deptuser + "'))";//退回下一步操作人
1163
 
1163
 
1164
 
1164
 
1165
             }
1165
             }
1511
                     {
1511
                     {
1512
                         deptmodelsname = deptmodels.F_DeptName + "-";
1512
                         deptmodelsname = deptmodels.F_DeptName + "-";
1513
                     }
1513
                     }
1514
-                    var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.audit + " and  F_CreateUser!=" + user.F_UserCode + " and  F_OptType=" + (int)EnumItemOpt.audit + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
1514
+                    var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.audit + " and  F_CreateUser!=" + user.F_UserCode + " and  F_OptType=" + (int)EnumItemOpt.audit + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
1515
                     if (itemlast != null)
1515
                     if (itemlast != null)
1516
                         toussers = itemlast.F_CreateUser;
1516
                         toussers = itemlast.F_CreateUser;
1517
                     wostate = 16;
1517
                     wostate = 16;
1544
                     Model.T_Sys_RoleInfo ro = rolebll.GetModel(nowUser.F_RoleId);
1544
                     Model.T_Sys_RoleInfo ro = rolebll.GetModel(nowUser.F_RoleId);
1545
                     if (ro.F_RoleCode == "DQJL")
1545
                     if (ro.F_RoleCode == "DQJL")
1546
                     {
1546
                     {
1547
-                        var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.audit + " and  F_OptType=" + (int)EnumItemOpt.audit + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
1547
+                        var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.audit + " and  F_OptType=" + (int)EnumItemOpt.audit + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
1548
                         if (itemlast != null)
1548
                         if (itemlast != null)
1549
                             toussers = itemlast.F_CreateUser;
1549
                             toussers = itemlast.F_CreateUser;
1550
                         if (AuditState == 0)
1550
                         if (AuditState == 0)
1810
             foreach (var it in itemlast)
1810
             foreach (var it in itemlast)
1811
             {
1811
             {
1812
                 float hours = (DateTime.Now - DateTime.Parse(it.F_CreateTime.ToString())).Hours;
1812
                 float hours = (DateTime.Now - DateTime.Parse(it.F_CreateTime.ToString())).Hours;
1813
+                int overtime = 0;
1814
+                if (!string .IsNullOrEmpty (it.F_LimitTime))
1815
+                {
1816
+                 overtime = int.Parse(it.F_LimitTime);
1817
+                }
1818
+                int sms = int.Parse (it.F_IsSMS.ToString ());
1813
                 if (F_RoleCode == "DQJL")
1819
                 if (F_RoleCode == "DQJL")
1814
                 {
1820
                 {
1815
                     if (hours >= 24)
1821
                     if (hours >= 24)
1841
                     {
1847
                     {
1842
                         DateTime time = DateTime.Parse(it.F_CreateTime.ToString()).AddHours(24);
1848
                         DateTime time = DateTime.Parse(it.F_CreateTime.ToString()).AddHours(24);
1843
                         Model.T_Wo_WorkOrder model = woBLL.GetModel(it.F_WoID);
1849
                         Model.T_Wo_WorkOrder model = woBLL.GetModel(it.F_WoID);
1844
-                        AddLog(model.F_ID, model.F_State.Value, deptmodelsname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "未审批流转大区经理", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, ua, 0, 0);
1845
-                        AddLog(model.F_ID, model.F_State.Value, deptname + user.F_UserName + "(" + user.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, user, 0, 0);
1850
+                        AddLog(model.F_ID, model.F_State.Value, deptmodelsname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "未审批流转大区经理", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, ua, overtime, sms );
1851
+                        AddLog(model.F_ID, model.F_State.Value, deptname + user.F_UserName + "(" + user.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, user, overtime, sms);
1846
                     }
1852
                     }
1847
                     else if (hours >= 48)
1853
                     else if (hours >= 48)
1848
                     {
1854
                     {
1863
                                       + "F_WoState in(" + (int)EnumWorkOrderState.audit + ") and F_NextUser in ( " + GetDeptment(ua) + ") ");
1869
                                       + "F_WoState in(" + (int)EnumWorkOrderState.audit + ") and F_NextUser in ( " + GetDeptment(ua) + ") ");
1864
                     foreach (var it in itemlasts)
1870
                     foreach (var it in itemlasts)
1865
                     {
1871
                     {
1872
+                        int overtime = 0;
1873
+                        if (!string.IsNullOrEmpty(it.F_LimitTime))
1874
+                        {
1875
+                            overtime = int.Parse(it.F_LimitTime);
1876
+                        }
1877
+                        int sms = int.Parse(it.F_IsSMS.ToString());
1866
                         float hours = (DateTime.Now - DateTime.Parse(it.F_CreateTime.ToString())).Hours;
1878
                         float hours = (DateTime.Now - DateTime.Parse(it.F_CreateTime.ToString())).Hours;
1867
                         if (F_RoleCode == "DQJL")
1879
                         if (F_RoleCode == "DQJL")
1868
                         {
1880
                         {
1884
                                 {
1896
                                 {
1885
                                     deptmodelsname = deptmodels.F_DeptName + "-";
1897
                                     deptmodelsname = deptmodels.F_DeptName + "-";
1886
                                 }
1898
                                 }
1887
-                                AddLog(model.F_ID, model.F_State.Value, deptmodelsname + user.F_UserName + "(" + user.F_WorkNumber + ")" + "未审批流转大区经理", (int)EnumItemType.audit, (int)EnumItemOpt.audit, ua.F_UserCode, ua.F_DeptId, user, 0, 0);
1888
-                                AddLog(model.F_ID, model.F_State.Value, deptname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, ua.F_UserCode, ua.F_DeptId, ua, 0, 0);
1899
+                                AddLog(model.F_ID, model.F_State.Value, deptmodelsname + user.F_UserName + "(" + user.F_WorkNumber + ")" + "未审批流转大区经理", (int)EnumItemType.audit, (int)EnumItemOpt.audit, ua.F_UserCode, ua.F_DeptId, user, overtime, sms);
1900
+                                AddLog(model.F_ID, model.F_State.Value, deptname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, ua.F_UserCode, ua.F_DeptId, ua, overtime, sms );
1889
                                 if (hours < 48)
1901
                                 if (hours < 48)
1890
                                 {
1902
                                 {
1891
                                     str = GetID(str, it.F_WoID);
1903
                                     str = GetID(str, it.F_WoID);
2263
                     model.F_AuditBy = model1[i].F_AuditBy;//审核人
2275
                     model.F_AuditBy = model1[i].F_AuditBy;//审核人
2264
                     model.F_AuditOn = model1[i].F_AuditOn;//审核时间
2276
                     model.F_AuditOn = model1[i].F_AuditOn;//审核时间
2265
                     model.F_AuditCont = model1[i].F_AuditCont;//审核内容
2277
                     model.F_AuditCont = model1[i].F_AuditCont;//审核内容
2266
-                    model.RemainingTime = TimeToOver(model1[i].F_ID, model1[i].F_limit);
2278
+                    model.RemainingTime = float.Parse(string.Format("{0:f2}", TimeToOver(model1[i].F_ID, model1[i].F_limit)));
2267
                     if (ua != null)
2279
                     if (ua != null)
2268
                     {
2280
                     {
2269
-                        var itemlast = itembll.GetModelList("   F_WoID='" + model.F_ID + "' order by F_CreateTime desc").FirstOrDefault();
2281
+                        var itemlast = itembll.GetModelList("   F_WoID='" + model.F_ID + "' order by F_ID desc").FirstOrDefault();
2270
                         if (itemlast != null)
2282
                         if (itemlast != null)
2271
                             model.F_UserCode = itemlast.F_CreateUser;
2283
                             model.F_UserCode = itemlast.F_CreateUser;
2272
                         if (!string.IsNullOrEmpty(model.F_UserCode))
2284
                         if (!string.IsNullOrEmpty(model.F_UserCode))
2321
             string time1 = "", time2 = ""; int x = 0, y = 0;
2333
             string time1 = "", time2 = ""; int x = 0, y = 0;
2322
             if (itemlasts.Count > 0)
2334
             if (itemlasts.Count > 0)
2323
             {
2335
             {
2324
-                for (int i = 0; i < itemlasts.Count; i++)
2336
+                for (int z = 0; z < itemlasts.Count; z++)
2325
                 {
2337
                 {
2326
-                    if (itemlasts[i].F_WoState >= 1)
2338
+                    if (itemlasts[z].F_WoState >= 1)
2327
                     {
2339
                     {
2328
-                        if (itemlasts[i].F_WoState == 1)
2340
+                        if (itemlasts[z].F_WoState == 1)
2329
                         {
2341
                         {
2330
-                            x = i;
2331
-                            time1 = itemlasts[i].F_CreateTime.ToString();
2332
-
2342
+                            x = z;
2343
+                            time1 = itemlasts[z].F_CreateTime.ToString();
2344
+                            break;
2333
                         }
2345
                         }
2334
-                        if (itemlasts[i].F_WoState == 10)
2346
+                    }
2347
+                }
2348
+                for (int i = 0; i < itemlasts.Count; i++)
2349
+                {
2350
+                    if (itemlasts[i].F_WoState >= 1)
2351
+                    {
2352
+                      
2353
+                        if (itemlasts[i].F_WoState == 11)
2335
                         {
2354
                         {
2336
                             y = i;
2355
                             y = i;
2337
                             time2 = itemlasts[i].F_CreateTime.ToString();
2356
                             time2 = itemlasts[i].F_CreateTime.ToString();
2344
                     {
2363
                     {
2345
                         if (x > y)
2364
                         if (x > y)
2346
                         {
2365
                         {
2347
-                            float a = (DateTime.Parse(time2) - DateTime.Parse(time1)).Hours;
2348
-                            float b = limit - a;
2366
+                            System.TimeSpan a = DateTime.Parse(time2) - DateTime.Parse(time1);
2367
+                            float b = limit - (float)a.TotalHours;
2349
                             return b;
2368
                             return b;
2350
                         }
2369
                         }
2351
                         else
2370
                         else
2352
                         {
2371
                         {
2353
-                            float a = (DateTime.Now - DateTime.Parse(time1)).Hours;
2354
-                            float b = limit - a;
2372
+                            System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
2373
+                            float b = limit - (float)a.TotalHours;
2355
                             return b;
2374
                             return b;
2356
                         }
2375
                         }
2357
                     }
2376
                     }
2362
                 }
2381
                 }
2363
                 else if (time1 != "")
2382
                 else if (time1 != "")
2364
                 {
2383
                 {
2365
-                    float a = (DateTime.Now - DateTime.Parse(time1)).Hours;
2366
-                    float b = limit - a;
2384
+                    System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
2385
+                    float b = limit - (float)a.TotalHours;
2367
                     return b;
2386
                     return b;
2368
                 }
2387
                 }
2369
                 else
2388
                 else
2414
                             if (deptmodel.F_Layer == 2)
2433
                             if (deptmodel.F_Layer == 2)
2415
                             {
2434
                             {
2416
                                 Model.T_Sys_UserAccount userModel = userAccountBLL.GetModelList(" F_DeptId=" + deptmodel.F_DeptId + " and F_RoleId=60 ").FirstOrDefault();
2435
                                 Model.T_Sys_UserAccount userModel = userAccountBLL.GetModelList(" F_DeptId=" + deptmodel.F_DeptId + " and F_RoleId=60 ").FirstOrDefault();
2436
+                             if (userModel!=null )
2417
                                 return userModel;
2437
                                 return userModel;
2438
+                             else
2439
+                                {
2440
+                                    var dept = departmentBLL.GetModel(deptmodel.F_ParentId);
2441
+                                    if (dept != null)
2442
+                                    {
2443
+                                        Model.T_Sys_UserAccount userModel1 = userAccountBLL.GetModelList(" F_DeptId=" + dept.F_DeptId + " and F_RoleId=62  ").FirstOrDefault();
2444
+                                        return userModel1;
2445
+                                    }
2446
+                                }
2447
+
2418
                             }
2448
                             }
2419
                             if (deptmodel.F_Layer == 1)
2449
                             if (deptmodel.F_Layer == 1)
2420
                             {
2450
                             {
2445
                             if (dept != null)
2475
                             if (dept != null)
2446
                             {
2476
                             {
2447
                                 Model.T_Sys_UserAccount userModel = userAccountBLL.GetModelList(" F_DeptId=" + dept.F_DeptId + " and F_RoleId=62  ").FirstOrDefault();
2477
                                 Model.T_Sys_UserAccount userModel = userAccountBLL.GetModelList(" F_DeptId=" + dept.F_DeptId + " and F_RoleId=62  ").FirstOrDefault();
2478
+                                if (userModel!=null )
2448
                                 return userModel;
2479
                                 return userModel;
2480
+                               
2449
                             }
2481
                             }
2450
                             else
2482
                             else
2451
                             {
2483
                             {
3012
                 {
3044
                 {
3013
                     model.F_State = (int)EnumWorkOrderState.audit;
3045
                     model.F_State = (int)EnumWorkOrderState.audit;
3014
                 }
3046
                 }
3047
+                model.F_limit = overtime;
3048
+               
3015
                 #endregion
3049
                 #endregion
3016
                 long n = woBLL.Add(model);
3050
                 long n = woBLL.Add(model);
3017
                 if (n > 0)
3051
                 if (n > 0)
3036
                                 {
3070
                                 {
3037
                                     deptname1 = deptmodel1.F_DeptName + "-";
3071
                                     deptname1 = deptmodel1.F_DeptName + "-";
3038
                                 }
3072
                                 }
3039
-                                AddLog(modlelist.F_ID, 0, deptname1 + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "创建工单", (int)EnumWorkOrderState.neworder, (int)EnumItemOpt.create, user.F_UserCode, user.F_DeptId, ua, 0, 0);
3040
-                                AddLog(modlelist.F_ID, modlelist.F_State.Value, deptname + user.F_UserName + "(" + user.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, ua, 0, 0);
3073
+                                AddLog(modlelist.F_ID, 0, deptname1 + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "创建工单", (int)EnumWorkOrderState.neworder, (int)EnumItemOpt.create, user.F_UserCode, user.F_DeptId, ua, overtime, sms );
3074
+                                AddLog(modlelist.F_ID, modlelist.F_State.Value, deptname + user.F_UserName + "(" + user.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, ua, overtime, sms);
3041
                             }
3075
                             }
3042
                             else
3076
                             else
3043
                             {
3077
                             {
3050
                                     deptname1 = deptmodel1.F_DeptName + "-";
3084
                                     deptname1 = deptmodel1.F_DeptName + "-";
3051
                                     dapt = deptmodel1.F_ParentId;
3085
                                     dapt = deptmodel1.F_ParentId;
3052
                                 }
3086
                                 }
3053
-                                AddLog(modlelist.F_ID, 0, deptname1 + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "创建工单", (int)EnumWorkOrderState.neworder, (int)EnumItemOpt.create, "", 0, ua, 0, 0);
3087
+                                AddLog(modlelist.F_ID, 0, deptname1 + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "创建工单", (int)EnumWorkOrderState.neworder, (int)EnumItemOpt.create, "", 0, ua, overtime, sms);
3054
                                 string opt = "";
3088
                                 string opt = "";
3055
                                 if (dapt != 0)
3089
                                 if (dapt != 0)
3056
                                 {
3090
                                 {
3092
                         }
3126
                         }
3093
                         else
3127
                         else
3094
                         {
3128
                         {
3095
-                            AddLog(modlelist.F_ID, 0, "客户" + "创建工单", (int)EnumItemType.deal, (int)EnumItemOpt.create, "", 0, null, 0, 0);
3129
+                            AddLog(modlelist.F_ID, 0, "客户" + "创建工单", (int)EnumItemType.deal, (int)EnumItemOpt.create, "", 0, null, overtime, sms);
3096
                             return Success("添加成功");
3130
                             return Success("添加成功");
3097
                         }
3131
                         }
3098
 
3132
 
3627
         /// <returns></returns>
3661
         /// <returns></returns>
3628
         private bool TimeforOver(int id)
3662
         private bool TimeforOver(int id)
3629
         {
3663
         {
3630
-            var itemlasts = itembll.GetModelList("  F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID=" + id + " ");
3664
+            var itemlasts = itembll.GetModelList("  F_WoID=" + id + " order by F_ID desc");
3631
             string time1 = "", time2 = ""; int x = 0, y = 0;
3665
             string time1 = "", time2 = ""; int x = 0, y = 0;
3632
             float time = 0;
3666
             float time = 0;
3633
             if (itemlasts.Count > 0)
3667
             if (itemlasts.Count > 0)
3634
             {
3668
             {
3635
-                for (int i = 0; i < itemlasts.Count; i++)
3669
+                for (int z = 0; z < itemlasts.Count; z++)
3636
                 {
3670
                 {
3637
-                    if (itemlasts[i].F_WoState >= 1)
3671
+                    if (itemlasts[z].F_WoState >= 1)
3638
                     {
3672
                     {
3639
-                        if (itemlasts[i].F_WoState == 1)
3673
+                        if (itemlasts[z].F_WoState == 1)
3640
                         {
3674
                         {
3641
-                            x = i;
3642
-                            time1 = itemlasts[i].F_CreateTime.ToString();
3643
-                            time = float.Parse(itemlasts[i].F_LimitTime);
3675
+                            x = z;
3676
+                            time1 = itemlasts[z].F_CreateTime.ToString();
3677
+                            time = float.Parse(itemlasts[z].F_LimitTime);
3678
+                            break; ;
3644
                         }
3679
                         }
3645
-                        if (itemlasts[i].F_WoState == 10)
3680
+                    }
3681
+                }
3682
+                for (int i = 0; i < itemlasts.Count; i++)
3683
+                {
3684
+                    if (itemlasts[i].F_WoState >= 1)
3685
+                    {
3686
+                      
3687
+                        if (itemlasts[i].F_WoState == 11)
3646
                         {
3688
                         {
3647
                             y = i;
3689
                             y = i;
3648
                             time2 = itemlasts[i].F_CreateTime.ToString();
3690
                             time2 = itemlasts[i].F_CreateTime.ToString();
3655
                     {
3697
                     {
3656
                         if (x > y)
3698
                         if (x > y)
3657
                         {
3699
                         {
3658
-                            int a = (DateTime.Parse(time2) - DateTime.Parse(time1)).Hours;
3659
-                            if (a > time)
3700
+                            System.TimeSpan a = DateTime.Parse(time2) - DateTime.Parse(time1);
3701
+                            if ((float)a.TotalHours > time)
3660
                             {
3702
                             {
3661
                                 return false;
3703
                                 return false;
3662
                             }
3704
                             }
3663
                         }
3705
                         }
3664
                         else
3706
                         else
3665
                         {
3707
                         {
3666
-                            int a = (DateTime.Now - DateTime.Parse(time1)).Hours;
3667
-                            if (a > time)
3708
+                            System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
3709
+                            if ((float)a.TotalHours > time)
3668
                             {
3710
                             {
3669
                                 return false;
3711
                                 return false;
3670
                             }
3712
                             }
3677
                 }
3719
                 }
3678
                 else if (time1 != "")
3720
                 else if (time1 != "")
3679
                 {
3721
                 {
3680
-                    int a = (DateTime.Now - DateTime.Parse(time1)).Hours;
3681
-                    if (a > time)
3722
+                    System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
3723
+                    if ((float)a.TotalHours > time)
3682
                     {
3724
                     {
3683
                         return false;
3725
                         return false;
3684
                     }
3726
                     }
3752
                     if (model != null)
3794
                     if (model != null)
3753
                     {
3795
                     {
3754
                         var itemlast = itembll.GetModelList("  F_ItemType=" + (int)EnumItemType.audit + " and  F_OptType=" + (int)EnumItemOpt.audit + "and F_NextUser= '" + ua.F_UserCode + "'" + "and F_IsUsed=2  and  F_WoID = " + orderid);
3796
                         var itemlast = itembll.GetModelList("  F_ItemType=" + (int)EnumItemType.audit + " and  F_OptType=" + (int)EnumItemOpt.audit + "and F_NextUser= '" + ua.F_UserCode + "'" + "and F_IsUsed=2  and  F_WoID = " + orderid);
3797
+                        int overtime = 0, sms = 0;
3755
                         if (itemlast.Count > 0)
3798
                         if (itemlast.Count > 0)
3756
                         {
3799
                         {
3757
                             foreach (var it in itemlast)
3800
                             foreach (var it in itemlast)
3758
                             {
3801
                             {
3802
+                                if (!string .IsNullOrEmpty (it.F_LimitTime))
3803
+                                    overtime = int.Parse(it.F_LimitTime);
3804
+                                sms = int .Parse (it.F_IsSMS.ToString ());
3805
+
3759
                                 it.F_IsUsed = 1;
3806
                                 it.F_IsUsed = 1;
3760
                                 itembll.Update(it);
3807
                                 itembll.Update(it);
3761
                             }
3808
                             }
3767
                         {
3814
                         {
3768
                             deptname = deptmodel.F_DeptName + "-";
3815
                             deptname = deptmodel.F_DeptName + "-";
3769
                         }
3816
                         }
3770
-                        AddLog(model.F_ID, model.F_State.Value, deptname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "高层已审批", (int)EnumItemType.audit, (int)EnumItemOpt.reaudit, "", 0, ua, 0, 0, "", 1);
3817
+                        AddLog(model.F_ID, model.F_State.Value, deptname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "高层已审批", (int)EnumItemType.audit, (int)EnumItemOpt.reaudit, "", 0, ua, overtime, sms, "", 1);
3771
                         bool n = woBLL.Update(model);
3818
                         bool n = woBLL.Update(model);
3772
                         if (n)
3819
                         if (n)
3773
                             return Success("审批成功");
3820
                             return Success("审批成功");
3828
                     sendwxmsg(model, createUser.F_WxOpenId, nowUser, "接单");
3875
                     sendwxmsg(model, createUser.F_WxOpenId, nowUser, "接单");
3829
                 #endregion
3876
                 #endregion
3830
                 #region 读取上一级指派人员推送系统消息和微信消息
3877
                 #region 读取上一级指派人员推送系统消息和微信消息
3831
-                var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
3878
+                var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
3832
                 if (itemlast != null)
3879
                 if (itemlast != null)
3833
                 {
3880
                 {
3834
                     if (itemlast.F_CreateUser != model.F_CreateBy)
3881
                     if (itemlast.F_CreateUser != model.F_CreateBy)
3951
         {
3998
         {
3952
             int type = 0;
3999
             int type = 0;
3953
             var modlelist = woBLL.GetModelList(" F_IsDelete=0" + "and F_IsOver=0" + " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," +
4000
             var modlelist = woBLL.GetModelList(" F_IsDelete=0" + "and F_IsOver=0" + " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," +
3954
-                (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + ")");
4001
+                (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.finish + ")");
3955
             if (modlelist.Count > 0)
4002
             if (modlelist.Count > 0)
3956
             {
4003
             {
3957
                 foreach (var it in modlelist)
4004
                 foreach (var it in modlelist)
4073
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + "延期工单,延期说明:" + cont;
4120
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + "延期工单,延期说明:" + cont;
4074
             //获取上一级处理人员
4121
             //获取上一级处理人员
4075
             var touser = "";
4122
             var touser = "";
4076
-            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
4123
+            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by order  F_ID  desc").FirstOrDefault();
4077
             if (itemlast != null)
4124
             if (itemlast != null)
4078
                 touser = itemlast.F_CreateUser;
4125
                 touser = itemlast.F_CreateUser;
4079
             var itemid = AddLog((int)model.F_ID, wostate, content, (int)EnumItemType.Delay, optbut, touser, 0, nowUser, limit + model.F_limit, sms, "", 1);
4126
             var itemid = AddLog((int)model.F_ID, wostate, content, (int)EnumItemType.Delay, optbut, touser, 0, nowUser, limit + model.F_limit, sms, "", 1);
4122
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + opt + "工单,退回说明:" + cont;
4169
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + opt + "工单,退回说明:" + cont;
4123
             //获取上一级处理人员
4170
             //获取上一级处理人员
4124
             var touser = ""; var deptid = 0;
4171
             var touser = ""; var deptid = 0;
4125
-            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and F_NextDept =" + nowUser.F_DeptId + " and F_WoState =" + F_OptType + " and  F_WoID='" + model.F_ID + "' order by F_CreateTime desc").FirstOrDefault();
4172
+            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and F_NextDept =" + nowUser.F_DeptId + " and F_WoState =" + F_OptType + " and  F_WoID='" + model.F_ID + "' order by F_ID desc").FirstOrDefault();
4126
             if (itemlast != null)
4173
             if (itemlast != null)
4127
             {
4174
             {
4128
 
4175
 
4245
                 }
4292
                 }
4246
                 #endregion
4293
                 #endregion
4247
                 #region 向上一级操作人员推送消息
4294
                 #region 向上一级操作人员推送消息
4248
-                var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
4295
+                var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
4249
                 if (itemlast != null)
4296
                 if (itemlast != null)
4250
                 {
4297
                 {
4251
                     if (itemlast.F_CreateUser != model.F_CreateBy)
4298
                     if (itemlast.F_CreateUser != model.F_CreateBy)
4324
         /// </summary>
4371
         /// </summary>
4325
         /// <returns></returns>
4372
         /// <returns></returns>
4326
         [WechatActionFilter]
4373
         [WechatActionFilter]
4327
-        public ActionResult Update(WorkOrderNewInput input)
4374
+        public ActionResult Update(WorkOrderNewInput input )
4328
         {
4375
         {
4329
             var ua = userAccountBLL.GetModelList(" F_WxOpenId='" + input.F_WxOpenId + "'").FirstOrDefault();
4376
             var ua = userAccountBLL.GetModelList(" F_WxOpenId='" + input.F_WxOpenId + "'").FirstOrDefault();
4377
+          
4330
             if (ua != null)
4378
             if (ua != null)
4331
             {
4379
             {
4332
                 #region 添加验证判断
4380
                 #region 添加验证判断
4381
                 {
4429
                 {
4382
                     return Error("此工单已处理不能修改!");
4430
                     return Error("此工单已处理不能修改!");
4383
                 }
4431
                 }
4432
+                var itemlasts = itembll.GetModelList("    F_WoID=" + model.F_ID + "order by F_ID desc ").FirstOrDefault ();
4433
+                int overtime = 0, sms = 0;
4434
+                if (itemlasts!=null )
4435
+                {
4436
+                    if (itemlasts.F_LimitTime != "")
4437
+                        overtime = int.Parse(itemlasts.F_LimitTime);
4438
+                    sms = int.Parse(itemlasts.F_IsSMS.ToString());
4439
+                }
4384
                 #region 保存客户基本信息
4440
                 #region 保存客户基本信息
4385
                 model = inputtoobj(ua, model, input, 1);
4441
                 model = inputtoobj(ua, model, input, 1);
4386
                 #endregion
4442
                 #endregion
4397
                     }
4453
                     }
4398
                     #endregion
4454
                     #endregion
4399
 
4455
 
4400
-                    AddLog(input.F_ID, model.F_State.Value, deptname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "修改工单", (int)EnumItemType.update, (int)EnumItemOpt.update, "", 0, ua, 0, 0);
4456
+                    AddLog(input.F_ID, model.F_State.Value, deptname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "修改工单", (int)EnumItemType.update, (int)EnumItemOpt.update, "", 0, ua, overtime, sms);
4401
                     if (GetUser(input.F_WxOpenId) != null)
4457
                     if (GetUser(input.F_WxOpenId) != null)
4402
                     {
4458
                     {
4403
                         var user = GetUser(input.F_WxOpenId);
4459
                         var user = GetUser(input.F_WxOpenId);
4409
                         }
4465
                         }
4410
                         var deptmodel1 = departmentBLL.GetModel(ua.F_DeptId);
4466
                         var deptmodel1 = departmentBLL.GetModel(ua.F_DeptId);
4411
 
4467
 
4412
-                        AddLog(input.F_ID, model.F_State.Value, deptname1 + user.F_UserName + "(" + user.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, ua, 0, 0);
4468
+                        AddLog(input.F_ID, model.F_State.Value, deptname1 + user.F_UserName + "(" + user.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, ua, overtime, sms);
4413
                     }
4469
                     }
4414
                     else
4470
                     else
4415
                     {
4471
                     {
4447
                         }
4503
                         }
4448
                         if (nextda != 0)
4504
                         if (nextda != 0)
4449
                         {
4505
                         {
4450
-                            var res = AssignWO(ua, model, input, opt, "", nextda, 0, model.F_limit, 0);
4506
+                            var res = AssignWO(ua, model, input, opt, "", nextda, 0, model.F_limit, sms );
4451
                             if (res)
4507
                             if (res)
4452
                                 return Success("保存成功");
4508
                                 return Success("保存成功");
4453
                             else
4509
                             else

+ 89 - 49
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderNewController.cs

175
                              if (GetDeptWorkOrderID(ua.F_DeptId,ua .F_UserCode  ) != "")
175
                              if (GetDeptWorkOrderID(ua.F_DeptId,ua .F_UserCode  ) != "")
176
                         {
176
                         {
177
                           
177
                           
178
-                                sql += $" and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.reassign + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")  and T_Wo_WorkOrder.F_ID in ( " +
178
+                                sql += $" and F_State in("     + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.assign + ")  and T_Wo_WorkOrder.F_ID in ( " +
179
                            GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) + ") "; ;
179
                            GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) + ") "; ;
180
                             
180
                             
181
                         }
181
                         }
189
                     case 2://待完成的(待处理)
189
                     case 2://待完成的(待处理)
190
                         if(GetDWCWorkOrderID(ua.F_UserCode)!=null )
190
                         if(GetDWCWorkOrderID(ua.F_UserCode)!=null )
191
                         {
191
                         {
192
-                            sql += " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.reassign + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + ") and T_Wo_WorkOrder.F_ID in ( " + GetDWCWorkOrderID(ua.F_UserCode) + ") ";
192
+                            sql += " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + ") and T_Wo_WorkOrder.F_ID in ( " + GetDWCWorkOrderID(ua.F_UserCode) + ") ";
193
                         }
193
                         }
194
                         else
194
                         else
195
                         {
195
                         {
1232
                     {
1232
                     {
1233
                         deptmodelsname = deptmodels.F_DeptName + "-";
1233
                         deptmodelsname = deptmodels.F_DeptName + "-";
1234
                     }
1234
                     }
1235
-                    var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.audit + " and  F_CreateUser!=" + user.F_UserCode  + " and  F_OptType=" + (int)EnumItemOpt.audit + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
1235
+                    var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.audit + " and  F_CreateUser!=" + user.F_UserCode  + " and  F_OptType=" + (int)EnumItemOpt.audit + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
1236
                     if (itemlast != null)
1236
                     if (itemlast != null)
1237
                         toussers = itemlast.F_CreateUser;
1237
                         toussers = itemlast.F_CreateUser;
1238
                     wostate = 16;
1238
                     wostate = 16;
1265
                     Model.T_Sys_RoleInfo ro = rolebll.GetModel(nowUser.F_RoleId);
1265
                     Model.T_Sys_RoleInfo ro = rolebll.GetModel(nowUser.F_RoleId);
1266
                     if (ro.F_RoleCode == "DQJL")
1266
                     if (ro.F_RoleCode == "DQJL")
1267
                     {
1267
                     {
1268
-                        var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.audit  + " and  F_OptType=" + (int)EnumItemOpt.audit + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
1268
+                        var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.audit  + " and  F_OptType=" + (int)EnumItemOpt.audit + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
1269
                         if (itemlast != null)
1269
                         if (itemlast != null)
1270
                             toussers = itemlast.F_CreateUser;
1270
                             toussers = itemlast.F_CreateUser;
1271
 
1271
 
1458
             foreach (var it in itemlast)
1458
             foreach (var it in itemlast)
1459
             {
1459
             {
1460
                 float hours = (DateTime.Now - DateTime.Parse(it.F_CreateTime.ToString())).Hours;
1460
                 float hours = (DateTime.Now - DateTime.Parse(it.F_CreateTime.ToString())).Hours;
1461
+                int overtime = 0;
1462
+                if (!string.IsNullOrEmpty(it.F_LimitTime))
1463
+                {
1464
+                    overtime = int.Parse(it.F_LimitTime);
1465
+                }
1466
+                int sms = int.Parse(it.F_IsSMS.ToString());
1461
                 if (F_RoleCode == "DQJL")
1467
                 if (F_RoleCode == "DQJL")
1462
                 {
1468
                 {
1463
                     if (hours >= 24)
1469
                     if (hours >= 24)
1489
                     {
1495
                     {
1490
                         DateTime time = DateTime.Parse(it.F_CreateTime.ToString()).AddHours(24);
1496
                         DateTime time = DateTime.Parse(it.F_CreateTime.ToString()).AddHours(24);
1491
                         Model.T_Wo_WorkOrder model = workOrder .GetModel(it.F_WoID);
1497
                         Model.T_Wo_WorkOrder model = workOrder .GetModel(it.F_WoID);
1492
-                        AddLog(model.F_ID, model.F_State.Value, deptmodelsname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "未审批流转大区经理", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, ua, 0, 0);
1493
-                        AddLog(model.F_ID, model.F_State.Value, deptname + user.F_UserName + "(" + user.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, user, 0, 0);
1498
+                        AddLog(model.F_ID, model.F_State.Value, deptmodelsname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "未审批流转大区经理", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, ua, overtime, sms);
1499
+                        AddLog(model.F_ID, model.F_State.Value, deptname + user.F_UserName + "(" + user.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, user.F_UserCode, user.F_DeptId, user, overtime, sms);
1494
                     }
1500
                     }
1495
                     else if (hours >= 48)
1501
                     else if (hours >= 48)
1496
                     {
1502
                     {
1512
                     foreach (var it in itemlasts)
1518
                     foreach (var it in itemlasts)
1513
                     {
1519
                     {
1514
                         float hours = (DateTime.Now - DateTime.Parse(it.F_CreateTime.ToString())).Hours;
1520
                         float hours = (DateTime.Now - DateTime.Parse(it.F_CreateTime.ToString())).Hours;
1521
+                        int overtime = 0;
1522
+                        if (!string.IsNullOrEmpty(it.F_LimitTime))
1523
+                        {
1524
+                            overtime = int.Parse(it.F_LimitTime);
1525
+                        }
1526
+                        int sms = int.Parse(it.F_IsSMS.ToString());
1515
                         if (F_RoleCode == "DQJL")
1527
                         if (F_RoleCode == "DQJL")
1516
                         {
1528
                         {
1517
                             if (hours >= 24)
1529
                             if (hours >= 24)
1532
                                 {
1544
                                 {
1533
                                     deptmodelsname = deptmodels.F_DeptName + "-";
1545
                                     deptmodelsname = deptmodels.F_DeptName + "-";
1534
                                 }
1546
                                 }
1535
-                                AddLog(model.F_ID, model.F_State.Value, deptmodelsname + user.F_UserName + "(" + user.F_WorkNumber + ")" + "未审批流转大区经理", (int)EnumItemType.audit, (int)EnumItemOpt.audit, ua.F_UserCode, ua.F_DeptId, user, 0, 0);
1536
-                                AddLog(model.F_ID, model.F_State.Value, deptname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, ua.F_UserCode, ua.F_DeptId, ua, 0, 0);
1547
+                                AddLog(model.F_ID, model.F_State.Value, deptmodelsname + user.F_UserName + "(" + user.F_WorkNumber + ")" + "未审批流转大区经理", (int)EnumItemType.audit, (int)EnumItemOpt.audit, ua.F_UserCode, ua.F_DeptId, user, overtime, sms);
1548
+                                AddLog(model.F_ID, model.F_State.Value, deptname + ua.F_UserName + "(" + ua.F_WorkNumber + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, ua.F_UserCode, ua.F_DeptId, ua, overtime, sms);
1537
                                 if (hours < 48)
1549
                                 if (hours < 48)
1538
                                 {
1550
                                 {
1539
                                     str = GetID(str, it.F_WoID);
1551
                                     str = GetID(str, it.F_WoID);
1720
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + "延期审批:"+ opt + cont;
1732
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + "延期审批:"+ opt + cont;
1721
             //获取上一级处理人员
1733
             //获取上一级处理人员
1722
             var touser = "";
1734
             var touser = "";
1723
-            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
1735
+            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
1724
             if (itemlast != null)
1736
             if (itemlast != null)
1725
                 touser = itemlast.F_CreateUser;
1737
                 touser = itemlast.F_CreateUser;
1726
             var itemid = AddLog((int)model.F_ID, wostate, content, (int)EnumItemType.deal, optbut, touser, 0, nowUser, limit, sms,"",1);
1738
             var itemid = AddLog((int)model.F_ID, wostate, content, (int)EnumItemType.deal, optbut, touser, 0, nowUser, limit, sms,"",1);
2193
                 // string deptuser = "select F_WoID from T_Sys_UserAccount where F_DeptId=" + deptid;
2205
                 // string deptuser = "select F_WoID from T_Sys_UserAccount where F_DeptId=" + deptid;
2194
                 str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
2206
                 str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
2195
                     + " and isnull(F_IsUsed,'0')='0' " + " and "
2207
                     + " and isnull(F_IsUsed,'0')='0' " + " and "
2196
-                        + "(F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.reback + ") and F_NextDept =" + deptid + ") "//办理中和接单状态的操作人
2197
-                        + " or (F_WoState =" + (int)EnumWorkOrderState.receive + " and F_NextUser in('" + deptuser + "'))";//退回下一步操作人
2208
+                        + "(F_WoState in(" + (int)EnumWorkOrderState.assign + ","  + (int)EnumWorkOrderState.abreback + ") and F_NextDept =" + deptid + ") "//办理中和接单状态的操作人
2209
+                        + " or (F_WoState =" + (int)EnumWorkOrderState.abreback + " and F_NextUser in('" + deptuser + "'))";//
2198
                    
2210
                    
2199
 
2211
 
2200
             }
2212
             }
3350
         {
3362
         {
3351
             int type = 0;
3363
             int type = 0;
3352
             var modlelist = workOrder .GetModelList(" F_IsDelete=0"+ "and F_IsOver=0" + " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + 
3364
             var modlelist = workOrder .GetModelList(" F_IsDelete=0"+ "and F_IsOver=0" + " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + "," + 
3353
-                (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + ")");
3365
+                (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.finish  + ")");
3354
             if (modlelist.Count >0)
3366
             if (modlelist.Count >0)
3355
             {
3367
             {
3356
                 foreach (var it in modlelist )
3368
                 foreach (var it in modlelist )
3528
                         if (deptmodel.F_Layer == 2)
3540
                         if (deptmodel.F_Layer == 2)
3529
                         {
3541
                         {
3530
                             Model.T_Sys_UserAccount userModel = sysUserAccountBll .GetModelList(" F_DeptId=" + deptmodel.F_DeptId + " and F_RoleId=60 ").FirstOrDefault();
3542
                             Model.T_Sys_UserAccount userModel = sysUserAccountBll .GetModelList(" F_DeptId=" + deptmodel.F_DeptId + " and F_RoleId=60 ").FirstOrDefault();
3531
-                            return userModel;
3543
+                            if (userModel != null)
3544
+                                return userModel;
3545
+                            else
3546
+                            {
3547
+                                var dept = departmentBLL.GetModel(deptmodel.F_ParentId);
3548
+                                if (dept != null)
3549
+                                {
3550
+                                    Model.T_Sys_UserAccount userModel1 = sysUserAccountBll.GetModelList(" F_DeptId=" + dept.F_DeptId + " and F_RoleId=62  ").FirstOrDefault();
3551
+                                    return userModel1;
3552
+                                }
3553
+                            }
3532
                         }
3554
                         }
3533
                         if (deptmodel.F_Layer == 1)
3555
                         if (deptmodel.F_Layer == 1)
3534
                         {
3556
                         {
4390
                     {
4412
                     {
4391
                         model.F_IsVisit ="否";//
4413
                         model.F_IsVisit ="否";//
4392
                     }
4414
                     }
4393
-                    model.RemainingTime = TimeToOver(model1[i].F_ID, model1[i].F_limit );
4415
+                   
4416
+                    model.RemainingTime =float .Parse (string .Format ("{0:f2}", TimeToOver(model1[i].F_ID, model1[i].F_limit)) );
4394
                     model.F_VisitOn = model1[i].F_VisitOn;//回访时间
4417
                     model.F_VisitOn = model1[i].F_VisitOn;//回访时间
4395
                     model.F_VisitBy = model1[i].F_VisitBy;//回访人
4418
                     model.F_VisitBy = model1[i].F_VisitBy;//回访人
4396
                     model.F_VisitResult = model1[i].F_VisitResult;//回访结果:非常满意、满意、一般、不满意
4419
                     model.F_VisitResult = model1[i].F_VisitResult;//回访结果:非常满意、满意、一般、不满意
4446
                     }
4469
                     }
4447
                     if (ua !=null )
4470
                     if (ua !=null )
4448
                     {
4471
                     {
4449
-                        var itemlast = itembll.GetModelList( "   F_WoID='" + model.F_ID +  "' order by F_CreateTime desc").FirstOrDefault();
4472
+                        var itemlast = itembll.GetModelList( "   F_WoID='" + model.F_ID + "' order by F_ID desc").FirstOrDefault();
4450
                         if (itemlast != null)
4473
                         if (itemlast != null)
4451
                             model.F_UserCode = itemlast.F_CreateUser;
4474
                             model.F_UserCode = itemlast.F_CreateUser;
4452
                         if (!string.IsNullOrEmpty(model.F_UserCode))
4475
                         if (!string.IsNullOrEmpty(model.F_UserCode))
4543
             string time1 = "", time2 = ""; int x = 0, y = 0;
4566
             string time1 = "", time2 = ""; int x = 0, y = 0;
4544
             if (itemlasts.Count > 0)
4567
             if (itemlasts.Count > 0)
4545
             {
4568
             {
4546
-                for (int i = 0; i < itemlasts.Count; i++)
4569
+                for (int z = 0; z < itemlasts.Count; z++)
4547
                 {
4570
                 {
4548
-                    if (itemlasts[i].F_WoState >= 1)
4571
+                    if (itemlasts[z].F_WoState >= 1)
4549
                     {
4572
                     {
4550
-                        if (itemlasts[i].F_WoState == 1)
4573
+                        if (itemlasts[z].F_WoState == 1)
4551
                         {
4574
                         {
4552
-                            x = i;
4553
-                            time1 = itemlasts[i].F_CreateTime.ToString();
4554
-
4575
+                            x = z;
4576
+                            time1 = itemlasts[z].F_CreateTime.ToString();
4577
+                            break ;
4555
                         }
4578
                         }
4556
-                        if (itemlasts[i].F_WoState == 10)
4579
+                    }
4580
+                }
4581
+                for (int i = 0; i < itemlasts.Count; i++)
4582
+                {
4583
+                    if (itemlasts[i].F_WoState >= 1)
4584
+                    {
4585
+                        if (itemlasts[i].F_WoState == 11)
4557
                         {
4586
                         {
4558
                             y = i;
4587
                             y = i;
4559
                             time2 = itemlasts[i].F_CreateTime.ToString();
4588
                             time2 = itemlasts[i].F_CreateTime.ToString();
4566
                     {
4595
                     {
4567
                         if (x > y)
4596
                         if (x > y)
4568
                         {
4597
                         {
4569
-                            float a = (DateTime.Parse(time2) - DateTime.Parse(time1)).Hours;
4570
-                            float b = limit - a;
4598
+                            System.TimeSpan a = DateTime.Parse(time2) - DateTime.Parse(time1);
4599
+                            float b = limit - (float)a.TotalHours;
4571
                             return b;
4600
                             return b;
4572
                         }
4601
                         }
4573
                         else
4602
                         else
4574
                         {
4603
                         {
4575
-                            float a = (DateTime.Now - DateTime.Parse(time1)).Hours;
4576
-                            float b = limit - a;
4604
+                            System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
4605
+                            float b = limit - (float)a.TotalHours;
4577
                             return b;
4606
                             return b;
4578
                         }
4607
                         }
4579
                     }
4608
                     }
4584
                 }
4613
                 }
4585
                 else if (time1 != "")
4614
                 else if (time1 != "")
4586
                 {
4615
                 {
4587
-                    float a = (DateTime.Now - DateTime.Parse(time1)).Hours;
4588
-                    float b = limit - a;
4616
+                    System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
4617
+                    float b = limit -(float ) a.TotalHours ;
4589
                     return b;
4618
                     return b;
4590
                 }
4619
                 }
4591
                 else
4620
                 else
4606
         /// <returns></returns>
4635
         /// <returns></returns>
4607
         private bool  TimeforOver(int id)
4636
         private bool  TimeforOver(int id)
4608
         {
4637
         {
4609
-            var itemlasts = itembll.GetModelList("  F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID=" + id + " ");
4638
+            var itemlasts = itembll.GetModelList("  F_WoID=" + id + " order by F_ID desc");
4639
+           // var itemlasts = itembll.GetModelList("  F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID=" + id + " ");
4610
             string  time1="", time2="" ;int x=0, y=0;
4640
             string  time1="", time2="" ;int x=0, y=0;
4611
             float  time = 0;
4641
             float  time = 0;
4612
             if (itemlasts.Count > 0)
4642
             if (itemlasts.Count > 0)
4613
             {
4643
             {
4614
-                for (int i=0;i < itemlasts.Count;i++)
4644
+                for (int z = 0; z < itemlasts.Count; z++)
4615
                 {
4645
                 {
4616
-                    if (itemlasts[i ].F_WoState >= 1)
4646
+                    if (itemlasts[z].F_WoState >= 1)
4617
                     {
4647
                     {
4618
-                        if (itemlasts[i].F_WoState == 1)
4648
+                        if (itemlasts[z].F_WoState == 1)
4619
                         {
4649
                         {
4620
-                            x = i;
4621
-                            time1 = itemlasts[i].F_CreateTime.ToString();
4622
-                            time = float .Parse(itemlasts[i].F_LimitTime);
4650
+                            x = z;
4651
+                            time1 = itemlasts[z].F_CreateTime.ToString();
4652
+                            time = float.Parse(itemlasts[z].F_LimitTime);
4653
+                            break; ;
4623
                         }
4654
                         }
4624
-                        if (itemlasts[i].F_WoState == 10)
4655
+                    }
4656
+                }
4657
+              
4658
+                for (int i=0;i < itemlasts.Count;i++)
4659
+                {
4660
+                    if (itemlasts[i ].F_WoState >= 1)
4661
+                    {
4662
+                        if (itemlasts[i].F_WoState == 11)
4625
                         {
4663
                         {
4626
                             y = i;
4664
                             y = i;
4627
                             time2 = itemlasts[i].F_CreateTime.ToString();
4665
                             time2 = itemlasts[i].F_CreateTime.ToString();
4634
                     {
4672
                     {
4635
                         if (x > y)
4673
                         if (x > y)
4636
                         {
4674
                         {
4637
-                            int a = (DateTime.Parse(time2) - DateTime.Parse(time1)).Hours;
4638
-                            if (a > time)
4675
+                            System.TimeSpan a = DateTime.Parse(time2) - DateTime.Parse(time1);
4676
+                           
4677
+                           
4678
+                            if ((float)a.TotalHours > time)
4639
                             {
4679
                             {
4640
                                 return false;
4680
                                 return false;
4641
                             }
4681
                             }
4642
                         }
4682
                         }
4643
                         else
4683
                         else
4644
                         {
4684
                         {
4645
-                            int a = (DateTime.Now - DateTime.Parse(time1)).Hours;
4646
-                            if (a > time)
4685
+                            System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
4686
+                            if ((float)a.TotalHours > time)
4647
                             {
4687
                             {
4648
                                 return false;
4688
                                 return false;
4649
                             }
4689
                             }
4656
                 }
4696
                 }
4657
                 else if (time1 != "")
4697
                 else if (time1 != "")
4658
                 {
4698
                 {
4659
-                    int a = (DateTime.Now - DateTime.Parse(time1)).Hours;
4660
-                    if (a > time)
4699
+                    System.TimeSpan a = DateTime.Now - DateTime.Parse(time1);
4700
+                    if ((float)a.TotalHours > time)
4661
                     {
4701
                     {
4662
                         return false;
4702
                         return false;
4663
                     }
4703
                     }
5872
         /// </summary>
5912
         /// </summary>
5873
         public bool RemindWO(Model.T_Sys_UserAccount nowUser, Model.T_Wo_WorkOrder model, string cont)
5913
         public bool RemindWO(Model.T_Sys_UserAccount nowUser, Model.T_Wo_WorkOrder model, string cont)
5874
         {
5914
         {
5875
-            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID  + "' and F_IsUsed=0 order by F_CreateTime desc").FirstOrDefault();
5915
+            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID  + "' and F_IsUsed=0 order by F_ID desc").FirstOrDefault();
5876
             #region 接收人
5916
             #region 接收人
5877
             int todept = 0; string touser = "";
5917
             int todept = 0; string touser = "";
5878
             if (itemlast != null)
5918
             if (itemlast != null)
5949
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + "延期工单,延期说明:" + cont;
5989
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + "延期工单,延期说明:" + cont;
5950
             //获取上一级处理人员
5990
             //获取上一级处理人员
5951
             var touser = "";
5991
             var touser = "";
5952
-            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
5992
+            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
5953
             if (itemlast != null)
5993
             if (itemlast != null)
5954
                 touser = itemlast.F_CreateUser;
5994
                 touser = itemlast.F_CreateUser;
5955
             
5995
             
6002
 
6042
 
6003
             var touser = ""; var deptid=0;
6043
             var touser = ""; var deptid=0;
6004
 
6044
 
6005
-            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and F_NextDept =" + nowUser.F_DeptId + " and F_WoState =" + F_OptType + " and  F_WoID='" + model.F_ID  + "' order by F_CreateTime desc").FirstOrDefault();
6045
+            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and F_NextDept =" + nowUser.F_DeptId + " and F_WoState =" + F_OptType + " and  F_WoID='" + model.F_ID  + "' order by F_ID desc").FirstOrDefault();
6006
             if (itemlast != null)
6046
             if (itemlast != null)
6007
             {
6047
             {
6008
                 touser = itemlast.F_CreateUser;
6048
                 touser = itemlast.F_CreateUser;
6093
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + opt + "工单:回访结果:" + cont+" , " + "工单:呼叫结果:" + call;
6133
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + opt + "工单:回访结果:" + cont+" , " + "工单:呼叫结果:" + call;
6094
            
6134
            
6095
             var touser = "";
6135
             var touser = "";
6096
-            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
6136
+            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
6097
             if (itemlast != null)
6137
             if (itemlast != null)
6098
                 touser = itemlast.F_CreateUser;
6138
                 touser = itemlast.F_CreateUser;
6099
             var itemid = AddLog((int)model.F_ID, wostate, content, (int)EnumItemType.evaluate, optbut, touser, 0, nowUser, model .F_limit , sms);
6139
             var itemid = AddLog((int)model.F_ID, wostate, content, (int)EnumItemType.evaluate, optbut, touser, 0, nowUser, model .F_limit , sms);
6164
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + opt + "完结工单";
6204
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_WorkNumber + ")" + opt + "完结工单";
6165
 
6205
 
6166
             var touser = "";
6206
             var touser = "";
6167
-            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
6207
+            var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
6168
             if (itemlast != null)
6208
             if (itemlast != null)
6169
                 touser = itemlast.F_CreateUser;
6209
                 touser = itemlast.F_CreateUser;
6170
             var itemid = AddLog((int)model.F_ID, wostate, content, (int)EnumItemType.deal, optbut, touser, 0, nowUser, model.F_limit, sms);
6210
             var itemid = AddLog((int)model.F_ID, wostate, content, (int)EnumItemType.deal, optbut, touser, 0, nowUser, model.F_limit, sms);
6269
                 }
6309
                 }
6270
                 #endregion
6310
                 #endregion
6271
                 #region 向上一级操作人员推送消息
6311
                 #region 向上一级操作人员推送消息
6272
-                var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID  + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
6312
+                var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID  + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
6273
                 if (itemlast!=null )
6313
                 if (itemlast!=null )
6274
                 {
6314
                 {
6275
                     if (itemlast.F_CreateUser != model.F_CreateBy)
6315
                     if (itemlast.F_CreateUser != model.F_CreateBy)
6351
                     sendwxmsg(model, createUser.F_WxOpenId, nowUser, "接单");
6391
                     sendwxmsg(model, createUser.F_WxOpenId, nowUser, "接单");
6352
                 #endregion
6392
                 #endregion
6353
                 #region 读取上一级指派人员推送系统消息和微信消息
6393
                 #region 读取上一级指派人员推送系统消息和微信消息
6354
-                var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID  + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_CreateTime desc").FirstOrDefault();
6394
+                var itemlast = itembll.GetModelList(" F_ItemType=" + (int)EnumItemType.deal + " and  F_WoID='" + model.F_ID  + "' and F_NextUser='" + nowUser.F_UserCode + "' order by F_ID desc").FirstOrDefault();
6355
                 if (itemlast!=null )
6395
                 if (itemlast!=null )
6356
                 {
6396
                 {
6357
                     if (itemlast.F_CreateUser != model.F_CreateBy)
6397
                     if (itemlast.F_CreateUser != model.F_CreateBy)

+ 1 - 1
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Models/Enum/EnumWorkOrderState.cs

19
         receive,
19
         receive,
20
         [Description("已退回待处理")]
20
         [Description("已退回待处理")]
21
         reback,
21
         reback,
22
-        [Description("异常退回待处理")]
22
+        [Description("异常退回待接单")]
23
         abreback,
23
         abreback,
24
         [Description("处理中")]
24
         [Description("处理中")]
25
         dealing,
25
         dealing,