Browse Source

bug修改

duhongyu 6 years ago
parent
commit
da604a3d41

+ 59 - 2
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/customer/CustomerNewController.cs

@@ -220,6 +220,63 @@ namespace CallCenterApi.Interface.Controllers.customer
220 220
             string time = times.ToString("yyMMddhhmm");
221 221
             return time;
222 222
         }
223
+        public ActionResult CallAdd(CustomerBaseNewInput input)
224
+        {
225
+            string usercode = CurrentUser.UserData.F_UserCode;
226
+            if (string.IsNullOrEmpty(input.F_LegalPhone))
227
+                return Error("请输入客户电话");
228
+            var sql = $" and  F_LegalPhone ='" + input.F_LegalPhone.Trim() + "'";
229
+            var userModel = new BLL.T_Cus_CustomerBaseNew().GetModelList(" F_IsDelete = 0 " + sql);
230
+            if (userModel.Count() > 0)
231
+            {
232
+            var model = cusbll.GetModel(userModel[0].F_CustomerId);
233
+                #region 保存客户基本信息
234
+           model = inputtoobj(model, input);
235
+            #endregion
236
+            bool n = cusbll.Update(model);
237
+            if (n)
238
+            {
239
+                return Success("保存成功!");
240
+            }
241
+            else
242
+                return Error("保存失败!");
243
+            }
244
+            else
245
+            {
246
+                int i = 0;
247
+                if (string.IsNullOrEmpty(input.F_CustomerCode))
248
+                {
249
+                    while (true)
250
+                    {
251
+                        if (!getunique(0, GetIntCode(i)))
252
+                        {
253
+                            input.F_CustomerCode = GetIntCode(i);
254
+                            break;
255
+                        }
256
+                        else
257
+                        {
258
+                            i++;
259
+                        }
260
+                    }
261
+                }
262
+                var model = new Model.T_Cus_CustomerBaseNew();
263
+                #region 保存客户基本信息
264
+                model = inputtoobj(model, input);
265
+                model.F_CreateBy = usercode;
266
+                model.F_CreateOn = DateTime.Now;
267
+                model.F_IsDelete = 0;
268
+                #endregion
269
+                int n = cusbll.Add(model);
270
+                if (n > 0)
271
+                {
272
+                    return Success("新增成功!");
273
+                }
274
+                else
275
+                    return Error("新增失败!");
276
+
277
+            }
278
+
279
+        }
223 280
         /// <summary>
224 281
         /// 添加客户信息
225 282
         /// </summary>
@@ -668,11 +725,11 @@ namespace CallCenterApi.Interface.Controllers.customer
668 725
                                 }
669 726
                                 else
670 727
                                 {
671
-                                    msg = msg + "第" + headrow + "行,物料编号重复,未导入<br>";
728
+                                    msg = msg + "第" + headrow + "行,客户编号重复,未导入<br>";
672 729
                                 }
673 730
                             }
674 731
                             else
675
-                                msg = msg + "第" + headrow + "行,物料编号为空或格式不正确,未导入<br>";
732
+                                msg = msg + "第" + headrow + "行,客户编号为空或格式不正确,未导入<br>";
676 733
                             #endregion
677 734
                         }
678 735
                         if (string.IsNullOrEmpty(msg))

+ 4 - 1
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/customer/RegionCategoryController.cs

@@ -288,7 +288,10 @@ namespace CallCenterApi.Interface.Controllers.customer
288 288
                     string currentID = categorylist[i].F_RegionId.ToString();//当前功能ID
289 289
                     model.id = currentID;
290 290
                     model.IconCls = "";//图标
291
-                    model.headerid =int .Parse ( categorylist[i].F_Layer.ToString ());
291
+                    if (categorylist[i].F_Layer != null)
292
+                    {
293
+                        model.headerid = int.Parse(categorylist[i].F_Layer.ToString());
294
+                    }
292 295
                     model.text = categorylist[i].F_RegionName;
293 296
                     tab2 = new BLL.T_RegionCategory().GetList("F_ParentId=" + currentID + " and F_DeleteFlag=0 order by f_sort").Tables[0];
294 297
                     if (tab2 != null && tab2.Rows.Count > 0)

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

@@ -545,9 +545,9 @@ namespace CallCenterApi.Interface.Controllers.weixin
545 545
                 if (!string.IsNullOrWhiteSpace(code))//工单编号
546 546
                     sql += $" and F_WorkOrderCode like '%" + code.Trim() + "%'";
547 547
                 if (!string.IsNullOrWhiteSpace(keywords))//关键字搜索
548
-                    sql += $"  and  F_QuestionType like '%" + keywords.Trim()
548
+                    sql += $"  and  (F_QuestionType like '%" + keywords.Trim()
549 549
                          + "%' or F_ZX_Area like '%" + keywords.Trim() + "%' or F_ZX_Branch like '%" + keywords.Trim()
550
-                         + "%' or F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%'  ";
550
+                         + "%' or F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%' ) ";
551 551
                 if (!string.IsNullOrWhiteSpace(cusname))//客户姓名
552 552
                     sql += $" and F_CusName like '%" + cusname.Trim() + "%'";
553 553
                 if (!string.IsNullOrWhiteSpace(cusphone))//客户电话
@@ -622,9 +622,12 @@ namespace CallCenterApi.Interface.Controllers.weixin
622 622
                             }
623 623
                             break;
624 624
                         case 2://待完成的(待接单)
625
-                            if (GetDJDWorkOrderID(ua.F_UserCode) != "")
625
+                            if (GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) != "")
626 626
                             {
627
-                                sql += $" and F_State=" + (int)EnumWorkOrderState.assign + $"  and T_Wo_WorkOrder.F_ID in ( " + GetDJDWorkOrderID(ua.F_UserCode) + ") "; ;
627
+
628
+                                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 ( " +
629
+                           GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) + ") "; ;
630
+
628 631
                             }
629 632
                             else
