zhupei vor 4 Jahren
Ursprung
Commit
5b8d9485c5

+ 27 - 0
RMYY_CallCenter_Api.Model/T_Con_WorkOrder.cs

@@ -69,6 +69,9 @@ namespace RMYY_CallCenter_Api.Model
69 69
         private DateTime? _f_cathetertime;
70 70
         private string _f_bednum;
71 71
         private string _f_inpatientnum;
72
+        private string _f_typename1;
73
+        private string _f_typename2;
74
+        private string _f_typename3;
72 75
         /// <summary>
73 76
         /// 工单ID
74 77
         /// </summary>
@@ -503,5 +506,29 @@ namespace RMYY_CallCenter_Api.Model
503 506
         }
504 507
         #endregion Model
505 508
 
509
+        #region 扩展
510
+        /// <summary>
511
+        /// 工单类型名称
512
+        /// </summary>
513
+        public string  typename1
514
+        {
515
+            set { _f_typename1 = value; }
516
+            get { return _f_typename1; }
517
+        }
518
+        public string typename2
519
+        {
520
+            set { _f_typename2 = value; }
521
+            get { return _f_typename2; }
522
+        }
523
+        public string typename3
524
+        {
525
+            set { _f_typename3 = value; }
526
+            get { return _f_typename3; }
527
+        }
528
+        /// <summary>
529
+        /// 工单状态名称
530
+        /// </summary>
531
+        public string Wostate { get; set; }
532
+        #endregion
506 533
     }
507 534
 }

+ 10 - 0
RMYY_CallCenter_Api.Utility/Helper/EnumHelper.cs

@@ -38,5 +38,15 @@ namespace RMYY_CallCenter_Api.Utility
38 38
             return null;
39 39
         }
40 40
 
41
+        /// <summary>
42
+        /// 枚举参数
43
+        /// </summary>
44
+        /// <typeparam name="T"></typeparam>
45
+        /// <returns></returns>
46
+        public static List<T> ToList<T>()
47
+        {
48
+            return Enum.GetValues(typeof(T)).Cast<T>().ToList();
49
+        }
50
+
41 51
     }
42 52
 }

+ 28 - 1
RMYY_CallCenter_Api/Common/Common.cs

@@ -1,8 +1,11 @@
1
-using RMYY_CallCenter_Api.Utility;
1
+using RMYY_CallCenter_Api.Models.Dto;
2
+using RMYY_CallCenter_Api.Utility;
2 3
 using System;
3 4
 using System.Collections.Generic;
5
+using System.ComponentModel;
4 6
 using System.Data;
5 7
 using System.Linq;
8
+using System.Reflection;
6 9
 using System.Web;
7 10
 
8 11
 namespace RMYY_CallCenter_Api
@@ -48,5 +51,29 @@ namespace RMYY_CallCenter_Api
48 51
                 return actions1;
49 52
             }
50 53
         }
54
+
55
+
56
+
57
+        /// <summary>
58
+        /// 获取工单枚举状态
59
+        /// </summary>
60
+        /// <param name="eErrorDetailCode"></param>
61
+        /// <returns></returns>
62
+        public static List<TypeState> GetGongDanState<T>()
63
+        {
64
+            List<TypeState> slist = new List<TypeState>();
65
+            foreach (int myCode in Enum.GetValues(typeof(T)))
66
+            {
67
+                TypeState model = new TypeState();
68
+                model.StateId = myCode.ToString();//获取值
69
+                model.StateValue = Enum.GetName(typeof(T), myCode);//获取名称
70
+                FieldInfo fieldinfo = typeof(T).GetField(model.StateValue);
71
+                Object[] objs = fieldinfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
72
+                DescriptionAttribute des = (DescriptionAttribute)objs[0];
73
+                model.StateRemark = des?.Description ?? "";
74
+                slist.Add(model);//添加到list
75
+            }
76
+            return slist;
77
+        }
51 78
     }
52 79
 }

+ 3 - 3
RMYY_CallCenter_Api/Controllers/System/KnowledgeController.cs

@@ -24,12 +24,12 @@ namespace RMYY_CallCenter_Api.Controllers.System
24 24
         /// <param name="pagesize"></param>
25 25
         /// <param name="pageindex"></param>
26 26
         /// <returns></returns>
