1550076451 3 lat temu
rodzic
commit
4052b25fb4

Plik diff jest za duży
+ 60 - 9
RMYY_CallCenter_Api.Dal/T_Con_WorkOrder.cs


+ 27 - 12
RMYY_CallCenter_Api.Dal/T_Wo_CommonBase.cs

@@ -24,9 +24,9 @@ namespace RMYY_CallCenter_Api.DAL
24 24
 		{
25 25
 			StringBuilder strSql=new StringBuilder();
26 26
 			strSql.Append("insert into T_Wo_CommonBase(");
27
-			strSql.Append("F_WoCode,F_CreateUser,F_Type,F_SonType,F_Content,F_Proposer,F_ProposerDept,F_DealUser,F_DealDept,F_TimeLimit,F_Status,F_IsDone,F_InternalWorkOrderCode,F_ExternalWorkOrderCode,F_CreateTime,F_UpdateTime)");
27
+			strSql.Append("F_WoCode,F_CreateUser,F_Type,F_SonType,F_Content,F_Proposer,F_ProposerDept,F_DealUser,F_DealDept,F_TimeLimit,F_Status,F_IsDone,F_InternalWorkOrderCode,F_ExternalWorkOrderCode,F_CreateTime,F_UpdateTime,F_Phone)");
28 28
 			strSql.Append(" values (");
29
-			strSql.Append("@F_WoCode,@F_CreateUser,@F_Type,@F_SonType,@F_Content,@F_Proposer,@F_ProposerDept,@F_DealUser,@F_DealDept,@F_TimeLimit,@F_Status,@F_IsDone,@F_InternalWorkOrderCode,@F_ExternalWorkOrderCode,@F_CreateTime,@F_UpdateTime)");
29
+			strSql.Append("@F_WoCode,@F_CreateUser,@F_Type,@F_SonType,@F_Content,@F_Proposer,@F_ProposerDept,@F_DealUser,@F_DealDept,@F_TimeLimit,@F_Status,@F_IsDone,@F_InternalWorkOrderCode,@F_ExternalWorkOrderCode,@F_CreateTime,@F_UpdateTime,@F_Phone)");
30 30
 			SqlParameter[] parameters = {
31 31
 					new SqlParameter("@F_WoCode", SqlDbType.VarChar,50),
32 32
 					new SqlParameter("@F_CreateUser", SqlDbType.Int,4),
@@ -43,7 +43,9 @@ namespace RMYY_CallCenter_Api.DAL
43 43
 					new SqlParameter("@F_InternalWorkOrderCode", SqlDbType.VarChar,500),
44 44
 					new SqlParameter("@F_ExternalWorkOrderCode", SqlDbType.VarChar,500),
45 45
 					new SqlParameter("@F_CreateTime", SqlDbType.DateTime),
46
-					new SqlParameter("@F_UpdateTime", SqlDbType.DateTime)};
46
+					new SqlParameter("@F_UpdateTime", SqlDbType.DateTime),
47
+                    new SqlParameter("@F_Phone", SqlDbType.VarChar,50)
48
+            };
47 49
 			parameters[0].Value = model.F_WoCode;
48 50
 			parameters[1].Value = model.F_CreateUser;
49 51
 			parameters[2].Value = model.F_Type;
@@ -60,8 +62,10 @@ namespace RMYY_CallCenter_Api.DAL
60 62
 			parameters[13].Value = model.F_ExternalWorkOrderCode;
61 63
 			parameters[14].Value = model.F_CreateTime;
62 64
 			parameters[15].Value = model.F_UpdateTime;
65
+            parameters[16].Value = model.F_Phone;
66
+            
63 67
 
64
-			return DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
68
+            return DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
65 69
 		}
66 70
 	
67 71
 		/// <summary>
@@ -87,8 +91,11 @@ namespace RMYY_CallCenter_Api.DAL
87 91
 			strSql.Append("F_InternalWorkOrderCode=@F_InternalWorkOrderCode,");
88 92
 			strSql.Append("F_ExternalWorkOrderCode=@F_ExternalWorkOrderCode,");
89 93
 			strSql.Append("F_CreateTime=@F_CreateTime,");
90
-			strSql.Append("F_UpdateTime=@F_UpdateTime");
91
-			strSql.Append(" where ");
94
+			strSql.Append("F_UpdateTime=@F_UpdateTime,");
95
+            strSql.Append("F_Phone=@F_Phone");
96
+            
97
+
98
+            strSql.Append(" where ");
92 99
 			SqlParameter[] parameters = {
93 100
 					new SqlParameter("@F_WoCode", SqlDbType.VarChar,50),
94 101
 					new SqlParameter("@F_CreateUser", SqlDbType.Int,4),
@@ -106,7 +113,9 @@ namespace RMYY_CallCenter_Api.DAL
106 113
 					new SqlParameter("@F_InternalWorkOrderCode", SqlDbType.VarChar,500),
107 114
 					new SqlParameter("@F_ExternalWorkOrderCode", SqlDbType.VarChar,500),
108 115
 					new SqlParameter("@F_CreateTime", SqlDbType.DateTime),
109
-					new SqlParameter("@F_UpdateTime", SqlDbType.DateTime)};
116
+					new SqlParameter("@F_UpdateTime", SqlDbType.DateTime),
117
+                    new SqlParameter("@F_Phone", SqlDbType.VarChar,50)
118
+            };
110 119
 			parameters[0].Value = model.F_WoCode;
111 120
 			parameters[1].Value = model.F_CreateUser;
112 121
 			parameters[2].Value = model.F_Type;
@@ -123,7 +132,9 @@ namespace RMYY_CallCenter_Api.DAL
123 132
 			parameters[13].Value = model.F_ExternalWorkOrderCode;
124 133
 			parameters[14].Value = model.F_CreateTime;
125 134
 			parameters[15].Value = model.F_UpdateTime;
126
-			int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
135
+            parameters[16].Value = model.F_Phone;
136
+
137
+            int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
127 138
 			if (rows > 0)
