|
|
@@ -1,4 +1,5 @@
|
|
1
|
1
|
using RMYY_CallCenter_Api.DB;
|
|
|
2
|
+using RMYY_CallCenter_Api.Model;
|
|
2
|
3
|
using RMYY_CallCenter_Api.Models;
|
|
3
|
4
|
using RMYY_CallCenter_Api.Models.Enum;
|
|
4
|
5
|
using RMYY_CallCenter_Api.Models.Input;
|
|
|
@@ -10,6 +11,7 @@ using System.Data;
|
|
10
|
11
|
using System.IO;
|
|
11
|
12
|
using System.Linq;
|
|
12
|
13
|
using System.Reflection;
|
|
|
14
|
+using System.Text;
|
|
13
|
15
|
using System.Web;
|
|
14
|
16
|
using System.Web.Mvc;
|
|
15
|
17
|
|
|
|
@@ -31,6 +33,8 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
31
|
33
|
private BLL.T_Wo_CommonBase cbbll = new BLL.T_Wo_CommonBase();
|
|
32
|
34
|
private Bll.T_Con_WorkOrder cwbll = new Bll.T_Con_WorkOrder();
|
|
33
|
35
|
private Bll.AddLogBll Addlogbll = new Bll.AddLogBll();
|
|
|
36
|
+
|
|
|
37
|
+ private static InternalMessagesController msg = new InternalMessagesController();
|
|
34
|
38
|
public DataTable GetFileData(string ids, string prefix)
|
|
35
|
39
|
{
|
|
36
|
40
|
DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
|
|
|
@@ -128,7 +132,13 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
128
|
132
|
model.F_PlaceOfRepair = input.PlaceOfRepair;
|
|
129
|
133
|
model.F_File = input.File;
|
|
130
|
134
|
model.F_WorkOrderCode = DateTime.Now.ToString("yyyyMMddHHmmssfff");//工单编号
|
|
131
|
|
-
|
|
|
135
|
+ string message = "";
|
|
|
136
|
+ var dicvalue = new Model.T_Sys_GongDan();
|
|
|
137
|
+ dicvalue = new Bll.T_Sys_GongDan().GetModel(Convert.ToInt32(model.F_WorkOrderCategory));
|
|
|
138
|
+ if (dicvalue != null)
|
|
|
139
|
+ {
|
|
|
140
|
+ message = ",工单类型:故障报修/" + dicvalue.F_Name;
|
|
|
141
|
+ }
|
|
132
|
142
|
if (input.IsEnd == 1)
|
|
133
|
143
|
{
|
|
134
|
144
|
model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.finish;
|
|
|
@@ -149,6 +159,10 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
149
|
159
|
List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_GDId='" + model.F_WorkOrderCategory + "'");
|
|
150
|
160
|
int timeout = listgd.First().F_TimeOut;
|
|
151
|
161
|
model.F_Deadline = DateTime.Now.AddHours(timeout);
|
|
|
162
|
+
|
|
|
163
|
+
|
|
|
164
|
+ msg.AddInternalMessagesInfo("您有新的工单请及时查收", "您有新的工单请及时查收" + "工单编号:" + model.F_WorkOrderCode + message, model.F_Maintenancer, User.F_UserCode, EnumSmsType.repair
|
|
|
165
|
+ , 0, model.F_WorkOrderCode);
|
|
152
|
166
|
}
|
|
153
|
167
|
else
|
|
154
|
168
|
{
|
|
|
@@ -162,6 +176,9 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
162
|
176
|
List<Model.T_Sys_GongDan> listgd = gdbll.GetModelList(" F_GDId='" + model.F_WorkOrderCategory + "'");
|
|
163
|
177
|
int timeout = listgd.First().F_TimeOut;
|
|
164
|
178
|
model.F_Deadline = DateTime.Now.AddHours(timeout);
|
|
|
179
|
+
|
|
|
180
|
+ msg.AddInternalMessagesInfo("您有新的工单请及时查收", "您有新的工单请及时查收" + "工单编号:" + model.F_WorkOrderCode + message, model.F_Maintenancer, User.F_UserCode, EnumSmsType.repair
|
|
|
181
|
+ , 0, model.F_WorkOrderCode);
|
|
165
|
182
|
}
|
|
166
|
183
|
else
|
|
167
|
184
|
{
|
|
|
@@ -232,6 +249,20 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
232
|
249
|
}
|
|
233
|
250
|
model.F_ReplayCount = 0;
|
|
234
|
251
|
int returnid = baseBll.Add(model);
|
|
|
252
|
+ if (User.F_RoleCode != "DDZX" && model.F_WorkOrderState == 0)
|
|
|
253
|
+ {
|
|
|
254
|
+ //新工单提醒发给调度中心值班的人
|
|
|
255
|
+ // 根据排班信息 获取当前调度中心值班的人
|
|
|
256
|
+ string tousercode = GetDDZXBeOnDuty();
|
|
|
257
|
+ if (!string.IsNullOrEmpty(tousercode))
|
|
|
258
|
+ {
|
|
|
259
|
+
|
|
|
260
|
+ msg.AddInternalMessagesInfo("您有新的工单请及时查收", "您有新的工单请及时查收" + "工单编号:" + model.F_WorkOrderCode + message, tousercode, User.F_UserCode, EnumSmsType.repair
|
|
|
261
|
+ , 0, model.F_WorkOrderCode);
|
|
|
262
|
+ }
|
|
|
263
|
+
|
|
|
264
|
+ }
|
|
|
265
|
+
|
|
235
|
266
|
if (returnid > 0)
|
|
236
|
267
|
{
|
|
237
|
268
|
AddAddlog(model.F_WorkOrderCode);
|
|
|
@@ -251,7 +282,23 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
251
|
282
|
|
|
252
|
283
|
}
|
|
253
|
284
|
|
|
|
285
|
+ private string GetDDZXBeOnDuty()
|
|
|
286
|
+ {
|
|
|
287
|
+ List<string> user = new List<string>();
|
|
|
288
|
+
|
|
254
|
289
|
|
|
|
290
|
+ var GroupClass = new Bll.T_Sys_GroupClass().GetModelList("F_IsDelete=0 and datediff(day , F_Date , getdate())= 0 " +
|
|
|
291
|
+ "and F_DeptId= ( select F_DeptId from T_Sys_Department where F_deptcode='ZHDDZX') order by F_Id asc");
|
|
|
292
|
+ if (GroupClass != null && GroupClass.Count > 0)
|
|
|
293
|
+ {
|
|
|
294
|
+ return GroupClass[0].F_UserCode;
|
|
|
295
|
+ }
|
|
|
296
|
+ else
|
|
|
297
|
+ {
|
|
|
298
|
+ return "";
|
|
|
299
|
+ }
|
|
|
300
|
+
|
|
|
301
|
+ }
|
|
255
|
302
|
|
|
256
|
303
|
|
|
257
|
304
|
//综合保障中心编辑工单
|
|
|
@@ -383,7 +430,7 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
383
|
430
|
return Error("工单不存在!");
|
|
384
|
431
|
}
|
|
385
|
432
|
|
|
386
|
|
- //退单
|
|
|
433
|
+ //处理人退单
|
|
387
|
434
|
public ActionResult BackWorkOrder(string WorkOrderCode, string BackReason)
|
|
388
|
435
|
{
|
|
389
|
436
|
Model.T_FaultRepair_Base model = baseBll.GetModel(WorkOrderCode);
|
|
|
@@ -391,6 +438,7 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
391
|
438
|
{
|
|
392
|
439
|
if (model.F_MaintenanceDept == User.F_DeptId.ToString())
|
|
393
|
440
|
{
|
|
|
441
|
+ string assignuser = model.F_AssignUser;
|
|
394
|
442
|
model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.neworder;
|
|
395
|
443
|
model.F_Maintenancer = "";
|
|
396
|
444
|
model.F_MaintenanceDept = "";
|
|
|
@@ -406,7 +454,9 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
406
|
454
|
s += ",退回原因:" + BackReason;
|
|
407
|
455
|
}
|
|
408
|
456
|
AddOperatorLog("退回了工单" + s, (int)EnumOperatorType.back, model.F_WorkOrderCode);
|
|
409
|
|
-
|
|
|
457
|
+ msg.AddInternalMessagesInfo("您有工单被退回", "您有工单被退回" + "工单编号:" + model.F_WorkOrderCode, assignuser
|
|
|
458
|
+ , User.F_UserCode, EnumSmsType.repair
|
|
|
459
|
+ , 0, model.F_WorkOrderCode);
|
|
410
|
460
|
|
|
411
|
461
|
|
|
412
|
462
|
return Success(" 退回成功!");
|
|
|
@@ -445,8 +495,6 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
445
|
495
|
//是返修的工单
|
|
446
|
496
|
if (dt != null && dt.Rows.Count > 0)
|
|
447
|
497
|
{
|
|
448
|
|
-
|
|
449
|
|
-
|
|
450
|
498
|
int procid = Convert.ToInt32(dt.Rows[0]["F_ProcessId"].ToString());
|
|
451
|
499
|
string updatesql = "UPDATE T_FaultRepair_Process set F_ProcessingTime=GETDATE() ,F_Result='" + Result + "' ,F_File='" + File + "',F_Maintenancer='" + User.F_UserCode + "',F_MaintenanceDept='" + User.F_DeptId + "',F_DealType='" + (int)EnumFaultRepairDealType.normal + "', F_IsInvolvedEquip='" + IsInvolvedEquip + "' where F_ProcessId='" + procid + "'";
|
|
452
|
500
|
int updateid = DbHelperSQL.ExecuteSql(updatesql);
|
|
|
@@ -468,6 +516,8 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
468
|
516
|
|
|
469
|
517
|
model.F_ConfirmEquip = 1;
|
|
470
|
518
|
promodelnew.F_EquipDetail = ids.Substring(0, ids.LastIndexOf(','));
|
|
|
519
|
+
|
|
|
520
|
+
|
|
471
|
521
|
dealBll.Update(promodelnew);
|
|
472
|
522
|
|
|
473
|
523
|
}
|
|
|
@@ -476,7 +526,8 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
476
|
526
|
if (updateid > 0)
|
|
477
|
527
|
{
|
|
478
|
528
|
baseBll.Update(model);
|
|
479
|
|
-
|
|
|
529
|
+ msg.AddInternalMessagesInfo("您提交的工单已处理完毕,请及时进行评价", "您提交的工单已处理完毕,请及时进行评价" + "工单编号:" + model.F_WorkOrderCode, model.F_Applicant, User.F_UserCode, EnumSmsType.repair
|
|
|
530
|
+ , 0, model.F_WorkOrderCode);
|
|
480
|
531
|
AddOperatorLog("完结了工单", (int)EnumOperatorType.dealed, WorkOrderCode);
|
|
481
|
532
|
return Success("处理完成");
|
|
482
|
533
|
}
|
|
|
@@ -524,6 +575,8 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
524
|
575
|
if (id > 0)
|
|
525
|
576
|
{
|
|
526
|
577
|
baseBll.Update(model);
|
|
|
578
|
+ msg.AddInternalMessagesInfo("您提交的工单已处理完毕,请及时进行评价", "您提交的工单已处理完毕,请及时进行评价" + "工单编号:" + model.F_WorkOrderCode, model.F_Applicant, User.F_UserCode, EnumSmsType.repair
|
|
|
579
|
+ , 0, model.F_WorkOrderCode);
|
|
527
|
580
|
AddOperatorLog("完结了工单", (int)EnumOperatorType.dealed, WorkOrderCode);
|
|
528
|
581
|
return Success("处理完成");
|
|
529
|
582
|
}
|
|
|
@@ -1052,7 +1105,7 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
1052
|
1105
|
case 0:
|
|
1053
|
1106
|
//基本信息
|
|
1054
|
1107
|
#region
|
|
1055
|
|
- string sql = "select *,[dbo].[GetUserName](F_Applicant) applicantname from T_FaultRepair_Base where F_WorkOrderCode='" + strworkorderid + "'";
|
|
|
1108
|
+ string sql = "select *,[dbo].[GetUserName](F_Applicant) applicantname , (select F_urgecount from [T_Wo_CommonBase] where F_WoCode='"+ strworkorderid + "') F_UrgeCount from T_FaultRepair_Base where F_WorkOrderCode='" + strworkorderid + "'";
|
|
1056
|
1109
|
DataTable dtbase = DbHelperSQL.Query(sql).Tables[0];
|
|
1057
|
1110
|
dtbase.Columns.Add("FileUrl", typeof(object));
|
|
1058
|
1111
|
dtbase.Columns.Add("StateName");
|
|
|
@@ -1290,6 +1343,8 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
1290
|
1343
|
AddOperatorLog("转派工单给" + GetDeptModel(model.F_MaintenanceDept) + "部门" + GetUserModel(ToUserCode), (int)EnumOperatorType.transfer, WorkOrderCode);
|
|
1291
|
1344
|
|
|
1292
|
1345
|
baseBll.Update(model);
|
|
|
1346
|
+
|
|
|
1347
|
+
|
|
1293
|
1348
|
return Success("转派成功");
|
|
1294
|
1349
|
}
|
|
1295
|
1350
|
else
|
|
|
@@ -1328,6 +1383,14 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
1328
|
1383
|
if (model != null)// && !string.IsNullOrEmpty(ToUserCode) && !string.IsNullOrEmpty(ToDept))
|
|
1329
|
1384
|
{
|
|
1330
|
1385
|
|
|
|
1386
|
+ string mes = "";
|
|
|
1387
|
+ var dicvalue = new Model.T_Sys_GongDan();
|
|
|
1388
|
+ dicvalue = new Bll.T_Sys_GongDan().GetModel(Convert.ToInt32(model.F_WorkOrderCategory));
|
|
|
1389
|
+ if (dicvalue != null)
|
|
|
1390
|
+ {
|
|
|
1391
|
+ mes = ",工单类型:故障报修/" + dicvalue.F_Name;
|
|
|
1392
|
+ }
|
|
|
1393
|
+
|
|
1331
|
1394
|
model.F_AssignUser = User.F_UserCode;
|
|
1332
|
1395
|
model.F_AssignTime = DateTime.Now;
|
|
1333
|
1396
|
|
|
|
@@ -1354,6 +1417,8 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
1354
|
1417
|
{
|
|
1355
|
1418
|
model.F_Maintenancer = ToUserCode;
|
|
1356
|
1419
|
message = "转派工单给" + GetDeptModel(ToDept) + "部门" + GetUserModel(ToUserCode);
|
|
|
1420
|
+ msg.AddInternalMessagesInfo("您有新的工单请及时查收", "您有新的工单请及时查收" + "工单编号:" + model.F_WorkOrderCode + mes, model.F_Maintenancer, User.F_UserCode, EnumSmsType.repair
|
|
|
1421
|
+ , 0, model.F_WorkOrderCode);
|
|
1357
|
1422
|
}
|
|
1358
|
1423
|
else
|
|
1359
|
1424
|
{
|
|
|
@@ -1373,7 +1438,10 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
1373
|
1438
|
if (user != null && user.Count > 1)
|
|
1374
|
1439
|
{
|
|
1375
|
1440
|
model.F_Maintenancer = user[0];
|
|
1376
|
|
- message = user[1];
|
|
|
1441
|
+ message = "转派工单给" + GetDeptModel(ToDept) + "部门" + GetUserModel(user[1]);
|
|
|
1442
|
+ msg.AddInternalMessagesInfo("您有新的工单请及时查收", "您有新的工单请及时查收" + "工单编号:" + model.F_WorkOrderCode + mes, model.F_Maintenancer, User.F_UserCode, EnumSmsType.repair
|
|
|
1443
|
+ , 0, model.F_WorkOrderCode);
|
|
|
1444
|
+
|
|
1377
|
1445
|
}
|
|
1378
|
1446
|
else
|
|
1379
|
1447
|
{
|
|
|
@@ -1740,12 +1808,19 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
1740
|
1808
|
model.F_Maintenancer = usercode;
|
|
1741
|
1809
|
}
|
|
1742
|
1810
|
|
|
1743
|
|
-
|
|
|
1811
|
+ string s = "";
|
|
|
1812
|
+ if (!string.IsNullOrEmpty(ReturnReason))
|
|
|
1813
|
+ {
|
|
|
1814
|
+ s = ",返修原因:" + ReturnReason;
|
|
|
1815
|
+ }
|
|
1744
|
1816
|
|
|
1745
|
1817
|
model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.dealing;
|
|
1746
|
1818
|
model.F_ReturnNum += model.F_ReturnNum + 1;
|
|
1747
|
1819
|
model.F_UpdateTime = DateTime.Now;
|
|
1748
|
1820
|
baseBll.Update(model);
|
|
|
1821
|
+
|
|
|
1822
|
+ msg.AddInternalMessagesInfo("您有需要返修的工单,请及时处理", "您有需要返修的工单,请及时处理" + "工单编号:" + model.F_WorkOrderCode+s, model.F_Maintenancer, User.F_UserCode, EnumSmsType.repair
|
|
|
1823
|
+ , 0, model.F_WorkOrderCode);
|
|
1749
|
1824
|
return Success("返工成功");
|
|
1750
|
1825
|
}
|
|
1751
|
1826
|
return Error("返工失败");
|
|
|
@@ -1789,6 +1864,12 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
1789
|
1864
|
baseBll.Update(model);
|
|
1790
|
1865
|
AddOperatorLog("评价了工单", (int)EnumOperatorType.evaluate, model.F_WorkOrderCode);
|
|
1791
|
1866
|
|
|
|
1867
|
+ if (model.F_Score <= 3)
|
|
|
1868
|
+ {
|
|
|
1869
|
+ msg.AddInternalMessagesInfo("您有工单被差评", "您有工单被差评" + "工单编号:" + model.F_WorkOrderCode + "差评原因:" + EvaluateContent, model.F_Maintenancer, User.F_UserCode, EnumSmsType.repair
|
|
|
1870
|
+ , 0, model.F_WorkOrderCode);
|
|
|
1871
|
+ }
|
|
|
1872
|
+
|
|
1792
|
1873
|
#region 评价的时候如果有协作工单,协作工单评价数据和主工单保持一致,同时需要记录操作流程
|
|
1793
|
1874
|
if (!string.IsNullOrEmpty(model.F_InternalWorkOrderCode))
|
|
1794
|
1875
|
{
|
|
|
@@ -1796,10 +1877,17 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
1796
|
1877
|
string[] codes = model.F_InternalWorkOrderCode.Split(',');
|
|
1797
|
1878
|
foreach (string item in codes)
|
|
1798
|
1879
|
{
|
|
|
1880
|
+ var intermodel = baseBll.GetModel(item);
|
|
1799
|
1881
|
Model.T_FaultRepair_Evaluate evamodel1 = new Model.T_FaultRepair_Evaluate();
|
|
1800
|
1882
|
evamodel1 = evamodel;
|
|
1801
|
1883
|
evamodel.F_WorkOrderCode = item;
|
|
1802
|
1884
|
evabll.Add(evamodel1);
|
|
|
1885
|
+ if (model.F_Score <= 3)
|
|
|
1886
|
+ {
|
|
|
1887
|
+ msg.AddInternalMessagesInfo("您有工单被差评", "您有工单被差评" + "工单编号:" + item + "差评原因:" + EvaluateContent, intermodel.F_Maintenancer, User.F_UserCode, EnumSmsType.repair
|
|
|
1888
|
+ , 0, item);
|
|
|
1889
|
+ }
|
|
|
1890
|
+
|
|
1803
|
1891
|
AddOperatorLog("评价了工单", (int)EnumOperatorType.evaluate, item);
|
|
1804
|
1892
|
}
|
|
1805
|
1893
|
}
|
|
|
@@ -1809,10 +1897,16 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
1809
|
1897
|
string[] codes = model.F_ExternalWorkOrderCode.Split(',');
|
|
1810
|
1898
|
foreach (string item in codes)
|
|
1811
|
1899
|
{
|
|
|
1900
|
+ var extmodel = baseBll.GetModel(item);
|
|
1812
|
1901
|
Model.T_FaultRepair_Evaluate evamodel1 = new Model.T_FaultRepair_Evaluate();
|
|
1813
|
1902
|
evamodel1 = evamodel;
|
|
1814
|
1903
|
evamodel.F_WorkOrderCode = item;
|
|
1815
|
1904
|
evabll.Add(evamodel1);
|
|
|
1905
|
+ if (model.F_Score <= 3)
|
|
|
1906
|
+ {
|
|
|
1907
|
+ msg.AddInternalMessagesInfo("您有工单被差评", "您有工单被差评" + "工单编号:" + item + "差评原因:" + EvaluateContent, extmodel.F_Maintenancer, User.F_UserCode, EnumSmsType.repair
|
|
|
1908
|
+ , 0, item);
|
|
|
1909
|
+ }
|
|
1816
|
1910
|
AddOperatorLog("评价了工单", (int)EnumOperatorType.evaluate, item);
|
|
1817
|
1911
|
}
|
|
1818
|
1912
|
}
|
|
|
@@ -2141,7 +2235,7 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
2141
|
2235
|
}
|
|
2142
|
2236
|
|
|
2143
|
2237
|
//调度中心 退回到提交人(工单状态gai为“待提交”)
|
|
2144
|
|
- public ActionResult ReBack(string workordercode)
|
|
|
2238
|
+ public ActionResult ReBack(string workordercode, string BackReason)
|
|
2145
|
2239
|
{
|
|
2146
|
2240
|
|
|
2147
|
2241
|
Model.T_FaultRepair_Base model = baseBll.GetModel(workordercode);
|
|
|
@@ -2152,15 +2246,23 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
2152
|
2246
|
model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.waitsubmit;
|
|
2153
|
2247
|
|
|
2154
|
2248
|
|
|
2155
|
|
-
|
|
|
2249
|
+ string s = "";
|
|
|
2250
|
+ if (!string.IsNullOrEmpty(BackReason))
|
|
|
2251
|
+ {
|
|
|
2252
|
+ s += ",退回原因:" + BackReason;
|
|
|
2253
|
+ }
|
|
2156
|
2254
|
baseBll.Update(model);
|
|
2157
|
|
- AddOperatorLog(User.F_UserName + "退回了工单", (int)EnumOperatorType.reback, model.F_WorkOrderCode);
|
|
|
2255
|
+ msg.AddInternalMessagesInfo("您有工单被退回", "您有工单被退回" + "工单编号:" + model.F_WorkOrderCode, model.F_Applicant
|
|
|
2256
|
+ , User.F_UserCode, EnumSmsType.repair
|
|
|
2257
|
+, 0, model.F_WorkOrderCode);
|
|
|
2258
|
+
|
|
|
2259
|
+ AddOperatorLog(User.F_UserName + "退回了工单"+s, (int)EnumOperatorType.reback, model.F_WorkOrderCode);
|
|
2158
|
2260
|
return Success("退回操作成功");
|
|
2159
|
2261
|
}
|
|
|
2262
|
+
|
|
2160
|
2263
|
|
|
2161
|
|
-
|
|
2162
|
|
- // 撤回(已指派未接单的可进行撤回,工单状态为“待指派”)
|
|
2163
|
|
- public ActionResult Retract(string workordercode)
|
|
|
2264
|
+ // 撤回(已指派未接单的可进行撤回,工单状态为“新工单0”)
|
|
|
2265
|
+ public ActionResult Retract(string workordercode, string BackReason)
|
|
2164
|
2266
|
{
|
|
2165
|
2267
|
|
|
2166
|
2268
|
Model.T_FaultRepair_Base model = baseBll.GetModel(workordercode);
|
|
|
@@ -2168,7 +2270,11 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
2168
|
2270
|
{
|
|
2169
|
2271
|
return Error("没有获取到工单号");
|
|
2170
|
2272
|
}
|
|
2171
|
|
-
|
|
|
2273
|
+ string s = "";
|
|
|
2274
|
+ if (!string.IsNullOrEmpty(BackReason))
|
|
|
2275
|
+ {
|
|
|
2276
|
+ s += ",撤回原因:" + BackReason;
|
|
|
2277
|
+ }
|
|
2172
|
2278
|
model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.neworder;
|
|
2173
|
2279
|
model.F_Maintenancer = "";
|
|
2174
|
2280
|
model.F_MaintenanceDept = "";
|
|
|
@@ -2178,7 +2284,7 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
2178
|
2284
|
model.F_Deadline = null;
|
|
2179
|
2285
|
|
|
2180
|
2286
|
baseBll.Update(model);
|
|
2181
|
|
- AddOperatorLog(User.F_UserName + "撤回了工单", (int)EnumOperatorType.retract, model.F_WorkOrderCode);
|
|
|
2287
|
+ AddOperatorLog(User.F_UserName + "撤回了工单"+s, (int)EnumOperatorType.retract, model.F_WorkOrderCode);
|
|
2182
|
2288
|
return Success("撤回操作成功");
|
|
2183
|
2289
|
}
|
|
2184
|
2290
|
|
|
|
@@ -2226,7 +2332,7 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
2226
|
2332
|
#region 我的提交页面的操作
|
|
2227
|
2333
|
|
|
2228
|
2334
|
//申请人撤回(未指派的工单可撤回,工单状态“待提交”)
|
|
2229
|
|
- public ActionResult MyRetract(string workordercode)
|
|
|
2335
|
+ public ActionResult MyRetract(string workordercode,string BackReason)
|
|
2230
|
2336
|
{
|
|
2231
|
2337
|
|
|
2232
|
2338
|
Model.T_FaultRepair_Base model = baseBll.GetModel(workordercode);
|
|
|
@@ -2236,9 +2342,14 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
2236
|
2342
|
}
|
|
2237
|
2343
|
if (model.F_WorkOrderState == 0)
|
|
2238
|
2344
|
{
|
|
|
2345
|
+ string s = "";
|
|
|
2346
|
+ if (!string.IsNullOrEmpty(BackReason))
|
|
|
2347
|
+ {
|
|
|
2348
|
+ s += ",撤回原因:" + BackReason;
|
|
|
2349
|
+ }
|
|
2239
|
2350
|
model.F_WorkOrderState = (int)EnumFaultRepairWorkOrderState.waitsubmit;
|
|
2240
|
2351
|
baseBll.Update(model);
|
|
2241
|
|
- AddOperatorLog(User.F_UserName + "撤回了工单", (int)EnumOperatorType.myretract, model.F_WorkOrderCode);
|
|
|
2352
|
+ AddOperatorLog(User.F_UserName + "撤回了工单"+s, (int)EnumOperatorType.myretract, model.F_WorkOrderCode);
|
|
2242
|
2353
|
return Success("撤回操作成功");
|
|
2243
|
2354
|
|
|
2244
|
2355
|
}
|
|
|
@@ -2364,6 +2475,72 @@ namespace RMYY_CallCenter_Api.Controllers
|
|
2364
|
2475
|
}
|
|
2365
|
2476
|
|
|
2366
|
2477
|
|
|
|
2478
|
+ //发送超时未接单的消
|
|
|
2479
|
+ //20222031更正为:即将超时 距离截止日期还有十分钟 还未接单的发消息给组长
|
|
|
2480
|
+ public ActionResult AutoSendOverTimeMsg()
|
|
|
2481
|
+ {
|
|
|
2482
|
+ string sql = " select F_Deadline,F_WorkOrderState, * from T_FaultRepair_Base where F_WorkOrderState=1 and DATEDIFF(mi, GETDATE(), F_Deadline)< 10 and DATEDIFF(mi, GETDATE(), F_Deadline)> 0";
|
|
|
2483
|
+ DataTable dt = DbHelperSQL.Query(sql).Tables[0];
|
|
|
2484
|
+ if (dt != null && dt.Rows.Count > 0)
|
|
|
2485
|
+ {
|
|
|
2486
|
+ foreach (DataRow item in dt.Rows)
|
|
|
2487
|
+ {
|
|
|
2488
|
+ //根据处理部门获取班组长 WXBZZ
|
|
|
2489
|
+ var dtuser = DbHelperSQL.Query(" select top 1 F_usercode from T_Sys_UserAccount where F_DeptId='' and F_RoleId=(select F_roleid from T_Sys_Role where F_RoleCode='WXBZZ')").Tables[0];
|
|
|
2490
|
+
|
|
|
2491
|
+ if (dtuser != null && dtuser.Rows.Count > 0)
|
|
|
2492
|
+ {
|
|
|
2493
|
+ string message = "";
|
|
|
2494
|
+ var dicvalue = new Model.T_Sys_GongDan();
|
|
|
2495
|
+ dicvalue = new Bll.T_Sys_GongDan().GetModel(Convert.ToInt32(item["F_WorkOrderCategory"].ToString()));
|
|
|
2496
|
+ if (dicvalue != null)
|
|
|
2497
|
+ {
|
|
|
2498
|
+ message = ",工单类型:故障报修/" + dicvalue.F_Name;
|
|
|
2499
|
+ }
|
|
|
2500
|
+ message += ",报修科室:" + GetParentDeptName(Convert.ToInt32( item["F_ApplicationDept"].ToString()));
|
|
|
2501
|
+ message += ",工单内容:" + item["F_Content"].ToString();
|
|
|
2502
|
+ message += ",相关人员:" + GetUserModel(item["F_Maintenancer"].ToString());
|
|
|
2503
|
+
|
|
|
2504
|
+ msg.AddInternalMessagesInfo("您部门下有工单即将超时未接单", "您部门下有工单即将超时未接单" + "工单编号:" + item["F_WorkOrderCode"].ToString(), dtuser.Rows[0]["F_usercode"].ToString(), User.F_UserCode, EnumSmsType.repair
|
|
|
2505
|
+ , 0, item["F_WorkOrderCode"].ToString());
|
|
|
2506
|
+ }
|
|
|
2507
|
+ }
|
|
|
2508
|
+
|
|
|
2509
|
+
|
|
|
2510
|
+
|
|
|
2511
|
+ }
|
|
|
2512
|
+
|
|
|
2513
|
+ return Success("发送超时未接单的消息成功");
|
|
|
2514
|
+ }
|
|
|
2515
|
+
|
|
|
2516
|
+
|
|
|
2517
|
+ StringBuilder returnname = new StringBuilder();
|
|
|
2518
|
+
|
|
|
2519
|
+ [AllowAnonymous]
|
|
|
2520
|
+
|
|
|
2521
|
+ public string GetParentDeptName(int deptid)
|
|
|
2522
|
+ {
|
|
|
2523
|
+ var model = departmentBLL.GetModel(deptid);
|
|
|
2524
|
+ if (model != null)
|
|
|
2525
|
+ {
|
|
|
2526
|
+ returnname.Insert(0, model.F_DeptName);
|
|
|
2527
|
+ returnname.Insert(0, "/");
|
|
|
2528
|
+ if (model.F_ParentId != 0)
|
|
|
2529
|
+ {
|
|
|
2530
|
+ GetParentDeptName(model.F_ParentId.Value);
|
|
|
2531
|
+ }
|
|
|
2532
|
+ if (model.F_ParentId == 0)
|
|
|
2533
|
+ {
|
|
|
2534
|
+ string sql = " select T_Woname from T_Wowo_repairyq where T_Woid='" + model.T_Woid + "'";
|
|
|
2535
|
+ string yqname= DbHelperSQL.GetSingle(sql).ToString();
|
|
|
2536
|
+ returnname.Insert(0, yqname);
|
|
|
2537
|
+ }
|
|
|
2538
|
+
|
|
|
2539
|
+
|
|
|
2540
|
+ }
|
|
|
2541
|
+ return returnname.ToString();
|
|
|
2542
|
+ }
|
|
2367
|
2543
|
|
|
|
2544
|
+
|
|
2368
|
2545
|
}
|
|
2369
|
2546
|
}
|