27
-        public ActionResult GetList(string keywords, int typeid, int pagesize = 10, int pageindex = 1)
27
+        public ActionResult GetList(string keywords, int typeid=0, int pagesize = 10, int pageindex = 1)
28 28
         {
29 29
             string sql = "and F_IsDel=0";
30 30
             DataTable dt = new DataTable();
31 31
             if (!string.IsNullOrEmpty(keywords))
32
-                sql += $" and F_KeyWords like'%" + keywords.Trim() + "%' or F_Title like '%" + keywords.Trim() + "%' or F_Content like '%" + keywords.Trim() + "%'";
32
+                sql += $" and (F_KeyWords like'%" + keywords.Trim() + "%' or F_Title like '%" + keywords.Trim() + "%' or F_Content like '%" + keywords.Trim() + "%')";
33 33
             if (typeid != 0)
34 34
             {
35 35
                 if(GetKnType(typeid)!="")
@@ -51,7 +51,7 @@ namespace RMYY_CallCenter_Api.Controllers.System
51 51
             var modelist = knbll.DataTableToList(dt);
52 52
             var obj = new
53 53
             {
54
-                state = "sucess",
54
+                state = "success",
55 55
                 message = "成功",
56 56
                 rows = modelist
57 57
             };

+ 305 - 176
RMYY_CallCenter_Api/Controllers/WorkOrder/Con_WorkOrderController.cs

@@ -1,4 +1,5 @@
1
-using RMYY_CallCenter_Api.Models.Enum;
1
+using RMYY_CallCenter_Api.Models.Dto;
2
+using RMYY_CallCenter_Api.Models.Enum;
2 3
 using RMYY_CallCenter_Api.Models.Input;
3 4
 using RMYY_CallCenter_Api.Utility;
4 5
 using System;
@@ -7,6 +8,7 @@ using System.Data;
7 8
 using System.Linq;
8 9
 using System.Web;
9 10
 using System.Web.Mvc;
11
+using System.Transactions;
10 12
 
11 13
 namespace RMYY_CallCenter_Api.Controllers
12 14
 {
@@ -17,6 +19,7 @@ namespace RMYY_CallCenter_Api.Controllers
17 19
         private Bll.T_Sys_Department deptbll = new Bll.T_Sys_Department();
18 20
         private Bll.T_Con_WorkOrder orderbll = new Bll.T_Con_WorkOrder();
19 21
         private Bll.T_Sys_Role rolebll = new Bll.T_Sys_Role();
22
+        private Bll.T_Sys_GongDan tybll = new Bll.T_Sys_GongDan();
20 23
 
21 24
         /// <summary>
22 25
         /// 获取列表
@@ -35,8 +38,14 @@ namespace RMYY_CallCenter_Api.Controllers
35 38
                 #region 查询条件
36 39
                 string sql = $" and F_IsDel=0";
37 40
                 DataTable date = new DataTable();
38
-                if (type > 0 && type < 6)
39
-                    sql += $" and F_type1=" + type;
41
+                if (type != 0)
42
+                {
43
+                    if (type == 1001 || type == 1002 || type == 1003 || type == 1004 || type == 1005)
44
+                    {
45
+                        sql += $" and F_type2=" + type;
46
+                    }
47
+                    else return Error("工单类型错误!");
48
+                }
40 49
                 if (starttime.Trim() != "" && starttime != "undefined")
41 50
                     sql += $" and datediff(day,F_CreateTime,'" + starttime + "') <=0 ";
42 51
                 if (endtime.Trim() != "" && endtime != "undefined")
@@ -47,8 +56,9 @@ namespace RMYY_CallCenter_Api.Controllers
47 56
                 }
48 57
                 if (state >= 0)
49 58
                 {
50
-                    int[] arr ={0,1,2,3,4,5,6,10 };
51
-                    if (arr.Contains(state))
59
+                    List<int> tlist = Common.GetGongDanState<EnumWorkOrderState>().Select(t=>Convert.ToInt32(t.StateId)).ToList();
60
+                    string liststr = string.Join(",", tlist);
61
+                    if (liststr.Contains(state.ToString()))
52 62
                     {
53 63
                         sql += $"and F_State=" + state;
54 64
                     }
@@ -77,7 +87,68 @@ namespace RMYY_CallCenter_Api.Controllers
77 87
                     {
78 88
                         state = "success",
79 89
                         message = "成功",
80
-                        rows = modellist,
90
+                        rows = modellist.Select(p =>
91
+                              new
92
+                              {
93
+                                  Wostate = EnumHelper.GetDescription((EnumWorkOrderState)p.F_State),
94
+                                  typename1 = tybll.GetModel(Convert.ToInt32(p.F_type1))?.F_Name ?? "",
95
+                                  typename2 = tybll.GetModel(Convert.ToInt32(p.F_type2))?.F_Name ?? "",
96
+                                  typename3 = tybll.GetModel(Convert.ToInt32(p.F_type3))?.F_Name ?? "",
97
+                                  F_ID=p.F_ID,
98
+                                  F_WorkOrderCode=p.F_WorkOrderCode,
99
+                                  F_Source=p.F_Source,
100
+                                  F_type1= p.F_type1,
101
+                                  F_type2=p.F_type2,
102
+                                  F_type3=p.F_type3,
103
+                                  F_Customer=p.F_Customer,
104
+                                  F_Sex=p.F_Sex,
105
+                                  F_Phon=p.F_Phon,
106
+                                  F_CusAddress=p.F_CusAddress,
107
+                                  F_IdCard=p.F_IdCard,
108
+                                  F_ServiceItems=p.F_ServiceItems,
109
+                                  F_Address=p.F_Address,
110
+                                  F_FirstCheckHospital=p.F_FirstCheckHospital,
111
+                                  F_NoduleSize=p.F_NoduleSize,
112
+                                  F_FirstFindTime=p.F_FirstFindTime,
113
+                                  F_Urgency=p.F_Urgency,
114
+                                  F_Cathetertype=p.F_Cathetertype,
115
+                                  F_Catheterdept=p.F_Catheterdept,
116
+                                  F_Cathetertime=p.F_Cathetertime,
117
+                                  F_BedNum=p.F_BedNum,
118
+                                  F_InpatientNum=p.F_InpatientNum,
119
+                                  F_DealType=p.F_DealType,
120
+                                  F_WorkOrderContents=p.F_WorkOrderContents,
121
+                                  F_DealOpinions=p.F_DealOpinions,
122
+                                  F_CallID=p.F_CallID,
123
+                                  F_DealResult=p.F_DealResult,
124
+                                  F_HandleBy=p.F_HandleBy,
125
+                                  F_HandleTime=p.F_HandleTime,
126
+                                  F_NotHandleReasons=p.F_NotHandleReasons,
127
+                                  F_ResponDept=p.F_ResponDept,
128
+                                  F_ResponPerson=p.F_ResponPerson,
129
+                                  F_LimitTime=p.F_LimitTime,
130
+                                  F_IsReturnBak=p.F_IsReturnBak,
131
+                                  F_ReturnBakTime=p.F_ReturnBakTime,
132
+                                  F_CreateUserID=p.F_CreateUserID,
133
+                                  F_CreateUser=p.F_CreateUser,
134
+                                  F_CreateTime=p.F_CreateTime,
135
+                                  F_IsDel=p.F_IsDel,
136
+                                  F_CreateUserName=p.F_CreateUserName,
137
+                                  F_DeleteBy=p.F_DeleteBy,
138
+                                  F_DeleteTime=p.F_DeleteTime,
139
+                                  F_IsAudit=p.F_IsAudit,
140
+                                  F_AuditState=p.F_AuditState,
141
+                                  F_AuditUser=p.F_AuditUser,
142
+                                  F_AuditTime=p.F_AuditTime,
143
+                                  F_AuditCont=p.F_AuditCont,
144
+                                  F_AppointTime=p.F_AppointTime,
145
+                                  F_Answer=p.F_Answer,
146
+                                  F_DealContents=p.F_DealContents,
147
+                                  F_File=p.F_File,
148
+                                  F_Satisfaction=p.F_Satisfaction,
149
+                                  F_State=p.F_State
150
+
151
+                              }),
81 152
                         total = recordCount
82 153
                     };
83 154
                     return Content(obj.ToJson());
@@ -89,6 +160,18 @@ namespace RMYY_CallCenter_Api.Controllers
89 160
         }
90 161
 
91 162
 
163
+
164
+
165
+        /// <summary>
166
+        /// 获取工单类型
167
+        /// </summary>
168
+        /// <returns></returns>
169
+        public ActionResult GetTypeState()
170
+        {
171
+            List<TypeState> tlist= Common.GetGongDanState<EnumWorkOrderState>();
172
+            return Content(tlist.ToJson());
173
+        }
174
+
92 175
         /// <summary>
93 176
         /// 获取工单详情
94 177
         /// </summary>
@@ -111,6 +194,9 @@ namespace RMYY_CallCenter_Api.Controllers
111 194
                     user = userbll.GetModel(model.F_HandleBy);
112 195
                 }
113 196
                 var itemlist = itembll.GetModelList(" F_WoID="+ id +"");
197
+                model.typename1 = tybll.GetModel(Convert.ToInt32(model.F_type1))?.F_Name ?? "";
198
+                model.typename2 = tybll.GetModel(Convert.ToInt32(model.F_type2))?.F_Name ?? "";
199
+                model.typename3 = tybll.GetModel(Convert.ToInt32(model.F_type3))?.F_Name ?? "";
114 200
                  //List<Con_WorkOrderInput> Input = modeltoopi(list);
115 201
                     if (model != null)
116 202
                     {
@@ -118,8 +204,8 @@ namespace RMYY_CallCenter_Api.Controllers
118 204
                         {
119 205
                             state = "success",
120 206
                             message = "成功",
121
-                            model = model,
122
-                            user= user,
207
+                            model = model,                        
208
+                            user = user,
123 209
                             //total = ItemList(itemlist)
124 210
                         };
125 211
                         return Content(obj.ToJson());
@@ -233,13 +319,13 @@ namespace RMYY_CallCenter_Api.Controllers
233 319
         /// 添加工单
234 320
         /// </summary>
235 321
         /// <returns></returns>
236
-        public ActionResult AddWorkOrder(Con_WorkOrderInput input, int overtime=0, int opt = 0,string cont="")
322
+        public ActionResult AddWorkOrder(Con_WorkOrderInput input, int overtime = 0, int opt = 0, string cont = "")
237 323
         {
238
-  
324
+
239 325
             if (User != null)
240 326
             {
241 327
                 #region 添加判断
242
-                if (!(input.F_Type1!=1001 || input.F_Type1 != 1002 ||input.F_Type1 != 1003 || input.F_Type1 != 1004 || input.F_Type1 != 1005))
328
+                if (!(input.F_Type2 != 1001 || input.F_Type2 != 1002 || input.F_Type2 != 1003 || input.F_Type2 != 1004 || input.F_Type2 != 1005))
243 329
                     return Error("工单类型错误!");
244 330
                 if (opt == 0)
245 331
                     return Error("请选择处理方式!");
@@ -247,12 +333,12 @@ namespace RMYY_CallCenter_Api.Controllers
247 333
                     return Error("请输入客户姓名!");
248 334
                 if (string.IsNullOrEmpty(input.F_Phon))
249 335
                     return Error("请输入客户电话!");
250
-                if (input.F_Type1 == 1004)
336
+                if (input.F_Type2 == 1004)
251 337
                 {
252 338
                     if (string.IsNullOrEmpty(input.F_ServiceItems))
253 339
                         return Error("请选择服务项目!");
254 340
                 }
255
-                if (input.F_Type1 == 1003)
341
+                if (input.F_Type2 == 1003)
256 342
                 {
257 343
                     if (string.IsNullOrEmpty(input.F_Address))
258 344
                         return Error("请填写地区!");
@@ -265,128 +351,129 @@ namespace RMYY_CallCenter_Api.Controllers
265 351
                 var model = new Model.T_Con_WorkOrder();
266 352
                 model = inputtoobj(model, input, 0);
267 353
                 model.F_LimitTime = overtime;
268
-                int n = orderbll.Add(model);
269
-                if (n > 0)
354
+                if (opt == 1)
355
+                    model.F_DealType = "立即办理";
356
+                else if (opt == 2)
357
+                    model.F_DealType = "提交审核";
358
+                else if (opt == 3)
359
+                    model.F_DealType = "转派";
360
+                using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
270 361
                 {
271
-                    Model.T_Con_WorkOrder work = orderbll.GetModel(n);
272
-                    var deptmodel = deptbll.GetModel(User.F_DeptId);
273
-                    string deptname = "";
274
-                    if (deptmodel != null)
275
-                        deptname = deptmodel.F_DeptName + "-";
276
-                    AddLog(work.F_ID, 0, deptname + User.F_UserName + "(" + User.F_UserCode + ")" + "创建工单", (int)EnumWorkOrderState.neworder, (int)EnumItemOpt.create, "", 0, User);
277
-                    if (opt == 1)//立即办理
362
+                    #region 添加工单
363
+                    int n = orderbll.Add(model);
364
+                    if (n > 0)
278 365
                     {
279
-                        if (work != null)
366
+                        Model.T_Con_WorkOrder work = orderbll.GetModel(n);
367
+                        var deptmodel = deptbll.GetModel(User.F_DeptId);
368
+                        string deptname = "";
369
+                        if (deptmodel != null)
370
+                            deptname = deptmodel.F_DeptName + "-";
371
+                        AddLog(work.F_ID, 0, deptname + User.F_UserName + "(" + User.F_UserCode + ")" + "创建工单", (int)EnumWorkOrderState.neworder, (int)EnumItemOpt.create, "", 0, User);
372
+                        if (opt == 1)//立即办理
280 373
                         {
281
-                            if(input.F_Type1==1001 || input.F_Type1 == 1003)
374
+
375
+                            if (input.F_Type2 == 1001 || input.F_Type2 == 1003)
282 376
                             {
283
-                                work.F_DealType = "立即办理";
284 377
                                 var res = DealWO(User, work, cont, "", 1);
285 378
                                 if (res)
286 379
                                 {
287 380
                                     #region 给患者发送短信
288 381
                                     #endregion
289
-                                    return Success("处理成功!");
290 382
                                 }
291
-                                else return Error("处理失败!");
292 383
                             }
384
+                            else return Error("此工单类型不支持立即办理!");
293 385
                         }
294
-                        else
295
-                            return Error("处理失败!");
296
-                    }
297
-                    else if (opt == 2)//提交审核
298
-                    {
299
-                        if (input.F_Type1 == 1002)//投诉建议需要提交审核
386
+                        else if (opt == 2)//提交审核
300 387
                         {
301
-                            Model.T_Sys_UserAccount userleader = userbll.GetModelList(" F_DeptId=" + deptmodel.F_DeptId + " and F_RoleId=60 ").FirstOrDefault();//护士长角色
302
-                            if (userleader != null)
388
+                            if (input.F_Type2 == 1002)//投诉建议需要提交审核
303 389
                             {
304
-                                AddLog(work.F_ID, 0, deptname + userleader.F_UserName + "(" + User.F_UserCode + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, userleader.F_UserCode, userleader.F_DeptId, User);
305
-                                return Success("已提交审核!");
390
+                                Model.T_Sys_UserAccount userleader = userbll.GetModelList(" F_DeptId=" + deptmodel.F_DeptId + " and F_RoleId=2016 ").FirstOrDefault();//护士长角色
391
+                                if (userleader != null)
392
+                                {
393
+                                    AddLog(work.F_ID, 0, deptname + userleader.F_UserName + "(" + User.F_UserCode + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, userleader.F_UserCode, userleader.F_DeptId, User);
394
+
395
+                                }
396
+                                else
397
+                                    return Error("提交审核失败!");
306 398
                             }
307
-                            else
308
-                                return Error("提交审核失败!");
309
-                        }
399
+                            else return Error("此工单类型不支持审核!");
310 400
 
311
-                    }
312
-                    else if (opt == 3)//转派
313
-                    {
314
-                        if (input.F_Type1 == 1004 || input.F_Type1 == 1005)//家庭预约,静脉置管维护 立即处理并给健康事业部或置管室 推送一条钉钉消息
401
+                        }
402
+                        else if (opt == 3)//转派
315 403
                         {
316
-                            int clbm = 0;//健康事业部的部门Id
317
-                            bool tt = DealWO(User, work, cont, "", 1);
318
-                            if (tt)
404
+                            if (input.F_Type2 == 1004 || input.F_Type2 == 1005)//家庭预约,静脉置管维护 立即处理并给健康事业部或置管室 推送一条钉钉消息
319 405
                             {
320
-                                #region  给健康事业部或 置管室 推送一条钉钉消息
321
-                                #endregion
322
-                                return Success("处理成功!");
406
+                                int clbm = 0;//健康事业部的部门Id
407
+                                bool tt = DealWO(User, work, cont, "", 1);
408
+                                if (tt)
409
+                                {
410
+                                    #region  给健康事业部或 置管室 推送一条钉钉消息
411
+                                    #endregion
412
+                                }
323 413
                             }
324
-                            else
325
-                                return Error("提交失败!");
414
+                            else return Error("此工单类型不支持转派!");
415
+                            //if (input.F_Type1 == 2)//投诉建议转派至行风办
416
+                            //{
417
+                            //    int clbm = 0;//行风办的部门Id
418
+                            //    bool tt = AssignWO(user, work, cont, 0, clbm);
419
+                            //    if (tt)
420
+                            //    {
421
+                            //        return Success("转派成功!");
422
+                            //    }
423
+                            //    else
424
+                            //        return Error("提交失败!");
326 425
 
327
-                        }
328
-                        //if (input.F_Type1 == 2)//投诉建议转派至行风办
329
-                        //{
330
-                        //    int clbm = 0;//行风办的部门Id
331
-                        //    bool tt = AssignWO(user, work, cont, 0, clbm);
332
-                        //    if (tt)
333
-                        //    {
334
-                        //        return Success("转派成功!");
335
-                        //    }
336
-                        //    else
337
-                        //        return Error("提交失败!");
426
+                            //}
427
+                            //else//其他交有保障中心处理
428
+                            //{
429
+                            //    int clbm = 0;//综合保障中心的部门Id
430
+                            //    bool tt = AssignWO(user, work, cont, 0, clbm);
431
+                            //    if (tt)
432
+                            //    {
433
+                            //        return Success("转派成功!");
434
+                            //    }
435
+                            //    else
436
+                            //        return Error("提交失败!");
338 437
 
339
-                        //}
340
-                        //else//其他交有保障中心处理
341
-                        //{
342
-                        //    int clbm = 0;//综合保障中心的部门Id
343
-                        //    bool tt = AssignWO(user, work, cont, 0, clbm);
344
-                        //    if (tt)
345
-                        //    {
346
-                        //        return Success("转派成功!");
347
-                        //    }
348
-                        //    else
349
-                        //        return Error("提交失败!");
438
+                            //}
439
+                        }
350 440
 
351
-                        //}
352 441
                     }
353
-
442
+                    else
443
+                        return Error("添加失败!");
444
+                    #endregion
445
+                    trans.Complete();
354 446
                 }
355
-                else
356
-                    return Error("添加失败!");
447
+                return Success("添加成功!");
357 448
             }
358
-
359 449
             return Error("无操作权限!");
360 450
         }
361 451
 
362
-         /// <summary>
363
-         /// 修改工单
364
-         /// </summary>
365
-         /// <param name="input"></param>
366
-         /// <param name="opt"></param>
367
-         /// <param name="cont"></param>
368
-         /// <returns></returns>
369
-        public ActionResult UpdateWorkOrder(Con_WorkOrderInput input,int opt=0,string cont="")
452
+        /// <summary>
453
+        /// 修改工单
454
+        /// </summary>
455
+        /// <param name="input"></param>
456
+        /// <param name="opt"></param>
457
+        /// <param name="cont"></param>
458
+        /// <returns></returns>
459
+        public ActionResult UpdateWorkOrder(Con_WorkOrderInput input, int opt = 0, string cont = "")
370 460
         {
371
-            int userId = 1;
372
-            if (userId != 0)
461
+            if (User != null)
373 462
             {
374
-                string usercode = "8000";
375
-                Model.T_Sys_UserAccount user = userbll.GetModel(userId);
376
-                Model.T_Sys_Role role = rolebll.GetModel(user.F_RoleId);
463
+                //Model.T_Sys_Role role = rolebll.GetModel(user.F_RoleId);
377 464
                 #region 添加判断
378
-                if (!(input.F_Type1 > 0 && input.F_Type1 < 6))
465
+                if (!(input.F_Type2 != 1001 || input.F_Type2 != 1002 || input.F_Type2 != 1003 || input.F_Type2 != 1004 || input.F_Type2 != 1005))
379 466
                     return Error("工单类型错误!");
380 467
                 if (string.IsNullOrEmpty(input.F_Customer))
381 468
                     return Error("请输入客户姓名!");
382 469
                 if (string.IsNullOrEmpty(input.F_Phon))
383 470
                     return Error("请输入客户电话!");
384
-                if (input.F_Type1 == 4)
471
+                if (input.F_Type2 == 4)
385 472
                 {
386 473
                     if (string.IsNullOrEmpty(input.F_ServiceItems))
387 474
                         return Error("请选择服务项目!");
388 475
                 }
389
-                if (input.F_Type1 == 3)
476
+                if (input.F_Type2 == 3)
390 477
                 {
391 478
                     if (string.IsNullOrEmpty(input.F_Address))
392 479
                         return Error("请填写地区!");
@@ -399,9 +486,9 @@ namespace RMYY_CallCenter_Api.Controllers
399 486
                 var model = orderbll.GetModel(input.F_ID);
400 487
                 if (model == null)
401 488
                     return Error("查询不到此工单!");
402
-                if (user.F_UserCode != "8000")
489
+                if (User.F_UserCode != "8000")
403 490
                 {
404
-                    if (model.F_CreateUserID != user.F_UserCode)
491
+                    if (model.F_CreateUserID != User.F_UserCode)
405 492
                         return Error("非创建人不能修改工单!");
406 493
                     if (model.F_State == 2)
407 494
                         return Error("此工单已接单不能修改!");
@@ -409,72 +496,80 @@ namespace RMYY_CallCenter_Api.Controllers
409 496
                         return Error("此工单已处理不能修改!");
410 497
                 }
411 498
                 model = inputtoobj(model, input, 1);
412
-                bool n = orderbll.Update(model);
413
-                if (n)
499
+                using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
414 500
                 {
415
-                    var deptmodel = deptbll.GetModel(user.F_DeptId);
416
-                    string deptname = "";
417
-                    if (deptmodel != null)
418
-                        deptname = deptmodel.F_DeptName + "-";
419
-                    AddLog(input.F_ID, 0, deptname + user.F_UserName + "(" + user.F_UserCode + ")" + "修改工单", (int)EnumItemType.update, (int)EnumItemOpt.update, "", 0, user);
420
-                    if (opt == 1)//立即办理
501
+                    #region 修改工单
502
+                    if (opt == 1)
503
+                        model.F_DealType = "立即办理";
504
+                    else if (opt == 2)
505
+                        model.F_DealType = "提交审核";
506
+                    else if (opt == 3)
507
+                        model.F_DealType = "转派";
508
+                    bool n = orderbll.Update(model);
509
+                    if (n)
421 510
                     {
422
-                        if (model != null)
511
+                        var deptmodel = deptbll.GetModel(User.F_DeptId);
512
+                        string deptname = "";
513
+                        if (deptmodel != null)
514
+                            deptname = deptmodel.F_DeptName + "-";
515
+                        AddLog(input.F_ID, 0, deptname + User.F_UserName + "(" + User.F_UserCode + ")" + "修改工单", (int)EnumItemType.update, (int)EnumItemOpt.update, "", 0, User);
516
+                        if (opt == 1)//立即办理
423 517
                         {
424
-                            if (input.F_Type1 == 1001 || input.F_Type1 == 1003)
518
+                            if (input.F_Type2 == 1001 || input.F_Type2 == 1003)
425 519
                             {
426
-                                var res = DealWO(user, model, cont, "", 1);
520
+                                var res = DealWO(User, model, cont, "", 1);
427 521
                                 if (res)
428 522
                                 {
429 523
                                     #region 给患者发送短信
430 524
                                     #endregion
431
-                                    return Success("处理成功!");
432 525
                                 }
433
-                                else return Error("处理失败!");
434 526
                             }
527
+                            else return Error("此工单类型不支持立即办理!");
528
+
435 529
                         }
436
-                        else
437
-                            return Error("处理失败!");
438
-                    }
439
-                    else if (opt == 2)//提交审核
440
-                    {
441
-                        if (input.F_Type1 == 1002)//投诉建议需要提交审核
530
+                        else if (opt == 2)//提交审核
442 531
                         {
443
-                            Model.T_Sys_UserAccount userleader = userbll.GetModelList(" F_DeptId=" + deptmodel.F_DeptId + " and F_RoleId=60 ").FirstOrDefault();//护士长角色
444
-                            if (userleader != null)
532
+                            if (input.F_Type2 == 1002)//投诉建议需要提交审核
445 533
                             {
446
-                                AddLog(model.F_ID, 0, deptname + userleader.F_UserName + "(" + user.F_UserCode + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, userleader.F_UserCode, userleader.F_DeptId, user);
447
-                                return Success("已提交审核!");
534
+                                Model.T_Sys_UserAccount userleader = userbll.GetModelList(" F_DeptId=" + deptmodel.F_DeptId + " and F_RoleId=2016 ").FirstOrDefault();//护士长角色
535
+                                if (userleader != null)
536
+                                {
537
+                                    AddLog(model.F_ID, 0, deptname + userleader.F_UserName + "(" + User.F_UserCode + ")" + "待审批", (int)EnumItemType.audit, (int)EnumItemOpt.audit, userleader.F_UserCode, userleader.F_DeptId, User);
538
+                                }
539
+                                else
540
+                                    return Error("提交审核失败!");
448 541
                             }
449
-                            else
450
-                                return Error("提交审核失败!");
451
-                        }
542
+                            else return Error("此工单类型不支持审核!");
452 543
 
453
-                    }
454
-                    else if (opt == 3)//转派
455
-                    {
456
-                        if (input.F_Type1 == 1004 || input.F_Type1 == 1005)//家庭预约,静脉置管维护 立即处理并给健康事业部或置管室 推送一条钉钉消息
544
+                        }
545
+                        else if (opt == 3)//转派
457 546
                         {
458
-                            int clbm = 0;//健康事业部的部门Id
459
-                            bool tt = DealWO(user, model, cont, "", 1);
460
-                            if (tt)
547
+                            if (input.F_Type2 == 1004 || input.F_Type2 == 1005)//家庭预约,静脉置管维护 立即处理并给健康事业部或置管室 推送一条钉钉消息
461 548
                             {
462
-                                #region  给健康事业部或 置管室 推送一条钉钉消息
463
-                                #endregion
464
-                                return Success("处理成功!");
465
-                            }
466
-                            else
467
-                                return Error("提交失败!");
549
+                                int clbm = 0;//健康事业部的部门Id
550
+                                bool tt = DealWO(User, model, cont, "", 1);
551
+                                if (tt)
552
+                                {
553
+                                    #region  给健康事业部或 置管室 推送一条钉钉消息
554
+                                    #endregion
555
+                                }                              
468 556
 
557
+                            }
558
+                            else return Error("此工单类型不支持转派!");
469 559
                         }
470
-                    }
471 560
 
561
+                    }
562
+                    else
563
+                        return Error("修改失败!");
564
+                    #endregion
565
+                    trans.Complete();
472 566
                 }
473
-                else
474
-                    return Error("修改失败!");
567
+                return Success("操作成功!");
568
+
475 569
             }