128 139
 			{
129 140
 				return true;
@@ -165,7 +176,7 @@ namespace RMYY_CallCenter_Api.DAL
165 176
 		{
166 177
 			//该表无主键信息,请自定义主键/条件字段
167 178
 			StringBuilder strSql=new StringBuilder();
168
-			strSql.Append("select  top 1 F_WoCode,F_CreateUser,F_Type,F_SonType,F_Content,F_Proposer,F_ProposerDept,F_DealUser,F_DealDept,F_TimeLimit,F_Status,F_IsDelete,F_IsDone,F_InternalWorkOrderCode,F_ExternalWorkOrderCode,F_CreateTime,F_UpdateTime from T_Wo_CommonBase ");
179
+			strSql.Append("select  top 1 F_WoCode,F_CreateUser,F_Phone,F_Type,F_SonType,F_Content,F_Proposer,F_ProposerDept,F_DealUser,F_DealDept,F_TimeLimit,F_Status,F_IsDelete,F_IsDone,F_InternalWorkOrderCode,F_ExternalWorkOrderCode,F_CreateTime,F_UpdateTime from T_Wo_CommonBase ");
169 180
 			strSql.Append(" where ");
170 181
 			SqlParameter[] parameters = {
171 182
 };
@@ -188,7 +199,7 @@ namespace RMYY_CallCenter_Api.DAL
188 199
 		public DataSet GetList(string strWhere)
189 200
 		{
190 201
 			StringBuilder strSql=new StringBuilder();
191
-			strSql.Append("select F_WoCode,F_CreateUser,F_Type,F_SonType,F_Content,F_Proposer,F_ProposerDept,F_DealUser,F_DealDept,F_TimeLimit,F_Status,F_IsDelete,F_IsDone,F_InternalWorkOrderCode,F_ExternalWorkOrderCode,F_CreateTime,F_UpdateTime ");
202
+			strSql.Append("select F_WoCode,F_CreateUser,F_Type,F_Phone,F_SonType,F_Content,F_Proposer,F_ProposerDept,F_DealUser,F_DealDept,F_TimeLimit,F_Status,F_IsDelete,F_IsDone,F_InternalWorkOrderCode,F_ExternalWorkOrderCode,F_CreateTime,F_UpdateTime ");
192 203
 			strSql.Append(" FROM T_Wo_CommonBase ");
193 204
 			if(strWhere.Trim()!="")
194 205
 			{
@@ -208,7 +219,7 @@ namespace RMYY_CallCenter_Api.DAL
208 219
 			{
209 220
 				strSql.Append(" top "+Top.ToString());
210 221
 			}
211
-			strSql.Append(" F_WoCode,F_CreateUser,F_Type,F_SonType,F_Content,F_Proposer,F_ProposerDept,F_DealUser,F_DealDept,F_TimeLimit,F_Status,F_IsDelete,F_IsDone,F_InternalWorkOrderCode,F_ExternalWorkOrderCode,F_CreateTime,F_UpdateTime ");
222
+			strSql.Append(" F_WoCode,F_CreateUser,F_Type,F_SonType,F_Phone,F_Content,F_Proposer,F_ProposerDept,F_DealUser,F_DealDept,F_TimeLimit,F_Status,F_IsDelete,F_IsDone,F_InternalWorkOrderCode,F_ExternalWorkOrderCode,F_CreateTime,F_UpdateTime ");
212 223
 			strSql.Append(" FROM T_Wo_CommonBase ");
213 224
 			if(strWhere.Trim()!="")
214 225
 			{
@@ -312,7 +323,11 @@ namespace RMYY_CallCenter_Api.DAL
312 323
 				{
313 324
 					model.F_UpdateTime=DateTime.Parse(dr["F_UpdateTime"].ToString());
314 325
 				}
315
-				return model;
326
+                if (dr["F_Phone"].ToString() != "")
327
+                {
328
+                    model.F_Phone = dr["F_Phone"].ToString();
329
+                }
330
+                return model;
316 331
 			}
317 332
 			else
318 333
 			{

+ 20 - 0
RMYY_CallCenter_Api.Model/T_Con_WorkOrder.cs

@@ -520,6 +520,26 @@ namespace RMYY_CallCenter_Api.Model
520 520
             set { _f_inpatientnum = value; }
521 521
             get { return _f_inpatientnum; }
522 522
         }
523
+        /// <summary>
524
+        /// 与患者关系
525
+        /// </summary>
526
+        public string F_Relationship { set; get; }
527
+        /// <summary>
528
+        /// 患者姓名
529
+        /// </summary>
530
+        public string F_FullName { set; get; }
531
+        /// <summary>
532
+        /// 患者身份证号
533
+        /// </summary>
534
+        public string F_IDNumber { set; get; }
535
+        /// <summary>
536
+        /// 投诉部门
537
+        /// </summary>
538
+        public int ? F_ComplaintDept { set; get; }
539
+        /// <summary>
540
+        /// 投诉人
541
+        /// </summary>
542
+        public string F_ComplaintUser { set; get; }
523 543
         #endregion Model
524 544
 
525 545
         #region 扩展

+ 4 - 2
RMYY_CallCenter_Api.Model/T_Wo_CommonBase.cs

@@ -156,8 +156,10 @@ namespace RMYY_CallCenter_Api.Model
156 156
 			set{ _f_updatetime=value;}
157 157
 			get{return _f_updatetime;}
158 158
 		}
159
-		#endregion Model
160 159
 
161
-	}
160
+        public string F_Phone { set; get; }
161
+        #endregion Model
162
+
163
+    }
162 164
 }
163 165
 

+ 3 - 3
RMYY_CallCenter_Api/Common/WorkOrderBase.cs

@@ -416,7 +416,7 @@ namespace RMYY_CallCenter_Api
416 416
             }
417 417
             else if (type == 1000)
418 418
             {
419
-                typeIdArray = new List<int> { 0, 1, 2, -1, -1, 10, -1, -1, -1, -1, -1 };
419
+                typeIdArray = new List<int> { 0, 1, 2, -1, -1, 10, -1, -1,3,4 };
420 420
             }
421 421
             else 