630 633
                             {
@@ -757,11 +760,11 @@ namespace CallCenterApi.Interface.Controllers.weixin
757 760
                             break;
758 761
                         case 9://待接单
759 762
 
760
-                            if (GetDeptWorkOrderID(ua.F_DeptId) != "")
763
+                            if (GetDeptWorkOrderID(ua.F_DeptId,ua .F_UserCode ) != "")
761 764
                             {
762 765
 
763 766
                                 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 ( " +
764
-                           GetDeptWorkOrderID(ua.F_DeptId) + ") "; ;
767
+                           GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) + ") "; ;
765 768
 
766 769
                             }
767 770
                             else
@@ -842,9 +845,9 @@ namespace CallCenterApi.Interface.Controllers.weixin
842 845
                 if (!string.IsNullOrWhiteSpace(code))//工单编号
843 846
                     sql += $" and F_WorkOrderCode like '%" + code.Trim() + "%'";
844 847
                 if (!string.IsNullOrWhiteSpace(keywords))//关键字搜索
845
-                    sql += $"  and  F_QuestionType like '%" + keywords.Trim()
848
+                    sql += $"  and ( F_QuestionType like '%" + keywords.Trim()
846 849
                          + "%' or F_ZX_Area like '%" + keywords.Trim() + "%' or F_ZX_Branch like '%" + keywords.Trim()
847
-                         + "%' or F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%'  ";
850
+                         + "%' or F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%')  ";
848 851
                 if (!string.IsNullOrWhiteSpace(cusname))//客户姓名
849 852
                     sql += $" and F_CusName like '%" + cusname.Trim() + "%'";
850 853
                 if (!string.IsNullOrWhiteSpace(cusphone))//客户电话
@@ -983,23 +986,6 @@ namespace CallCenterApi.Interface.Controllers.weixin
983 986
             }
984 987
         }
985 988
         /// <summary>
986
-        /// 获取部门待完成的工单编号(包括待接单)
987
-        /// </summary>
988
-        /// <returns></returns>
989
-        public string GetDeptWorkOrderID(int deptid)
990
-        {
991
-            string str = string.Empty;
992
-
993
-            str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
994
-                + " and ("
995
-                    + "(F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + ") and F_NextDept =" + deptid + ") "//办理中和接单状态的操作人
996
-                    + " or (F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + ") and F_NextDept =" + deptid + ")"//退回下一步操作人
997
-                + ")"
998
-                + " and isnull(F_IsUsed,'0')='0' ";
999
-
1000
-            return str;
1001
-        }
1002
-        /// <summary>
1003 989
         /// 根据部门获取工单号
1004 990
         /// </summary>
1005 991
         /// <returns></returns>
@@ -1053,7 +1039,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
1053 1039
             str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1054 1040
                 + " and ("
1055 1041
                     + "(F_WoState in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + ") and F_CreateUser='" + user + "') "//办理中和接单状态的操作人
1056
-                    + " or (F_WoState in(" + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + ") and F_NextUser='" + user + "')"//退回下一步操作人
1042
+                    + " or (F_WoState in(" + (int)EnumWorkOrderState.reback + ") and F_NextUser='" + user + "')"//退回下一步操作人
1057 1043
                 + ")"
1058 1044
                 + " and isnull(F_IsUsed,'0')='0' ";
1059 1045
 
@@ -1066,36 +1052,45 @@ namespace CallCenterApi.Interface.Controllers.weixin
1066 1052
             return str;
1067 1053
         }
1068 1054
         /// <summary>
1069
-        /// 获取待接单的工单编号
1055
+        /// 获取部门待完成的工单编号
1070 1056
         /// </summary>
1071 1057
         /// <returns></returns>
1072
-        public string GetDJDWorkOrderID(string user)
1058
+        public string GetDeptWorkOrderID(int deptid, string user)
1073 1059
         {
1074 1060
             string str = string.Empty;
1075
-
1076
-            var itemlast = itembll.GetModelList(" isnull(F_IsUsed,'0')='0' and F_ItemType=" + (int)EnumItemType.deal + " and  F_WoState=" + (int)EnumWorkOrderState.assign + " ");
1077
-            //   str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1078
-            //    + " and F_WoState=" + (int)EnumWorkOrderState.assign
1079
-            //    + " and isnull(F_IsUsed,'0')='0' and F_NextUser='" + user + "' ";
1080
-            foreach (var it in itemlast)
1061
+            string deptuser = string.Empty;
1062
+            var dept = userAccountBLL .GetModelList("F_DeptId=" + deptid);
1063
+            if (dept != null)
1081 1064
             {
1082
-
1083
-                string[] code = it.F_NextUser.Split(',');
1084
-                for (int i = 0; i < code.Length; i++)
1065
+                foreach (var it in dept)
1085 1066
                 {
1086
-                    if (code[i] == user)
1067
+                    if (it.F_UserCode != user)
1087 1068
                     {
1088
-                        if (str != string.Empty)
1089
-                        {
1090
-                            str = str + "," + it.F_WoID;
1091
-                        }
1069
+                        if (deptuser != "")
1070
+                            deptuser += "','" + it.F_UserCode;
1092 1071
                         else
1093
-                        {
1094
-                            str = it.F_WoID + "";
1095
-                        }
1072
+                            deptuser += it.F_UserCode;
1096 1073
                     }
1097 1074
                 }
1098 1075
             }
1076
+            if (!string.IsNullOrEmpty(deptuser))
1077
+            {
1078
+                // string deptuser = "select F_WoID from T_Sys_UserAccount where F_DeptId=" + deptid;
1079
+                str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1080
+                    + " and isnull(F_IsUsed,'0')='0' " + " and "
1081
+                        + "(F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.reback + ") and F_NextDept =" + deptid + ") "//办理中和接单状态的操作人
1082
+                        + " or (F_WoState =" + (int)EnumWorkOrderState.receive + " and F_NextUser in('" + deptuser + "'))";//退回下一步操作人
1083
+
1084
+
1085
+            }
1086
+            else
1087
+            {
1088
+                str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1089
+                   + " and "
1090
+                       + "F_WoState in(" + (int)EnumWorkOrderState.assign + ") and F_NextDept =" + deptid + " "//办理中和接单状态的操作人
1091
+                        + " and isnull(F_IsUsed,'0')='0' ";
1092
+            }
1093
+
1099 1094
             return str;
1100 1095
         }
1101 1096
         /// <summary>
@@ -2768,7 +2763,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
2768 2763
                 touser = users;
2769 2764
             }
2770 2765
             string htouser = "", htousername = "";