476 570
 
477 571
             return Error("无操作权限!");
572
+
478 573
         }
479 574
 
480 575
         /// <summary>
@@ -482,26 +577,60 @@ namespace RMYY_CallCenter_Api.Controllers
482 577
         /// </summary>
483 578
         /// <param name="id"></param>
484 579
         /// <returns></returns>
485
-        public ActionResult DelWorkOrder(int id)
580
+        //public ActionResult DelWorkOrder(int id)
581
+        //{
582
+        //    int userId = User.F_UserId;
583
+        //    if (userId != 0)
584
+        //    {
585
+        //        if (id <= 0)
586
+        //            return Error("选择要删除的工单!");
587
+        //        var model = orderbll.GetModel(id);
588
+        //        if (model == null)
589
+        //            return Error("查询不到此工单!");
590
+        //        Model.T_Sys_UserAccount ua = userbll.GetModel(userId);
591
+        //        if (ua == null)
592
+        //            return Error("无操作权限!");
593
+        //        if (ua.F_UserCode != model.F_CreateUser)
594
+        //            return Error("非创建人不能删除工单!");
595
+        //        if (orderbll.Delete(id))
596
+        //            return Success("操作成功!");
597
+        //        else return Error("设置失败!");
598
+        //    }            
599
+        //    return Error("无操作权限!");
600
+        //}
601
+
602
+
603
+        /// <summary>
604
+        /// 删除工单
605
+        /// </summary>
606
+        /// <returns></returns>
607
+        public ActionResult DelWorkOrder(string[] ids)
486 608
         {
487
-            int userId = User.F_UserId;
488
-            if (userId != 0)
609
+            if (ids != null && ids.Length > 0)
489 610
             {
490
-                if (id <= 0)
491
-                    return Error("选择要删除的工单!");
492
-                var model = orderbll.GetModel(id);
493
-                if (model == null)
494
-                    return Error("查询不到此工单!");
495
-                Model.T_Sys_UserAccount ua = userbll.GetModel(userId);
496
-                if (ua == null)
497
-                    return Error("无操作权限!");
498
-                if (ua.F_UserCode != model.F_CreateUser)
499
-                    return Error("非创建人不能删除工单!");
500
-                if (orderbll.Delete(id))
501
-                    return Success("操作成功!");
502
-                else return Error("设置失败!");
503
-            }            
504
-            return Error("无操作权限!");
611
+                //StringBuilder sb = new StringBuilder();
612
+                foreach (var item in ids)
613
+                {
614
+                    //sb.Append("'" + item + "',");
615
+                    Model.T_Con_WorkOrder womodel = orderbll.GetModel(Convert.ToInt32(item));
616
+                    if (womodel != null && womodel.F_State == (int)EnumWorkOrderState.neworder)//0)
617
+                    {
618
+                        #region 修改工单记录
619
+                        womodel.F_IsDel = 1;
620
+                        womodel.F_DeleteBy = User.F_UserCode;
621
+                        womodel.F_DeleteTime = DateTime.Now;
622
+                        orderbll.Update(womodel);
623
+                        #endregion
624
+
625
+                        #region 插入操作记录
626
+                        AddLog(womodel.F_ID, (int)womodel.F_State, User.F_UserName + "(" + User.F_UserCode + ")" + "删除了工单", (int)EnumItemType.delete, (int)EnumItemOpt.delete, "", 0, User);
627
+                        #endregion
628
+                    }
629
+                    else return Error("删除失败!");
630
+                }
631
+                return Success("删除成功!");
632
+            }
633
+            return Error("请选择要删除的记录!");
505 634
         }