422 422
             {
@@ -434,9 +434,9 @@ namespace RMYY_CallCenter_Api
434 434
             switch (menuName)
435 435
             {
436 436
                 case MENUENUM.我的提交:
437
-                    strArr = new List<string> { "待提交", "待接单", "待接单", "已接单", "待评价", "已完成", "已完成","已接单" }; break;
437
+                    strArr = new List<string> { "待提交", "待接单", "待接单", "已接单", "待评价", "已完成", "已完成","已接单","已退回","办理中" }; break;
438 438
                 case MENUENUM.工单列表:
439
-                    strArr = new List<string> { "待提交", "待派工", "待接单", "待完成", "已处理", "异常完成", "已完成", "已接单" }; break;
439
+                    strArr = new List<string> { "待提交", "待派工", "待接单", "待完成", "已处理", "异常完成", "已完成", "已接单", "已退回", "办理中" }; break;
440 440
                 case MENUENUM.报修列表:
441 441
                     strArr = new List<string> { "待提交", "-", "待接单", "待完成", "已完成", "已完成", "已完成", "已接单" }; break;
442 442
                 default: break;

+ 1 - 1
RMYY_CallCenter_Api/Common/WorkOrderButton.cs

@@ -16,7 +16,7 @@ namespace RMYY_CallCenter_Api
16 16
         public static List<Button> GetButtons(MENUENUM menuName, int type, int status, int roleId = 0, int assistanceState = 0)
17 17
         {
18 18
             var desc = menuName.GetType().GetMember(menuName.ToString())[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
19
-            if (desc == null || desc.Length != 1)
19
+            if (desc == null || desc.Length == 2)
20 20
             {
21 21
                 return null;
22 22
             }

+ 19 - 1
RMYY_CallCenter_Api/Controllers/DictionaryType/GongDanTypeController.cs

@@ -7,6 +7,7 @@ using System.Text;
7 7
 using System.Web;
8 8
 using System.Web.Mvc;
9 9
 using CallCenterApi.Interface.Models;
10
+using RMYY_CallCenter_Api.DB;
10 11
 using RMYY_CallCenter_Api.Model;
11 12
 using RMYY_CallCenter_Api.Models;
12 13
 using RMYY_CallCenter_Api.Utility;
@@ -79,6 +80,11 @@ namespace RMYY_CallCenter_Api.Controllers
79 80
             model.F_ParentID = input.F_ParentID;
80 81
             model.F_CreateTime = DateTime.Now;
81 82
             model.F_TypeId = input.F_TypeId;
83
+            if (!string .IsNullOrEmpty (input.F_Identification))
84
+            {
85
+                if (GetIdentification(input.F_Identification) > 0)
86
+                    return Error("该标识已存在");
87
+            }
82 88
             model.F_Identification = input.F_Identification;
83 89
             if (gongdanBll.Add(model) > 0)
84 90
             {
@@ -89,7 +95,14 @@ namespace RMYY_CallCenter_Api.Controllers
89 95
                 return Error("添加失败,请重试");
90 96
             }
91 97
         }
92
-
98
+        public int GetIdentification(string Identification)
99
+        {
100
+            if (string.IsNullOrEmpty(Identification))
101
+                return 0;
102
+            var sql = "F_Identification='" + Identification + "'  ";
103
+            var count = DbHelperSQL.Query("select count(1)  from T_Sys_GongDan where " + sql).ToString ();
104
+            return int.Parse(count);
105
+        }
93 106
         /// <summary>
94 107
         /// 获取实体
95 108
         /// </summary>
@@ -175,6 +188,11 @@ namespace RMYY_CallCenter_Api.Controllers
175 188
                 ModuleInfo.F_Sort = input.F_Sort;
176 189
                 ModuleInfo.F_TypeId = input.F_TypeId;
177 190
                 ModuleInfo.F_TimeOut = input.F_TimeOut;
191
+                if (!string.IsNullOrEmpty(input.F_Identification))
192
+                {
193
+                    if (GetIdentification(input.F_Identification) > 0&& input.F_Identification!= ModuleInfo.F_Identification)
194
+                        return Error("该标识已存在");
195
+                }
178 196
                 ModuleInfo.F_Identification = input.F_Identification;
179 197
                 ModuleInfo.F_RepairTimeLimit = input.F_RepairTimeLimit;
180 198
                 if (gongdanBll.Update(ModuleInfo))

+ 53 - 0
RMYY_CallCenter_Api/Controllers/IndexController.cs

@@ -6,6 +6,7 @@ using System.Collections.Generic;
6 6
 using System.Data;
7 7
 using System.IO;
8 8
 using System.Linq;
9
+using System.Threading.Tasks;
9 10
 using System.Web;
10 11
 using System.Web.Mvc;
11 12
 
@@ -797,6 +798,58 @@ namespace RMYY_CallCenter_Api.Controllers
797 798
         }
798 799
 
799 800
         #endregion
801
+        /// <summary>
802
+        /// 获取24小时话务受理量
803
+        /// </summary>
804
+        /// <returns></returns>
805
+        public ActionResult GetHWCount24ByNow(string datetime)
806
+        {
807
+            var date = DateTime.Now;
808
+            if (!string .IsNullOrEmpty (datetime))
809
+            {
810
+                date = DateTime.Parse(datetime);
811
+            }
812
+            var hr =24;
813
+            int[] hours = Enumerable.Range(0, hr).ToArray<int>();
814
+            var obj = new
815
+            {
816
+                hours,
817
+                hwcount = new List<int[]>(),
818
+                jtcount = new List<int[]>()
819
+            };
800 820
 
821
+            if (RedisHelper.StringGet("GetHWCount24ByNow" + date.ToString("yyyy-MM-dd")) != null)
822
+            {
823
+                return Content(RedisHelper.StringGet("GetHWCount24ByNow" + date.ToString("yyyy-MM-dd")).ToString());
824
+            }
825
+            else
826
+            {
827
+                string sql = $"   and datediff(day, BeginTime, '{date.ToString("yyyy-MM-dd")}') = 0  ";
828
+                string sqlhw = " select datepart(hh, BeginTime ) hour,SUM(case CallState when 1 then 1 else 0 end ) jietong ,count(1) count from T_Call_CallRecords where  1=1" + sql + " group by datepart(hh, BeginTime) order by datepart(hh, BeginTime)";
829
+                DataTable dthw = DbHelperSQL.Query(sqlhw).Tables[0];
830
+
831
+                int[] hwc = new int[hours.Length]; int[] jcc = new int[hours.Length];
832
+                for (int i = 0; i < hours.Length; i++)
833
+                {
834
+                    var drs = dthw.Select("hour='" + hours[i] + "'");
835
+                    int hw = 0; int jt = 0;
836
+                    if (drs.Length > 0)
837
+                    {
838
+                        hw = (from DataRow dr in drs select dr.Field<int>("count")).FirstOrDefault();
839
+                        jt = (from DataRow dr in drs select dr.Field<int>("jietong")).FirstOrDefault();
840
+                    }
841
+                    jcc[i] = jt;
842
+                    hwc[i] = hw;
843
+                }
844
+                obj.jtcount.Add(jcc);
845
+                obj.hwcount.Add(hwc);
846
+                RedisHelper.StringSet("GetHWCount24ByNow" + date.ToString("yyyy-MM-dd"), obj.ToJson(), new TimeSpan(0, 10, 0));
847
+                return Content(obj .ToJson ());
848
+            }
849
+
850
+           
851
+
852
+          
853
+        }
801 854
     }
802 855
 }

