地铁二期项目正式开始

OrderController.cs 72KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Web;
  7. using System.Web.Mvc;
  8. using YTSoft.BaseCallCenter.Model;
  9. using YTSoft.BaseCallCenter.MVCWeb.Models;
  10. using YTSoft.Common;
  11. namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
  12. {
  13. public class OrderController : BaseController
  14. {
  15. //工单信息
  16. BLL.T_Wo_WorkOrderBase orderBLL = new BLL.T_Wo_WorkOrderBase();
  17. //客户信息
  18. BLL.T_Cus_CustomerBase cusBLL = new BLL.T_Cus_CustomerBase();
  19. //部门表
  20. BLL.T_Sys_Department deptBll = new BLL.T_Sys_Department();
  21. //转单通知
  22. BLL.T_Wo_WorkOrderNotice noticeBLL = new BLL.T_Wo_WorkOrderNotice();
  23. //用户表
  24. BLL.T_Sys_UserAccount userBll = new BLL.T_Sys_UserAccount();
  25. //历史工单表
  26. BLL.T_Wo_WorkOrderHistory historyBll = new BLL.T_Wo_WorkOrderHistory();
  27. #region 待处理
  28. /// <summary>
  29. /// 获取待办工单 新
  30. /// </summary>
  31. /// <param name="dtype">工单类型 1、所有待办工单 2、代办结工单</param>
  32. /// <returns></returns>
  33. public ActionResult WorkOrderWaitList(int dtype)
  34. {
  35. WorkOrderMyModel model = new WorkOrderMyModel();
  36. model.DType = dtype;
  37. //业务类型字典表
  38. model.WorkOrderTypeModelList = GetWorkTypeModelList();
  39. //话务标志
  40. model.SeatFlag = F_SeatFlag;
  41. return View(model);
  42. }
  43. /// <summary>
  44. /// 我的待办工单
  45. /// </summary>
  46. /// <param name="page">当前页码</param>
  47. /// <param name="limit">每页数据量</param>
  48. /// <param name="sqlWhere">查询条件</param>
  49. /// <returns></returns>
  50. [ActionName("WorkOrderMyWaitData")]
  51. [HttpGet]
  52. public string WorkOrderMyWaitData(DateTime? NowDateTime, int page, int limit, int? types, string dateParty,
  53. string workorderNum, string cusName, string phoneNumber,
  54. string userInfo, int? bussType, int? detailType, string Content)
  55. {
  56. //数据结果集
  57. ResponseData dataModel = new ResponseData();
  58. //F_FILEFLAG 业务类型ID
  59. //F_WORKORDERSTATEID 0未处理 1处理中 2已办结 status
  60. //F_WORKORDERTYPEID 处理方式 1转单 3客服处理 GoType
  61. //F_REPAIRMANID 接入渠道 1语音 2留言 3微信 4微博 FromType
  62. string sql = string.Format(" and F_WORKORDERTYPEID=1 and F_WORKORDERSTATEID=1 and F_WORKORDERID in (select F_INSTANCEID from T_Wo_WorkOrderHistory where F_WORKORDERSTATEID=0 and F_OPTUSERID={0})", F_UserID);
  63. //工单编号
  64. if (!string.IsNullOrEmpty(workorderNum))
  65. {
  66. sql += " and F_CODE like '%" + workorderNum.Trim() + "%'";
  67. }
  68. //客户姓名
  69. if (!string.IsNullOrEmpty(cusName))
  70. {
  71. sql += " and F_CUSTOMERNAME like '%" + cusName.Trim() + "%'";
  72. }
  73. //客户电话
  74. if (!string.IsNullOrEmpty(phoneNumber))
  75. {
  76. sql += " and F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'";
  77. }
  78. //坐席工号
  79. if (!string.IsNullOrEmpty(userInfo))
  80. {
  81. sql += " and F_LINKMAN like '%" + userInfo.Trim() + "%'";
  82. }
  83. //业务类别
  84. if (bussType != null && bussType > 0)
  85. {
  86. sql += " and F_FILEFLAG =" + bussType;
  87. }
  88. //业务类型
  89. if (detailType != null && detailType > 0)
  90. {
  91. sql += " and F_REPAIRLEVEL =" + detailType;
  92. }
  93. //内容
  94. if (!string.IsNullOrEmpty(Content))
  95. {
  96. sql += " and F_CONTENT like '%" + Content.Trim() + "%'";
  97. }
  98. //查询按钮
  99. if (types == 0)
  100. {
  101. if (!string.IsNullOrEmpty(dateParty))
  102. {
  103. string startDate = dateParty.Substring(0, 10);
  104. string endDate = dateParty.Substring(12);
  105. sql += " and F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  106. sql += " and F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  107. }
  108. }//一周按钮
  109. else if (types == 1)
  110. {
  111. string endDate = DateTime.Now.ToString();
  112. string startDate = DateTime.Now.AddDays(-7).ToString();
  113. sql += " and F_CREATEDATE>= '" + startDate + "'";
  114. sql += " and F_CREATEDATE<= '" + endDate + "'";
  115. }//一月按钮
  116. else if (types == 2)
  117. {
  118. string endDate = DateTime.Now.ToString();
  119. string startDate = DateTime.Now.AddMonths(-1).ToString();
  120. sql += " and F_CREATEDATE>= '" + startDate + "'";
  121. sql += " and F_CREATEDATE<= '" + endDate + "'";
  122. }//一年按钮
  123. else if (types == 3)
  124. {
  125. string endDate = DateTime.Now.ToString();
  126. string startDate = DateTime.Now.AddYears(-1).ToString();
  127. sql += " and F_CREATEDATE>= '" + startDate + "'";
  128. sql += " and F_CREATEDATE<= '" + endDate + "'";
  129. }
  130. DataTable dt = new DataTable();
  131. int recordCount = 0;
  132. Model.PageData<Model.T_Wo_WorkOrderBase> pageModel = new Model.PageData<Model.T_Wo_WorkOrderBase>();
  133. dt = BLL.PagerBLL.GetListPager(
  134. "T_Wo_WorkOrderBase",
  135. "F_WORKORDERID",
  136. "*,CONVERT(varchar,F_CREATEDATE, 120 ) as F_CREATEDATENew"
  137. + string.Format(",(select top 1 F_HISTORYID from T_Wo_WorkOrderHistory where F_INSTANCEID=F_WORKORDERID and F_WORKORDERSTATEID=0 and F_OPTUSERID={0} Order by F_OPTDATE desc) AS F_HISTORYID", F_UserID)
  138. + @" , replace(replace(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT FilePath FROM dbo.T_Call_CallRecords WHERE CallId=F_KSHADDRESSCODE AND FilePath!='') ELSE NULL END,'\','/'),'" + GetSysconfig("newFilePath") + "','" + GetSysconfig("newPlayPath") + "') as FilePath",
  139. //+ " ,(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT FilePath FROM dbo.T_Call_CallRecords WHERE CallId=F_KSHADDRESSCODE AND FilePath!='') ELSE NULL END ) as FilePath",
  140. sql,
  141. "ORDER BY F_CREATEDATE desc",
  142. limit,
  143. page,
  144. true,
  145. out recordCount);
  146. dataModel.code = 0;
  147. dataModel.count = recordCount;
  148. dataModel.data = dt;
  149. return JsonConvert.SerializeObject(dataModel);
  150. }
  151. /// <summary>
  152. /// 二级单位处理完成提交处理信息
  153. /// </summary>
  154. /// <param name="workOrderBaseModel"></param>
  155. /// <returns></returns>
  156. [AcceptVerbs(HttpVerbs.Post)]
  157. public bool SubmitOrder(T_Wo_WorkOrderHistory workOrderBaseModel)
  158. {
  159. AddAction("t_wo_workorderhistory", workOrderBaseModel.F_HISTORYID.ToMyString(), "提交工单", "数据:" + JsonConvert.SerializeObject(workOrderBaseModel), "关键信息");
  160. AddAction("t_wo_workorderhistory", workOrderBaseModel.F_HISTORYID.ToMyString(), "部门提交工单", workOrderBaseModel.F_INSTANCEID.ToMyString());
  161. return orderBLL.SubmitOrder(workOrderBaseModel);
  162. }
  163. #endregion
  164. #region 待回访
  165. /// <summary>
  166. /// 获取待回访工单
  167. /// </summary>
  168. /// <param name="dtype">工单类型 1、所有待办工单 2、代办结工单</param>
  169. /// <returns></returns>
  170. public ActionResult WorkOrderMyListHF(int dtype)
  171. {
  172. WorkOrderMyModel model = new WorkOrderMyModel();
  173. model.DType = dtype;
  174. //业务类型字典表
  175. model.WorkOrderTypeModelList = GetWorkTypeModelList();
  176. //话务标志
  177. model.SeatFlag = F_SeatFlag;
  178. return View(model);
  179. }
  180. /// <summary>
  181. /// 全媒体客服处理回访
  182. /// </summary>
  183. /// <param name="workOrderBaseModel"></param>
  184. /// <returns></returns>
  185. [AcceptVerbs(HttpVerbs.Post)]
  186. public bool SubmitOrderHF(T_Wo_WorkOrderBase workOrderBaseModel)
  187. {
  188. AddAction("t_wo_workorderbase", workOrderBaseModel.F_WORKORDERID.ToMyString(), "回访提交工单", workOrderBaseModel.F_CODE);
  189. AddAction("t_wo_workorderbase", workOrderBaseModel.F_WORKORDERID.ToMyString(), "回访提交工单", "数据:" + JsonConvert.SerializeObject(workOrderBaseModel), "关键信息");
  190. return orderBLL.SubmitOrderHF(workOrderBaseModel);
  191. }
  192. /// <summary>
  193. /// 待回访工单
  194. /// </summary>
  195. /// <param name="page">当前页码</param>
  196. /// <param name="limit">每页数据量</param>
  197. /// <param name="sqlWhere">查询条件</param>
  198. /// <returns></returns>
  199. [ActionName("WorkOrderMyDataHF")]
  200. [HttpGet]
  201. public string WorkOrderMyDataHF(DateTime? NowDateTime, int page, int limit, int? types, string dateParty,
  202. string workorderNum, string cusName, string phoneNumber,
  203. string userInfo, int? bussType, int? detailType, string Content)
  204. {
  205. //数据结果集
  206. ResponseData dataModel = new ResponseData();
  207. //F_FILEFLAG 业务类型ID
  208. //F_WORKORDERSTATEID 0未处理 1处理中 2已办结 status
  209. //F_WORKORDERTYPEID 处理方式 1转单 3客服处理 GoType
  210. //F_REPAIRMANID 接入渠道 1语音 2留言 3微信 4微博 FromType
  211. //string sql = string.Format(" and F_WORKORDERTYPEID=1 and F_WORKORDERSTATEID=1 and F_WORKORDERID in (select F_INSTANCEID from T_Wo_WorkOrderHistory where F_WORKORDERSTATEID=0 and F_OPTUSERID={0})", F_UserID);
  212. string sql = string.Format(" and F_WORKORDERTYPEID=3 and F_WORKORDERSTATEID=3 and F_UserId={0}", F_UserID);
  213. //工单编号
  214. if (!string.IsNullOrEmpty(workorderNum))
  215. {
  216. sql += " and F_CODE like '%" + workorderNum.Trim() + "%'";
  217. }
  218. //客户姓名
  219. if (!string.IsNullOrEmpty(cusName))
  220. {
  221. sql += " and F_CUSTOMERNAME like '%" + cusName.Trim() + "%'";
  222. }
  223. //客户电话
  224. if (!string.IsNullOrEmpty(phoneNumber))
  225. {
  226. sql += " and F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'";
  227. }
  228. //坐席工号
  229. if (!string.IsNullOrEmpty(userInfo))
  230. {
  231. sql += " and F_LINKMAN like '%" + userInfo.Trim() + "%'";
  232. }
  233. //业务类别
  234. if (bussType != null && bussType > 0)
  235. {
  236. sql += " and F_FILEFLAG =" + bussType;
  237. }
  238. //业务类型
  239. if (detailType != null && detailType > 0)
  240. {
  241. sql += " and F_REPAIRLEVEL =" + detailType;
  242. }
  243. //内容
  244. if (!string.IsNullOrEmpty(Content))
  245. {
  246. sql += " and F_CONTENT like '%" + Content.Trim() + "%'";
  247. }
  248. //查询按钮
  249. if (types == 0)
  250. {
  251. if (!string.IsNullOrEmpty(dateParty))
  252. {
  253. string startDate = dateParty.Substring(0, 10);
  254. string endDate = dateParty.Substring(12);
  255. sql += " and F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  256. sql += " and F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  257. }
  258. }//一周按钮
  259. else if (types == 1)
  260. {
  261. string endDate = DateTime.Now.ToString();
  262. string startDate = DateTime.Now.AddDays(-7).ToString();
  263. sql += " and F_CREATEDATE>= '" + startDate + "'";
  264. sql += " and F_CREATEDATE<= '" + endDate + "'";
  265. }//一月按钮
  266. else if (types == 2)
  267. {
  268. string endDate = DateTime.Now.ToString();
  269. string startDate = DateTime.Now.AddMonths(-1).ToString();
  270. sql += " and F_CREATEDATE>= '" + startDate + "'";
  271. sql += " and F_CREATEDATE<= '" + endDate + "'";
  272. }//一年按钮
  273. else if (types == 3)
  274. {
  275. string endDate = DateTime.Now.ToString();
  276. string startDate = DateTime.Now.AddYears(-1).ToString();
  277. sql += " and F_CREATEDATE>= '" + startDate + "'";
  278. sql += " and F_CREATEDATE<= '" + endDate + "'";
  279. }
  280. DataTable dt = new DataTable();
  281. int recordCount = 0;
  282. Model.PageData<Model.T_Wo_WorkOrderBase> pageModel = new Model.PageData<Model.T_Wo_WorkOrderBase>();
  283. dt = BLL.PagerBLL.GetListPager(
  284. "T_Wo_WorkOrderBase",
  285. "F_WORKORDERID",
  286. "*,CONVERT(varchar,F_CREATEDATE, 120 ) as F_CREATEDATENew"
  287. + @" , replace(replace(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT FilePath FROM dbo.T_Call_CallRecords WHERE CallId=F_KSHADDRESSCODE AND FilePath!='') ELSE NULL END,'\','/'),'" + GetSysconfig("newFilePath") + "','" + GetSysconfig("newPlayPath") + "') as FilePath",
  288. //+ " ,(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT FilePath FROM dbo.T_Call_CallRecords WHERE CallId=F_KSHADDRESSCODE AND FilePath!='') ELSE NULL END ) as FilePath",
  289. sql,
  290. "ORDER BY F_CREATEDATE desc",
  291. limit,
  292. page,
  293. true,
  294. out recordCount);
  295. dataModel.code = 0;
  296. dataModel.count = recordCount;
  297. dataModel.data = dt;
  298. return JsonConvert.SerializeObject(dataModel);
  299. }
  300. #endregion
  301. #region 待定责
  302. public string DZDeptList(int workid)
  303. {
  304. DataTable dt = null;
  305. DataSet ds = historyBll.GetListDZ(string.Format(" F_INSTANCEID={0} ", workid));
  306. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  307. {
  308. dt = ds.Tables[0];
  309. }
  310. ResponseData dataModel = new ResponseData();
  311. dataModel.code = 0;
  312. dataModel.count = 0;
  313. dataModel.data = dt;
  314. return JsonConvert.SerializeObject(dataModel);
  315. }
  316. /// <summary>
  317. /// 定责视图
  318. /// </summary>
  319. /// <param name="dtype">工单类型 1、所有待办工单 2、代办结工单</param>
  320. /// <returns></returns>
  321. public ActionResult WorkOrderMyListDZ(int dtype)
  322. {
  323. WorkOrderMyModel model = new WorkOrderMyModel();
  324. model.DType = dtype;
  325. //业务类型字典表
  326. model.WorkOrderTypeModelList = GetWorkTypeModelList();
  327. //话务标志
  328. model.SeatFlag = F_SeatFlag;
  329. return View(model);
  330. }
  331. /// <summary>
  332. /// 录入定责结果
  333. /// </summary>
  334. /// <param name="workOrderBaseModel"></param>
  335. /// <returns></returns>
  336. [AcceptVerbs(HttpVerbs.Post)]
  337. public bool SubmitOrderDZ(T_Wo_WorkOrderNoticeInput modelinput)
  338. {
  339. if (modelinput.orderid == 0)
  340. {
  341. return false;
  342. }
  343. #region 处理工单事件分类
  344. Model.T_Wo_WorkOrderBase modelorder = new T_Wo_WorkOrderBase();
  345. modelorder.F_WORKORDERID = modelinput.orderid;
  346. modelorder.F_PROVINCE = modelinput.ClassName1;
  347. modelorder.F_CITY = modelinput.ClassName2;
  348. modelorder.F_AREA = modelinput.ClassName3;
  349. #endregion
  350. if (modelinput.Noticelist != null && modelinput.Noticelist.Count > 0)
  351. {
  352. noticeBLL.updatenum(modelinput.orderid);
  353. foreach (T_Wo_WorkOrderNotice model in modelinput.Noticelist)
  354. {
  355. T_Wo_WorkOrderNotice modeladd = new T_Wo_WorkOrderNotice();
  356. #region 前端传入参数
  357. modeladd.OrderId = modelinput.orderid;
  358. modeladd.DealAdvise = model.DealAdvise;
  359. modeladd.DealResult = model.DealResult;
  360. modeladd.NoticeDeptId = model.NoticeDeptId;
  361. modeladd.NoticeDeptName = model.NoticeDeptName;
  362. modeladd.Class1 = modelorder.F_PROVINCE;
  363. modeladd.Class2 = modelorder.F_CITY;
  364. modeladd.Class3 = modelorder.F_AREA;
  365. #endregion
  366. modeladd.NoticeState = 1;
  367. modeladd.NoticeType = 1;
  368. modeladd.Userid = F_UserID;
  369. modeladd.Username = F_UserName;
  370. List<T_Wo_WorkOrderHistory> modelhisList = historyBll.GetModelList(string.Format(" F_INSTANCEID={0} AND F_OPTBTNID={1}", modeladd.OrderId, model.NoticeDeptId));
  371. foreach (T_Wo_WorkOrderHistory modelhis in modelhisList)
  372. {
  373. modeladd.NoticeDeptContent += modelhis.F_REMARK;
  374. modeladd.NoticeDeptAdvise += modelhis.F_REMARK;
  375. modeladd.NoticeUserid = modelhis.F_OPTUSERID.ToInt32();
  376. modeladd.NoticeUsername = modelhis.F_UserName;
  377. }
  378. noticeBLL.Add(modeladd);
  379. }
  380. }
  381. AddAction("t_wo_workorderbase", modelorder.F_WORKORDERID.ToMyString(), "提交定责工单", modelorder.F_CODE);
  382. AddAction("t_wo_workorderbase", modelorder.F_WORKORDERID.ToMyString(), "提交定责工单", "数据:" + JsonConvert.SerializeObject(modelorder), "关键信息");
  383. return orderBLL.UpdateDZClass(modelorder);
  384. }
  385. /// <summary>
  386. /// 待定责列表
  387. /// </summary>
  388. /// <param name="page">当前页码</param>
  389. /// <param name="limit">每页数据量</param>
  390. /// <param name="sqlWhere">查询条件</param>
  391. /// <returns></returns>
  392. [ActionName("WorkOrderMyDataDZ")]
  393. [HttpGet]
  394. public string WorkOrderMyDataDZ(DateTime? NowDateTime, int page, int limit, int? types, string dateParty,
  395. string workorderNum, string cusName, string phoneNumber,
  396. string userInfo, int? bussType, int? detailType, string Content)
  397. {
  398. //数据结果集
  399. ResponseData dataModel = new ResponseData();
  400. //F_FILEFLAG 业务类型ID
  401. //F_WORKORDERSTATEID 0未处理 1处理中 2已办结 status
  402. //F_WORKORDERTYPEID 处理方式 1转单 3客服处理 GoType
  403. //F_REPAIRMANID 接入渠道 1语音 2留言 3微信 4微博 FromType
  404. //string sql = string.Format(" and F_WORKORDERTYPEID=1 and F_WORKORDERSTATEID=1 and F_WORKORDERID in (select F_INSTANCEID from T_Wo_WorkOrderHistory where F_WORKORDERSTATEID=0 and F_OPTUSERID={0})", F_UserID);
  405. string sql = string.Format(" and F_WORKORDERTYPEID=3 and F_WORKORDERSTATEID=4 and (F_HASTENCOUNTS=0 OR F_HASTENCOUNTS IS NULL) and (F_ROAD='{0}' Or F_ROAD='' Or F_ROAD IS NULL)", F_UserID);
  406. //工单编号
  407. if (!string.IsNullOrEmpty(workorderNum))
  408. {
  409. sql += " and F_CODE like '%" + workorderNum.Trim() + "%'";
  410. }
  411. //客户姓名
  412. if (!string.IsNullOrEmpty(cusName))
  413. {
  414. sql += " and F_CUSTOMERNAME like '%" + cusName.Trim() + "%'";
  415. }
  416. //客户电话
  417. if (!string.IsNullOrEmpty(phoneNumber))
  418. {
  419. sql += " and F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'";
  420. }
  421. //坐席工号
  422. if (!string.IsNullOrEmpty(userInfo))
  423. {
  424. sql += " and F_LINKMAN like '%" + userInfo.Trim() + "%'";
  425. }
  426. //业务类别
  427. if (bussType != null && bussType > 0)
  428. {
  429. sql += " and F_FILEFLAG =" + bussType;
  430. }
  431. //业务类型
  432. if (detailType != null && detailType > 0)
  433. {
  434. sql += " and F_REPAIRLEVEL =" + detailType;
  435. }
  436. //内容
  437. if (!string.IsNullOrEmpty(Content))
  438. {
  439. sql += " and F_CONTENT like '%" + Content.Trim() + "%'";
  440. }
  441. //查询按钮
  442. if (types == 0)
  443. {
  444. if (!string.IsNullOrEmpty(dateParty))
  445. {
  446. string startDate = dateParty.Substring(0, 10);
  447. string endDate = dateParty.Substring(12);
  448. sql += " and F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  449. sql += " and F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  450. }
  451. }//一周按钮
  452. else if (types == 1)
  453. {
  454. string endDate = DateTime.Now.ToString();
  455. string startDate = DateTime.Now.AddDays(-7).ToString();
  456. sql += " and F_CREATEDATE>= '" + startDate + "'";
  457. sql += " and F_CREATEDATE<= '" + endDate + "'";
  458. }//一月按钮
  459. else if (types == 2)
  460. {
  461. string endDate = DateTime.Now.ToString();
  462. string startDate = DateTime.Now.AddMonths(-1).ToString();
  463. sql += " and F_CREATEDATE>= '" + startDate + "'";
  464. sql += " and F_CREATEDATE<= '" + endDate + "'";
  465. }//一年按钮
  466. else if (types == 3)
  467. {
  468. string endDate = DateTime.Now.ToString();
  469. string startDate = DateTime.Now.AddYears(-1).ToString();
  470. sql += " and F_CREATEDATE>= '" + startDate + "'";
  471. sql += " and F_CREATEDATE<= '" + endDate + "'";
  472. }
  473. DataTable dt = new DataTable();
  474. int recordCount = 0;
  475. Model.PageData<Model.T_Wo_WorkOrderBase> pageModel = new Model.PageData<Model.T_Wo_WorkOrderBase>();
  476. dt = BLL.PagerBLL.GetListPager(
  477. "T_Wo_WorkOrderBase",
  478. "F_WORKORDERID",
  479. "*,CONVERT(varchar,F_CREATEDATE, 120 ) as F_CREATEDATENew"
  480. + @" , replace(replace(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT FilePath FROM dbo.T_Call_CallRecords WHERE CallId=F_KSHADDRESSCODE AND FilePath!='') ELSE NULL END,'\','/'),'" + GetSysconfig("newFilePath") + "','" + GetSysconfig("newPlayPath") + "') as FilePath",
  481. //+ " ,(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT FilePath FROM dbo.T_Call_CallRecords WHERE CallId=F_KSHADDRESSCODE AND FilePath!='') ELSE NULL END ) as FilePath",
  482. sql,
  483. "ORDER BY F_CREATEDATE desc",
  484. limit,
  485. page,
  486. true,
  487. out recordCount);
  488. dataModel.code = 0;
  489. dataModel.count = recordCount;
  490. dataModel.data = dt;
  491. return JsonConvert.SerializeObject(dataModel);
  492. }
  493. [AcceptVerbs(HttpVerbs.Post)]
  494. public bool canDZ(int workid)
  495. {
  496. int n = orderBLL.GetRecordCount(string.Format("F_ROAD='{0}' AND F_WORKORDERID={1}", F_UserID, workid));
  497. if (n > 0)
  498. return true;
  499. else
  500. {
  501. Model.T_Wo_WorkOrderBase model = new T_Wo_WorkOrderBase();
  502. model.F_WORKORDERID = workid;
  503. model.F_ROAD = F_UserID.ToMyString();
  504. return orderBLL.UpdateDZuser(model);
  505. }
  506. }
  507. #endregion
  508. #region 已定责
  509. /// <summary>
  510. /// 已定责视图
  511. /// </summary>
  512. /// <param name="dtype">工单类型 1、所有待办工单 2、代办结工单</param>
  513. /// <returns></returns>
  514. public ActionResult WorkOrderMyListDZ1(int dtype)
  515. {
  516. WorkOrderMyModel model = new WorkOrderMyModel();
  517. model.DType = dtype;
  518. //业务类型字典表
  519. model.WorkOrderTypeModelList = GetWorkTypeModelList();
  520. //话务标志
  521. model.SeatFlag = F_SeatFlag;
  522. return View(model);
  523. }
  524. /// <summary>
  525. /// 录入定责结果
  526. /// </summary>
  527. /// <param name="workOrderBaseModel"></param>
  528. /// <returns></returns>
  529. [AcceptVerbs(HttpVerbs.Post)]
  530. public bool SubmitOrderDZ1(T_Wo_WorkOrderNoticeInput modelinput)
  531. {
  532. if (modelinput.orderid == 0)
  533. {
  534. return false;
  535. }
  536. #region 处理工单事件分类
  537. Model.T_Wo_WorkOrderBase modelorder = new T_Wo_WorkOrderBase();
  538. modelorder.F_WORKORDERID = modelinput.orderid;
  539. modelorder.F_PROVINCE = modelinput.ClassName1;
  540. modelorder.F_CITY = modelinput.ClassName2;
  541. modelorder.F_AREA = modelinput.ClassName3;
  542. #endregion
  543. if (modelinput.Noticelist != null)
  544. {
  545. noticeBLL.updatenum(modelinput.orderid);
  546. foreach (T_Wo_WorkOrderNotice model in modelinput.Noticelist)
  547. {
  548. T_Wo_WorkOrderNotice modeladd = new T_Wo_WorkOrderNotice();
  549. #region 前端传入参数
  550. modeladd.OrderId = modelinput.orderid;
  551. modeladd.DealAdvise = model.DealAdvise;
  552. modeladd.DealResult = model.DealResult;
  553. modeladd.NoticeDeptId = model.NoticeDeptId;
  554. modeladd.NoticeDeptName = model.NoticeDeptName;
  555. #endregion
  556. modeladd.NoticeState = 1;
  557. modeladd.NoticeType = 1;
  558. modeladd.Userid = F_UserID;
  559. modeladd.Username = F_UserName;
  560. List<T_Wo_WorkOrderHistory> modelhisList = historyBll.GetModelList(string.Format(" F_INSTANCEID={0} AND F_OPTBTNID={1}", model.OrderId, model.NoticeDeptId));
  561. foreach (T_Wo_WorkOrderHistory modelhis in modelhisList)
  562. {
  563. modeladd.NoticeDeptContent += modelhis.F_REMARK;
  564. modeladd.NoticeDeptAdvise += modelhis.F_REMARK;
  565. modeladd.NoticeUserid = modelhis.F_OPTUSERID.ToInt32();
  566. modeladd.NoticeUsername = modelhis.F_UserName;
  567. }
  568. noticeBLL.Add(modeladd);
  569. }
  570. }
  571. return orderBLL.UpdateDZClass(modelorder);
  572. }
  573. /// <summary>
  574. /// 已定责列表
  575. /// </summary>
  576. /// <param name="page">当前页码</param>
  577. /// <param name="limit">每页数据量</param>
  578. /// <param name="sqlWhere">查询条件</param>
  579. /// <returns></returns>
  580. [ActionName("WorkOrderMyDataDZ1")]
  581. [HttpGet]
  582. public string WorkOrderMyDataDZ1(DateTime? NowDateTime, int page, int limit, int? types, string dateParty,
  583. string workorderNum, string cusName, string phoneNumber,
  584. string userInfo, int? bussType, int? detailType, string Content)
  585. {
  586. //数据结果集
  587. ResponseData dataModel = new ResponseData();
  588. //F_FILEFLAG 业务类型ID
  589. //F_WORKORDERSTATEID 0未处理 1处理中 2已办结 status
  590. //F_WORKORDERTYPEID 处理方式 1转单 3客服处理 GoType
  591. //F_REPAIRMANID 接入渠道 1语音 2留言 3微信 4微博 FromType
  592. //string sql = string.Format(" and F_WORKORDERTYPEID=1 and F_WORKORDERSTATEID=1 and F_WORKORDERID in (select F_INSTANCEID from T_Wo_WorkOrderHistory where F_WORKORDERSTATEID=0 and F_OPTUSERID={0})", F_UserID);
  593. string sql = string.Format(" and F_WORKORDERTYPEID=3 and F_WORKORDERSTATEID=5 and F_ROAD='{0}'", F_UserID);
  594. //工单编号
  595. if (!string.IsNullOrEmpty(workorderNum))
  596. {
  597. sql += " and F_CODE like '%" + workorderNum.Trim() + "%'";
  598. }
  599. //客户姓名
  600. if (!string.IsNullOrEmpty(cusName))
  601. {
  602. sql += " and F_CUSTOMERNAME like '%" + cusName.Trim() + "%'";
  603. }
  604. //客户电话
  605. if (!string.IsNullOrEmpty(phoneNumber))
  606. {
  607. sql += " and F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'";
  608. }
  609. //坐席工号
  610. if (!string.IsNullOrEmpty(userInfo))
  611. {
  612. sql += " and F_LINKMAN like '%" + userInfo.Trim() + "%'";
  613. }
  614. //业务类别
  615. if (bussType != null && bussType > 0)
  616. {
  617. sql += " and F_FILEFLAG =" + bussType;
  618. }
  619. //业务类型
  620. if (detailType != null && detailType > 0)
  621. {
  622. sql += " and F_REPAIRLEVEL =" + detailType;
  623. }
  624. //内容
  625. if (!string.IsNullOrEmpty(Content))
  626. {
  627. sql += " and F_CONTENT like '%" + Content.Trim() + "%'";
  628. }
  629. //查询按钮
  630. if (types == 0)
  631. {
  632. if (!string.IsNullOrEmpty(dateParty))
  633. {
  634. string startDate = dateParty.Substring(0, 10);
  635. string endDate = dateParty.Substring(12);
  636. sql += " and F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  637. sql += " and F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  638. }
  639. }//一周按钮
  640. else if (types == 1)
  641. {
  642. string endDate = DateTime.Now.ToString();
  643. string startDate = DateTime.Now.AddDays(-7).ToString();
  644. sql += " and F_CREATEDATE>= '" + startDate + "'";
  645. sql += " and F_CREATEDATE<= '" + endDate + "'";
  646. }//一月按钮
  647. else if (types == 2)
  648. {
  649. string endDate = DateTime.Now.ToString();
  650. string startDate = DateTime.Now.AddMonths(-1).ToString();
  651. sql += " and F_CREATEDATE>= '" + startDate + "'";
  652. sql += " and F_CREATEDATE<= '" + endDate + "'";
  653. }//一年按钮
  654. else if (types == 3)
  655. {
  656. string endDate = DateTime.Now.ToString();
  657. string startDate = DateTime.Now.AddYears(-1).ToString();
  658. sql += " and F_CREATEDATE>= '" + startDate + "'";
  659. sql += " and F_CREATEDATE<= '" + endDate + "'";
  660. }
  661. DataTable dt = new DataTable();
  662. int recordCount = 0;
  663. Model.PageData<Model.T_Wo_WorkOrderBase> pageModel = new Model.PageData<Model.T_Wo_WorkOrderBase>();
  664. dt = BLL.PagerBLL.GetListPager(
  665. "T_Wo_WorkOrderBase",
  666. "F_WORKORDERID",
  667. "*,CONVERT(varchar,F_CREATEDATE, 120 ) as F_CREATEDATENew"
  668. + @" , replace(replace(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT FilePath FROM dbo.T_Call_CallRecords WHERE CallId=F_KSHADDRESSCODE AND FilePath!='') ELSE NULL END,'\','/'),'" + GetSysconfig("newFilePath") + "','" + GetSysconfig("newPlayPath") + "') as FilePath",
  669. //+ " ,(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT FilePath FROM dbo.T_Call_CallRecords WHERE CallId=F_KSHADDRESSCODE AND FilePath!='') ELSE NULL END ) as FilePath",
  670. sql,
  671. "ORDER BY F_CREATEDATE desc",
  672. limit,
  673. page,
  674. true,
  675. out recordCount);
  676. dataModel.code = 0;
  677. dataModel.count = recordCount;
  678. dataModel.data = dt;
  679. return JsonConvert.SerializeObject(dataModel);
  680. }
  681. #endregion
  682. #region 相关通知
  683. /// <summary>
  684. /// 已定责视图
  685. /// </summary>
  686. /// <param name="dtype">工单类型 1、所有待办工单 2、代办结工单</param>
  687. /// <returns></returns>
  688. public ActionResult WorkOrderMyListNotice(int dtype)
  689. {
  690. WorkOrderMyModel model = new WorkOrderMyModel();
  691. model.DType = dtype;
  692. //业务类型字典表
  693. model.WorkOrderTypeModelList = GetWorkTypeModelList();
  694. //话务标志
  695. model.SeatFlag = F_SeatFlag;
  696. return View(model);
  697. }
  698. /// <summary>
  699. /// 相关表扬
  700. /// </summary>
  701. /// <param name="page">当前页码</param>
  702. /// <param name="limit">每页数据量</param>
  703. /// <param name="sqlWhere">查询条件</param>
  704. /// <returns></returns>
  705. [ActionName("WorkOrderMyDataNotice")]
  706. [HttpGet]
  707. public string WorkOrderMyDataNotice(DateTime? NowDateTime, int page, int limit, int? types, string dateParty,
  708. string workorderNum, string cusName, string phoneNumber,
  709. string userInfo, int? bussType, int? detailType, string Content, int NoticeType)
  710. {
  711. //数据结果集
  712. ResponseData dataModel = new ResponseData();
  713. //F_FILEFLAG 业务类型ID
  714. //F_WORKORDERSTATEID 0未处理 1处理中 2已办结 status
  715. //F_WORKORDERTYPEID 处理方式 1转单 3客服处理 GoType
  716. //F_REPAIRMANID 接入渠道 1语音 2留言 3微信 4微博 FromType
  717. //string sql = string.Format(" and F_WORKORDERTYPEID=1 and F_WORKORDERSTATEID=1 and F_WORKORDERID in (select F_INSTANCEID from T_Wo_WorkOrderHistory where F_WORKORDERSTATEID=0 and F_OPTUSERID={0})", F_UserID);
  718. string sql = " and F_WORKORDERTYPEID=3 and F_WORKORDERSTATEID=5 ";
  719. if(NoticeType==0)
  720. sql= " and F_WORKORDERTYPEID=3 and F_WORKORDERSTATEID=2 ";
  721. //工单编号
  722. if (!string.IsNullOrEmpty(workorderNum))
  723. {
  724. sql += " and F_CODE like '%" + workorderNum.Trim() + "%'";
  725. }
  726. //客户姓名
  727. if (!string.IsNullOrEmpty(cusName))
  728. {
  729. sql += " and F_CUSTOMERNAME like '%" + cusName.Trim() + "%'";
  730. }
  731. //客户电话
  732. if (!string.IsNullOrEmpty(phoneNumber))
  733. {
  734. sql += " and F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'";
  735. }
  736. //坐席工号
  737. if (!string.IsNullOrEmpty(userInfo))
  738. {
  739. sql += " and F_LINKMAN like '%" + userInfo.Trim() + "%'";
  740. }
  741. //业务类别
  742. if (bussType != null && bussType > 0)
  743. {
  744. sql += " and F_FILEFLAG =" + bussType;
  745. }
  746. //业务类型
  747. if (detailType != null && detailType > 0)
  748. {
  749. sql += " and F_REPAIRLEVEL =" + detailType;
  750. }
  751. //内容
  752. if (!string.IsNullOrEmpty(Content))
  753. {
  754. sql += " and F_CONTENT like '%" + Content.Trim() + "%'";
  755. }
  756. //查询按钮
  757. if (types == 0)
  758. {
  759. if (!string.IsNullOrEmpty(dateParty))
  760. {
  761. string startDate = dateParty.Substring(0, 10);
  762. string endDate = dateParty.Substring(12);
  763. sql += " and F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  764. sql += " and F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  765. }
  766. }//一周按钮
  767. else if (types == 1)
  768. {
  769. string endDate = DateTime.Now.ToString();
  770. string startDate = DateTime.Now.AddDays(-7).ToString();
  771. sql += " and F_CREATEDATE>= '" + startDate + "'";
  772. sql += " and F_CREATEDATE<= '" + endDate + "'";
  773. }//一月按钮
  774. else if (types == 2)
  775. {
  776. string endDate = DateTime.Now.ToString();
  777. string startDate = DateTime.Now.AddMonths(-1).ToString();
  778. sql += " and F_CREATEDATE>= '" + startDate + "'";
  779. sql += " and F_CREATEDATE<= '" + endDate + "'";
  780. }//一年按钮
  781. else if (types == 3)
  782. {
  783. string endDate = DateTime.Now.ToString();
  784. string startDate = DateTime.Now.AddYears(-1).ToString();
  785. sql += " and F_CREATEDATE>= '" + startDate + "'";
  786. sql += " and F_CREATEDATE<= '" + endDate + "'";
  787. }
  788. DataTable dt = new DataTable();
  789. int recordCount = 0;
  790. Model.PageData<Model.T_Wo_WorkOrderBase> pageModel = new Model.PageData<Model.T_Wo_WorkOrderBase>();
  791. dt = BLL.PagerBLL.GetListPager(
  792. string.Format(" T_Wo_WorkOrderBase T1 Inner join T_Wo_WorkOrderNotice T2 On T1.F_WORKORDERID=T2.OrderId AND T2.NoticeDeptId={0} AND NoticeType={1} AND NoticeState=1", F_DeptId, NoticeType),
  793. "F_WORKORDERID",
  794. "*,CONVERT(varchar,F_CREATEDATE, 120 ) as F_CREATEDATENew,NoticeDeptId,NoticeDeptName"
  795. + @" , replace(replace(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT FilePath FROM dbo.T_Call_CallRecords WHERE CallId=F_KSHADDRESSCODE AND FilePath!='') ELSE NULL END,'\','/'),'" + GetSysconfig("newFilePath") + "','" + GetSysconfig("newPlayPath") + "') as FilePath",
  796. //+ " ,(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT FilePath FROM dbo.T_Call_CallRecords WHERE CallId=F_KSHADDRESSCODE AND FilePath!='') ELSE NULL END ) as FilePath",
  797. sql,
  798. "ORDER BY F_CREATEDATE desc",
  799. limit,
  800. page,
  801. true,
  802. out recordCount);
  803. dataModel.code = 0;
  804. dataModel.count = recordCount;
  805. dataModel.data = dt;
  806. return JsonConvert.SerializeObject(dataModel);
  807. }
  808. #endregion
  809. #region 超时工单
  810. /// <summary>
  811. /// 视图
  812. /// </summary>
  813. /// <param name="dtype">工单类型 1、所有待办工单 2、代办结工单</param>
  814. /// <returns></returns>
  815. public ActionResult OverOrderView(int dtype=0)
  816. {
  817. CallScreenModel callScreenModel = new CallScreenModel();
  818. //业务类型字典表
  819. callScreenModel.WorkOrderTypeModelList = GetWorkTypeModelList();
  820. //业务类型字典表
  821. callScreenModel.GoTypeModelList = GetCodeType("CLFS");
  822. //话务标志
  823. callScreenModel.SeatFlag = F_SeatFlag;
  824. //1、所有工单页面2、工单编辑页面
  825. callScreenModel.OrderType = 1;
  826. return View(callScreenModel);
  827. }
  828. /// <summary>
  829. /// 获取工单信息
  830. /// </summary>
  831. /// <param name="page">当前页码</param>
  832. /// <param name="limit">每页数据量</param>
  833. /// <param name="sqlWhere">查询条件</param>
  834. /// <returns></returns>
  835. [ActionName("OverOrderData")]
  836. [HttpGet]
  837. public string OverOrderData(DateTime? NowDateTime, int page, int limit, int? types, string dateParty,
  838. string workorderNum, string cusName, string phoneNumber, string userInfo, int? status, int? bussType, int? detailType, string Content, int? GoType, int? FromType,int? overtime)
  839. {
  840. //数据结果集
  841. ResponseData dataModel = new ResponseData();
  842. string sql = "";
  843. //工单编号
  844. if (!string.IsNullOrEmpty(workorderNum))
  845. {
  846. sql += " and t.F_CODE like '%" + workorderNum.Trim() + "%'";
  847. }
  848. //客户姓名
  849. if (!string.IsNullOrEmpty(cusName))
  850. {
  851. sql += " and t.F_CUSTOMERNAME like '%" + cusName.Trim() + "%'";
  852. }
  853. //客户电话
  854. if (!string.IsNullOrEmpty(phoneNumber))
  855. {
  856. sql += " and t.F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'";
  857. }
  858. //坐席工号
  859. if (!string.IsNullOrEmpty(userInfo))
  860. {
  861. sql += " and t.F_LINKMAN like '%" + userInfo.Trim() + "%'";
  862. }
  863. //状态 F_WORKORDERSTATEID 0未处理 1处理中 2已办结
  864. if (status != null)
  865. {
  866. sql += " and t.F_WORKORDERSTATEID =" + status;
  867. }
  868. //业务类别
  869. if (bussType != null && bussType > 0)
  870. {
  871. sql += " and t.F_FILEFLAG =" + bussType;
  872. }
  873. //业务类型
  874. if (detailType != null && detailType > 0)
  875. {
  876. sql += " and t.F_REPAIRLEVEL =" + detailType;
  877. }
  878. //定责次数
  879. //if (F_HASTENCOUNTS != null)
  880. //{
  881. // if (F_HASTENCOUNTS == 0)
  882. // {
  883. // sql += " AND (t.F_HASTENCOUNTS is null OR t.F_HASTENCOUNTS =0) ";
  884. // }
  885. // else
  886. // {
  887. // sql += " AND t.F_HASTENCOUNTS >0 ";
  888. // }
  889. //}
  890. //定责次数
  891. if (overtime != null)
  892. {
  893. if (overtime == 0)
  894. {
  895. sql += " AND t.F_OVERTIMES<0 ";
  896. }
  897. else
  898. {
  899. sql += " AND t.F_OVERTIMES>0 ";
  900. }
  901. }
  902. //内容
  903. if (!string.IsNullOrEmpty(Content))
  904. {
  905. sql += " and t.F_CONTENT like '%" + Content.Trim() + "%'";
  906. }
  907. //处理方式 F_WORKORDERTYPEID 处理方式 1转单 3客服处理
  908. if (GoType != null && GoType > 0)
  909. {
  910. sql += " and t.F_WORKORDERTYPEID =" + GoType;
  911. }
  912. //接入渠道 1语音 2留言 3微信 4微博
  913. if (FromType != null && FromType > 0)
  914. {
  915. sql += " and t.F_REPAIRMANID =" + FromType;
  916. }
  917. //查询按钮
  918. if (types == 0 || types == null)
  919. {
  920. if (!string.IsNullOrEmpty(dateParty))
  921. {
  922. string startDate = dateParty.Substring(0, 10);
  923. string endDate = dateParty.Substring(12);
  924. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  925. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  926. }
  927. else
  928. {
  929. string endDate = DateTime.Now.ToString("yyyy-MM-dd");
  930. string startDate = DateTime.Now.ToString("yyyy-MM-dd");
  931. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  932. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  933. }
  934. }//一周按钮
  935. else if (types == 1)
  936. {
  937. string endDate = DateTime.Now.ToString("yyyy-MM-dd");
  938. string startDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
  939. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  940. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  941. }//一月按钮
  942. else if (types == 2)
  943. {
  944. string endDate = DateTime.Now.ToString("yyyy-MM-dd");
  945. string startDate = DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd");
  946. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  947. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  948. }//一年按钮
  949. else if (types == 3)
  950. {
  951. string endDate = DateTime.Now.ToString("yyyy-MM-dd");
  952. string startDate = DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd");
  953. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  954. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  955. }
  956. //一天按钮
  957. else if (types == 4)
  958. {
  959. string endDate = DateTime.Now.ToString("yyyy-MM-dd");
  960. string startDate = DateTime.Now.ToString("yyyy-MM-dd");
  961. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  962. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  963. }
  964. string tableNew = string.Format("(select DISTINCT t.* from T_Wo_WorkOrderBase t LEFT JOIN T_Wo_WorkOrderHistory h ON t.F_WORKORDERID=h.F_INSTANCEID LEFT JOIN T_Sys_UserAccount u ON t.F_USERID= u.F_UserId where (u.F_DeptId={0} OR h.F_OPTBTNID={0})) as t", F_DeptId);
  965. DataTable dt = new DataTable();
  966. int recordCount = 0;
  967. Model.PageData<Model.T_Wo_WorkOrderBase> pageModel = new Model.PageData<Model.T_Wo_WorkOrderBase>();
  968. dt = BLL.PagerBLL.GetListPager(
  969. tableNew,
  970. "F_WORKORDERID",
  971. " t.*,CONVERT(varchar,t.F_CREATEDATE, 120 ) as F_CREATEDATENew,CONVERT(VARCHAR(10),F_OVERTIMES/3600)+'时'+CONVERT(VARCHAR(10),F_OVERTIMES%3600/60)+'分'+CONVERT(VARCHAR(10),F_OVERTIMES%3600%60)+'秒' AS F_OVERTIME"
  972. + @" , replace(replace(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT top 1 F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=t.F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT top 1 FilePath FROM dbo.T_Call_CallRecords WHERE CallId=t.F_KSHADDRESSCODE) ELSE NULL END,'\','/'),'" + GetSysconfig("newFilePath") + "','" + GetSysconfig("newPlayPath") + "') as FilePath"
  973. ,
  974. sql,
  975. "ORDER BY t.F_CREATEDATE desc",
  976. limit,
  977. page,
  978. true,
  979. out recordCount);
  980. dataModel.code = 0;
  981. dataModel.count = recordCount;
  982. dataModel.data = dt;
  983. return JsonConvert.SerializeObject(dataModel);
  984. }
  985. #endregion
  986. #region 全部工单
  987. /// <summary>
  988. /// 获取所有工单信息
  989. /// </summary>
  990. /// <returns></returns>
  991. public ActionResult WorkOrderAllList(int? orderType)
  992. {
  993. CallScreenModel callScreenModel = new CallScreenModel();
  994. //业务类型字典表
  995. callScreenModel.WorkOrderTypeModelList = GetWorkTypeModelList();
  996. //业务类型字典表
  997. callScreenModel.GoTypeModelList = GetCodeType("CLFS");
  998. //话务标志
  999. callScreenModel.SeatFlag = F_SeatFlag;
  1000. //1、所有工单页面2、工单编辑页面
  1001. if (orderType != null && orderType > 0)
  1002. {
  1003. callScreenModel.OrderType = int.Parse(orderType.ToString());
  1004. }
  1005. else
  1006. {
  1007. callScreenModel.OrderType = 1;
  1008. }
  1009. return View(callScreenModel);
  1010. }
  1011. /// <summary>
  1012. /// 获取工单信息
  1013. /// </summary>
  1014. /// <param name="page">当前页码</param>
  1015. /// <param name="limit">每页数据量</param>
  1016. /// <param name="sqlWhere">查询条件</param>
  1017. /// <returns></returns>
  1018. [ActionName("WorkOrderAllData")]
  1019. [HttpGet]
  1020. public string WorkOrderAllList(DateTime? NowDateTime, int page, int limit, int? types, string dateParty,
  1021. string workorderNum, string cusName, string phoneNumber, string userInfo, int? status, int? bussType, int? detailType, string Content, int? GoType, int? FromType, int? F_HASTENCOUNTS )
  1022. {
  1023. //数据结果集
  1024. ResponseData dataModel = new ResponseData();
  1025. string sql = "";
  1026. //工单编号
  1027. if (!string.IsNullOrEmpty(workorderNum))
  1028. {
  1029. sql += " and t.F_CODE like '%" + workorderNum.Trim() + "%'";
  1030. }
  1031. //客户姓名
  1032. if (!string.IsNullOrEmpty(cusName))
  1033. {
  1034. sql += " and t.F_CUSTOMERNAME like '%" + cusName.Trim() + "%'";
  1035. }
  1036. //客户电话
  1037. if (!string.IsNullOrEmpty(phoneNumber))
  1038. {
  1039. sql += " and t.F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'";
  1040. }
  1041. //坐席工号
  1042. if (!string.IsNullOrEmpty(userInfo))
  1043. {
  1044. sql += " and t.F_LINKMAN like '%" + userInfo.Trim() + "%'";
  1045. }
  1046. //状态 F_WORKORDERSTATEID 0未处理 1处理中 2已办结(结束) 3待回访 4待定责 5已定责
  1047. if (status != null)
  1048. {
  1049. sql += " and t.F_WORKORDERSTATEID =" + status;
  1050. }
  1051. //业务类别
  1052. if (bussType != null && bussType > 0)
  1053. {
  1054. sql += " and t.F_FILEFLAG =" + bussType;
  1055. }
  1056. //业务类型
  1057. if (detailType != null && detailType > 0)
  1058. {
  1059. sql += " and t.F_REPAIRLEVEL =" + detailType;
  1060. }
  1061. //定责次数
  1062. //if (F_HASTENCOUNTS != null)
  1063. //{
  1064. // if (F_HASTENCOUNTS == 0)
  1065. // {
  1066. // sql += " AND (t.F_HASTENCOUNTS is null OR t.F_HASTENCOUNTS =0) ";
  1067. // }
  1068. // else
  1069. // {
  1070. // sql += " AND t.F_HASTENCOUNTS >0 ";
  1071. // }
  1072. //}
  1073. //内容
  1074. if (!string.IsNullOrEmpty(Content))
  1075. {
  1076. sql += " and t.F_CONTENT like '%" + Content.Trim() + "%'";
  1077. }
  1078. //处理方式 F_WORKORDERTYPEID 处理方式 1转单 3客服处理
  1079. if (GoType != null && GoType > 0)
  1080. {
  1081. sql += " and t.F_WORKORDERTYPEID =" + GoType;
  1082. }
  1083. //接入渠道 1语音 2留言 3微信 4微博
  1084. if (FromType != null && FromType > 0)
  1085. {
  1086. sql += " and t.F_REPAIRMANID =" + FromType;
  1087. }
  1088. //查询按钮
  1089. if (types == 0 || types == null)
  1090. {
  1091. if (!string.IsNullOrEmpty(dateParty))
  1092. {
  1093. string startDate = dateParty.Substring(0, 10);
  1094. string endDate = dateParty.Substring(12);
  1095. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  1096. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  1097. }
  1098. else
  1099. {
  1100. string endDate = DateTime.Now.ToString("yyyy-MM-dd");
  1101. string startDate = DateTime.Now.ToString("yyyy-MM-dd");
  1102. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  1103. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  1104. }
  1105. }//一周按钮
  1106. else if (types == 1)
  1107. {
  1108. string endDate = DateTime.Now.ToString("yyyy-MM-dd");
  1109. string startDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
  1110. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  1111. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  1112. }//一月按钮
  1113. else if (types == 2)
  1114. {
  1115. string endDate = DateTime.Now.ToString("yyyy-MM-dd");
  1116. string startDate = DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd");
  1117. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  1118. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  1119. }//一年按钮
  1120. else if (types == 3)
  1121. {
  1122. string endDate = DateTime.Now.ToString("yyyy-MM-dd");
  1123. string startDate = DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd");
  1124. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  1125. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  1126. }
  1127. //一天按钮
  1128. else if (types == 4)
  1129. {
  1130. string endDate = DateTime.Now.ToString("yyyy-MM-dd");
  1131. string startDate = DateTime.Now.ToString("yyyy-MM-dd");
  1132. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  1133. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  1134. }
  1135. string tableNew = string.Format("(select DISTINCT t.* from T_Wo_WorkOrderBase t LEFT JOIN T_Wo_WorkOrderHistory h ON t.F_WORKORDERID=h.F_INSTANCEID LEFT JOIN T_Sys_UserAccount u ON t.F_USERID= u.F_UserId where (u.F_DeptId={0} OR h.F_OPTBTNID={0})) as t", F_DeptId);
  1136. DataTable dt = new DataTable();
  1137. int recordCount = 0;
  1138. Model.PageData<Model.T_Wo_WorkOrderBase> pageModel = new Model.PageData<Model.T_Wo_WorkOrderBase>();
  1139. dt = BLL.PagerBLL.GetListPager(
  1140. tableNew,
  1141. "F_WORKORDERID",
  1142. " t.*,CONVERT(varchar,t.F_CREATEDATE, 120 ) as F_CREATEDATENew"
  1143. + @" , replace(replace(CASE F_WORKORDERFROM WHEN '留言工单' THEN (SELECT top 1 F_RecFileUrl FROM dbo.T_Call_LeaveRecord WHERE F_CallId=t.F_KSHADDRESSCODE) WHEN '语音工单' THEN (SELECT top 1 FilePath FROM dbo.T_Call_CallRecords WHERE CallId=t.F_KSHADDRESSCODE) ELSE NULL END,'\','/'),'" + GetSysconfig("newFilePath") + "','" + GetSysconfig("newPlayPath") + "') as FilePath"
  1144. ,
  1145. sql,
  1146. "ORDER BY t.F_CREATEDATE desc",
  1147. limit,
  1148. page,
  1149. true,
  1150. out recordCount);
  1151. dataModel.code = 0;
  1152. dataModel.count = recordCount;
  1153. dataModel.data = dt;
  1154. return JsonConvert.SerializeObject(dataModel);
  1155. }
  1156. #endregion
  1157. #region 公共
  1158. /// <summary>
  1159. /// 获取二级业务类型
  1160. /// </summary>
  1161. /// <param name="deptId">业务类别</param>
  1162. /// <returns></returns>
  1163. public string GetBussType(int? bussnessType)
  1164. {
  1165. try
  1166. {
  1167. if (bussnessType != null && bussnessType > 0)
  1168. {
  1169. List<Model.T_Wo_WorkOrderType> modelList = GetWorkTypeModelList();
  1170. return JsonConvert.SerializeObject(modelList.Where(t => t.F_WorkOrderTypeId == bussnessType).ToList()[0].WorkTypeModelList);
  1171. }
  1172. else
  1173. {
  1174. return null;
  1175. }
  1176. }
  1177. catch (Exception ex)
  1178. {
  1179. }
  1180. return null;
  1181. }
  1182. /// <summary>
  1183. /// 导出数据
  1184. /// </summary>
  1185. /// <param name="page">当前页码</param>
  1186. /// <param name="limit">每页数据量</param>
  1187. /// <param name="sqlWhere">查询条件</param>
  1188. /// <returns></returns>
  1189. [AcceptVerbs(HttpVerbs.Post)]
  1190. public string ExToExcel(ExToExcel paramModel)
  1191. {
  1192. //数据结果集
  1193. ResponseData dataModel = new ResponseData();
  1194. string sql = "";
  1195. //工单编号
  1196. if (!string.IsNullOrEmpty(paramModel.workorderNum))
  1197. {
  1198. sql += " and t.F_CODE like '%" + paramModel.workorderNum.Trim() + "%'";
  1199. }
  1200. //客户姓名
  1201. if (!string.IsNullOrEmpty(paramModel.cusName))
  1202. {
  1203. sql += " and t.F_CUSTOMERNAME like '%" + paramModel.cusName.Trim() + "%'";
  1204. }
  1205. //客户电话
  1206. if (!string.IsNullOrEmpty(paramModel.phoneNumber))
  1207. {
  1208. sql += " and t.F_CUSTOMERTELEPHONE like '%" + paramModel.phoneNumber.Trim() + "%'";
  1209. }
  1210. //坐席工号
  1211. if (!string.IsNullOrEmpty(paramModel.userInfo))
  1212. {
  1213. sql += " and t.F_LINKMAN like '%" + paramModel.userInfo.Trim() + "%'";
  1214. }
  1215. //状态
  1216. if (paramModel.status != null)
  1217. {
  1218. sql += " and t.F_WORKORDERSTATEID =" + paramModel.status;
  1219. }
  1220. //业务类别
  1221. if (paramModel.bussType != null && paramModel.bussType > 0)
  1222. {
  1223. sql += " and t.F_FILEFLAG =" + paramModel.bussType;
  1224. }
  1225. //业务类型
  1226. if (paramModel.detailType != null && paramModel.detailType > 0)
  1227. {
  1228. sql += " and t.F_REPAIRLEVEL =" + paramModel.detailType;
  1229. }
  1230. //内容
  1231. if (!string.IsNullOrEmpty(paramModel.Content))
  1232. {
  1233. sql += " and t.F_CONTENT like '%" + paramModel.Content.Trim() + "%'";
  1234. }
  1235. //处理方式
  1236. if (paramModel.GoType != null && paramModel.GoType > 0)
  1237. {
  1238. sql += " and t.F_WORKORDERTYPEID =" + paramModel.GoType;
  1239. }
  1240. //渠道
  1241. if (paramModel.FromType != null && paramModel.FromType > 0)
  1242. {
  1243. sql += " and t.F_REPAIRMANID =" + paramModel.FromType;
  1244. }
  1245. //查询按钮
  1246. if (!string.IsNullOrEmpty(paramModel.dateParty))
  1247. {
  1248. string startDate = paramModel.dateParty.Substring(0, 10);
  1249. string endDate = paramModel.dateParty.Substring(12);
  1250. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  1251. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  1252. }
  1253. string tableNew = string.Format("(select DISTINCT t.* from T_Wo_WorkOrderBase t LEFT JOIN T_Wo_WorkOrderHistory h ON t.F_WORKORDERID=h.F_INSTANCEID LEFT JOIN T_Sys_UserAccount u ON t.F_USERID= u.F_UserId where (u.F_DeptId={0} OR h.F_OPTBTNID={0})) as t", F_DeptId);
  1254. DataTable dt = new DataTable();
  1255. int recordCount = 0;
  1256. Model.PageData<Model.T_Wo_WorkOrderBase> pageModel = new Model.PageData<Model.T_Wo_WorkOrderBase>();
  1257. dt = BLL.PagerBLL.GetListPager(
  1258. tableNew,
  1259. "F_WORKORDERID",
  1260. " t.F_CODE as 工单编号"
  1261. + ",F_CUSTOMERNAME as 客户姓名"
  1262. + ",F_CUSTOMERTELEPHONE as 客户电话"
  1263. + ",F_LINKMAN as 坐席工号"
  1264. + ",F_REPAIRMANNAME as 坐席姓名"
  1265. + ",F_WORKORDERFROM as 接入渠道"
  1266. + " , CONVERT(varchar, t.F_CREATEDATE, 120) as 受理时间"
  1267. + ",F_REPAIRREQUEST as 业务状态"
  1268. + ",F_CONTENT as 内容"
  1269. + ",F_RETURNVISITCONTENT as 处理回复内容"
  1270. + ",F_HOUSING as 业务类型"
  1271. + ",F_ADSLACCOUNT as 业务明细"
  1272. ,
  1273. sql,
  1274. "ORDER BY t.F_CREATEDATE desc",
  1275. 100000,
  1276. 1,
  1277. true,
  1278. out recordCount);
  1279. ResponseDataModel NewData = new ResponseDataModel();
  1280. ExcelReadWrite erw = new ExcelReadWrite();
  1281. byte[] Filebyte = erw.GetExcelByte(dt, "sheet1", true);
  1282. int officeVersion = erw.OfficeType();
  1283. if (officeVersion == 1 || officeVersion == 2)
  1284. {
  1285. NewData.Message = DateTime.Now.ToString("yyyy-MM-dd") + "工单数据.xls";
  1286. }
  1287. else
  1288. {
  1289. NewData.Message = DateTime.Now.ToString("yyyy-MM-dd") + "工单数据.xlsx";
  1290. }
  1291. NewData.Code = "0";
  1292. NewData.Data = JsonConvert.SerializeObject(Filebyte);
  1293. return JsonConvert.SerializeObject(NewData);
  1294. }
  1295. /// <summary>
  1296. /// 导出数据
  1297. /// </summary>
  1298. /// <param name="page">当前页码</param>
  1299. /// <param name="limit">每页数据量</param>
  1300. /// <param name="sqlWhere">查询条件</param>
  1301. /// <returns></returns>
  1302. [AcceptVerbs(HttpVerbs.Post)]
  1303. public string ExToExcelDZ(ExToExcel paramModel)
  1304. {
  1305. //数据结果集
  1306. ResponseData dataModel = new ResponseData();
  1307. string sql = " AND T2.NoticeState=1";
  1308. //工单编号
  1309. if (!string.IsNullOrEmpty(paramModel.workorderNum))
  1310. {
  1311. sql += " and t.F_CODE like '%" + paramModel.workorderNum.Trim() + "%'";
  1312. }
  1313. //客户姓名
  1314. if (!string.IsNullOrEmpty(paramModel.cusName))
  1315. {
  1316. sql += " and t.F_CUSTOMERNAME like '%" + paramModel.cusName.Trim() + "%'";
  1317. }
  1318. //客户电话
  1319. if (!string.IsNullOrEmpty(paramModel.phoneNumber))
  1320. {
  1321. sql += " and t.F_CUSTOMERTELEPHONE like '%" + paramModel.phoneNumber.Trim() + "%'";
  1322. }
  1323. //坐席工号
  1324. if (!string.IsNullOrEmpty(paramModel.userInfo))
  1325. {
  1326. sql += " and t.F_LINKMAN like '%" + paramModel.userInfo.Trim() + "%'";
  1327. }
  1328. //状态
  1329. if (paramModel.status != null)
  1330. {
  1331. sql += " and t.F_WORKORDERSTATEID =" + paramModel.status;
  1332. }
  1333. //业务类别
  1334. if (paramModel.bussType != null && paramModel.bussType > 0)
  1335. {
  1336. sql += " and t.F_FILEFLAG =" + paramModel.bussType;
  1337. }
  1338. //业务类型
  1339. if (paramModel.detailType != null && paramModel.detailType > 0)
  1340. {
  1341. sql += " and t.F_REPAIRLEVEL =" + paramModel.detailType;
  1342. }
  1343. //内容
  1344. if (!string.IsNullOrEmpty(paramModel.Content))
  1345. {
  1346. sql += " and t.F_CONTENT like '%" + paramModel.Content.Trim() + "%'";
  1347. }
  1348. //处理方式
  1349. if (paramModel.GoType != null && paramModel.GoType > 0)
  1350. {
  1351. sql += " and t.F_WORKORDERTYPEID =" + paramModel.GoType;
  1352. }
  1353. //渠道
  1354. if (paramModel.FromType != null && paramModel.FromType > 0)
  1355. {
  1356. sql += " and t.F_REPAIRMANID =" + paramModel.FromType;
  1357. }
  1358. //处理方式
  1359. if (paramModel.F_HASTENCOUNTS != null && paramModel.F_HASTENCOUNTS > -1)
  1360. {
  1361. if (paramModel.F_HASTENCOUNTS == 0)
  1362. {
  1363. sql += " and t.F_HASTENCOUNTS =0";
  1364. }
  1365. else
  1366. {
  1367. sql += " and t.F_HASTENCOUNTS >0";
  1368. }
  1369. }
  1370. //else
  1371. //{
  1372. // return "error(必须选择已定责)";
  1373. //}
  1374. //查询按钮
  1375. if (!string.IsNullOrEmpty(paramModel.dateParty))
  1376. {
  1377. string startDate = paramModel.dateParty.Substring(0, 10);
  1378. string endDate = paramModel.dateParty.Substring(12);
  1379. sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'";
  1380. sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'";
  1381. }
  1382. string tableNew = string.Format("(select DISTINCT t.F_AREA,t.F_CITY ,t.F_PROVINCE,t.F_WORKORDERID,t.F_CODE,u.F_UserName,t.F_CREATEDATE,t.F_RETURNVISITPROBLEM,t.F_WORKORDERFROM,t.F_REPAIRMANID,t.F_HASTENCOUNTS,t.F_WORKORDERTYPEID,t.F_CONTENT,t.F_REPAIRLEVEL,t.F_FILEFLAG,t.F_WORKORDERSTATEID,t.F_LINKMAN,t.F_CUSTOMERTELEPHONE,t.F_CUSTOMERNAME from T_Wo_WorkOrderBase t LEFT JOIN T_Wo_WorkOrderHistory h ON t.F_WORKORDERID=h.F_INSTANCEID LEFT JOIN T_Sys_UserAccount u ON t.F_USERID= u.F_UserId where (u.F_DeptId={0} OR h.F_OPTBTNID={0})) as t LEFT join T_Wo_WorkOrderNotice T2 On t.F_WORKORDERID=T2.OrderId ", F_DeptId);
  1383. DataTable dt = new DataTable();
  1384. int recordCount = 0;
  1385. Model.PageData<Model.T_Wo_WorkOrderBase> pageModel = new Model.PageData<Model.T_Wo_WorkOrderBase>();
  1386. dt = BLL.PagerBLL.GetListPager(
  1387. tableNew,
  1388. "t.F_WORKORDERID",
  1389. " 0 as 序号"
  1390. + ",t.F_CODE as 工单编号"
  1391. + ",t.F_UserName as 受理人"
  1392. + ",CONVERT(varchar, t.F_CREATEDATE, 120) as 受理时间"
  1393. + ",t.F_WORKORDERFROM as 事件来源"
  1394. + ",t.F_RETURNVISITPROBLEM as 事件概况"
  1395. + ",t.F_PROVINCE as 一级内容分类"
  1396. + " , t.F_CITY as 二级内容分类"
  1397. + ", t.F_AREA as 三级内容分类"
  1398. + ",T2.NoticeDeptName as 责任部门"
  1399. + ",T2.NoticeDeptContent as 责任部门调查情况"
  1400. + ",T2.NoticeDeptAdvise as 责任部门处理意见和整改措施"
  1401. + ",T2.DealAdvise as 计划经营部处理意见"
  1402. + ",T2.DealResult as 定性定责结果"
  1403. + ",case when F_WORKORDERSTATEID=0 then '未处理' when F_WORKORDERSTATEID=1 then '处理中' else '已处理' END AS 办理状态"
  1404. + " ,'-' as 风险点"
  1405. + ",'-' as 风险等级"
  1406. + ",'-' as 风险概率"
  1407. + ",'-' as 风险评估 "
  1408. ,
  1409. sql,
  1410. "ORDER BY t.F_CREATEDATE desc",
  1411. 100000,
  1412. 1,
  1413. true,
  1414. out recordCount);
  1415. if (recordCount > 0)
  1416. {
  1417. string tempCode = "";
  1418. int tempn = 0;
  1419. foreach (DataRow dr in dt.Rows)
  1420. {
  1421. if (tempCode != dr["工单编号"].ToMyString())
  1422. {
  1423. tempn += 1;
  1424. }
  1425. dr["序号"] = tempn;
  1426. tempCode = dr["工单编号"].ToMyString();
  1427. }
  1428. }
  1429. ResponseDataModel NewData = new ResponseDataModel();
  1430. ExcelReadWrite erw = new ExcelReadWrite();
  1431. byte[] Filebyte = erw.GetExcelByte(dt, "sheet1", true);
  1432. int officeVersion = erw.OfficeType();
  1433. if (officeVersion == 1 || officeVersion == 2)
  1434. {
  1435. NewData.Message = DateTime.Now.ToString("yyyy-MM-dd") + "全媒体客服转办及化解投诉定性定责情况汇总表.xls";
  1436. }
  1437. else
  1438. {
  1439. NewData.Message = DateTime.Now.ToString("yyyy-MM-dd") + "全媒体客服转办及化解投诉定性定责情况汇总表.xlsx";
  1440. }
  1441. NewData.Code = "0";
  1442. NewData.Data = JsonConvert.SerializeObject(Filebyte);
  1443. return JsonConvert.SerializeObject(NewData);
  1444. }
  1445. #endregion
  1446. #region 工单详情
  1447. public ActionResult ViewMyOrder(int orderKeyId)
  1448. {
  1449. //实例化基础信息表
  1450. CallScreenModel callScreenModel = new CallScreenModel();
  1451. //获取业务工单信息
  1452. if (orderKeyId > 0)
  1453. {
  1454. callScreenModel.WorkOrderBaseModel = orderBLL.GetModel(orderKeyId);
  1455. //如果电话号码不为空
  1456. if (callScreenModel.WorkOrderBaseModel != null && !string.IsNullOrEmpty(callScreenModel.WorkOrderBaseModel.F_CUSTOMERTELEPHONE))
  1457. {
  1458. T_Cus_CustomerBase baseCusModel = cusBLL.GetCusInfoModel(callScreenModel.WorkOrderBaseModel.F_CUSTOMERTELEPHONE);
  1459. if (baseCusModel != null && baseCusModel.F_CustomerId > 0)
  1460. {
  1461. callScreenModel.WorkOrderBaseModel.CustomerBaseModel = baseCusModel;
  1462. }
  1463. else
  1464. {
  1465. callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase();
  1466. }
  1467. }
  1468. else
  1469. {
  1470. callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase();
  1471. }
  1472. //获取客户基本信息
  1473. if (!string.IsNullOrEmpty(callScreenModel.WorkOrderBaseModel.F_EMPCODE))
  1474. {
  1475. T_Cus_CustomerBase baseCusModel = cusBLL.GetCusInfoModel(1, callScreenModel.WorkOrderBaseModel.F_EMPCODE);
  1476. if (baseCusModel != null && baseCusModel.F_CustomerId > 0)
  1477. {
  1478. callScreenModel.WorkOrderBaseModel.CustomerBaseModel = baseCusModel;
  1479. }
  1480. else
  1481. {
  1482. callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase();
  1483. }
  1484. }
  1485. }
  1486. //业务类型字典表
  1487. callScreenModel.WorkOrderTypeModelList = GetWorkTypeModelList();
  1488. //获取处理方式字典表
  1489. callScreenModel.GoTypeModelList = GetCodeType("CLFS");
  1490. //获取部门列表
  1491. callScreenModel.DepartmentList = deptBll.GetModelList("F_ParentId=0");
  1492. callScreenModel.HistoryOrderList = historyBll.GetModelList("F_INSTANCEID=" + orderKeyId);
  1493. callScreenModel.Noticelist = noticeBLL.GetModelList(" Orderid=" + orderKeyId + " Order by DZNumber ASC");
  1494. return View(callScreenModel);
  1495. }
  1496. /// <summary>
  1497. /// 处理历史工单
  1498. /// </summary>
  1499. /// <param name="orderKeyId">主键</param>
  1500. /// <returns></returns>
  1501. public ActionResult EditMyOrder(int dtype = 0, int orderKeyId = 0)
  1502. {
  1503. //实例化基础信息表
  1504. CallScreenModel callScreenModel = new CallScreenModel();
  1505. //工单类型
  1506. callScreenModel.DType = dtype;
  1507. //话务标志
  1508. callScreenModel.SeatFlag = F_SeatFlag;
  1509. //获取业务工单信息
  1510. if (orderKeyId > 0)
  1511. {
  1512. callScreenModel.WorkOrderBaseModel = orderBLL.GetModel(orderKeyId);
  1513. //如果电话号码不为空
  1514. if (callScreenModel.WorkOrderBaseModel != null && callScreenModel.WorkOrderBaseModel.F_CUSTOMERID > 1)
  1515. {
  1516. T_Cus_CustomerBase baseCusModel = cusBLL.GetModel((int)callScreenModel.WorkOrderBaseModel.F_CUSTOMERID);
  1517. if (baseCusModel != null && baseCusModel.F_CustomerId > 1)
  1518. {
  1519. callScreenModel.WorkOrderBaseModel.CustomerBaseModel = baseCusModel;
  1520. }
  1521. else
  1522. {
  1523. callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase();
  1524. }
  1525. }
  1526. else
  1527. {
  1528. callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase();
  1529. }
  1530. }
  1531. //业务类型字典表
  1532. callScreenModel.WorkOrderTypeModelList = GetWorkTypeModelList();
  1533. //获取处理方式字典表
  1534. callScreenModel.GoTypeModelList = GetCodeType("CLFS");
  1535. //回访满意度
  1536. callScreenModel.MYdModelList = GetCodeType("khyjfl");
  1537. //获取部门列表
  1538. callScreenModel.DepartmentList = deptBll.GetModelList("F_ParentId=0");
  1539. callScreenModel.HistoryOrderList = historyBll.GetModelList("F_INSTANCEID=" + orderKeyId);
  1540. callScreenModel.Noticelist = noticeBLL.GetModelList(" Orderid=" + orderKeyId + " Order by DZNumber ASC");
  1541. return View(callScreenModel);
  1542. }
  1543. #endregion
  1544. }
  1545. }