zhupei 4 gadi atpakaļ
vecāks
revīzija
fee68c2e43

+ 8 - 1
RMYY_CallCenter_Api.Bll/T_Mat_WorkOrder.cs

@@ -134,7 +134,14 @@ namespace RMYY_CallCenter_Api.Bll
134 134
 
135 135
         #endregion  BasicMethod
136 136
         #region  ExtensionMethod
137
-
137
+        public DataSet GetListExpt(string strWhere)
138
+        {
139
+            return dal.GetListExpt(strWhere);
140
+        }
141
+        public bool CustomDelete(string idlist, string usercode)
142
+        {
143
+            return dal.CustomDelete(idlist, usercode);
144
+        }
138 145
         #endregion  ExtensionMethod
139 146
     }
140 147
 }

+ 59 - 36
RMYY_CallCenter_Api.Dal/T_Mat_WorkOrder.cs

@@ -41,9 +41,9 @@ namespace RMYY_CallCenter_Api.Dal
41 41
         {
42 42
             StringBuilder strSql = new StringBuilder();
43 43
             strSql.Append("insert into T_Mat_WorkOrder(");
44
-            strSql.Append("F_Type,F_WorkOrderCode,F_ProposerStore,F_StorePosition,F_ProposerCode,F_ProposerName,F_ProposerPhon,F_Source,F_CallID,F_SendDeptId,F_SendDeptName,F_ItemMessages,F_Remark,F_CreateTime,F_CreateCode,F_CreateName,F_State,F_ControlManCode,F_ControlManName,F_TransPersonCode,F_TransPersonName,F_TransPersonTalkie,F_OutboundTime,F_IsDel,F_DeleteBy,F_DeleteTime,F_FinishTime)");
44
+            strSql.Append("F_Type,F_WorkOrderCode,F_ProposerStore,F_StorePosition,F_ProposerCode,F_ProposerName,F_ProposerPhon,F_Source,F_CallID,F_SendDeptId,F_SendDeptName,F_ItemMessages,F_Remark,F_CreateTime,F_CreateCode,F_CreateName,F_State,F_ControlManCode,F_ControlManName,F_TransPersonCode,F_TransPerson,F_OutboundTime,F_IsDel,F_DeleteBy,F_DeleteTime,F_FinishTime)");
45 45
             strSql.Append(" values (");
46
-            strSql.Append("@F_Type,@F_WorkOrderCode,@F_ProposerStore,@F_StorePosition,@F_ProposerCode,@F_ProposerName,@F_ProposerPhon,@F_Source,@F_CallID,@F_SendDeptId,@F_SendDeptName,@F_ItemMessages,@F_Remark,@F_CreateTime,@F_CreateCode,@F_CreateName,@F_State,@F_ControlManCode,@F_ControlManName,@F_TransPersonCode,@F_TransPersonName,@F_TransPersonTalkie,@F_OutboundTime,@F_IsDel,@F_DeleteBy,@F_DeleteTime,@F_FinishTime)");
46
+            strSql.Append("@F_Type,@F_WorkOrderCode,@F_ProposerStore,@F_StorePosition,@F_ProposerCode,@F_ProposerName,@F_ProposerPhon,@F_Source,@F_CallID,@F_SendDeptId,@F_SendDeptName,@F_ItemMessages,@F_Remark,@F_CreateTime,@F_CreateCode,@F_CreateName,@F_State,@F_ControlManCode,@F_ControlManName,@F_TransPersonCode,@F_TransPerson,@F_OutboundTime,@F_IsDel,@F_DeleteBy,@F_DeleteTime,@F_FinishTime)");
47 47
             strSql.Append(";select @@IDENTITY");
48 48
             SqlParameter[] parameters = {
49 49
                     new SqlParameter("@F_Type", SqlDbType.Int,4),
@@ -65,9 +65,8 @@ namespace RMYY_CallCenter_Api.Dal
65 65
                     new SqlParameter("@F_State", SqlDbType.Int,4),
66 66
                     new SqlParameter("@F_ControlManCode", SqlDbType.VarChar,50),
67 67
                     new SqlParameter("@F_ControlManName", SqlDbType.VarChar,50),
68
-                    new SqlParameter("@F_TransPersonCode", SqlDbType.VarChar,50),
69
-                    new SqlParameter("@F_TransPersonName", SqlDbType.VarChar,50),
70
-                    new SqlParameter("@F_TransPersonTalkie", SqlDbType.VarChar,50),
68
+                    new SqlParameter("@F_TransPersonCode", SqlDbType.NText),
69
+                    new SqlParameter("@F_TransPerson", SqlDbType.NText),
71 70
                     new SqlParameter("@F_OutboundTime", SqlDbType.DateTime),
72 71
                     new SqlParameter("@F_IsDel", SqlDbType.Int,4),
73 72
                     new SqlParameter("@F_DeleteBy", SqlDbType.VarChar,50),
@@ -93,13 +92,12 @@ namespace RMYY_CallCenter_Api.Dal
93 92
             parameters[17].Value = model.F_ControlManCode;
94 93
             parameters[18].Value = model.F_ControlManName;
95 94
             parameters[19].Value = model.F_TransPersonCode;
96
-            parameters[20].Value = model.F_TransPersonName;
97
-            parameters[21].Value = model.F_TransPersonTalkie;
98
-            parameters[22].Value = model.F_OutboundTime;
99
-            parameters[23].Value = model.F_IsDel;
100
-            parameters[24].Value = model.F_DeleteBy;
101
-            parameters[25].Value = model.F_DeleteTime;
102
-            parameters[26].Value = model.F_FinishTime;
95
+            parameters[20].Value = model.F_TransPerson;
96
+            parameters[21].Value = model.F_OutboundTime;
97
+            parameters[22].Value = model.F_IsDel;
98
+            parameters[23].Value = model.F_DeleteBy;
99
+            parameters[24].Value = model.F_DeleteTime;
100
+            parameters[25].Value = model.F_FinishTime;
103 101
 
104 102
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
105 103
             if (obj == null)
@@ -138,8 +136,7 @@ namespace RMYY_CallCenter_Api.Dal
138 136
             strSql.Append("F_ControlManCode=@F_ControlManCode,");
139 137
             strSql.Append("F_ControlManName=@F_ControlManName,");
140 138
             strSql.Append("F_TransPersonCode=@F_TransPersonCode,");
141
-            strSql.Append("F_TransPersonName=@F_TransPersonName,");
142
-            strSql.Append("F_TransPersonTalkie=@F_TransPersonTalkie,");
139
+            strSql.Append("F_TransPerson=@F_TransPerson,");
143 140
             strSql.Append("F_OutboundTime=@F_OutboundTime,");
144 141
             strSql.Append("F_IsDel=@F_IsDel,");
145 142
             strSql.Append("F_DeleteBy=@F_DeleteBy,");
@@ -166,9 +163,8 @@ namespace RMYY_CallCenter_Api.Dal
166 163
                     new SqlParameter("@F_State", SqlDbType.Int,4),
167 164
                     new SqlParameter("@F_ControlManCode", SqlDbType.VarChar,50),
168 165
                     new SqlParameter("@F_ControlManName", SqlDbType.VarChar,50),
169
-                    new SqlParameter("@F_TransPersonCode", SqlDbType.VarChar,50),
170
-                    new SqlParameter("@F_TransPersonName", SqlDbType.VarChar,50),
171
-                    new SqlParameter("@F_TransPersonTalkie", SqlDbType.VarChar,50),
166
+                    new SqlParameter("@F_TransPersonCode", SqlDbType.NText),
167
+                    new SqlParameter("@F_TransPerson", SqlDbType.NText),
172 168
                     new SqlParameter("@F_OutboundTime", SqlDbType.DateTime),
173 169
                     new SqlParameter("@F_IsDel", SqlDbType.Int,4),
174 170
                     new SqlParameter("@F_DeleteBy", SqlDbType.VarChar,50),
@@ -195,14 +191,13 @@ namespace RMYY_CallCenter_Api.Dal
195 191
             parameters[17].Value = model.F_ControlManCode;
196 192
             parameters[18].Value = model.F_ControlManName;
197 193
             parameters[19].Value = model.F_TransPersonCode;
198
-            parameters[20].Value = model.F_TransPersonName;
199
-            parameters[21].Value = model.F_TransPersonTalkie;
200
-            parameters[22].Value = model.F_OutboundTime;
201
-            parameters[23].Value = model.F_IsDel;
202
-            parameters[24].Value = model.F_DeleteBy;
203
-            parameters[25].Value = model.F_DeleteTime;
204
-            parameters[26].Value = model.F_FinishTime;
205
-            parameters[27].Value = model.F_Id;
194
+            parameters[20].Value = model.F_TransPerson;
195
+            parameters[21].Value = model.F_OutboundTime;
196
+            parameters[22].Value = model.F_IsDel;
197
+            parameters[23].Value = model.F_DeleteBy;
198
+            parameters[24].Value = model.F_DeleteTime;
199
+            parameters[25].Value = model.F_FinishTime;
200
+            parameters[26].Value = model.F_Id;
206 201
 
207 202
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
208 203
             if (rows > 0)
@@ -266,7 +261,7 @@ namespace RMYY_CallCenter_Api.Dal
266 261
         {
267 262
 
268 263
             StringBuilder strSql = new StringBuilder();
269
-            strSql.Append("select  top 1 F_Id,F_Type,F_WorkOrderCode,F_ProposerStore,F_StorePosition,F_ProposerCode,F_ProposerName,F_ProposerPhon,F_Source,F_CallID,F_SendDeptId,F_SendDeptName,F_ItemMessages,F_Remark,F_CreateTime,F_CreateCode,F_CreateName,F_State,F_ControlManCode,F_ControlManName,F_TransPersonCode,F_TransPersonName,F_TransPersonTalkie,F_OutboundTime,F_IsDel,F_DeleteBy,F_DeleteTime,F_FinishTime from T_Mat_WorkOrder ");
264
+            strSql.Append("select  top 1 F_Id,F_Type,F_WorkOrderCode,F_ProposerStore,F_StorePosition,F_ProposerCode,F_ProposerName,F_ProposerPhon,F_Source,F_CallID,F_SendDeptId,F_SendDeptName,F_ItemMessages,F_Remark,F_CreateTime,F_CreateCode,F_CreateName,F_State,F_ControlManCode,F_ControlManName,F_TransPersonCode,F_TransPerson,F_OutboundTime,F_IsDel,F_DeleteBy,F_DeleteTime,F_FinishTime from T_Mat_WorkOrder ");
270 265
             strSql.Append(" where F_Id=@F_Id");
271 266
             SqlParameter[] parameters = {
272 267
                     new SqlParameter("@F_Id", SqlDbType.Int,4)
@@ -378,13 +373,9 @@ namespace RMYY_CallCenter_Api.Dal
378 373
                 {
379 374
                     model.F_TransPersonCode = row["F_TransPersonCode"].ToString();
380 375
                 }
381
-                if (row["F_TransPersonName"] != null)
376
+                if (row["F_TransPerson"] != null)
382 377
                 {
383
-                    model.F_TransPersonName = row["F_TransPersonName"].ToString();
384
-                }
385
-                if (row["F_TransPersonTalkie"] != null)
386
-                {
387
-                    model.F_TransPersonTalkie = row["F_TransPersonTalkie"].ToString();
378
+                    model.F_TransPerson = row["F_TransPerson"].ToString();
388 379
                 }
389 380
                 if (row["F_OutboundTime"] != null && row["F_OutboundTime"].ToString() != "")
390 381
                 {
@@ -416,7 +407,7 @@ namespace RMYY_CallCenter_Api.Dal
416 407
         public DataSet GetList(string strWhere)
417 408
         {
418 409
             StringBuilder strSql = new StringBuilder();
419
-            strSql.Append("select F_Id,F_Type,F_WorkOrderCode,F_ProposerStore,F_StorePosition,F_ProposerCode,F_ProposerName,F_ProposerPhon,F_Source,F_CallID,F_SendDeptId,F_SendDeptName,F_ItemMessages,F_Remark,F_CreateTime,F_CreateCode,F_CreateName,F_State,F_ControlManCode,F_ControlManName,F_TransPersonCode,F_TransPersonName,F_TransPersonTalkie,F_OutboundTime,F_IsDel,F_DeleteBy,F_DeleteTime,F_FinishTime ");
410
+            strSql.Append("select F_Id,F_Type,F_WorkOrderCode,F_ProposerStore,F_StorePosition,F_ProposerCode,F_ProposerName,F_ProposerPhon,F_Source,F_CallID,F_SendDeptId,F_SendDeptName,F_ItemMessages,F_Remark,F_CreateTime,F_CreateCode,F_CreateName,F_State,F_ControlManCode,F_ControlManName,F_TransPersonCode,F_TransPerson,F_OutboundTime,F_IsDel,F_DeleteBy,F_DeleteTime,F_FinishTime ");
420 411
             strSql.Append(" FROM T_Mat_WorkOrder ");
421 412
             if (strWhere.Trim() != "")
422 413
             {
@@ -436,7 +427,7 @@ namespace RMYY_CallCenter_Api.Dal
436 427
             {
437 428
                 strSql.Append(" top " + Top.ToString());
438 429
             }
439
-            strSql.Append(" F_Id,F_Type,F_WorkOrderCode,F_ProposerStore,F_StorePosition,F_ProposerCode,F_ProposerName,F_ProposerPhon,F_Source,F_CallID,F_SendDeptId,F_SendDeptName,F_ItemMessages,F_Remark,F_CreateTime,F_CreateCode,F_CreateName,F_State,F_ControlManCode,F_ControlManName,F_TransPersonCode,F_TransPersonName,F_TransPersonTalkie,F_OutboundTime,F_IsDel,F_DeleteBy,F_DeleteTime,F_FinishTime ");
430
+            strSql.Append(" F_Id,F_Type,F_WorkOrderCode,F_ProposerStore,F_StorePosition,F_ProposerCode,F_ProposerName,F_ProposerPhon,F_Source,F_CallID,F_SendDeptId,F_SendDeptName,F_ItemMessages,F_Remark,F_CreateTime,F_CreateCode,F_CreateName,F_State,F_ControlManCode,F_ControlManName,F_TransPersonCode,F_TransPerson,F_OutboundTime,F_IsDel,F_DeleteBy,F_DeleteTime,F_FinishTime ");
440 431
             strSql.Append(" FROM T_Mat_WorkOrder ");
441 432
             if (strWhere.Trim() != "")
442 433
             {
@@ -491,10 +482,42 @@ namespace RMYY_CallCenter_Api.Dal
491 482
             strSql.Append(" ) TT");
492 483
             strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
493 484
             return DbHelperSQL.Query(strSql.ToString());
494
-        }  
485
+        }
486
+
495 487
         #endregion  BasicMethod
496 488
         #region  ExtensionMethod
497
-
489
+        /// <summary>
490
+        /// 导出报表
491
+        /// </summary>
492
+        /// <param name="strWhere"></param>
493
+        /// <returns></returns>
494
+        public DataSet GetListExpt(string strWhere)
495
+        {
496
+            StringBuilder strSql = new StringBuilder();
497
+            strSql.Append($"select ");
498
+            strSql.Append($"F_WorkOrderCode,case isnull(F_Type,0) when 2 then '物资转移'end,F_ProposerStore,F_SendDeptName, F_ProposerName, F_ProposerPhon,F_ItemMessages,");
499
+            strSql.Append($" F_ControlManName+'('+F_ControlManCode+')'as F_ControlMan,F_OutboundTime,'综合保障中心'as F_TransDept,F_TransPerson,F_Remark");
500
+            strSql.Append($" from T_Mat_WorkOrder");
501
+            if (strWhere.Trim() != "")
502
+            {
503
+                strSql.Append(" where 1=1" + strWhere);
504
+            }
505
+            return DbHelperSQL.Query(strSql.ToString());
506
+        }
507
+        /// <summary>
508
+        /// 自定义删除
509
+        /// </summary>
510
+        /// <param name="idlist"></param>
511
+        /// <param name="usercode"></param>
512
+        /// <returns></returns>
513
+        public bool CustomDelete(string idlist, string usercode)
514
+        {
515
+            StringBuilder strsql = new StringBuilder();
516
+            strsql.Append("update T_Mat_WorkOrder set F_IsDel = 1, F_DeleteBy = '" + usercode + "', F_DeleteTime = getdate() where F_Id in (" + idlist.TrimEnd(',') + ")");
517
+            if (DbHelperSQL.ExecuteSql(strsql.ToString()) > 0)
518
+                return true;
519
+            else return false;
520
+        }
498 521
         #endregion  ExtensionMethod
499 522
     }
500 523
 }

+ 67 - 58
RMYY_CallCenter_Api.Dal/T_Mat_WorkOrderItem.cs

@@ -9,6 +9,7 @@ using System.Threading.Tasks;
9 9
 
10 10
 namespace RMYY_CallCenter_Api.Dal
11 11
 {
12
+
12 13
     /// <summary>
13 14
     /// 数据访问类:T_Mat_WorkOrderItem
14 15
     /// </summary>
@@ -41,9 +42,9 @@ namespace RMYY_CallCenter_Api.Dal
41 42
         {
42 43
             StringBuilder strSql = new StringBuilder();
43 44
             strSql.Append("insert into T_Mat_WorkOrderItem(");
44
-            strSql.Append("F_WoID,F_WoState,F_ItemType,F_OptType,F_OptContent,F_NextUser,F_NextDept,F_IsUsed,F_LimitTime,F_IsSMS,F_SMSToUser,F_SMSToPhone,F_SMSContent,F_CreateUser,F_CreateTime)");
45
+            strSql.Append("F_WoID,F_WoState,F_ItemType,F_OptType,F_OptContent,F_NextUser,F_NextUserName,F_NexUserPhon,F_NextUserTalkie,F_NextDept,F_IsUsed,F_CreateUser,F_CreateTime)");
45 46
             strSql.Append(" values (");
46
-            strSql.Append("@F_WoID,@F_WoState,@F_ItemType,@F_OptType,@F_OptContent,@F_NextUser,@F_NextDept,@F_IsUsed,@F_LimitTime,@F_IsSMS,@F_SMSToUser,@F_SMSToPhone,@F_SMSContent,@F_CreateUser,@F_CreateTime)");
47
+            strSql.Append("@F_WoID,@F_WoState,@F_ItemType,@F_OptType,@F_OptContent,@F_NextUser,@F_NextUserName,@F_NexUserPhon,@F_NextUserTalkie,@F_NextDept,@F_IsUsed,@F_CreateUser,@F_CreateTime)");
47 48
             strSql.Append(";select @@IDENTITY");
48 49
             SqlParameter[] parameters = {
49 50
                     new SqlParameter("@F_WoID", SqlDbType.BigInt,8),
@@ -52,13 +53,11 @@ namespace RMYY_CallCenter_Api.Dal
52 53
                     new SqlParameter("@F_OptType", SqlDbType.Int,4),
53 54
                     new SqlParameter("@F_OptContent", SqlDbType.NVarChar,-1),
54 55
                     new SqlParameter("@F_NextUser", SqlDbType.VarChar,50),
56
+                    new SqlParameter("@F_NextUserName", SqlDbType.VarChar,50),
57
+                    new SqlParameter("@F_NexUserPhon", SqlDbType.VarChar,20),
58
+                    new SqlParameter("@F_NextUserTalkie", SqlDbType.VarChar,20),
55 59
                     new SqlParameter("@F_NextDept", SqlDbType.Int,4),
56 60
                     new SqlParameter("@F_IsUsed", SqlDbType.Int,4),
57
-                    new SqlParameter("@F_LimitTime", SqlDbType.NVarChar,200),
58
-                    new SqlParameter("@F_IsSMS", SqlDbType.Int,4),
59
-                    new SqlParameter("@F_SMSToUser", SqlDbType.VarChar,50),
60
-                    new SqlParameter("@F_SMSToPhone", SqlDbType.VarChar,50),
61
-                    new SqlParameter("@F_SMSContent", SqlDbType.NText),
62 61
                     new SqlParameter("@F_CreateUser", SqlDbType.VarChar,50),
63 62
                     new SqlParameter("@F_CreateTime", SqlDbType.DateTime)};
64 63
             parameters[0].Value = model.F_WoID;
@@ -67,15 +66,13 @@ namespace RMYY_CallCenter_Api.Dal
67 66
             parameters[3].Value = model.F_OptType;
68 67
             parameters[4].Value = model.F_OptContent;
69 68
             parameters[5].Value = model.F_NextUser;
70
-            parameters[6].Value = model.F_NextDept;
71
-            parameters[7].Value = model.F_IsUsed;
72
-            parameters[8].Value = model.F_LimitTime;
73
-            parameters[9].Value = model.F_IsSMS;
74
-            parameters[10].Value = model.F_SMSToUser;
75
-            parameters[11].Value = model.F_SMSToPhone;
76
-            parameters[12].Value = model.F_SMSContent;
77
-            parameters[13].Value = model.F_CreateUser;
78
-            parameters[14].Value = model.F_CreateTime;
69
+            parameters[6].Value = model.F_NextUserName;
70
+            parameters[7].Value = model.F_NexUserPhon;
71
+            parameters[8].Value = model.F_NextUserTalkie;
72
+            parameters[9].Value = model.F_NextDept;
73
+            parameters[10].Value = model.F_IsUsed;
74
+            parameters[11].Value = model.F_CreateUser;
75
+            parameters[12].Value = model.F_CreateTime;
79 76
 
80 77
             object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
81 78
             if (obj == null)
@@ -100,13 +97,11 @@ namespace RMYY_CallCenter_Api.Dal
100 97
             strSql.Append("F_OptType=@F_OptType,");
101 98
             strSql.Append("F_OptContent=@F_OptContent,");
102 99
             strSql.Append("F_NextUser=@F_NextUser,");
100
+            strSql.Append("F_NextUserName=@F_NextUserName,");
101
+            strSql.Append("F_NexUserPhon=@F_NexUserPhon,");
102
+            strSql.Append("F_NextUserTalkie=@F_NextUserTalkie,");
103 103
             strSql.Append("F_NextDept=@F_NextDept,");
104 104
             strSql.Append("F_IsUsed=@F_IsUsed,");
105
-            strSql.Append("F_LimitTime=@F_LimitTime,");
106
-            strSql.Append("F_IsSMS=@F_IsSMS,");
107
-            strSql.Append("F_SMSToUser=@F_SMSToUser,");
108
-            strSql.Append("F_SMSToPhone=@F_SMSToPhone,");
109
-            strSql.Append("F_SMSContent=@F_SMSContent,");
110 105
             strSql.Append("F_CreateUser=@F_CreateUser,");
111 106
             strSql.Append("F_CreateTime=@F_CreateTime");
112 107
             strSql.Append(" where F_ID=@F_ID");
@@ -117,13 +112,11 @@ namespace RMYY_CallCenter_Api.Dal
117 112
                     new SqlParameter("@F_OptType", SqlDbType.Int,4),
118 113
                     new SqlParameter("@F_OptContent", SqlDbType.NVarChar,-1),
119 114
                     new SqlParameter("@F_NextUser", SqlDbType.VarChar,50),
115
+                    new SqlParameter("@F_NextUserName", SqlDbType.VarChar,50),
116
+                    new SqlParameter("@F_NexUserPhon", SqlDbType.VarChar,20),
117
+                    new SqlParameter("@F_NextUserTalkie", SqlDbType.VarChar,20),
120 118
                     new SqlParameter("@F_NextDept", SqlDbType.Int,4),
121 119
                     new SqlParameter("@F_IsUsed", SqlDbType.Int,4),
122
-                    new SqlParameter("@F_LimitTime", SqlDbType.NVarChar,200),
123
-                    new SqlParameter("@F_IsSMS", SqlDbType.Int,4),
124
-                    new SqlParameter("@F_SMSToUser", SqlDbType.VarChar,50),
125
-                    new SqlParameter("@F_SMSToPhone", SqlDbType.VarChar,50),
126
-                    new SqlParameter("@F_SMSContent", SqlDbType.NText),
127 120
                     new SqlParameter("@F_CreateUser", SqlDbType.VarChar,50),
128 121
                     new SqlParameter("@F_CreateTime", SqlDbType.DateTime),
129 122
                     new SqlParameter("@F_ID", SqlDbType.BigInt,8)};
@@ -133,16 +126,14 @@ namespace RMYY_CallCenter_Api.Dal
133 126
             parameters[3].Value = model.F_OptType;
134 127
             parameters[4].Value = model.F_OptContent;
135 128
             parameters[5].Value = model.F_NextUser;
136
-            parameters[6].Value = model.F_NextDept;
137
-            parameters[7].Value = model.F_IsUsed;
138
-            parameters[8].Value = model.F_LimitTime;
139
-            parameters[9].Value = model.F_IsSMS;
140
-            parameters[10].Value = model.F_SMSToUser;
141
-            parameters[11].Value = model.F_SMSToPhone;
142
-            parameters[12].Value = model.F_SMSContent;
143
-            parameters[13].Value = model.F_CreateUser;
144
-            parameters[14].Value = model.F_CreateTime;
145
-            parameters[15].Value = model.F_ID;
129
+            parameters[6].Value = model.F_NextUserName;
130
+            parameters[7].Value = model.F_NexUserPhon;
131
+            parameters[8].Value = model.F_NextUserTalkie;
132
+            parameters[9].Value = model.F_NextDept;
133
+            parameters[10].Value = model.F_IsUsed;
134
+            parameters[11].Value = model.F_CreateUser;
135
+            parameters[12].Value = model.F_CreateTime;
136
+            parameters[13].Value = model.F_ID;
146 137
 
147 138
             int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
148 139
             if (rows > 0)
@@ -206,7 +197,7 @@ namespace RMYY_CallCenter_Api.Dal
206 197
         {
207 198
 
208 199
             StringBuilder strSql = new StringBuilder();
209
-            strSql.Append("select  top 1 F_ID,F_WoID,F_WoState,F_ItemType,F_OptType,F_OptContent,F_NextUser,F_NextDept,F_IsUsed,F_LimitTime,F_IsSMS,F_SMSToUser,F_SMSToPhone,F_SMSContent,F_CreateUser,F_CreateTime from T_Mat_WorkOrderItem ");
200
+            strSql.Append("select  top 1 F_ID,F_WoID,F_WoState,F_ItemType,F_OptType,F_OptContent,F_NextUser,F_NextUserName,F_NexUserPhon,F_NextUserTalkie,F_NextDept,F_IsUsed,F_CreateUser,F_CreateTime from T_Mat_WorkOrderItem ");
210 201
             strSql.Append(" where F_ID=@F_ID");
211 202
             SqlParameter[] parameters = {
212 203
                     new SqlParameter("@F_ID", SqlDbType.BigInt)
@@ -262,33 +253,25 @@ namespace RMYY_CallCenter_Api.Dal
262 253
                 {
263 254
                     model.F_NextUser = row["F_NextUser"].ToString();
264 255
                 }
265
-                if (row["F_NextDept"] != null && row["F_NextDept"].ToString() != "")
266
-                {
267
-                    model.F_NextDept = int.Parse(row["F_NextDept"].ToString());
268
-                }
269
-                if (row["F_IsUsed"] != null && row["F_IsUsed"].ToString() != "")
270
-                {
271
-                    model.F_IsUsed = int.Parse(row["F_IsUsed"].ToString());
272
-                }
273
-                if (row["F_LimitTime"] != null)
256
+                if (row["F_NextUserName"] != null)
274 257
                 {
275
-                    model.F_LimitTime = row["F_LimitTime"].ToString();
258
+                    model.F_NextUserName = row["F_NextUserName"].ToString();
276 259
                 }
277
-                if (row["F_IsSMS"] != null && row["F_IsSMS"].ToString() != "")
260
+                if (row["F_NexUserPhon"] != null)
278 261
                 {
279
-                    model.F_IsSMS = int.Parse(row["F_IsSMS"].ToString());
262
+                    model.F_NexUserPhon = row["F_NexUserPhon"].ToString();
280 263
                 }
281
-                if (row["F_SMSToUser"] != null)
264
+                if (row["F_NextUserTalkie"] != null)
282 265
                 {
283
-                    model.F_SMSToUser = row["F_SMSToUser"].ToString();
266
+                    model.F_NextUserTalkie = row["F_NextUserTalkie"].ToString();
284 267
                 }
285
-                if (row["F_SMSToPhone"] != null)
268
+                if (row["F_NextDept"] != null && row["F_NextDept"].ToString() != "")
286 269
                 {
287
-                    model.F_SMSToPhone = row["F_SMSToPhone"].ToString();
270
+                    model.F_NextDept = int.Parse(row["F_NextDept"].ToString());
288 271
                 }
289
-                if (row["F_SMSContent"] != null)
272
+                if (row["F_IsUsed"] != null && row["F_IsUsed"].ToString() != "")
290 273
                 {
291
-                    model.F_SMSContent = row["F_SMSContent"].ToString();
274
+                    model.F_IsUsed = int.Parse(row["F_IsUsed"].ToString());
292 275
                 }
293 276
                 if (row["F_CreateUser"] != null)
294 277
                 {
@@ -308,7 +291,7 @@ namespace RMYY_CallCenter_Api.Dal
308 291
         public DataSet GetList(string strWhere)
309 292
         {
310 293
             StringBuilder strSql = new StringBuilder();
311
-            strSql.Append("select F_ID,F_WoID,F_WoState,F_ItemType,F_OptType,F_OptContent,F_NextUser,F_NextDept,F_IsUsed,F_LimitTime,F_IsSMS,F_SMSToUser,F_SMSToPhone,F_SMSContent,F_CreateUser,F_CreateTime ");
294
+            strSql.Append("select F_ID,F_WoID,F_WoState,F_ItemType,F_OptType,F_OptContent,F_NextUser,F_NextUserName,F_NexUserPhon,F_NextUserTalkie,F_NextDept,F_IsUsed,F_CreateUser,F_CreateTime ");
312 295
             strSql.Append(" FROM T_Mat_WorkOrderItem ");
313 296
             if (strWhere.Trim() != "")
314 297
             {
@@ -328,7 +311,7 @@ namespace RMYY_CallCenter_Api.Dal
328 311
             {
329 312
                 strSql.Append(" top " + Top.ToString());
330 313
             }
331
-            strSql.Append(" F_ID,F_WoID,F_WoState,F_ItemType,F_OptType,F_OptContent,F_NextUser,F_NextDept,F_IsUsed,F_LimitTime,F_IsSMS,F_SMSToUser,F_SMSToPhone,F_SMSContent,F_CreateUser,F_CreateTime ");
314
+            strSql.Append(" F_ID,F_WoID,F_WoState,F_ItemType,F_OptType,F_OptContent,F_NextUser,F_NextUserName,F_NexUserPhon,F_NextUserTalkie,F_NextDept,F_IsUsed,F_CreateUser,F_CreateTime ");
332 315
             strSql.Append(" FROM T_Mat_WorkOrderItem ");
333 316
             if (strWhere.Trim() != "")
334 317
             {
@@ -383,7 +366,33 @@ namespace RMYY_CallCenter_Api.Dal
383 366
             strSql.Append(" ) TT");
384 367
             strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
385 368
             return DbHelperSQL.Query(strSql.ToString());
386
-        }   
369
+        }
370
+
371
+        /*
372
+		/// <summary>
373
+		/// 分页获取数据列表
374
+		/// </summary>
375
+		public DataSet GetList(int PageSize,int PageIndex,string strWhere)
376
+		{
377
+			SqlParameter[] parameters = {
378
+					new SqlParameter("@tblName", SqlDbType.VarChar, 255),
379
+					new SqlParameter("@fldName", SqlDbType.VarChar, 255),
380
+					new SqlParameter("@PageSize", SqlDbType.Int),
381
+					new SqlParameter("@PageIndex", SqlDbType.Int),
382
+					new SqlParameter("@IsReCount", SqlDbType.Bit),
383
+					new SqlParameter("@OrderType", SqlDbType.Bit),
384
+					new SqlParameter("@strWhere", SqlDbType.VarChar,1000),
385
+					};
386
+			parameters[0].Value = "T_Mat_WorkOrderItem";
387
+			parameters[1].Value = "F_ID";
388
+			parameters[2].Value = PageSize;
389
+			parameters[3].Value = PageIndex;
390
+			parameters[4].Value = 0;
391
+			parameters[5].Value = 0;
392
+			parameters[6].Value = strWhere;	
393
+			return DbHelperSQL.RunProcedure("UP_GetRecordByPage",parameters,"ds");
394
+		}*/
395
+
387 396
         #endregion  BasicMethod
388 397
         #region  ExtensionMethod
389 398
 

+ 6 - 15
RMYY_CallCenter_Api.Model/T_Mat_WorkOrder.cs

@@ -35,8 +35,7 @@ namespace RMYY_CallCenter_Api.Model
35 35
         private string _f_controlmancode;
36 36
         private string _f_controlmanname;
37 37
         private string _f_transpersoncode;
38
-        private string _f_transpersonname;
39
-        private string _f_transpersontalkie;
38
+        private string _f_transperson;
40 39
         private DateTime? _f_outboundtime;
41 40
         private int? _f_isdel = 0;
42 41
         private string _f_deleteby;
@@ -203,7 +202,7 @@ namespace RMYY_CallCenter_Api.Model
203 202
             get { return _f_controlmanname; }
204 203
         }
205 204
         /// <summary>
206
-        /// 配送转运人
205
+        /// 转运人编号
207 206
         /// </summary>
208 207
         public string F_TransPersonCode
209 208
         {
@@ -211,20 +210,12 @@ namespace RMYY_CallCenter_Api.Model
211 210
             get { return _f_transpersoncode; }
212 211
         }
213 212
         /// <summary>
214
-        /// 配送转运人姓名
215
-        /// </summary>
216
-        public string F_TransPersonName
217
-        {
218
-            set { _f_transpersonname = value; }
219
-            get { return _f_transpersonname; }
220
-        }
221
-        /// <summary>
222
-        /// 对讲机号
213
+        /// 配送转运人
223 214
         /// </summary>
224
-        public string F_TransPersonTalkie
215
+        public string F_TransPerson
225 216
         {
226
-            set { _f_transpersontalkie = value; }
227
-            get { return _f_transpersontalkie; }
217
+            set { _f_transperson = value; }
218
+            get { return _f_transperson; }
228 219
         }
229 220
         /// <summary>
230 221
         /// 出库时间

+ 26 - 44
RMYY_CallCenter_Api.Model/T_Mat_WorkOrderItem.cs

@@ -7,9 +7,9 @@ using System.Threading.Tasks;
7 7
 namespace RMYY_CallCenter_Api.Model
8 8
 {
9 9
     /// <summary>
10
-	/// T_Mat_WorkOrderItem:实体类(属性说明自动提取数据库字段的描述信息)
11
-	/// </summary>
12
-	[Serializable]
10
+    /// T_Mat_WorkOrderItem:实体类(属性说明自动提取数据库字段的描述信息)
11
+    /// </summary>
12
+    [Serializable]
13 13
     public partial class T_Mat_WorkOrderItem
14 14
     {
15 15
         public T_Mat_WorkOrderItem()
@@ -22,13 +22,11 @@ namespace RMYY_CallCenter_Api.Model
22 22
         private int? _f_opttype;
23 23
         private string _f_optcontent;
24 24
         private string _f_nextuser;
25
+        private string _f_nextusername;
26
+        private string _f_nexuserphon;
27
+        private string _f_nextusertalkie;
25 28
         private int? _f_nextdept;
26 29
         private int? _f_isused = 0;
27
-        private string _f_limittime;
28
-        private int? _f_issms;
29
-        private string _f_smstouser;
30
-        private string _f_smstophone;
31
-        private string _f_smscontent;
32 30
         private string _f_createuser;
33 31
         private DateTime? _f_createtime;
34 32
         /// <summary>
@@ -88,60 +86,44 @@ namespace RMYY_CallCenter_Api.Model
88 86
             get { return _f_nextuser; }
89 87
         }
90 88
         /// <summary>
91
-        /// 下一步操作部门
92
-        /// </summary>
93
-        public int? F_NextDept
94
-        {
95
-            set { _f_nextdept = value; }
96
-            get { return _f_nextdept; }
97
-        }
98
-        /// <summary>
99
-        /// 是否在用,0是 1否
100
-        /// </summary>
101
-        public int? F_IsUsed
102
-        {
103
-            set { _f_isused = value; }
104
-            get { return _f_isused; }
105
-        }
106
-        /// <summary>
107
-        /// 时限
89
+        /// 姓名
108 90
         /// </summary>
109
-        public string F_LimitTime
91
+        public string F_NextUserName
110 92
         {
111
-            set { _f_limittime = value; }
112
-            get { return _f_limittime; }
93
+            set { _f_nextusername = value; }
94
+            get { return _f_nextusername; }
113 95
         }
114 96
         /// <summary>
115
-        /// 是否短信提醒
97
+        /// 电话
116 98
         /// </summary>
117
-        public int? F_IsSMS
99
+        public string F_NexUserPhon
118 100
         {
119
-            set { _f_issms = value; }
120
-            get { return _f_issms; }
101
+            set { _f_nexuserphon = value; }
102
+            get { return _f_nexuserphon; }
121 103
         }
122 104
         /// <summary>
123
-        /// 短信提醒人
105
+        /// 对讲机
124 106
         /// </summary>
125
-        public string F_SMSToUser
107
+        public string F_NextUserTalkie
126 108
         {
127
-            set { _f_smstouser = value; }
128
-            get { return _f_smstouser; }
109
+            set { _f_nextusertalkie = value; }
110
+            get { return _f_nextusertalkie; }
129 111
         }
130 112
         /// <summary>
131
-        /// 短信提醒电话
113
+        /// 下一步操作部门
132 114
         /// </summary>
133
-        public string F_SMSToPhone
115
+        public int? F_NextDept
134 116
         {
135
-            set { _f_smstophone = value; }
136
-            get { return _f_smstophone; }
117
+            set { _f_nextdept = value; }
118
+            get { return _f_nextdept; }
137 119
         }
138 120
         /// <summary>
139
-        /// 短信提醒内容
121
+        /// 是否在用,0是 1否
140 122
         /// </summary>
141
-        public string F_SMSContent
123
+        public int? F_IsUsed
142 124
         {
143
-            set { _f_smscontent = value; }
144
-            get { return _f_smscontent; }
125
+            set { _f_isused = value; }
126
+            get { return _f_isused; }
145 127
         }
146 128
         /// <summary>
147 129
         /// 创建人

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

@@ -0,0 +1,42 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.ComponentModel;
4
+using System.Linq;
5
+using System.Reflection;
6
+using System.Text;
7
+using System.Threading.Tasks;
8
+
9
+namespace RMYY_CallCenter_Api.Utility
10
+{
11
+    public static class EnumHelper
12
+    {
13
+        /// <summary>
14
+        /// 返回枚举项的描述信息。
15
+        /// </summary>
16
+        /// <param name="value">要获取描述信息的枚举项。</param>
17
+        /// <returns>枚举想的描述信息。</returns>
18
+        public static string GetDescription(Enum value)
19
+        {
20
+            Type enumType = value.GetType();
21
+            // 获取枚举常数名称。
22
+            string name = Enum.GetName(enumType, value);
23
+            if (name != null)
24
+            {
25
+                // 获取枚举字段。
26
+                FieldInfo fieldInfo = enumType.GetField(name);
27
+                if (fieldInfo != null)
28
+                {
29
+                    // 获取描述的属性。
30
+                    DescriptionAttribute attr = Attribute.GetCustomAttribute(fieldInfo,
31
+                        typeof(DescriptionAttribute), false) as DescriptionAttribute;
32
+                    if (attr != null)
33
+                    {
34
+                        return attr.Description;
35
+                    }
36
+                }
37
+            }
38
+            return null;
39
+        }
40
+
41
+    }
42
+}

+ 1 - 0
RMYY_CallCenter_Api.Utility/RMYY_CallCenter_Api.Utility.csproj

@@ -72,6 +72,7 @@
72 72
     <Compile Include="Extention\String.cs" />
73 73
     <Compile Include="Helper\CacheHelper.cs" />
74 74
     <Compile Include="Helper\DingTalkHelper.cs" />
75
+    <Compile Include="Helper\EnumHelper.cs" />
75 76
     <Compile Include="Helper\FileHelper.cs" />
76 77
     <Compile Include="Helper\HttpHelper.cs" />
77 78
     <Compile Include="Helper\ImageHelper.cs" />

+ 1 - 1
RMYY_CallCenter_Api/Controllers/IndexController.cs

@@ -42,7 +42,7 @@ namespace RMYY_CallCenter_Api.Controllers
42 42
                 }
43 43
                 else
44 44
                 {
45
-                    dt = DB.DbHelperSQL.Query("select m.* FROM T_Sys_RoleMenu rm with(nolock) left join T_Sys_Menu m with(nolock) on rm.F_MenuId=m.F_MenuId where m.F_State=1 and rm.RoleId=" + User.F_RoleId + " and isnull(m.F_Action,'')!='' ").Tables[0];
45
+                    dt = DB.DbHelperSQL.Query("select m.* FROM T_Sys_RoleMenu rm with(nolock) left join T_Sys_Menu m with(nolock) on rm.F_MenuId=m.F_MenuId where m.F_State=1 and rm.F_RoleId=" + User.F_RoleId + " and isnull(m.F_Action,'')!='' ").Tables[0];
46 46
                 }
47 47
 
48 48
                 CacheHelper.Insert("RoleMenus_" + User.F_RoleId, dt, 10);              

+ 15 - 5
RMYY_CallCenter_Api/Controllers/System/RoleController.cs

@@ -56,7 +56,7 @@ namespace RMYY_CallCenter_Api.Controllers.System
56 56
                                     "F_RoleId",
57 57
                                     "*",
58 58
                                     sql,
59
-                                    "ORDER BY F_RoleId desc",
59
+                                    "ORDER BY F_Sort",
60 60
                                     pagesize,
61 61
                                     pageindex,
62 62
                                     true,
@@ -216,13 +216,15 @@ namespace RMYY_CallCenter_Api.Controllers.System
216 216
         /// <returns></returns>
217 217
         public ActionResult GetRoleFunction(int roleid=0)
218 218
         {
219
-            var moduleFList = new Bll.T_Sys_Menu().GetModelList(" F_State=1 ");
220
-            if (roleid == 0)
219
+            var moduleFList = new Bll.T_Sys_Menu().GetModelList(" F_State=1 and (F_Type=1 or F_Type=2) ");
220
+            var list=new DataTable();
221
+            if (roleid > 0)
221 222
             {
222
-                return Error("参数错误!");
223
+
224
+                list = DB.DbHelperSQL.Query("select F_MenuId from T_Sys_RoleMenu with(nolock) where F_RoleId=" + roleid).Tables[0];
223 225
             }
224
-            var list = DB.DbHelperSQL.Query("select F_MenuId from T_Sys_RoleMenu with(nolock) where F_RoleId=" + roleid).Tables[0];
225 226
 
227
+            if(list.Rows.Count>0)
226 228
             return Success("加载成功", moduleFList.Select(x => new
227 229
             {
228 230
                 id = x.F_MenuId,
@@ -231,6 +233,14 @@ namespace RMYY_CallCenter_Api.Controllers.System
231 233
                 sort = x.F_Sort,
232 234
                 ischecked = list.Select("F_MenuId=" + x.F_MenuId).Count() > 0 ? true : false
233 235
             }).OrderBy(p => p.sort));
236
+            else return Success("加载成功", moduleFList.Select(x => new
237
+            {
238
+                id = x.F_MenuId,
239
+                pid = x.F_ParentId,
240
+                name = x.F_MenuName,
241
+                sort = x.F_Sort,
242
+                ischecked = false
243
+            }).OrderBy(p => p.sort));
234 244
         }
235 245
 
236 246
         /// <summary>

+ 2 - 0
RMYY_CallCenter_Api/Controllers/WorkOrder/T_Dev_WorkOrderController.cs

@@ -1213,7 +1213,9 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
1213 1213
                         strid += str + ",";
1214 1214
                     }
1215 1215
                     if (orderbll.CustomDelete(strid, usercode))
1216
+                    {
1216 1217
                         return Success("删除成功!");
1218
+                    }
1217 1219
                     else return Error("删除失败!");
1218 1220
                 }
1219 1221
                 return Error("请选择要删除的记录!");

+ 831 - 4
RMYY_CallCenter_Api/Controllers/WorkOrder/T_Mat_WorkOrderController.cs

@@ -1,5 +1,8 @@
1
-using System;
1
+using RMYY_CallCenter_Api.Models.Enum;
2
+using RMYY_CallCenter_Api.Utility;
3
+using System;
2 4
 using System.Collections.Generic;
5
+using System.Data;
3 6
 using System.Linq;
4 7
 using System.Web;
5 8
 using System.Web.Mvc;
@@ -8,10 +11,834 @@ namespace RMYY_CallCenter_Api.Controllers.WorkOrder
8 11
 {
9 12
     public class T_Mat_WorkOrderController : BaseController
10 13
     {
11
-        // GET: T_Mat_WorkOrder
12
-        public ActionResult Index()
14
+        private Bll.T_Mat_WorkOrder orderbll = new Bll.T_Mat_WorkOrder();
15
+        private Bll.T_Sys_UserAccount userbll = new Bll.T_Sys_UserAccount();
16
+        private Bll.T_Mat_WorkOrderItem itembll = new Bll.T_Mat_WorkOrderItem();
17
+
18
+        /// <summary>
19
+        /// 获取列表
20
+        /// </summary>
21
+        /// <param name="keyword"></param>
22
+        /// <param name="starttime"></param>
23
+        /// <param name="endtime"></param>
24
+        /// <param name="pageindex"></param>
25
+        /// <param name="pagesize"></param>
26
+        /// <param name="state"></param>
27
+        /// <returns></returns>
28
+        public ActionResult GetList(string keyword, string starttime = "", string endtime = "", int pageindex = 1, int pagesize = 10, int state = -1)
29
+        {
30
+            string usercode = "8006";
31
+            if (usercode != "")
32
+            {
33
+                var ua = userbll.GetModel(usercode);
34
+                string transql = "";
35
+                List<string> wokerlist =new List<string>();
36
+                #region 查询条件
37
+                string sql = $" and F_IsDel=0";
38
+                DataTable data = new DataTable();
39
+                if (starttime.Trim() != "" && starttime != "undefined")
40
+                    sql += $"and datediff(day,F_CreateTime,'" + starttime + "')<=0";
41
+                if (endtime.Trim() != "" && endtime != "undefined")
42
+                    sql += $"and datediff(day,F_CreateTime,'" + endtime + "')>=0";
43
+                if (!string.IsNullOrEmpty(keyword))
44
+                {
45
+                    sql += $"and (F_WorkOrderCode like '%" + keyword.Trim() + "%' or F_ProposerCode like '%" + keyword.Trim() + "%' or F_ProposerPhon like '%" + keyword.Trim() + "%')";
46
+                }
47
+                if (state >= 0)
48
+                {
49
+                    sql += $"and F_State=" + state;
50
+                }
51
+                if (ua.F_DeptId == 1)//综合保障中心
52
+                {
53
+                    if (ua.F_UserCode != "8000" && ua.F_RoleId != 1003)
54
+                        sql += $" and F_ControlManCode=" + ua.F_UserCode;
55
+                }
56
+                else if (ua.F_DeptId == 3002)//仓库
57
+                {
58
+                    sql += $" and F_CreateCode=" + ua.F_UserCode + "";
59
+                }
60
+                if (ua.F_DeptId == 1 && ua.F_RoleId == 1003)//转运人判断
61
+                {
62
+                    transql = GetTranPersonsql(usercode, ua.F_RoleId);
63
+                    string assignsql = GetTransql(usercode);
64
+                    if (transql != "")
65
+                    {
66
+                        sql += $"and (F_Id in (" + transql+ ")";
67
+                    }
68
+                    if (assignsql != "")
69
+                    {
70
+                        sql += $"or F_Id in (" + GetTransql(usercode) + "))";
71
+                    }
72
+
73
+                    wokerlist = (transql+","+ assignsql).Split(',').Distinct().ToList();
74
+                }
75
+                #endregion
76
+                int recordCount = 0;
77
+                if (!string.IsNullOrEmpty(sql))
78
+                {
79
+                    data = Bll.PagerBll.GetListPager
80
+                        (
81
+                        "T_Mat_WorkOrder aa",
82
+                        "F_Id",
83
+                        "*",
84
+                        sql,
85
+                        "ORDER BY F_Id desc",
86
+                        pagesize,
87
+                        pageindex,
88
+                        true,
89
+                        out recordCount
90
+                        );
91
+                }
92
+                var modellist = orderbll.DataTableToList(data);
93
+                if (modellist.Count > 0)
94
+                {
95
+                    if (wokerlist.Count>0)
96
+                    {
97
+                        var obj = new
98
+                        {
99
+                            state = "success",
100
+                            message = "成功",
101
+                            rows = modellist.Where(p => wokerlist.Contains(p.F_Id.ToString())).Select(p =>
102
+                            new
103
+                            {
104
+                                Wostate = EnumHelper.GetDescription((EnumMatWorkOrderState)itembll.GetModelList("F_WoID=" + p.F_Id + " and (F_CreateUser="+ua.F_UserCode+ " or F_NextUser="+ ua.F_UserCode + ")").OrderByDescending(pp => pp.F_ID).FirstOrDefault().F_OptType),
105
+                                SitMan = p.F_ControlManName + '(' + p.F_ControlManName + ')',
106
+                                modellist = p
107
+                            }),
108
+                            total = recordCount
109
+                        };
110
+                        return Content(obj.ToJson());
111
+                    }
112
+                    else
113
+                    {
114
+                        var obj = new
115
+                        {
116
+                            state = "success",
117
+                            message = "成功",
118
+                            rows = modellist.Select(p =>
119
+                            new
120
+                            {
121
+                                Wostate =EnumHelper.GetDescription((EnumMatWorkOrderState)p.F_State),
122
+                                SitMan = p.F_ControlManName + '(' + p.F_ControlManName + ')',
123
+                                modellist = p
124
+                            }),
125
+                            total = recordCount
126
+                        };
127
+                        return Content(obj.ToJson());
128
+
129
+                    }
130
+                }
131
+                else return Error("暂无工单记录");
132
+            }
133
+            return Error("无操作权限!");
134
+        }
135
+        /// <summary>
136
+        /// 转运人待转运工单
137
+        /// </summary>
138
+        /// <param name="usercode"></param>
139
+        /// <returns></returns>
140
+        private string GetTransql(string usercode)
141
+        {
142
+         string str = string.Empty;
143
+        var list= itembll.GetModelList("F_OptType=" + (int)EnumDevItemOpt.assign + "and F_WoState=" + (int)EnumDevWorkOrderState.assign + " and F_NextUser=" + usercode+" ").Select(t => t.F_WoID).Distinct<long>().ToList();
144
+            if (list.Count > 0)
145
+                foreach (var item in list)
146
+                {
147
+                    str = string.IsNullOrEmpty(str) ? item.ToString() : str + "," + item.ToString();
148
+                }
149
+            return str;
150
+        }
151
+        /// <summary>
152
+        /// 转运人操作的工单
153
+        /// </summary>
154
+        /// <param name="usercode"></param>
155
+        /// <param name="roleid"></param>
156
+        /// <returns></returns>
157
+        private string GetTranPersonsql(string usercode,int roleid)
158
+        {
159
+            string wokerlist = "";
160
+            string[] wokerarr = { };
161
+            if (userbll.GetModel(usercode).F_RoleId == roleid)
162
+            {
163
+                var itemlist = itembll.GetModelList("F_CreateUser=" + usercode + " and F_IsUsed='0'").Select(t => t.F_WoID).Distinct<long>().ToList();
164
+                if (itemlist.Count > 0)
165
+                {
166
+                    foreach (var item in itemlist)
167
+                    {
168
+                        wokerlist = string.IsNullOrEmpty(wokerlist) ? item.ToString() : wokerlist + "," + item.ToString();
169
+                    }
170
+                    if (wokerlist != "")
171
+                        wokerarr = wokerlist.Split(',');
172
+                }
173
+            }
174
+            return wokerlist;
175
+        }
176
+
177
+
178
+        /// <summary>
179
+        /// 获取工单详情
180
+        /// </summary>
181
+        /// <param name="id"></param>
182
+        /// <returns></returns>
183
+        public ActionResult GetModelDetail(int id)
184
+        {
185
+            string ucode = "8000";
186
+            string sql = "F_WoID = " + id + "";
187
+            Model.T_Sys_UserAccount ua = userbll.GetModel(ucode);
188
+            if (id <= 0)
189
+            {
190
+                return Error("请选择要查询的工单!");
191
+            }
192
+            var model = orderbll.GetModel(id);
193
+            string wostateName = EnumHelper.GetDescription((EnumMatWorkOrderState)model.F_State);
194
+            var itemlist = itembll.GetModelList(sql);
195
+            //List<Con_WorkOrderInput> Input = modeltoopi(list);
196
+            if (model != null)
197
+            {
198
+                var obj = new
199
+                {
200
+                    state = "success",
201
+                    message = "成功",
202
+                    model = model,
203
+                    wostateName = wostateName,
204
+                    itemlist = itemlist
205
+                };
206
+                return Content(obj.ToJson());
207
+            }
208
+            else
209
+                return Error("没有查询到此工单!");
210
+
211
+        }
212
+
213
+
214
+        /// <summary>
215
+        /// 报表
216
+        /// </summary>
217
+        /// <param name="keyword"></param>
218
+        /// <param name="starttime"></param>
219
+        /// <param name="endtime"></param>
220
+        /// <returns></returns>
221
+        public ActionResult GetListExpt(string keyword, string starttime = "", string endtime = "", int state = -1)
222
+        {
223
+            string usercode = "8000";
224
+            if (usercode != "")
225
+            {
226
+                #region 查询条件
227
+                string sql = $" and F_IsDel=0";
228
+                DataTable data = new DataTable();
229
+                if (starttime.Trim() != "" && starttime != "undefined")
230
+                    sql += $" and datediff(day,F_CreateTime,'" + starttime + "') <=0 ";
231
+                if (endtime.Trim() != "" && endtime != "undefined")
232
+                    sql += $" and datediff(day,F_CreateTime,'" + endtime + "')>=0";
233
+                if (!string.IsNullOrEmpty(keyword))
234
+                {
235
+                    sql += $"and (F_WorkOrderCode like '%" + keyword.Trim() + "%' or F_ProposerCode like '%" + keyword.Trim() + "%' or F_ProposerPhon like '%" + keyword.Trim() + "%')";
236
+                }
237
+                if (state >= 0)
238
+                {
239
+                    sql += $"and F_State=" + state;
240
+                }
241
+                #endregion
242
+
243
+                NPOIHelper nopi = new NPOIHelper();
244
+                data = new Bll.T_Mat_WorkOrder().GetListExpt(sql).Tables[0];
245
+                if (nopi.ExportToExcel("物资转移统计报表", data, col()) == "")
246
+                {
247
+                    return Success("导出成功!");
248
+                }
249
+                else return Error("导出失败!");
250
+            }
251
+            return Error("无操作权限!");
252
+        }
253
+
254
+
255
+
256
+
257
+        private string[] col()
258
+        {
259
+            string[] cel =
260
+            {
261
+                "工单编号","类型","申请仓库","送达科室","申请人","联系电话","工单内容","调度员","上报时间","转运部门","转运人","备注","派工及时率","转运完成率"
262
+            };
263
+            return cel;
264
+
265
+        }
266
+
267
+        /// <summary>
268
+        /// 添加工单
269
+        /// </summary>
270
+        /// <param name="type"></param>
271
+        /// <param name="store"></param>
272
+        /// <param name="positon"></param>
273
+        /// <param name="usercode"></param>
274
+        /// <param name="username"></param>
275
+        /// <param name="phon"></param>
276
+        /// <param name="senddeptid"></param>
277
+        /// <param name="deptname"></param>
278
+        /// <param name="itemessage"></param>
279
+        /// <param name="remark"></param>
280
+        /// <param name="callid"></param>
281
+        /// <returns></returns>
282
+        public ActionResult AddWorkOrder(int type, string store, string positon, string usercode, string username, string phon, int senddeptid,string deptname,string itemessage, string remark, string callid = "")
283
+        {
284
+            //if (User != null)
285
+            //{
286
+            string ucode = "8005";
287
+            var User1 = userbll.GetModel(ucode);
288
+
289
+            #region 添加条件
290
+            if (type <= 0)
291
+                return Error("工单类型错误!");
292
+            if (string.IsNullOrEmpty(store))
293
+                return Error("请选择申请仓库!");
294
+            if (usercode == "")
295
+                return Error("请选择申请人!");
296
+            if (phon == "")
297
+                return Error("请输入联系电话!");
298
+            if (senddeptid==0)
299
+                return Error("请选择送达科室!");
300
+            if (string.IsNullOrEmpty(itemessage))
301
+                return Error("请填写转移物资信息!");
302
+            #endregion
303
+
304
+            var model = new Model.T_Mat_WorkOrder();
305
+            model.F_Type = type;//工单类型  2物资转移
306
+            model.F_Source = "PC端";
307
+            model.F_CallID = callid;
308
+            model.F_State = (int)EnumWorkOrderState.neworder;//新工单待转派
309
+            model.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");//工单编号
310
+            model.F_ProposerStore = store;//申请仓库
311
+            model.F_StorePosition = positon;//仓库位置
312
+            model.F_ProposerCode = usercode;//申请人
313
+            model.F_ProposerName = username;
314
+            model.F_ProposerPhon = phon;
315
+            model.F_SendDeptId = senddeptid;//送达科室
316
+            model.F_SendDeptName = deptname;//科室姓名
317
+            model.F_ItemMessages = itemessage;//物质转移内容
318
+            model.F_Remark = remark;
319
+            model.F_CreateTime = DateTime.Now;
320
+            model.F_CreateCode = User1.F_UserCode;
321
+            model.F_CreateName = User1.F_UserName;
322
+            model.F_IsDel = 0;
323
+            int n = orderbll.Add(model);
324
+            if (n > 0)
325
+            {
326
+                var wmodel = orderbll.GetModel(n);
327
+                AddLog(n, 0, User1.F_UserName + "(" + User1.F_UserCode + ")" + "创建新工单", 0, (int)EnumDevItemOpt.create, "", 0, User1);
328
+                return Success("操作成功!");
329
+            }
330
+            else return Error("添加失败");
331
+            //}
332
+            //return Error("无操作权限");
333
+        }
334
+
335
+
336
+
337
+        /// <summary>
338
+        /// 修改工单
339
+        /// </summary>
340
+        /// <param name="type"></param>
341
+        /// <param name="store"></param>
342
+        /// <param name="positon"></param>
343
+        /// <param name="usercode"></param>
344
+        /// <param name="username"></param>
345
+        /// <param name="phon"></param>
346
+        /// <param name="senddeptid"></param>
347
+        /// <param name="deptname"></param>
348
+        /// <param name="itemessage"></param>
349
+        /// <param name="remark"></param>
350
+        /// <param name="callid"></param>
351
+        /// <returns></returns>
352
+        public ActionResult UpdateWorkOrder(int woid,int type, string store, string positon, string usercode, string username, string phon, int senddeptid, string deptname, string itemessage, string remark, string callid = "")
353
+        {
354
+            //if (User != null)
355
+            //{
356
+            string ucode = "8005";
357
+            var User1 = userbll.GetModel(ucode);
358
+
359
+            #region 添加条件
360
+
361
+            var model = orderbll.GetModel(woid);
362
+            if (model == null)
363
+                return Error("不存在此工单!");
364
+            if (type <= 0)
365
+                return Error("工单类型错误!");
366
+            if (string.IsNullOrEmpty(store))
367
+                return Error("请选择申请仓库!");
368
+            if (usercode == "")
369
+                return Error("请选择申请人!");
370
+            if (phon == "")
371
+                return Error("请输入联系电话!");
372
+            if (senddeptid == 0)
373
+                return Error("请选择送达科室!");
374
+            if (string.IsNullOrEmpty(itemessage))
375
+                return Error("请填写转移物资信息!");
376
+            if (model.F_State == (int)EnumMatWorkOrderState.assign || model.F_TransPersonCode!="")
377
+                return Error("工单已指派不能修改!");
378
+            #endregion
379
+            model.F_ProposerStore = store;//申请仓库
380
+            model.F_StorePosition = positon;//仓库位置
381
+            model.F_ProposerCode = usercode;//申请人
382
+            model.F_ProposerName = username;
383
+            model.F_ProposerPhon = phon;
384
+            model.F_SendDeptId = senddeptid;//送达科室
385
+            model.F_SendDeptName = deptname;//科室姓名
386
+            model.F_ItemMessages = itemessage;//物质转移内容
387
+            model.F_Remark = remark;
388
+            model.F_IsDel = 0;
389
+            if (orderbll.Update(model))
390
+            {
391
+                AddLog(woid, 0, User1.F_UserName + "(" + User1.F_UserCode + ")" + "修改工单", (int)EnumMatItemType.update, (int)EnumMatItemOpt.update, "", 0, User1);
392
+                return Success("修改成功!");
393
+            }
394
+            else return Error("修改失败");
395
+            //}
396
+            //return Error("无操作权限");
397
+        }
398
+
399
+        /// <summary>
400
+        /// 添加工单记录
401
+        /// </summary>
402
+        public long AddLog(int woid, int wostate, string content, int itemtype, int opttype, string nextuser, int nextdept, Model.T_Sys_UserAccount nowUser, int F_IsUsed = 0)
403
+        {
404
+
405
+            Model.T_Mat_WorkOrderItem itemModel = new Model.T_Mat_WorkOrderItem();
406
+            #region 
407
+            //处理当前工单的记录之前的记录过期
408
+            var itemlast = itembll.GetModelList(" isnull(F_IsUsed,'0')='0' and F_OptType=" + itemtype + " and  F_WoID=" + woid + "and F_CreateUser=" + nowUser.F_UserCode+ " ");
409
+            if (F_IsUsed == 0)
410
+            {
411
+
412
+                if (itemlast.Count > 0)
413
+                {
414
+                    foreach (var it in itemlast)
415
+                    {
416
+                        it.F_IsUsed = 1;
417
+                        itembll.Update(it);
418
+                    }
419
+                }
420
+            }
421
+            #endregion
422
+            itemModel.F_WoID = woid;
423
+            itemModel.F_WoState = wostate;
424
+            itemModel.F_ItemType = itemtype;
425
+            itemModel.F_OptType = opttype;
426
+            itemModel.F_OptContent = content;
427
+            itemModel.F_NextUser = nextuser;
428
+            itemModel.F_NextDept = nextdept;
429
+            itemModel.F_IsUsed = F_IsUsed;
430
+            itemModel.F_CreateTime = DateTime.Now;
431
+            itemModel.F_CreateUser = nowUser.F_UserCode;
432
+            var res = itembll.Add(itemModel);
433
+            return res;
434
+        }
435
+
436
+
437
+        /// <summary>
438
+        /// 转派班组
439
+        /// </summary>
440
+        /// <param name="woid"></param>
441
+        /// <returns></returns>
442
+        //public ActionResult AssignWo(int woid)
443
+        //{
444
+        //    string usercode = "8000";
445
+        //    int state = 0;
446
+        //    int clbm = 1;//综合保障中心
447
+        //    var ua = userbll.GetModel(usercode);
448
+        //    if (woid == 0)
449
+        //        return Error("工单编号错误!");
450
+        //    var omodel = orderbll.GetModel(woid);
451
+        //    if (omodel != null)
452
+        //    {
453
+        //        bool n = AssignWO(ua, omodel, "", "", clbm);
454
+        //        if (n)
455
+        //        {
456
+        //            omodel.F_ControlManCode = usercode;
457
+        //            omodel.F_ControlManName = ua.F_UserName;
458
+        //            orderbll.Update(omodel);
459
+        //            return Success("转派成功!");
460
+        //        }
461
+        //        return Error("转派失败!");
462
+        //    }
463
+        //    return Error("转派失败,不存在此工单编号!");
464
+        //}
465
+
466
+        /// <summary>
467
+        /// 转派
468
+        /// </summary>
469
+        /// <param name="woid"></param>
470
+        /// <returns></returns>
471
+        public ActionResult AssignWo(int woid,string transMestr)
472
+        {
473
+            string usercode = "8001";
474
+            string transperson = "";
475
+            string transcodestr = "";
476
+            var ua = userbll.GetModel(usercode);
477
+            if (woid == 0)
478
+                return Error("工单编号错误!");
479
+            var omodel = orderbll.GetModel(woid);
480
+            if (omodel != null)
481
+            {
482
+                if (transMestr == "")
483
+                    return Error("转运人的信息不能为空!");
484
+                string[] _list = transMestr.TrimEnd(',').Split(',');
485
+                for (int i = 0; i < _list.Length; i++)
486
+                {
487
+                    string[] _temp = _list[i].Split('|');
488
+                    string code = _temp[0];
489
+                    string phon = _temp[1];
490
+                    string talkie = _temp[2];
491
+                    string name = "";                 
492
+                    if (code != "" && phon !="")
493
+                    {
494
+                        try { name = userbll.GetModel(code).F_UserName; }
495
+                        catch { return Error("转运人信息不正确"); }
496
+                        bool n = AssignTrans(ua, omodel, "", code, phon,talkie);
497
+                        if (n)
498
+                        {
499
+                            transperson = string.IsNullOrEmpty(transperson)? name + "(" + code + ")" : transperson+ ","  + name + "(" + code + ")";
500
+                            transcodestr = string.IsNullOrEmpty(transcodestr) ? code : transcodestr + "," + code;
501
+                            continue;
502
+                        }
503
+                    }
504
+                    else return Error("转运人编号和手机号不能为空!");
505
+                }
506
+                omodel.F_ControlManCode = ua.F_UserCode;//调度人
507
+                omodel.F_ControlManName = ua.F_UserName;
508
+                omodel.F_TransPersonCode = transcodestr;//转派人编码字符串
509
+                omodel.F_TransPerson = transperson;  
510
+                omodel.F_State= (int)EnumMatWorkOrderState.assign;//已指派待查收
511
+                if (orderbll.Update(omodel))
512
+                    return Success("转派成功!");
513
+                else return Error("转派失败!");
514
+            }
515
+            return Error("转派失败,不存在此工单编号!");
516
+        }
517
+
518
+        /// <summary>
519
+        /// 添加工单记录
520
+        /// </summary>
521
+        public long AddLogTrans(int woid, int wostate, string content, int itemtype, int opttype, string nextuser,string nextusername, string nextuserphon, string nextusertalkie, int nextdept, Model.T_Sys_UserAccount nowUser, int F_IsUsed = 0)
522
+        {
523
+
524
+            Model.T_Mat_WorkOrderItem itemModel = new Model.T_Mat_WorkOrderItem();
525
+            #region 
526
+            //处理当前工单的记录之前的记录过期
527
+            var itemlast = itembll.GetModelList(" isnull(F_IsUsed,'0')='0' and F_ItemType=" + itemtype + " and  F_WoID=" + woid +"");
528
+            if (F_IsUsed == 0)
529
+            {
530
+
531
+                if (itemlast.Count > 0)
532
+                {
533
+                    foreach (var it in itemlast)
534
+                    {
535
+                        it.F_IsUsed = 1;
536
+                        itembll.Update(it);
537
+                    }
538
+                }
539
+            }
540
+            #endregion
541
+            itemModel.F_WoID = woid;
542
+            itemModel.F_WoState = wostate;
543
+            itemModel.F_ItemType = itemtype;
544
+            itemModel.F_OptType = opttype;
545
+            itemModel.F_OptContent = content;
546
+            itemModel.F_NextUser = nextuser;
547
+            itemModel.F_NextUserName = nextusername;
548
+            itemModel.F_NextUserTalkie = nextusertalkie;
549
+            itemModel.F_NexUserPhon = nextuserphon;
550
+            itemModel.F_NextDept = nextdept;
551
+            itemModel.F_IsUsed = F_IsUsed;
552
+            itemModel.F_CreateTime = DateTime.Now;
553
+            itemModel.F_CreateUser = nowUser.F_UserCode;
554
+            var res = itembll.Add(itemModel);
555
+            return res;
556
+        }
557
+        /// <summary>
558
+        /// 转派工单
559
+        /// </summary>
560
+        private bool AssignTrans(Model.T_Sys_UserAccount nowUser, Model.T_Mat_WorkOrder wokerModel, string cont, string usercode,string userphon, string usertalkie)
561
+        {
562
+            string touser = ""; string tousername = "";
563
+            int clbm = 0;
564
+            Model.T_Sys_UserAccount clus = new Model.T_Sys_UserAccount();
565
+            #region 获取接收人
566
+            if (usercode != "")
567
+            {
568
+                clus = userbll.GetModel(usercode);
569
+                clbm = clus.F_DeptId;
570
+                if (clus != null)
571
+                {
572
+                    touser = clus.F_UserCode;
573
+                    tousername = clus.F_UserName + "(" + clus.F_UserCode + ")";
574
+                }
575
+            }
576
+            #endregion
577
+            #region 工单处理
578
+            var opt = "指派";
579
+            int optbut = 0;
580
+            int wostate = 0;
581
+            string content = "";
582
+            long itemid = 0;
583
+            var optcont = "";
584
+            if (!string.IsNullOrEmpty(cont))
585
+                optcont = ",说明:" + cont;
586
+            optbut = (int)EnumMatItemOpt.assign;
587
+            wostate = (int)EnumMatWorkOrderState.assign;//已指派待查收
588
+            content = nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt + "工单给 " + tousername + optcont;
589
+            itemid = AddLogTrans(wokerModel.F_Id, wostate, content, (int)EnumMatItemType.deal, optbut, touser, clus.F_UserName, userphon, usertalkie, clbm, nowUser);
590
+            #endregion
591
+            if (itemid > 0)
592
+            {
593
+                return true;
594
+            }
595
+            else return false;
596
+
597
+        }
598
+
599
+
600
+        /// <summary>
601
+        /// 工单查收
602
+        /// </summary>
603
+        /// <param name="woid"></param>
604
+        /// <returns></returns>
605
+        public ActionResult SureWo(int woid)
606
+        {
607
+            string uacode = "8008";
608
+            int state = 0;
609
+            var ua = userbll.GetModel(uacode);
610
+            if (woid == 0)
611
+                return Error("工单编号错误!");
612
+            var omodel = orderbll.GetModel(woid);
613
+            if (omodel != null)
614
+            {
615
+                if (DealWO(ua, omodel, "", "", 1))
616
+                    return Success("操作成功,请尽快处理工单!");
617
+                else return Error("工单操作失败!");
618
+            }
619
+            return Error("操作失败,不存在此工单编号!");
620
+        }
621
+
622
+
623
+
624
+        /// <summary>
625
+        /// 工单处理
626
+        /// </summary>
627
+        /// <param name="woid"></param>
628
+        /// <returns></returns>
629
+        public ActionResult DealWork(int woid)
13 630
         {
14
-            return View();
631
+            string uacode = "8008";
632
+            var ua = userbll.GetModel(uacode);
633
+            if (woid == 0)
634
+                return Error("工单编号错误!");
635
+            var omodel = orderbll.GetModel(woid);
636
+            if (omodel != null)
637
+            {
638
+                if (DealWO(ua, omodel, "", "", 2))
639
+                    return Success("操作成功,请尽快完成工单!");
640
+                else return Error("工单操作失败!");
641
+            }
642
+            return Error("操作失败,不存在此工单编号!");
15 643
         }
644
+
645
+
646
+        /// <summary>
647
+        /// 物资送达操作
648
+        /// </summary>
649
+        /// <param name="woid"></param>
650
+        /// <returns></returns>
651
+        public ActionResult ServiceWo(int woid)
652
+        {
653
+            string uacode = "8008";
654
+            var ua = userbll.GetModel(uacode);
655
+            if (woid == 0)
656
+                return Error("工单编号错误!");
657
+            var omodel = orderbll.GetModel(woid);
658
+            if (omodel != null)
659
+            {
660
+                if (DealWO(ua, omodel, "", "", 3))
661
+                    return Success("操作成功!");
662
+                else return Error("工单操作失败!");
663
+            }
664
+            return Error("操作失败,不存在此工单编号!");
665
+        }
666
+
667
+
668
+        /// <summary>
669
+        /// 完结工单
670
+        /// </summary>
671
+        /// <param name="woid"></param>
672
+        /// <returns></returns>
673
+        public ActionResult OverWo(int woid)
674
+        {
675
+            string usercode = "8005";
676
+            var ua = userbll.GetModel(usercode);
677
+            if (woid == 0)
678
+                return Error("工单编号错误!");
679
+            var omodel = orderbll.GetModel(woid);
680
+            if (omodel != null)
681
+            {
682
+                if (omodel.F_CreateCode != usercode)
683
+                    return Error("无操作权限!");
684
+                if (DealWO(ua, omodel, "", "", 6))
685
+                    return Success("操作成功!");
686
+                else return Error("操作失败!");
687
+            }
688
+            return Error("操作失败,不存在此工单编号!");
689
+        }
690
+
691
+
692
+        /// <summary>
693
+        /// 处理工单
694
+        /// </summary>
695
+        /// <param name="nowUser"></param>
696
+        /// <param name="model"></param>
697
+        /// <param name="cont"></param>
698
+        /// <param name="F_Files"></param>
699
+        /// <param name="isover"></param>
700
+        /// <returns></returns>
701
+        public bool DealWO(Model.T_Sys_UserAccount nowUser, Model.T_Mat_WorkOrder model, string cont, string F_Files = "", int type = 1)
702
+        {
703
+            #region 工单处理
704
+
705
+            var opt = "";
706
+            int optbut = 0;
707
+            int wostate = 0;
708
+            string[] transcode = { };
709
+            var fmodel = new Model.T_Dev_WorkOrder();
710
+            if (type == 1)
711
+            {
712
+                opt = "查收工单";
713
+                optbut = (int)EnumMatItemOpt.receive;//查收
714
+            }
715
+            if (type == 2)
716
+            {
717
+                opt = "处理工单";
718
+                optbut = (int)EnumMatItemOpt.deal;//处理
719
+            }
720
+            if (type == 3)
721
+            {
722
+                opt = "物资已送达";
723
+                optbut = (int)EnumMatItemOpt.send;
724
+            }
725
+            //if (type == 5)
726
+            //{
727
+            //    opt = "异常结束工单";
728
+            //    optbut = (int)EnumDevItemOpt.abreback;
729
+            //    wostate = (int)EnumDevWorkOrderState.abreback;//异常结束
730
+            //}
731
+            if (type == 6)
732
+            {
733
+                opt = "完结工单";
734
+                optbut = (int)EnumMatItemOpt.end;
735
+                wostate = (int)EnumMatWorkOrderState.finish;//已完结
736
+            }
737
+            //#region 读取当前登录人部门
738
+            //string deptname = "";
739
+            //var deptmodel = deptbll.GetModel(nowUser.F_DeptId);
740
+            //if (deptmodel != null)
741
+            //{
742
+            //    deptname = deptmodel.F_DeptName + "-";
743
+            //}
744
+            //#endregion
745
+            var optcont = "";
746
+            if (!string.IsNullOrEmpty(cont))
747
+                optcont = ",说明:" + cont;
748
+            var content = nowUser.F_UserName + "(" + nowUser.F_UserCode + ")" + opt + optcont;
749
+            var itemid = AddLog(model.F_Id, (int)model.F_State, content, (int)EnumDevItemType.deal, optbut, "", 0, nowUser);
750
+            if (itemid > 0)
751
+            {
752
+                #region 判断工单的状态
753
+                if (!string.IsNullOrEmpty(model.F_TransPersonCode)&&type==1 || type == 2|| type == 3)
754
+                {
755
+                    int i = 0;
756
+                    transcode = model.F_TransPersonCode.Split(',');
757
+                    foreach (var item in transcode)
758
+                    {
759
+                        if (type == 1)
760
+                        {
761
+                            if (itembll.GetModelList(" F_WoID="+ model.F_Id+ " and F_OptType=2 and F_CreateUser=" + item.ToString() + "").FirstOrDefault() != null)
762
+                                i++;
763
+                        }
764
+                        else if (type == 2)
765
+                        {
766
+                            if (itembll.GetModelList(" F_WoID=" + model.F_Id + " and F_OptType=3 and F_CreateUser=" + item.ToString() + "").FirstOrDefault() != null)
767
+                                i++;
768
+                        }
769
+                        else if (type == 3)
770
+                        {
771
+                            if (itembll.GetModelList(" F_WoID=" + model.F_Id + " and F_OptType=4 and F_CreateUser=" + item.ToString() + "").FirstOrDefault() != null)
772
+                                i++;
773
+                        }
774
+                    }
775
+                    if (i == transcode.Count())
776
+                    {
777
+                        if (type == 1)
778
+                        {
779
+                            wostate = (int)EnumMatWorkOrderState.receive;//已查收待处理
780
+                        }
781
+                        else if (type == 2)
782
+                        {
783
+                            wostate = (int)EnumMatWorkOrderState.dealing;//处理中
784
+                        }
785
+                        else if (type == 3)
786
+                        {
787
+                            wostate = (int)EnumMatWorkOrderState.send;//已送达
788
+                        }
789
+                    }
790
+                    else
791
+                    {
792
+                        wostate = (int)model.F_State;//工单状态不变
793
+                    }
794
+
795
+                }
796
+                #endregion
797
+                #region 处理工单            
798
+                model.F_State = wostate;
799
+                if (type == 6)
800
+                {
801
+                    model.F_FinishTime = DateTime.Now;
802
+                }
803
+                orderbll.Update(model);
804
+                #endregion
805
+                return true;
806
+            }
807
+            else
808
+                return false;
809
+            #endregion
810
+        }
811
+
812
+
813
+        /// <summary>
814
+        /// 删除
815
+        /// </summary>
816
+        /// <param name="ids"></param>
817
+        /// <returns></returns>
818
+        public ActionResult DelWorkOrder(string[] ids)
819
+        {
820
+            string usercode = User.F_UserCode;
821
+            if (usercode != "")
822
+            {
823
+                if (ids != null && ids.Length > 0)
824
+                {
825
+                    string strid = "";
826
+                    foreach (string str in ids)
827
+                    {
828
+                        strid += str + ",";
829
+                    }
830
+                    if (orderbll.CustomDelete(strid, usercode))
831
+                    {
832
+                        return Success("删除成功!");
833
+                    }
834
+                    else return Error("删除失败!");
835
+                }
836
+                return Error("请选择要删除的记录!");
837
+
838
+            }
839
+            return Error("无操作权限!");
840
+        }
841
+
842
+
16 843
     }
17 844
 }

+ 90 - 0
RMYY_CallCenter_Api/Models/Enum/EnumMatWorkOrderState.cs

@@ -0,0 +1,90 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.ComponentModel;
4
+using System.Linq;
5
+using System.Web;
6
+
7
+namespace RMYY_CallCenter_Api.Models.Enum
8
+{
9
+    /// <summary>
10
+    /// 工单状态枚举
11
+    /// </summary>
12
+    public enum EnumMatWorkOrderState
13
+    {
14
+        [Description("新工单待指派")]
15
+        neworder,
16
+        [Description("已指派待接单")]
17
+        assign,
18
+        [Description("已查收待处理")]
19
+        receive,
20
+        //[Description("已退回待处理")]
21
+        //reback,
22
+        //[Description("异常退回待接单")]
23
+        //abreback,
24
+        [Description("处理中")]
25
+        dealing,
26
+        [Description("已送达")]
27
+        send,
28
+        [Description("已处理待回访")]
29
+        dealed,
30
+        [Description("已回访待完结")]
31
+        visit,
32
+        [Description("已完结")]
33
+        finish = 10,
34
+        [Description("已评价")]
35
+        evaluate,
36
+        //[Description("已退回待指派")]
37
+        //reassign,
38
+
39
+    }
40
+
41
+    /// <summary>
42
+    /// 工单记录类型枚举
43
+    /// </summary>
44
+    public enum EnumMatItemType
45
+    {
46
+        [Description("办理")]
47
+        deal = 1,
48
+        [Description("催办")]
49
+        urge = 2,
50
+        [Description("评价")]
51
+        evaluate = 3,
52
+        [Description("修改")]
53
+        update = 4,
54
+        [Description("删除")]
55
+        delete = 5,
56
+        [Description("回访")]
57
+        visit = 6,
58
+        [Description("审批")]
59
+        audit = 7,
60
+        [Description("延期")]
61
+        Delay = 8,
62
+    }
63
+    /// <summary>
64
+    /// 工单记录操作
65
+    /// </summary>
66
+    public enum EnumMatItemOpt
67
+    {
68
+        [Description("添加")]
69
+        create,
70
+        [Description("指派")]
71
+        assign,
72
+        [Description("查收")]
73
+        receive,
74
+        [Description("处理")]
75
+        deal,
76
+        [Description("送达")]
77
+        send,       
78
+        [Description("处理完结")]
79
+        end,
80
+        [Description("评价")]
81
+        evaluate,
82
+        [Description("修改")]
83
+        update,
84
+        [Description("删除")]
85
+        delete
86
+
87
+    }
88
+
89
+
90
+}

+ 1 - 0
RMYY_CallCenter_Api/RMYY_CallCenter_Api.csproj

@@ -149,6 +149,7 @@
149 149
       <DependentUpon>Global.asax</DependentUpon>
150 150
     </Compile>
151 151
     <Compile Include="Models\Enum\EnumDevWorkOrderState.cs" />
152
+    <Compile Include="Models\Enum\EnumMatWorkOrderState.cs" />
152 153
     <Compile Include="Models\Enum\EnumWorkOrderState.cs" />
153 154
     <Compile Include="Models\Filter\FilterCategory.cs" />
154 155
     <Compile Include="Models\Filter\FilterDictionary.cs" />