+ 247 - 113
RMYY_CallCenter_Api/Controllers/WorkOrder/Con_WorkOrderController.cs

@@ -36,11 +36,16 @@ namespace RMYY_CallCenter_Api.Controllers
36 36
                 {
37 37
                     case 0:
38 38
                         //基本信息
39
-                        string sql = "select *,[dbo].[GetUserName](F_CreateUser) F_CreateUserName,[dbo].[GetUserName](F_HandleBy) F_DealUserName from T_Con_WorkOrder where F_WorkOrderCode='" + strworkorderid + "'";
39
+                        string sql = "select *, dbo.GetDepName(F_ComplaintDept) ComplaintDept,[dbo].[GetUserName](F_CreateUser) F_CreateUserName,[dbo].[GetUserName](F_HandleBy) F_DealUserName " +
40
+                            "  from T_Con_WorkOrder where F_WorkOrderCode='" + strworkorderid + "'";
40 41
                         DataTable dtbase = DbHelperSQL.Query(sql).Tables[0];
41 42
                        
42 43
                         dtbase.Columns.Add("StateName");
43 44
                         dtbase.Columns.Add("TypeName");
45
+                        dtbase.Columns.Add("DealDept");
46
+                        dtbase.Columns.Add("DealUser");
47
+                        dtbase.Columns.Add("DealDeptName");
48
+                        dtbase.Columns.Add("DealUserName");
44 49
 
45 50
                         foreach (DataRow dr in dtbase.Rows)
46 51
                         {
@@ -68,8 +73,31 @@ namespace RMYY_CallCenter_Api.Controllers
68 73
                             }
69 74
 
70 75
                         }
76
+                        string Wosql = "select *, dbo.GetDepName(F_DealDept) DealDept,[dbo].[GetUserNameByUserId](F_DealUser) UserName" +
77
+                           "  from T_Wo_CommonBase where F_WoCode='" + strworkorderid + "'";
78
+                        DataTable wodtbase = DbHelperSQL.Query(Wosql).Tables[0];
79
+                        if (wodtbase.Rows != null && wodtbase.Rows .Count >0)
80
+                        {
81
+                            dtbase.Rows[0]["DealDept"] = wodtbase.Rows[0]["F_DealDept"].ToString();
82
+                            dtbase.Rows[0]["DealUser"] = wodtbase.Rows[0]["F_DealUser"].ToString();
83
+                            dtbase.Rows[0]["DealDeptName"] = wodtbase.Rows[0]["DealDept"].ToString();
84
+                            dtbase.Rows[0]["DealUserName"] = wodtbase.Rows[0]["UserName"].ToString();
85
+                            
86
+                        }
87
+                     
71 88
 
89
+                        var CommonBase = new BLL.T_Wo_CommonBase().GetModelList($"F_WoCode='{dtbase.Rows[0]["F_WorkOrderCode"].ToString () }' and F_IsDelete=0");
72 90
                         return Success("获取成功", dtbase);
91
+                      
92
+                    case 1://工单流程
93
+                        var sqllog = "select * from T_Dis_WorkOrderItem where F_WoID = '" + model.F_ID  + "' " + " order by F_ID desc";
94
+
95
+                        DataTable dtlog = DbHelperSQL.Query(sqllog).Tables[0];
96
+                        return Success("获取成功", dtlog);
97
+                       
98
+                      
99
+
100
+                        
73 101
                   
74 102
                 }
75 103
 
@@ -230,9 +258,13 @@ namespace RMYY_CallCenter_Api.Controllers
230 258
                                   F_DealContents=p.F_DealContents,
231 259
                                   F_File=p.F_File,
232 260
                                   F_Satisfaction=p.F_Satisfaction,
233
-                                  F_State=p.F_State
234
-
235
-                              }),
261
+                                  F_State=p.F_State,
262
+                                  F_Relationship=p.F_Relationship,
263
+                                  F_FullName = p.F_FullName,
264
+                                  F_IDNumber = p.F_IDNumber,
265
+                                  F_ComplaintDept = p.F_ComplaintDept,
266
+                                  F_ComplaintUser = p.F_ComplaintUser,
267
+                                }),
236 268
                         total = recordCount
237 269
                     };
238 270
                     return Content(obj.ToJson());
@@ -387,7 +419,7 @@ namespace RMYY_CallCenter_Api.Controllers
387 419
         /// 添加工单
388 420
         /// </summary>
389 421
         /// <returns></returns>
390
-        public ActionResult AddWorkOrder(Con_WorkOrderInput input, int overtime = 0, int opt = 0, string cont = "")
422
+        public ActionResult AddWorkOrder(Con_WorkOrderInput input, int overtime = 0, int opt = 0, string cont = "",string  clid="",int clbm=0)
391 423
         {
392 424
 
393 425
             if (User != null)
@@ -474,17 +506,12 @@ namespace RMYY_CallCenter_Api.Controllers
474 506
                         }
475 507
                         else if (opt == 3)//转派
476 508
                         {
477
-                            if (input.F_Type2 == 1004 || input.F_Type2 == 1005)//家庭预约,静脉置管维护 立即处理并给健康事业部或置管室 推送一条钉钉消息
509
+                            bool tt = AssignWO(User, work, cont, clid, clbm);
510
+                            if (tt)
478 511
                             {
479
-                                int clbm = 0;//健康事业部的部门Id
480
-                                bool tt = DealWO(User, work, cont, "", 1);
481
-                                if (tt)
482
-                                {
483
-                                    #region  给健康事业部或 置管室 推送一条钉钉消息
484
-                                    #endregion
485
-                                }
512
+                                #region  给健康事业部或 置管室 推送一条钉钉消息
513
+                                #endregion
486 514
                             }
487
-                            else return Error("此工单类型不支持转派!");
488 515
                         }
489 516
 
490 517
                     }