2771
-            if (isApprovalp != 0 && deptid == 37)
2766
+            if (isApprovalp != 0 && nowUser .F_DeptId == 37)
2772 2767
             {
2773 2768
                 if (hclid != 0)
2774 2769
                 {
@@ -2777,8 +2772,8 @@ namespace CallCenterApi.Interface.Controllers.weixin
2777 2772
                     {
2778 2773
                         if (string.IsNullOrEmpty(htouser))
2779 2774
                         {
2780
-                            htouser = htouser + "," + clus.F_UserCode;
2781
-                            htousername = htousername + "," + clus.F_UserName + "(" + clus.F_UserCode + ")";
2775
+                            htouser =  clus.F_UserCode;
2776
+                            htousername =  clus.F_UserName + "(" + clus.F_UserCode + ")";
2782 2777
                         }
2783 2778
                     }
2784 2779
                 }
@@ -2787,8 +2782,16 @@ namespace CallCenterApi.Interface.Controllers.weixin
2787 2782
                     var list = userAccountBLL.GetModelList(" F_DeptId='" + hclbm + "'");
2788 2783
                     foreach (var l in list)
2789 2784
                     {
2790
-                        htouser = htouser + "," + l.F_UserCode;
2791
-                        htousername = htousername + "," + l.F_UserName + "(" + l.F_UserCode + ")";
2785
+                        if (string.IsNullOrEmpty(htouser))
2786
+                        {
2787
+                            htouser = l.F_UserCode;
2788
+                            htousername = l.F_UserName + "(" + l.F_UserCode + ")";
2789
+                        }
2790
+                        else
2791
+                        {
2792
+                            htouser = htouser + "," + l.F_UserCode;
2793
+                            htousername = htousername + "," + l.F_UserName + "(" + l.F_UserCode + ")";
2794
+                        }
2792 2795
                     }
2793 2796
                 }