506 635
 
507 636
 
@@ -530,8 +659,9 @@ namespace RMYY_CallCenter_Api.Controllers
530 659
                 model.F_WorkOrderCode = model.F_WorkOrderCode;//工单编号
531 660
                 model.F_Source = model.F_Source;//工单来源
532 661
             }
533
-            model.F_type1 = input.F_Type1;//工单类型:健康咨询,投诉建议,外聘专家咨询,家庭预约上门,静脉置管维护
534
-            model.F_type2 = input.F_Type2;
662
+            model.F_type1 = input.F_Type1;//一级工单类型
663
+            model.F_type2 = input.F_Type2;//工单类型:健康咨询,投诉建议,外聘专家咨询,家庭预约上门,静脉置管维护
664
+            model.F_type3 = input.F_Type3;//三级工单类型
535 665
 
536 666
             model.F_Customer = input.F_Customer;//来电人姓名
537 667
             model.F_Sex = input.F_Sex;
@@ -909,7 +1039,7 @@ namespace RMYY_CallCenter_Api.Controllers
909 1039
                         if (AuditState == 1)
910 1040
                         {
911 1041
                             res = AddLog(wmodel.F_ID, wmodel.F_State.Value, deptname + ua.F_UserName + "(" + ua.F_UserCode + ")" + "工单审批:已同意审批" + AuditCont, (int)EnumItemType.audit, (int)EnumItemOpt.reaudit, ua.F_UserCode, ua.F_DeptId, ua);
912
-                            wmodel.F_State = (int)EnumWorkOrderState.neworder;//待审批
1042
+                            wmodel.F_State = (int)EnumWorkOrderState.neworder;//待转派
913 1043
                             wmodel.F_AuditState = 1;
914 1044
                         }