@@ -505,7 +532,7 @@ namespace RMYY_CallCenter_Api.Controllers
505 532
         /// <param name="opt"></param>
506 533
         /// <param name="cont"></param>
507 534
         /// <returns></returns>
508
-        public ActionResult UpdateWorkOrder(Con_WorkOrderInput input, int opt = 0, string cont = "")
535
+        public ActionResult UpdateWorkOrder(Con_WorkOrderInput input, int opt = 0, string cont = "", string  clid = "", int clbm = 0)
509 536
         {
510 537
             if (User != null)
511 538
             {
@@ -537,7 +564,7 @@ namespace RMYY_CallCenter_Api.Controllers
537 564
                     return Error("查询不到此工单!");
538 565
                 if (User.F_UserCode != "8000")
539 566
                 {
540
-                    if (model.F_CreateUserID != User.F_UserCode)
567
+                    if (model.F_CreateUser != User.F_UserCode )
541 568
                         return Error("非创建人不能修改工单!");
542 569
                     if (model.F_State == (int)EnumWorkOrderState.assign)
543 570
                         return Error("此工单已派单不能修改!");
@@ -595,18 +622,12 @@ namespace RMYY_CallCenter_Api.Controllers
595 622
                         }
596 623
                         else if (opt == 3)//转派
597 624
                         {
598
-                            if (input.F_Type2 == 1004 || input.F_Type2 == 1005)//家庭预约,静脉置管维护 立即处理并给健康事业部或置管室 推送一条钉钉消息
625
+                            bool tt = AssignWO(User, model, cont, clid , clbm );
626
+                            if (tt)
599 627
                             {
600
-                                int clbm = 0;//健康事业部的部门Id
601
-                                bool tt = DealWO(User, model, cont, "", 1);
602
-                                if (tt)
603
-                                {
604
-                                    #region  给健康事业部或 置管室 推送一条钉钉消息
605
-                                    #endregion
606
-                                }                              
607
-
628
+                                #region  给健康事业部或 置管室 推送一条钉钉消息
629
+                                #endregion
608 630
                             }
609
-                            else return Error("此工单类型不支持转派!");
610 631
                         }
611 632
 
612 633
                     }
@@ -719,12 +740,15 @@ namespace RMYY_CallCenter_Api.Controllers
719 740
             model.F_Phon = input.F_Phon;//来电人电话
720 741
             model.F_CusAddress = input.F_CusAddress;//地址
721 742
             model.F_IdCard = input.F_IdCard;//身份证号
722
-            if (input.F_Type2 == 1004)
723
-            {
724
-                model.F_ServiceItems = input.F_ServiceItems;//服务项目
725
-            }
726
-            if (input.F_Type2 == 1003)
727
-            {
743
+           
744
+                 model.F_Relationship = input.F_Relationship;
745
+            model.F_FullName = input.F_FullName;
746
+            model.F_IDNumber = input.F_IDNumber;
747
+            model.F_ComplaintDept = input.F_ComplaintDept;
748
+            model.F_ComplaintUser = input.F_ComplaintUser;
749
+            model.F_ServiceItems = input.F_ServiceItems;//服务项目
750
+            
751
+        
728 752
                 model.F_Address = input.F_Address;//地区
729 753
                 model.F_FirstCheckHospital = input.F_FirstCheckHospital;//首次检查医院
730 754
                 model.F_NoduleSize = input.F_NoduleSize;//肺结节大小
@@ -733,15 +757,13 @@ namespace RMYY_CallCenter_Api.Controllers
733 757
                     model.F_Urgency = input.F_Urgency;// 紧急程度:0,常规1,紧急
734 758
                 else
735 759
                     model.F_Urgency = model.F_Urgency;
736
-            }
737
-            if (input.F_Type2 == 1005)
738
-            {
739
-                model.F_Cathetertype = input.F_Cathetertype;//  
760
+            
761
+             model.F_Cathetertype = input.F_Cathetertype;//  
740 762
                 model.F_Catheterdept = input.F_Catheterdept;//置管科室
741 763
                 model.F_Cathetertime = input.F_Cathetertime;//置管时间
742 764
                 model.F_BedNum = input.F_BedNum;//床号
743 765
                 model.F_InpatientNum = input.F_InpatientNum;//住院号
744
-            }
766
+            
745 767
 
746 768
             //model.F_DealType = input.F_DealType;//处理方式:立即办理,提交审核,转派部门
747 769
             model.F_WorkOrderContents = input.F_WorkOrderContents;//工单内容
@@ -977,7 +999,11 @@ namespace RMYY_CallCenter_Api.Controllers
977 999
                     Inputmodel.F_DealContents = item.F_DealContents;//处理内容
978 1000
                     Inputmodel.F_File = "0";
979 1001
                     Inputmodel.F_Satisfaction = item.F_Satisfaction;//满意度
980
-
1002
+                    Inputmodel.F_FullName = item.F_FullName;
1003
+                    Inputmodel.F_IDNumber = item.F_IDNumber;
1004
+                    Inputmodel.F_ComplaintDept = item.F_ComplaintDept;
1005
+                    Inputmodel.F_ComplaintUser = item.F_ComplaintUser;
1006
+                    Inputmodel.ComplaintDept = GetDeptModel(item.F_ComplaintDept == null ? 0 : item.F_ComplaintDept);
981 1007
                     Inputlist.Add(Inputmodel);
982 1008
                 }
983 1009
                 return Inputlist;
@@ -988,16 +1014,16 @@ namespace RMYY_CallCenter_Api.Controllers
988 1014
         /// 转派工单
989 1015
         /// </summary>
990 1016
 