2794 2797
                 AddLog(model.F_ID, (int)EnumWorkOrderState.assign, "审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, htouser, hclbm, nowUser, overtime, sms, creat);
@@ -2887,7 +2890,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
2887 2890
                 if (!string.IsNullOrWhiteSpace(code))//工单编号
2888 2891
                     sql += $" and F_WorkOrderCode like '%" + code.Trim() + "%'";
2889 2892
                 if (!string.IsNullOrWhiteSpace(keywords))//关键字搜索
2890
-                    sql += $"  and F_WorkOrderCode like '%" + keywords.Trim() + "%' or F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%'  ";
2893
+                    sql += $"  and (F_WorkOrderCode like '%" + keywords.Trim() + "%' or F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%'  )";
2891 2894
                 if (!string.IsNullOrWhiteSpace(cusname))//客户姓名
2892 2895
                     sql += $" and F_CusName like '%" + cusname.Trim() + "%'";
2893 2896
                 if (!string.IsNullOrWhiteSpace(cusphone))//客户电话
@@ -3090,7 +3093,7 @@ namespace CallCenterApi.Interface.Controllers.weixin
3090 3093
                         Model.T_Wo_WorkOrder model = woBLL .GetModel(orderid);
3091 3094
                         if (model != null)
3092 3095
                         {
3093
-                        if (model.F_State != 1)
3096
+                        if (model.F_State == 2)
3094 3097
                         {
3095 3098
                             return Error("工单已接单无需重新接单");
3096 3099
                         }
@@ -3482,11 +3485,22 @@ namespace CallCenterApi.Interface.Controllers.weixin
3482 3485
             #endregion
3483 3486
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt + "工单,退回说明:" + cont;
3484 3487
             //获取上一级处理人员
3485
-            var touser = "";
3488
+            var touser = ""; var deptid = 0;
3486 3489
             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();
3487 3490
             if (itemlast != null)
3491
+            {
3492
+
3488 3493
                 touser = itemlast.F_CreateUser;
3489
-            var itemid = AddLog((int)model.F_ID, wostate, content, (int)EnumItemType.deal, optbut, touser, 0, nowUser, model .F_limit , sms);
3494
+                if (!string.IsNullOrEmpty(touser))
3495
+                {
3496
+                    var ua = userAccountBLL .GetModel(touser);
3497
+                    if (ua != null)
3498
+                    {
3499
+                        deptid = ua.F_DeptId;
3500
+                    }
3501
+                }
3502
+            }
3503
+            var itemid = AddLog((int)model.F_ID, wostate, content, (int)EnumItemType.deal, optbut, touser, deptid, nowUser, model .F_limit , sms);
3490 3504
             if (itemid > 0)
3491 3505
             {
3492 3506
                 #region 处理工单

+ 40 - 21
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/MaterialManageController.cs

@@ -137,7 +137,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
137 137
             {
138 138
                 while (true)
139 139
                 {
140
-                    if (!valcode(GetIntCode()))
140
+                    if (!getunique(0, GetIntCode()))
141 141
                     {
142 142
                         input.F_MaterialCode = GetIntCode();
143 143
                         break;
@@ -312,29 +312,36 @@ namespace CallCenterApi.Interface.Controllers.workorder
312 312
                         
313 313
                         if (dr["物料编码"].ToString() != "" && valcode(dr["物料编码"].ToString()))
314 314
                         {
315
-                            Model.T_Wo_MaterialManage dModel = new Model.T_Wo_MaterialManage();
316
-                            dModel.F_MaterialCode = dr["物料编码"].ToString();//物料编码
317
-                            dModel.F_MaterialName = dr["物料名称"].ToString();//物料名称
318
-                            dModel.F_Model = dr["型号"].ToString();//型号
319
-                            dModel.F_Specs = dr["规格"].ToString();//规格
320
-                            dModel.F_Level1 = dr["一级分类"].ToString();//一级分类
321
-                            dModel.F_Level2 = dr["二级分类"].ToString();//二级分类
322
-                            dModel.F_Level3 = dr["三级分类"].ToString();//三级分类
323
-                            dModel.F_Brand = dr["品牌"].ToString();//品牌
324
-                            dModel.F_MaterialEffect = dr["复合肥肥效"].ToString();//复合肥肥效
325
-                            dModel.F_Pipeline = dr["产品线"].ToString();//产品线
326
-                            dModel.F_Craft = dr["工艺"].ToString();//工艺
327
-                            dModel.F_CreateBy = userscode;
328
-                            dModel.F_CreateOn = DateTime.Now;
329
-                            dModel.F_IsDelete = 0;
330
-                            var res = mmBLL.Add(dModel);
331
-                            if(res>0)
315
+                            if (!getunique(0, dr["物料编码"].ToString()))
332 316
                             {
333
-                                addoptlog(userscode, ip, EnumOpt.import.ToString(), res.ToString(), "导入成功,导入的文件为:"+ newpath+",当前为第"+ headrow + "行");
317
+                                Model.T_Wo_MaterialManage dModel = new Model.T_Wo_MaterialManage();
318
+                                dModel.F_MaterialCode = dr["物料编码"].ToString();//物料编码
319
+                                dModel.F_MaterialName = dr["物料名称"].ToString();//物料名称
320
+                                dModel.F_Model = dr["型号"].ToString();//型号
321
+                                dModel.F_Specs = dr["规格"].ToString();//规格
322
+                                dModel.F_Level1 = dr["一级分类"].ToString();//一级分类
323
+                                dModel.F_Level2 = dr["二级分类"].ToString();//二级分类
324
+                                dModel.F_Level3 = dr["三级分类"].ToString();//三级分类
325
+                                dModel.F_Brand = dr["品牌"].ToString();//品牌
326
+                                dModel.F_MaterialEffect = dr["复合肥肥效"].ToString();//复合肥肥效
327
+                                dModel.F_Pipeline = dr["产品线"].ToString();//产品线
328
+                                dModel.F_Craft = dr["工艺"].ToString();//工艺
329
+                                dModel.F_CreateBy = userscode;
330
+                                dModel.F_CreateOn = DateTime.Now;
331
+                                dModel.F_IsDelete = 0;
332
+                                var res = mmBLL.Add(dModel);
333
+                                if (res > 0)
334
+                                {
335
+                                    addoptlog(userscode, ip, EnumOpt.import.ToString(), res.ToString(), "导入成功,导入的文件为:" + newpath + ",当前为第" + headrow + "行");
336
+                                }
337
+                                else
338
+                                {
339
+                                    msg = msg + "第" + headrow + "行,导入失败<br>";
340
+                                }
334 341
                             }
335 342
                             else
336 343
                             {
337
-                                msg = msg + "第" + headrow + "行,导入失败<br>";
344
+                                msg = msg + "第" + headrow + "行,物料编码重复,未导入<br>";
338 345
                             }
339 346
                         }
340 347
                         else
@@ -350,8 +357,20 @@ namespace CallCenterApi.Interface.Controllers.workorder
350 357
             }
351 358
             return Error("文件不能为空");
352 359
         }
360
+        /// <summary>
361
+        /// 验证客户编号是否唯一
362
+        /// </summary>
363
+        private bool getunique(int id, string code)
364
+        {
365
+            var sql = " F_IsDelete=0 ";
366
+            sql += "and (F_MaterialCode='" + code + "')";
367
+            if (id > 0)
368
+                sql += " and F_Id<>" + id;
369
+            var count = mmBLL.GetModelList(sql).Count();
370
+
371
+            return count > 0;
372
+        }
353 373
 
354
-        
355 374
         #region 上传附件
356 375
         public DataTable GetFileData(string ids, string prefix)
357 376
         {

+ 499 - 28
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/workorder/WorkOrderNewController.cs

@@ -52,7 +52,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
52 52
                 if (!string.IsNullOrWhiteSpace(touser))//参与人
53 53
                     sql += $" and F_DealBy like '%" + touser.Trim() + "%'";
54 54
                 if (!string.IsNullOrWhiteSpace(keywords))//关键字搜索
55
-                    sql += $"  and  F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%'  ";
55
+                    sql += $"  and ( F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%' ) ";
56 56
                 if (!string.IsNullOrWhiteSpace(code))//工单编号
57 57
                     sql += $" and F_WorkOrderCode like '%" + code.Trim() + "%'";
58 58
                 if (!string.IsNullOrWhiteSpace(cusname))//客户姓名
@@ -139,11 +139,11 @@ namespace CallCenterApi.Interface.Controllers.workorder
139 139
                         break;
140 140
                     case 1://待接单的
141 141
                      
142
-                             if (GetDeptWorkOrderID(ua.F_DeptId) != "")
142
+                             if (GetDeptWorkOrderID(ua.F_DeptId,ua .F_UserCode  ) != "")
143 143
                         {
144 144
                           
145 145
                                 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 ( " +
146
-                           GetDeptWorkOrderID(ua.F_DeptId) + ") "; ;
146
+                           GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) + ") "; ;
147 147
                             
148 148
                         }
149 149
                         else 
@@ -423,6 +423,431 @@ namespace CallCenterApi.Interface.Controllers.workorder
423 423
 
424 424
         }
425 425
         /// <summary>
426
+        /// 获取工单数量
427
+        /// </summary>
428
+        /// <returns></returns>
429
+        public ActionResult GetWorkCount()
430
+        {
431
+
432
+            int userId = CurrentUser.UserData.F_UserId;
433
+            if (userId != 0)
434
+            {
435
+               
436
+                DataTable dt = new DataTable();
437
+                #region 筛选条件
438
+                Model.T_Sys_UserAccount ua = sysUserAccountBll.GetModel(userId);
439
+                Model.T_Sys_RoleInfo ro = rolebll.GetModel(ua.F_RoleId);
440
+                string uwhere = " ";
441
+                string sql = "";
442
+              int  Assign=0, Receipt = 0, Acceptedorders = 0, Ovar = 0, Allocated = 0, Tobevisited = 0, Returnvisit = 0, Tobefinished = 0, GCApproved = 0, CustomerWorkorder = 0, Delays =
443
+                    0, DeWorkOrder = 0, Approved = 0, WeChatWorkOrder = 0  , TobeApproved = 0, Createdbill = 0, Backid = 0;
444
+                for (int i=0;i<=18;i ++)
445
+                {
446
+                    switch (i )
447
+                    {
448
+                        case 0://待指派的
449
+                            sql = "";
450
+                            sql += $"  F_IsDelete=0";
451
+                            if (ro.F_RoleCode == "GC")
452
+                            {
453
+                                sql += " and (F_CreateBy= '" + ua.F_UserCode + "' or T_Wo_WorkOrder.F_ID in ( " + GetCYWorkOrderID(ua.F_UserCode) + ")) ";
454
+                            }
455
+                            else if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY")
456
+                            {
457
+                                uwhere = "";
458
+                            }
459
+                           
460
+                            #region 获取部门工单列表
461
+                            else if (ro.F_RoleCode == "DQJL" || ro.F_RoleCode == "FGSJL" || ro.F_RoleCode == "ZG")
462
+                            {
463
+                                string detpid = "";
464
+                                var deparmentlist = new List<Model.T_Sys_Department>();
465
+                                Model.T_Sys_Department dModel = departmentBLL.GetModel(ua.F_DeptId);
466
+                                if (dModel != null)
467
+                                {
468
+                                    if (dModel.F_Layer == 1)
469
+                                    {
470
+                                        deparmentlist = new BLL.T_Sys_Department().GetModelList(" F_State=1 and F_Layer=" + 2 + " and F_ParentId=" + dModel.F_DeptId);
471
+                                        if (deparmentlist.Count > 0)
472
+                                        {
473
+                                            foreach (var it in deparmentlist)
474
+                                            {
475
+                                                if (detpid != "")
476
+                                                {
477
+                                                    detpid += "," + it.F_DeptId;
478
+                                                }
479
+                                                else
480
+                                                {
481
+                                                    detpid = "" + it.F_DeptId; ;
482
+                                                }
483
+                                            }
484
+                                        }
485
+                                    }
486
+                                    else
487
+                                    {
488
+                                        detpid = ua.F_DeptId.ToString();
489
+                                    }
490
+                                    if (GetDeptWorkOrderID(detpid, "" + (int)EnumWorkOrderState.neworder + "," + (int)EnumWorkOrderState.reassign + "") != "")
491
+                                    {
492
+                                        sql += $"  and T_Wo_WorkOrder.F_ID in ( " + GetDeptWorkOrderID(detpid, "" + (int)EnumWorkOrderState.neworder + "," + (int)EnumWorkOrderState.reassign + "") + ") "; ;
493
+                                    }
494
+                                    else
495
+                                    {
496
+                                        Assign = 0;
497
+                                        break;
498
+                                    }
499
+
500
+                                }
501
+                                else
502
+                                {
503
+                                    Assign = 0;
504
+                                    break;
505
+                                }
506
+                            }
507
+                            #endregion
508
+                            else
509
+                            {
510
+                                sql += $" and F_CreateBy like '%" + ua.F_UserCode + "%'"; ;
511
+                            }
512
+                            sql += $" and F_State in(" + (int)EnumWorkOrderState.neworder + "," + (int)EnumWorkOrderState.reassign + ")" + " " + uwhere;
513
+                             Assign = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count ;//指派
514
+                            break;
515
+                        case 1://待接单的
516
+                            sql = "";
517
+                            sql += $"  F_IsDelete=0";
518
+                            if (GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) != "")
519
+                            {
520
+
521
+                                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 ( " +
522
+                           GetDeptWorkOrderID(ua.F_DeptId, ua.F_UserCode) + ") "; ;
523
+
524
+                            }
525
+                            else
526
+                            {
527
+
528
+                                Receipt = 0;
529
+                                break;
530
+                            }
531
+                             Receipt = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//接单
532
+                            break;
533
+                        case 2://待完成的(待处理)
534
+                            sql = "";
535
+                            sql += $"  F_IsDelete=0";
536
+                            if (GetDWCWorkOrderID(ua.F_UserCode) != null)
537
+                            {
538
+                                sql += " and F_State in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.reassign + "," + (int)EnumWorkOrderState.receive + "," + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + ") and T_Wo_WorkOrder.F_ID in ( " + GetDWCWorkOrderID(ua.F_UserCode) + ") ";
539
+                            }
540
+                            else
541
+                            {
542
+                                Acceptedorders = 0;
543
+                                break;
544
+                            }
545
+                             Acceptedorders = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//已接单
546
+                        
547
+                            break;
548
+                        case 10://已完成的
549
+                            sql = "";
550
+                            sql += $"  F_IsDelete=0";
551
+                            sql += " and F_State =" + (int)EnumWorkOrderState.finish + " and F_DealBy = '" + ua.F_UserCode + "' ";
552
+                             Ovar = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//已完成的
553
+                          
554
+                            break;
555
+                        case 3://客服已分配
556
+                            sql = "";
557
+                            sql += $"  F_IsDelete=0";
558
+                            if (GetParticipateID(ua.F_UserCode) != "")
559
+                            {
560
+                                sql += " and  T_Wo_WorkOrder.F_ID in ( " + GetParticipateID(ua.F_UserCode) + ") ";
561
+                            }
562
+                            else
563
+                            {
564
+                                Allocated = 0;
565
+                                break;
566
+                            }
567
+                             Allocated = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//客服已分配
568
+                       
569
+                            break;
570
+                        case 4://待回访
571
+                            sql = "";
572
+                            sql += $"  F_IsDelete=0";
573
+                            if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY")
574
+                            {
575
+                                uwhere = "";
576
+                            }
577
+                            else
578
+                            {
579
+                                Tobevisited = 0;
580
+                                break;
581
+                            }
582
+                            sql += $" and F_State=" + (int)EnumWorkOrderState.finish + " and F_IsVisit = '" + "1" + "' " + uwhere; ;
583
+                             Tobevisited = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//待回访
584
+                      
585
+                            break;
586
+                        case 6://已回访
587
+                            sql = "";
588
+                            sql += $"  F_IsDelete=0";
589
+                            if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY")
590
+                            {
591
+                                sql += " and (F_CreateBy= '" + ua.F_UserCode + "' or T_Wo_WorkOrder.F_ID in ( " + GetCYWorkOrderID(ua.F_UserCode) + ") or F_State =13)";
592
+                                sql += $" and F_State=" + (int)EnumWorkOrderState.evaluate; ;
593
+                            }
594
+                            else if (ro.F_RoleCode == "DQJL" || ro.F_RoleCode == "FGSJL" || ro.F_RoleCode == "ZG")
595
+                            {
596
+                                string detpid = "";
597
+                                var deparmentlist = new List<Model.T_Sys_Department>();
598
+                                Model.T_Sys_Department dModel = departmentBLL.GetModel(ua.F_DeptId);
599
+                                if (dModel != null)
600
+                                {
601
+                                    if (dModel.F_Layer == 1)
602
+                                    {
603
+                                        deparmentlist = new BLL.T_Sys_Department().GetModelList(" F_State=1 and F_Layer=" + 2 + " and F_ParentId=" + dModel.F_DeptId);
604
+                                        if (deparmentlist.Count > 0)
605
+                                        {
606
+                                            foreach (var it in deparmentlist)
607
+                                            {
608
+                                                if (detpid != "")
609
+                                                {
610
+                                                    detpid += "," + it.F_DeptId;
611
+                                                }
612
+                                                else
613
+                                                {
614
+                                                    detpid = "" + it.F_DeptId; ;
615
+                                                }
616
+                                            }
617
+                                        }
618
+                                    }
619
+                                    else
620
+                                    {
621
+                                        detpid = ua.F_DeptId.ToString();
622
+                                    }
623
+                                    if (GetDeptWorkOrderID(detpid, "" + (int)EnumWorkOrderState.evaluate + "") != "")
624
+                                    {
625
+                                        sql += $"  and T_Wo_WorkOrder.F_ID in ( " + GetDeptWorkOrderID(detpid, "" + (int)EnumWorkOrderState.evaluate + "") + ") "; ;
626
+                                    }
627
+                                    else
628
+                                    {
629
+
630
+                                        Returnvisit = 0;
631
+                                        break;
632
+                                    }
633
+
634
+                                }
635
+                                else
636
+                                {
637
+                                    Returnvisit = 0;
638
+                                    break;
639
+                                }
640
+                            }
641
+                            else
642
+                            {
643
+                                Returnvisit = 0;
644
+                                break;
645
+                            }
646
+                            sql += $" and F_State=" + (int)EnumWorkOrderState.evaluate;
647
+                             Returnvisit= new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//已回访
648
+                          
649
+                            break;
650
+                        case 7://待完结
651
+                            sql = "";
652
+                            sql += $"  F_IsDelete=0";
653
+                            if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY")
654
+                            {
655
+                                uwhere = ""; ;
656
+                            }
657
+                            else
658
+                            {
659
+                                Tobefinished = 0;
660
+                                break; ;
661
+                            }
662
+                            sql += $" and F_State=" + (int)EnumWorkOrderState.finish + " and F_IsVisit = '" + "0" + "' "; ;
663
+                             Tobefinished = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//待完结
664
+                            break;
665
+                        case 8://待审批
666
+                            sql = "";
667
+                            sql += $"  F_IsDelete=0";
668
+                            if (ro.F_RoleCode == "GC")
669
+                            {
670
+                                if (GetHApproval(ua.F_UserCode) != "")
671
+                                {
672
+                                    sql += $"  and T_Wo_WorkOrder.F_ID in ( " + GetHApproval(ua.F_UserCode) + ") "; ;
673
+                                }
674
+                            }
675
+                            else
676
+                            {
677
+
678
+                                GCApproved = 0;
679
+                                break; ;
680
+                            }
681
+                             GCApproved = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//高层待审批
682
+                            break;
683
+                        case 9://客户工单
684
+                            sql = "";
685
+                            sql += $"  F_IsDelete=0";
686
+                            if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY")
687
+                            {
688
+                                uwhere = "";
689
+                            }
690
+                            else
691
+                            {
692
+                                CustomerWorkorder = 0;
693
+                                break; ;
694
+                            }
695
+                            sql += $" and F_State=" + (int)EnumWorkOrderState.customers;
696
+                             CustomerWorkorder = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//客户工单
697
+
698
+                            break;
699
+                        case 11://延期工单
700
+                            sql = "";
701
+                            sql += $"  F_IsDelete=0";
702
+                            if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY")
703
+                            {
704
+                                sql += $" and F_ID in(" + GetDelay() + ")";
705
+                            }
706
+                            else
707
+                            {
708
+                                Delays = 0;
709
+                                break; ;
710
+                            }
711
+                             Delays = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//客户工单
712
+                          
713
+                            break;
714
+                        case 12://微信未通过工单
715
+                            sql = "";
716
+                            sql += $"  F_IsDelete=0";
717
+                            if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY")
718
+                            {
719
+                                sql += $" and F_ID in(" + GetDelay() + ")";
720
+                            }
721
+                            else
722
+                            {
723
+                                DeWorkOrder = 0;
724
+                                break; ;
725
+                            }
726
+                            sql += $" and F_State=" + (int)EnumWorkOrderState.recustomers;
727
+                             DeWorkOrder = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//微信未通过工单
728
+                         
729
+                            break;
730
+                        case 13://已审批
731
+                            sql = "";
732
+                            sql += $"  F_IsDelete=0";
733
+                            if (ro.F_RoleCode == "DQJL" || ro.F_RoleCode == "FGSJL" || ro.F_RoleCode == "GC")
734
+                            {
735
+                                if (GetApprovedOrderID(ua.F_UserCode) != "")
736
+                                {
737
+                                    sql += $"  and F_ID in ( " + GetApprovedOrderID(ua.F_UserCode) + ") "; ;
738
+                                }
739
+                                else
740
+                                {
741
+                                    Approved = 0;
742
+                                    break; ;
743
+                                }
744
+                            }
745
+                            else
746
+                            {
747
+                                Approved = 0;
748
+                                break; ;
749
+                            }
750
+                             Approved = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//已审批
751
+                           
752
+                            break;
753
+                        case 14://业务员工单
754
+                            sql = "";
755
+                            sql += $"  F_IsDelete=0";
756
+                            if (ro.F_RoleCode == "JDYPTZX" || ro.F_RoleCode == "JDYBZZX" || ro.F_RoleCode == "XTGLY")
757
+                            {
758
+                                sql += $" and F_Source=" + 2;
759
+                            }
760
+                            else
761
+                            {
762
+                                WeChatWorkOrder = 0;
763
+                                break; ;
764
+                            }
765
+                             WeChatWorkOrder = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//微信业务员工单
766
+                           
767
+                            break;
768
+                        case 15://待审批
769
+                            sql = "";
770
+                            sql += $"  F_IsDelete=0";
771
+                            if (ro.F_RoleCode == "DQJL" || ro.F_RoleCode == "FGSJL")
772
+                            {
773
+                                if (GetApprovalOrderID(ua, ro.F_RoleCode) != "")
774
+                                {
775
+                                    sql += " and  T_Wo_WorkOrder.F_ID in ( " + GetApprovalOrderID(ua, ro.F_RoleCode) + ") ";
776
+                                }
777
+                                else
778
+                                {
779
+                                    TobeApproved = 0;
780
+                                    break; ;
781
+                                }
782
+                            }
783
+                            else
784
+                            {
785
+                                TobeApproved = 0;
786
+                                break; ;
787
+                            }
788
+
789
+                             TobeApproved = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//待审批
790
+
791
+                      
792
+                            break;
793
+                        case 16://已创单
794
+                            sql = "";
795
+                            sql += $"  F_IsDelete=0";
796
+                            sql += $" and F_CreateBy  ='" + ua.F_UserCode + "'";
797
+                             Createdbill = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//业务员已创单
798
+
799
+                           
800
+                            break;
801
+                        case 17://退单
802
+                            sql = "";
803
+                            sql += $"  F_IsDelete=0";
804
+                            if (GetBackid(ua) != "")
805
+                            {
806
+                                sql += " and  T_Wo_WorkOrder.F_ID in ( " + GetBackid(ua) + ") ";
807
+                            }
808
+                            else
809
+                            {
810
+                                Backid = 0;
811
+                                break; ;
812
+                            }
813
+                             Backid = new BLL.T_Wo_WorkOrder().GetModelList(sql).Count;//退单
814
+                            break;
815
+                    }
816
+                }
817
+
818
+                #endregion
819
+              
820
+                var obj = new
821
+                {
822
+                    state = "success",
823
+                    message = "成功",
824
+                    Assign = Assign,//指派
825
+                    Receipt = Receipt,//待接单
826
+                    Acceptedorders = Acceptedorders,//已接单(待处理)
827
+                    Ovar = Ovar,//已完成的
828
+                    Allocated = Allocated,//客服已分配
829
+                    Tobevisited = Tobevisited,//待回访
830
+                    Returnvisit = Returnvisit,//已回访
831
+                    Tobefinished = Tobefinished,//待完结
832
+                    GCApproved = GCApproved,//高层待审批
833
+                    CustomerWorkorder = CustomerWorkorder,//客户工单
834
+                    Delays = Delays,//延期工单
835
+                    DeWorkOrder = DeWorkOrder,//微信未通过工单
836
+                    Approved = Approved,//已审批
837
+                    WeChatWorkOrder = WeChatWorkOrder,//微信业务员工单
838
+                    TobeApproved = TobeApproved,//待审批
839
+                    Createdbill = Createdbill,//业务员已创单
840
+                    Backid = Backid,//待审批
841
+                };
842
+                return Content(obj.ToJson()); ;
843
+            }
844
+            else
845
+            {
846
+                return Error("无操作权限!");
847
+            }
848
+
849
+        }
850
+        /// <summary>
426 851
         ///退回工单列表
427 852
         /// </summary>
428 853
         public string GetBackid(Model.T_Sys_UserAccount ua)
@@ -1385,25 +1810,50 @@ namespace CallCenterApi.Interface.Controllers.workorder
1385 1810
         public string GetParticipateID(string user)
1386 1811
         {
1387 1812
             string str = string.Empty;
1388
-            str = "select F_WoID from T_Wo_WorkOrderItem_New where F_CreateUser in(" + user + ") and F_OptType in( 1 )";
1813
+            str = "select F_WoID from T_Wo_WorkOrderItem_New where F_CreateUser in(" + user + ") and F_OptType in( 1,7)";
1389 1814
 
1390 1815
             ;
1391 1816
             return str;
1392 1817
         }
1393 1818
         /// <summary>
1394
-        /// 获取部门待完成的工单编号
1819
+        /// 获取部门待接单的工单编号
1395 1820
         /// </summary>
1396 1821
         /// <returns></returns>
1397
-        public string GetDeptWorkOrderID(int  deptid)
1822
+        public string GetDeptWorkOrderID(int  deptid,string user)
1398 1823
         {
1399 1824
             string str = string.Empty;
1825
+            string deptuser= string.Empty;
1826
+            var dept = sysUserAccountBll.GetModelList("F_DeptId="+ deptid);
1827
+            if (dept != null)
1828
+            {
1829
+                foreach (var it in dept)
1830
+                {
1831
+                    if (it.F_UserCode!= user)
1832
+                    {
1833
+                        if (deptuser != "")
1834
+                            deptuser += "','" + it.F_UserCode;
1835
+                        else
1836
+                            deptuser += it.F_UserCode;
1837
+                    }
1838
+                }
1839
+            }
1840
+            if (!string .IsNullOrEmpty (deptuser))
1841
+            {
1842
+                // string deptuser = "select F_WoID from T_Sys_UserAccount where F_DeptId=" + deptid;
1843
+                str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1844
+                    + " and isnull(F_IsUsed,'0')='0' " + " and "
1845
+                        + "(F_WoState in(" + (int)EnumWorkOrderState.assign + "," + (int)EnumWorkOrderState.abreback + "," + (int)EnumWorkOrderState.reback + ") and F_NextDept =" + deptid + ") "//办理中和接单状态的操作人
1846
+                        + " or (F_WoState =" + (int)EnumWorkOrderState.receive + " and F_NextUser in('" + deptuser + "'))";//退回下一步操作人
1847
+                   
1400 1848
 
1401
-            str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1402
-                + " and ("
1403
-                    + "(F_WoState in(" + (int)EnumWorkOrderState.assign + ","+(int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + ") and F_NextDept =" + deptid + ") "//办理中和接单状态的操作人
1404
-                    + " or (F_WoState in(" + (int)EnumWorkOrderState.assign + ","+(int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + ") and F_NextDept =" + deptid + ")"//退回下一步操作人
1405
-                + ")"
1406
-                + " and isnull(F_IsUsed,'0')='0' ";
1849
+            }
1850
+            else
1851
+            {
1852
+                str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1853
+                   + " and "
1854
+                       + "F_WoState in(" + (int)EnumWorkOrderState.assign + ") and F_NextDept =" + deptid + " "//办理中和接单状态的操作人
1855
+                        + " and isnull(F_IsUsed,'0')='0' ";
1856
+            }
1407 1857
 
1408 1858
             return str;
1409 1859
         }
@@ -1418,7 +1868,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
1418 1868
             str = "select F_WoID from T_Wo_WorkOrderItem_New where F_ItemType=" + (int)EnumItemType.deal
1419 1869
                 + " and ("
1420 1870
                     + "(F_WoState in(" + (int)EnumWorkOrderState.dealing + "," + (int)EnumWorkOrderState.receive + ") and F_CreateUser='" + user + "') "//办理中和接单状态的操作人
1421
-                    + " or (F_WoState in(" + (int)EnumWorkOrderState.reback + "," + (int)EnumWorkOrderState.abreback + ") and F_NextUser='" + user + "')"//退回下一步操作人
1871
+                    + " or (F_WoState in(" + (int)EnumWorkOrderState.reback +") and F_NextUser='" + user + "')"//退回下一步操作人
1422 1872
                 + ")"
1423 1873
                 + " and isnull(F_IsUsed,'0')='0' ";
1424 1874
 
@@ -1462,7 +1912,6 @@ namespace CallCenterApi.Interface.Controllers.workorder
1462 1912
             }
1463 1913
             string str = string.Empty;
1464 1914
             str = "select F_WoID from T_Wo_WorkOrderItem_New where "
1465
-                + " and  "
1466 1915
                      + "F_CreateUser in(" + ua + ") and F_IsUsed=0"
1467 1916
                ;
1468 1917
 
@@ -1611,9 +2060,9 @@ namespace CallCenterApi.Interface.Controllers.workorder
1611 2060
                 if (!string.IsNullOrWhiteSpace(code))//工单编号
1612 2061
                     sql += $" and F_WorkOrderCode like '%" + code.Trim() + "%'";
1613 2062
                 if (!string.IsNullOrWhiteSpace(keywords))//关键字搜索
1614
-                    sql += $"  and  F_QuestionType like '%" + keywords.Trim()
2063
+                    sql += $"  and  (F_QuestionType like '%" + keywords.Trim()
1615 2064
                          + "%' or F_ZX_Area like '%" + keywords.Trim() + "%' or F_ZX_Branch like '%" + keywords.Trim() 
1616
-                         + "%' or F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%'  ";
2065
+                         + "%' or F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%')  ";
1617 2066
                 if (!string.IsNullOrWhiteSpace(cusname))//客户姓名
1618 2067
                     sql += $" and F_CusName like '%" + cusname.Trim() + "%'";
1619 2068
                 if (!string.IsNullOrWhiteSpace(cusphone))//客户电话
@@ -1775,7 +2224,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
1775 2224
                 if (!string.IsNullOrWhiteSpace(code))//工单编号
1776 2225
                     sql += $" and F_WorkOrderCode like '%" + code.Trim() + "%'";
1777 2226
                 if (!string.IsNullOrWhiteSpace(keywords))//关键字搜索
1778
-                    sql += $"  and  F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%'  ";
2227
+                    sql += $"  and ( F_CusName like '%" + keywords.Trim() + "%'or F_CusPhone like '%" + keywords.Trim() + "%' ) ";
1779 2228
                 if (!string.IsNullOrWhiteSpace(cusname))//客户姓名
1780 2229
                     sql += $" and F_CusName like '%" + cusname.Trim() + "%'";
1781 2230
                 if (!string.IsNullOrWhiteSpace(cusphone))//客户电话
@@ -3454,7 +3903,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
3454 3903
                     {
3455 3904
                         while (true)
3456 3905
                         {
3457
-                            if (!getunique(0, GetIntCode()))
3906
+                            if (!gematerque(0, GetIntCode()))
3458 3907
                             {
3459 3908
                                 input.F_MaterialID = GetIntCode();
3460 3909
                                 break;
@@ -3986,7 +4435,7 @@ namespace CallCenterApi.Interface.Controllers.workorder
3986 4435
                     Model.T_Wo_WorkOrder model = workOrder.GetModel(orderid);
3987 4436
                     if (model != null)
3988 4437
                     {
3989
-                        if(model .F_State !=1)
4438
+                        if(model .F_State ==2)
3990 4439
                         {
3991 4440
                             return Error("工单已接单无需重新接单");
3992 4441
                         }
@@ -4482,11 +4931,23 @@ namespace CallCenterApi.Interface.Controllers.workorder
4482 4931
             #endregion
4483 4932
             var content = deptname + nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt + "工单,退回说明:" + cont;
4484 4933
             //获取上一级处理人员
4485
-            var touser = "";
4934
+            var touser = ""; var deptid=0;
4486 4935
             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();
4487 4936
             if (itemlast != null)
4937
+            {
4488 4938
                 touser = itemlast.F_CreateUser;
4489
-            var itemid = AddLog((int)model.F_ID , wostate, content, (int)EnumItemType.deal, optbut, touser, 0, nowUser, model .F_limit ,sms );
4939
+               if (!string .IsNullOrEmpty (touser))
4940
+                {
4941
+                    var ua = sysUserAccountBll .GetModel(touser);
4942
+                    if (ua !=null )
4943
+                    {
4944
+                        deptid = ua.F_DeptId;
4945
+                    }
4946
+                }
4947
+            }
4948
+                
4949
+
4950
+            var itemid = AddLog((int)model.F_ID , wostate, content, (int)EnumItemType.deal, optbut, touser, deptid, nowUser, model .F_limit ,sms );
4490 4951
             if (itemid > 0)
4491 4952
             {
4492 4953
                 #region 处理工单
@@ -4921,29 +5382,39 @@ namespace CallCenterApi.Interface.Controllers.workorder
4921 5382
                 }
4922 5383
                 touser = users;
4923 5384
             }
4924
-            if (isApprovalp != 0&& deptid == 37)
5385
+            string htouser = "", htousername = "";
5386
+            if (isApprovalp != 0 && nowUser.F_DeptId == 37)
4925 5387
             {
4926 5388
                 if (hclid != 0)
4927 5389
                 {
4928 5390
                     Model.T_Sys_UserAccount clus = sysUserAccountBll .GetModel(hclid);
4929 5391
                     if (clus != null)
4930 5392
                     {
4931
-                        if (string.IsNullOrEmpty(touser))
5393
+                        if (string.IsNullOrEmpty(htouser))
4932 5394
                         {
4933
-                            touser = touser + "," + clus.F_UserCode;
4934
-                            tousername = tousername + "," + clus.F_UserName + "(" + clus.F_UserCode + ")";
5395
+                            htouser = clus.F_UserCode;
5396
+                            htousername = clus.F_UserName + "(" + clus.F_UserCode + ")";
4935 5397
                         }
4936 5398
                     }
4937 5399
                 }
4938 5400
                 else
4939 5401
                 {
4940
-                    var list = sysUserAccountBll .GetModelList(" F_DeptId='" + hclbm + "'");
5402
+                    var list = sysUserAccountBll.GetModelList(" F_DeptId='" + hclbm + "'");
4941 5403
                     foreach (var l in list)
4942 5404
                     {
4943
-                        touser = touser + "," + l.F_UserCode;
4944
-                        tousername = tousername + "," + l.F_UserName + "(" + l.F_UserCode + ")";
5405
+                        if (string.IsNullOrEmpty(htouser))
5406
+                        {
5407
+                            htouser = l.F_UserCode;
5408
+                            htousername = l.F_UserName + "(" + l.F_UserCode + ")";
5409
+                        }
5410
+                        else
5411
+                        {
5412
+                            htouser = htouser + "," + l.F_UserCode;
5413
+                            htousername = htousername + "," + l.F_UserName + "(" + l.F_UserCode + ")";
5414
+                        }
4945 5415
                     }
4946 5416
                 }
5417
+                AddLog(model.F_ID, (int)EnumWorkOrderState.assign, "审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, htouser, hclbm, nowUser, overtime, sms, creat);
4947 5418
             }
4948 5419
             #endregion
4949 5420
             #region 工单处理