915 1045
                         if (AuditState == 2)
@@ -963,7 +1093,7 @@ namespace RMYY_CallCenter_Api.Controllers
963 1093
                             return Error("工单已处理请勿重复操作");
964 1094
                         else
965 1095
                         {
966
-                            var res = DealWO(ua, wmodel, cont, "", 1);
1096
+                            var res = DealWO(ua, wmodel, cont, "", 0);
967 1097
                             if (res)
968 1098
                                 return Success("处理成功");
969 1099
                             else
@@ -992,22 +1122,21 @@ namespace RMYY_CallCenter_Api.Controllers
992 1122
         public bool DealWO(Model.T_Sys_UserAccount nowUser, Model.T_Con_WorkOrder model, string cont, string F_Files = "", int isover = 0)
993 1123
         {
994 1124
             #region 工单处理
995
-            //var opt = "处理";
996
-            //int optbut = (int)EnumItemOpt.deal;
997
-            //int wostate = (int)EnumWorkOrderState.dealing;
998
-            //if (isover == 1)
999
-            //{
1000
-            model.F_DealResult = "已处理";//处理结果
1001
-            var opt = "处理完结";
1002
-            int optbut = (int)EnumItemOpt.end;
1003
-            int wostate = (int)EnumWorkOrderState.finish;
1125
+            var opt = "处理";
1126
+            int optbut = (int)EnumItemOpt.deal;
1127
+            int wostate = (int)EnumWorkOrderState.dealing;
1128
+            if (isover == 1)
1129
+            {
1130
+             model.F_DealResult = "已处理";//处理结果
1131
+             opt = "处理完结";
1132
+             optbut = (int)EnumItemOpt.end;
1133
+             wostate = (int)EnumWorkOrderState.finish;
1004 1134
             model.F_HandleBy = nowUser.F_UserCode;
1005
-            //model.F_HandleTime =DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd  hh:mm:ss"));
1006
-            //}
1007
-            //else
1008
-            //{
1009
-            //    model.F_DealResult = "未处理";//处理结果
1010
-            //}
1135
+            }
1136
+            else
1137
+            {
1138
+                model.F_DealResult = "处理中";//处理结果
1139
+            }
1011 1140
             #region 读取当前登录人部门
1012 1141
             string deptname = "";
1013 1142
             var deptmodel = deptbll.GetModel(nowUser.F_DeptId);

+ 3 - 1
RMYY_CallCenter_Api/Controllers/WorkOrderBaseController.cs

@@ -1,4 +1,5 @@
1
-using RMYY_CallCenter_Api.Utility;
1
+using RMYY_CallCenter_Api.Models.Enum;
2
+using RMYY_CallCenter_Api.Utility;
2 3
 using System;
3 4
 using System.Collections.Generic;
4 5
 using System.Data;
@@ -293,5 +294,6 @@ namespace RMYY_CallCenter_Api.Controllers
293 294
         }
294 295
 
295 296
 
297
+
296 298
     }