991
-        private bool AssignWO(Model.T_Sys_UserAccount nowUser, Model.T_Con_WorkOrder wokerModel, string cont, int clid = 0, int clbm = 0)
1017
+        private bool AssignWO(Model.T_Sys_UserAccount nowUser, Model.T_Con_WorkOrder wokerModel, string cont, string clid = "", int clbm = 0)
992 1018
         {
993 1019
 
994 1020
             string touser = ""; string tousername = "";
995
-            int deptid = 0;
1021
+            int deptid = 0;int handle = 0;
996 1022
             #region 获取接收人
997
-            if (clid != 0)
1023
+            if (!string .IsNullOrEmpty (clid))
998 1024
             {
999 1025
                 Model.T_Sys_UserAccount clus = userbll.GetModel(clid);
1000
-
1026
+                handle = clus.F_UserId;
1001 1027
                 deptid = clus.F_DeptId;
1002 1028
                 clbm = clus.F_DeptId;
1003 1029
                 if (clus != null)
@@ -1034,7 +1060,7 @@ namespace RMYY_CallCenter_Api.Controllers
1034 1060
                 #region 工单处理
1035 1061
                 var opt = "指派";
1036 1062
                 int optbut = (int)EnumItemOpt.assign;
1037
-                int wostate = (int)EnumWorkOrderState.assign;//已指派待处理
1063
+                int wostate = (int)EnumWorkOrderState.assign;//已指派待接单
1038 1064
                 string deptname = "";
1039 1065
                 var deptmodel = deptbll.GetModel(nowUser.F_DeptId);
1040 1066
                 if (deptmodel != null)
@@ -1046,6 +1072,7 @@ namespace RMYY_CallCenter_Api.Controllers
1046 1072
                     optcont = ",说明:" + cont;
1047 1073
                 var content = deptname + nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt + "工单给 " + tousername + optcont;
1048 1074
                 var itemid =logbll.AddLog(wokerModel.F_ID, wostate,(int)wokerModel.F_type1, content, (int)EnumItemType.deal, optbut, touser, clbm, nowUser.F_UserCode);
1075
+                int n = DbHelperSQL.ExecuteSql($"update T_Wo_CommonBase set F_DealDept='{clbm}',F_DealUser='{handle}' where F_WoCode='{wokerModel.F_WorkOrderCode}'");
1049 1076
                 #endregion
1050 1077
                 if (itemid > 0)
1051 1078
                 {
@@ -1091,7 +1118,7 @@ namespace RMYY_CallCenter_Api.Controllers
1091 1118
                         if (AuditState == 1)
1092 1119
                         {
1093 1120
                             res =logbll.AddLog(wmodel.F_ID, wmodel.F_State.Value,(int)wmodel.F_type1, deptname + ua.F_UserName + "(" + ua.F_UserCode + ")" + "工单审批:已同意审批" + AuditCont, (int)EnumItemType.audit, (int)EnumItemOpt.reaudit, ua.F_UserCode, ua.F_DeptId, ua.F_UserCode);
1094
-                            AssignWO(User, wmodel, "", 0, (int)clbm);
1121
+                            AssignWO(User, wmodel, "", "", (int)clbm);
1095 1122
                             wmodel.F_State = (int)EnumWorkOrderState.assign;//待处理
1096 1123
                             wmodel.F_AuditState = 1;
1097 1124
                         }
@@ -1129,14 +1156,14 @@ namespace RMYY_CallCenter_Api.Controllers
1129 1156
         /// <param name="F_Files"></param>
1130 1157
         /// <param name="isover"></param>
1131 1158
         /// <returns></returns>
1132
-        public ActionResult DealWorkOrder(int id,string cont)
1159
+        public ActionResult DealWorkOrder(string WorkOrderCode, string cont, int isover=0)
1133 1160
         {
1134 1161
             if (User!=null)
1135 1162
             {
1136 1163
                 if (string.IsNullOrEmpty(cont))
1137 1164
                     return Error("请输入内容");
1138 1165
  
1139
-                    Model.T_Con_WorkOrder wmodel = orderbll.GetModel(id);
1166
+                    Model.T_Con_WorkOrder wmodel = orderbll.GetModelByCode(WorkOrderCode);
1140 1167
                     if (wmodel != null)
1141 1168
                     {
1142 1169
                         if (wmodel.F_State == 10)
@@ -1217,6 +1244,10 @@ namespace RMYY_CallCenter_Api.Controllers
1217 1244
                 return false;
1218 1245
             #endregion
1219 1246
         }
1247
+
1248
+       
1249
+
1250
+
1220 1251
         #region  nouser
1221 1252
         ///// <summary>
1222 1253
         ///// 转派工单
@@ -1290,78 +1321,86 @@ namespace RMYY_CallCenter_Api.Controllers
1290 1321
         /// <summary>
1291 1322
         /// 接单 - 确认工单
1292 1323
         /// </summary>
1293
-        /// <param name="id"></param>
1294
-        /// <returns></returns>
1295
-        //public ActionResult SureWorkOrder(int id)
1296
-        //{
1297
-        //    if (User != null)
1298
-        //    {
1324
+        /// <param name = "id" ></ param >
1325
+        /// < returns ></ returns >
1326
+        public ActionResult SureWorkOrder(string WorkOrderCode)
1327
+        {
1328
+            if (User != null)
1329
+            {
1299 1330
 
1300
-        //        Model.T_Con_WorkOrder wmodel = orderbll.GetModel(id);
1301
-        //        if (wmodel != null)
1302
-        //        {
1303
-        //            //var modellist=itembll.GetModelList("F_WoID=" + wmodel.F_ID + "and F_IsUsed=0 order by   F_ID desc ").FirstOrDefault();
1304
-        //            //   if (!string.IsNullOrEmpty(modellist.F_NextUser))
1305
-        //            //   {
1306
-        //            //       string[] str = modellist.F_NextUser.Split(',');
1307
-        //            //       if (str.Length == 1)
1308
-        //            //       {
1309
-        //            //           if (modellist.F_NextUser != ua.F_UserCode)
1310
-        //            //               return Error("非接单人不可操作工单");
1311
-        //            //       }
1312
-        //            //   }
1313
-        //            if (wmodel.F_State == (int)EnumWorkOrderState.receive)
1314
-        //                return Error("工单已接单无需重复操作");
1315
-        //            else
1316
-        //            {
1317
-        //                var res = OrdeReceive(User, wmodel);
1318
-        //                if (res)
1319
-        //                    return Success("接单成功");
1320
-        //                else
1321
-        //                    return Error("接单失败");
1322
-        //            }
1323
-        //        }
1324
-        //        else
1325
-        //            return Error("工单不存在");
1326
-        //    }
1327
-        //    return Error("无操作权限!");
1328
-        //}
1331
+                Model.T_Con_WorkOrder wmodel = orderbll.GetModelByCode(WorkOrderCode);
1332
+                if (wmodel != null)
1333
+                {
1334
+                    if (wmodel.F_State != (int)EnumWorkOrderState.receive)
1335
+                        return Error("工单已接单无需重复操作");
1336
+                    var Common = new Model.T_Wo_CommonBase();
1337
+                    var CommonBase = new BLL.T_Wo_CommonBase().GetModelList($"F_WoCode='{wmodel.F_WorkOrderCode }' and F_IsDelete=0");
1338
+                    if (CommonBase != null && CommonBase.Count > 0)
1339
+                    {
1340
+                        Common = CommonBase.FirstOrDefault();
1341
+                      if (Common.F_DealUser !=null&& Common.F_DealUser>0)
1342
+                        {
1343
+                            if (Common.F_DealUser != User.F_UserId)
1344
+                                return Error("非接单人不可接单");
1345
+                        }
1346
+                        else if (Common.F_DealDept  != null && Common.F_DealDept > 0)
1347
+                        {
1348
+                            if (Common.F_DealDept != User.F_DeptId )
1349
+                                return Error("非接单部门不可接单");
1350
+
1351
+                        }
1352
+                       
1353
+                    }
1354
+
1355
+                    var res = OrdeReceive(User, wmodel, Common);
1356
+                    if (res)
1357
+                        return Success("接单成功");
1358
+                    else
1359
+                        return Error("接单失败");
1360
+
1361
+                   
1362
+                }
1363
+                else
1364
+                    return Error("工单不存在");
1365
+            }
1366
+            return Error("无操作权限!");
1367
+        }
1329 1368
         /// <summary>
1330 1369
         /// 接单
1331 1370
         /// </summary>
1332
-        /// <param name="nowUser"></param>
1333
-        /// <param name="model"></param>
1371
+        /// <param name = "nowUser" ></ param >
1372
+        /// < param name="model"></param>
1334 1373
         /// <returns></returns>
1335
-        //public bool OrdeReceive(Model.T_Sys_UserAccount nowUser, Model.T_Con_WorkOrder model)
1336
-        //{
1337
-        //    #region 工单处理
1338
-        //    var opt = "接单";
1339
-        //    int optbut = (int)EnumItemOpt.receive;
1340
-        //    int wostate = (int)EnumWorkOrderState.receive;
1341
-
1342
-        //    #region 读取当前登录人部门
1343
-        //    string deptname = "";
1344
-        //    var deptmodel =deptbll.GetModel(nowUser.F_DeptId);
1345
-        //    if (deptmodel != null)
1346
-        //    {
1347
-        //        deptname = deptmodel.F_DeptName + "-";
1348
-        //    }
1349
-        //    #endregion
1350
-        //    var content = deptname + nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt;
1351
-        //    var itemid = AddLog((int)model.F_ID, wostate, content, (int)EnumItemType.deal, optbut, "", 0, nowUser);
1352
-        //    if (itemid > 0)
1353
-        //    {
1354
-        //        #region 处理工单
1355
-        //        model.F_State = wostate;//已接单待处理
1356
-        //        model.F_HandleBy = nowUser.F_UserCode;//已接单待处理
1357
-        //        orderbll.Update(model);
1358
-        //        #endregion
1359
-        //        return true;
1360
-        //        }
1361
-        //        else
1362
-        //            return false;
1363
-        //    #endregion
1364
-        //}
1374
+        public bool OrdeReceive(Model.T_Sys_UserAccount nowUser, Model.T_Con_WorkOrder model,Model .T_Wo_CommonBase CommonBase)
1375
+        {
1376
+            #region 工单处理
1377
+            var opt = "接单";
1378
+            int optbut = (int)EnumItemOpt.receive;
1379
+            int wostate = (int)EnumWorkOrderState.receive;
1380
+
1381
+            #region 读取当前登录人部门
1382
+            string deptname = "";
1383
+            var deptmodel = deptbll.GetModel(nowUser.F_DeptId);
1384
+            if (deptmodel != null)
1385
+            {
1386
+                deptname = deptmodel.F_DeptName + "-";
1387
+            }
1388
+            #endregion
1389
+            var content = deptname + nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt;
1390
+            var itemid = logbll.AddLog((int)model.F_ID, (int)model.F_type1, wostate, content, (int)EnumItemType.deal, optbut, nowUser.F_UserCode, 0, nowUser.F_UserCode);
1391
+            if (itemid > 0)
1392
+            {
1393
+                #region 处理工单
1394
+                model.F_State = wostate;//已接单待处理
1395
+                model.F_HandleBy = nowUser.F_UserCode;//已接单待处理
1396
+                orderbll.Update(model);
1397
+                #endregion
1398
+                return true;
1399
+            }
1400
+            else
1401
+                return false;
1402
+            #endregion
1403
+        }
1365 1404
         #endregion nouser  nouser
1366 1405
 
1367 1406
         /// <summary>
@@ -1386,7 +1425,102 @@ namespace RMYY_CallCenter_Api.Controllers
1386 1425
             return Error("操作失败,不存在此工单编号!");
1387 1426
         }
1388 1427
 
1428
+        public string GetDeptModel(int?  deptId = 0)
1429
+        {
1430
+            string sql = " 1=1 ";
1431
+
1432
+            if (deptId>0)
1433
+            {
1434
+                sql += " and F_DeptId='" + deptId + "'";
1435
+            }
1436
+            else
1437
+            {
1438
+                return "";
1439
+            }
1440
+            var role = new Bll .T_Sys_Department ().GetModelList(sql).FirstOrDefault();
1441
+            string name = role.F_DeptName;
1442
+
1443
+            return name;
1444
+        }
1445
+        /// <summary>
1446
+        /// 退回工单
1447
+        /// </summary>
1448
+        /// <param name="WorkOrderCode"></param>
1449
+        /// <returns></returns>
1450
+        public ActionResult BackWorkOrder(string WorkOrderCode   )
1451
+        {
1452
+            if (User != null)
1453
+            {
1454
+
1455
+                Model.T_Con_WorkOrder wmodel = orderbll.GetModelByCode (WorkOrderCode);
1456
+                if (wmodel != null)
1457
+                {
1458
+                    if (wmodel.F_State != (int)EnumWorkOrderState.assign)
1459
+                        return Error("工单已接单不能退回");
1460
+                    var Common = new Model.T_Wo_CommonBase();
1461
+                    var CommonBase = new BLL.T_Wo_CommonBase().GetModelList($"F_WoCode='{wmodel.F_WorkOrderCode }' and F_IsDelete=0");
1462
+                    if (CommonBase != null && CommonBase.Count > 0)
1463
+                    {
1464
+                        Common = CommonBase.FirstOrDefault();
1465
+                        if (Common.F_DealUser != null && Common.F_DealUser > 0)
1466
+                        {
1467
+                            if (Common.F_DealUser != User.F_UserId)
1468
+                                return Error("非接单人不可退单");
1469
+                        }
1470
+                        else if (Common.F_DealDept != null && Common.F_DealDept > 0)
1471
+                        {
1472
+                            if (Common.F_DealDept != User.F_DeptId)
1473
+                                return Error("非接单部门不可退单");
1474
+
1475
+                        }
1476
+
1477
+                    }
1478
+
1479
+                    var res = BackWO(User, wmodel);
1480
+                    if (res)
1481
+                        return Success("退单成功");
1482
+                    else
1483
+                        return Error("退单失败");
1484
+
1389 1485
 
1486
+                }
1487
+                else
1488
+                    return Error("工单不存在");
1489
+            }
1490
+            return Error("无操作权限!");
1491
+        }
1492
+        /// <summary>
1493
+        /// 退回工单
1494
+        /// </summary>
1495
+        public bool BackWO(Model.T_Sys_UserAccount nowUser, Model.T_Con_WorkOrder model)
1496
+        {
1497
+            #region 工单处理
1498
+            var opt = "接单";
1499
+            int optbut = (int)EnumItemOpt.reback;
1500
+            int wostate = (int)EnumWorkOrderState.reback;
1501
+
1502
+            #region 读取当前登录人部门
1503
+            string deptname = "";
1504
+            var deptmodel = deptbll.GetModel(nowUser.F_DeptId);
1505
+            if (deptmodel != null)
1506
+            {
1507
+                deptname = deptmodel.F_DeptName + "-";
1508
+            }
1509
+            #endregion
1510
+            var content = deptname + nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt;
1511
+            var itemid = logbll.AddLog((int)model.F_ID, (int)model.F_type1, wostate, content, (int)EnumItemType.deal, optbut, "", 0, nowUser.F_UserCode);
1512
+            if (itemid > 0)
1513
+            {
1514
+                #region 处理工单
1515
+                model.F_State = wostate;//已退回
1516
+                orderbll.Update(model);
1517
+                #endregion
1518
+                return true;
1519
+            }
1520
+            else
1521
+                return false;
1522
+            #endregion
1523
+        }
1390 1524
         private class ItemListLog
1391 1525
         {
1392 1526
             /// <summary>

+ 6 - 3
RMYY_CallCenter_Api/Controllers/WorkOrder/WorkCommonController.cs

@@ -29,7 +29,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
29 29
             if (User != null)
30 30
             {
31 31
                 int recordCount = 0;
32
-                string sql = $" and F_ProposerDept='{User.F_DeptId}' and F_IsDelete = 0";
32
+                string sql = $" and (F_ProposerDept='{User.F_DeptId}' or F_DealDept='{User.F_DeptId}' ) and F_IsDelete = 0";
33 33
                 if (!string.IsNullOrEmpty(wocode))
34 34
                 {
35 35
                     sql += $" and  F_WoCode like'%{wocode}%'";
@@ -97,7 +97,7 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
97 97
         /// <param name="pagesize"></param>
98 98
         /// <param name="state"></param>
99 99
         /// <returns></returns>
100
-        public ActionResult GetComList(string starttime = "", string endtime = "", string keyword = "", int pageindex = 1, int pagesize = 10, int state = -1, int type = 0, int loweltype = 0, string wocode = "")
100
+        public ActionResult GetComList(string starttime = "",string phone="", string endtime = "", string keyword = "", int pageindex = 1, int pagesize = 10, int state = -1, int type = 0, int loweltype = 0, string wocode = "")
101 101
         {
102 102
             if (User != null)
103 103
             {
@@ -131,7 +131,10 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
131 131
                 {
132 132
                     sql += $" and F_Content like '%{keyword}%'";
133 133
                 }
134
-
134
+                if (!string.IsNullOrEmpty(phone))
135
+                {
136
+                    sql += $" and F_Phone = '{phone}'";
137
+                }
135 138
                 DataTable datatable = Bll.PagerBll.GetListPager
136 139
                                            ("T_Wo_CommonBase ",
137 140
                                              "F_WoCode",

+ 7 - 7
RMYY_CallCenter_Api/Models/Enum/EnumWorkOrderState.cs

@@ -15,12 +15,12 @@ namespace RMYY_CallCenter_Api.Models.Enum
15 15
         all = -1,
16 16
         [Description("新工单待指派")]
17 17
         neworder,
18
-        [Description("已指派待处理")]
18
+        [Description("已指派待接单")]
19 19
         assign,
20
-        //[Description("已接单待处理")]
21
-        //receive,
22
-        //[Description("已退回待处理")]
23
-        //reback,
20
+        [Description("已接单待处理")]
21
+        receive,
22
+        [Description("已退回待处理")]
23
+        reback,
24 24
         //[Description("异常退回待接单")]
25 25
         //abreback,
26 26
         [Description("处理中")]
@@ -77,8 +77,8 @@ namespace RMYY_CallCenter_Api.Models.Enum
77 77
         create,
78 78
         [Description("指派")]
79 79
         assign,
80
-        //[Description("接单")]
81
-        //receive,
80
+        [Description("接单")]
81
+        receive,
82 82
         [Description("处理")]
83 83
         deal,
84 84
         [Description("退回")]

+ 21 - 0
RMYY_CallCenter_Api/Models/Input/Con_WorkOrderInput.cs

@@ -406,7 +406,28 @@ namespace RMYY_CallCenter_Api.Models.Input
406 406
         {
407 407
             get; set;
408 408
         }
409
+        /// <summary>
410
+        /// 与患者关系
411
+        /// </summary>
412
+        public string F_Relationship { set; get; }
413
+        /// <summary>
414
+        /// 患者姓名
415
+        /// </summary>
416
+        public string F_FullName { set; get; }
417
+        /// <summary>
418
+        /// 患者身份证号
419
+        /// </summary>
420
+        public string F_IDNumber { set; get; }
421
+        /// <summary>
422
+        /// 投诉部门
423
+        /// </summary>
424
+        public int? F_ComplaintDept { set; get; }
425
+        /// <summary>
426
+        /// 投诉人
427
+        /// </summary>
428
+        public string F_ComplaintUser { set; get; }
409 429
 
430
+        public string ComplaintDept { set; get; }
410 431
         #endregion Model
411 432
 
412 433
     }