297 299
 }

+ 29 - 0
RMYY_CallCenter_Api/Models/Dto/TypeState.cs

@@ -0,0 +1,29 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Linq;
4
+using System.Web;
5
+
6
+namespace RMYY_CallCenter_Api.Models.Dto
7
+{
8
+    /// <summary>
9
+    /// 工单类型
10
+    /// </summary>
11
+    public class TypeState
12
+    {
13
+        /// <summary>
14
+        /// 工单状态id
15
+        /// </summary>
16
+        public string StateId { get; set; }
17
+        /// <summary>
18
+        /// 工单状态名称
19
+        /// </summary>
20
+        public string StateValue { get; set; }
21
+
22
+
23
+        /// <summary>
24
+        /// 工单类型描述
25
+        /// </summary>
26
+        public string StateRemark { get; set; }
27
+    }
28
+}
29
+

+ 16 - 14
RMYY_CallCenter_Api/Models/Enum/EnumWorkOrderState.cs

@@ -23,22 +23,24 @@ namespace RMYY_CallCenter_Api.Models.Enum
23 23
         abreback,
24 24
         [Description("处理中")]
25 25
         dealing,
26
-        [Description("已处理待回访")]
27
-        dealed,
28
-        [Description("已回访待完结")]
29
-        visit,
26
+        [Description("已处理")]
27
+        end,
28
+        //[Description("已处理待回访")]
29
+        //dealed,
30
+        //[Description("已回访待完结")]
31
+        //visit,
30 32
         [Description("已完结")]
31 33
         finish=10,
32
-        [Description("已评价")]
33
-        evaluate,
34
-        [Description("已退回待指派")]
35
-        reassign,
36
-        [Description("导入工单")]
37
-        usedimport,
38
-        [Description("微信客户")]
39
-        customers,
40
-        [Description("微信未通过")]
41
-        recustomers,
34
+        //[Description("已评价")]
35
+        //evaluate,
36
+        //[Description("已退回待指派")]
37
+        //reassign,
38
+        //[Description("导入工单")]
39
+        //usedimport,
40
+        //[Description("微信客户")]
41
+        //customers,
42
+        //[Description("微信未通过")]
43
+        //recustomers,
42 44
         [Description("待审批")]
43 45
         audit,
44 46
     }

+ 2 - 0
RMYY_CallCenter_Api/RMYY_CallCenter_Api.csproj

@@ -49,6 +49,7 @@
49 49
     <Reference Include="System" />
50 50
     <Reference Include="System.Data" />
51 51
     <Reference Include="System.Drawing" />
52
+    <Reference Include="System.Transactions" />
52 53
     <Reference Include="System.Web.DynamicData" />
53 54
     <Reference Include="System.Web.Entity" />
54 55
     <Reference Include="System.Web.ApplicationServices" />
@@ -159,6 +160,7 @@
159 160
       <DependentUpon>Global.asax</DependentUpon>
160 161
     </Compile>
161 162
     <Compile Include="Models\Dto\TotalWorkeOrderDto.cs" />
163
+    <Compile Include="Models\Dto\TypeState.cs" />
162 164
     <Compile Include="Models\Enum\EnumAccWorkOrderState.cs" />
163 165
     <Compile Include="Models\Enum\EnumDevWorkOrderState.cs" />
164 166
     <Compile Include="Models\Enum\EnumDisWorkOrderState.cs" />