using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.Mvc; using YTSoft.BaseCallCenter.Model; using YTSoft.BaseCallCenter.MVCWeb.Models; using YTSoft.Common; namespace YTSoft.BaseCallCenter.MVCWeb.Controllers { public class OrderController : BaseController { //工单信息 BLL.T_Wo_WorkOrderBase orderBLL = new BLL.T_Wo_WorkOrderBase(); //客户信息 BLL.T_Cus_CustomerBase cusBLL = new BLL.T_Cus_CustomerBase(); //部门表 BLL.T_Sys_Department deptBll = new BLL.T_Sys_Department(); //转单通知 BLL.T_Wo_WorkOrderNotice noticeBLL = new BLL.T_Wo_WorkOrderNotice(); //用户表 BLL.T_Sys_UserAccount userBll = new BLL.T_Sys_UserAccount(); //历史工单表 BLL.T_Wo_WorkOrderHistory historyBll = new BLL.T_Wo_WorkOrderHistory(); #region 待处理 /// /// 获取待办工单 新 /// /// 工单类型 1、所有待办工单 2、代办结工单 /// public ActionResult WorkOrderWaitList(int dtype) { WorkOrderMyModel model = new WorkOrderMyModel(); model.DType = dtype; //业务类型字典表 model.WorkOrderTypeModelList = GetWorkTypeModelList(); //话务标志 model.SeatFlag = F_SeatFlag; return View(model); } /// /// 我的待办工单 /// /// 当前页码 /// 每页数据量 /// 查询条件 /// [ActionName("WorkOrderMyWaitData")] [HttpGet] public string WorkOrderMyWaitData(DateTime? NowDateTime, int page, int limit, int? types, string dateParty, string workorderNum, string cusName, string phoneNumber, string userInfo, int? bussType, int? detailType, string Content) { //数据结果集 ResponseData dataModel = new ResponseData(); //F_FILEFLAG 业务类型ID //F_WORKORDERSTATEID 0未处理 1处理中 2已办结 status //F_WORKORDERTYPEID 处理方式 1转单 3客服处理 GoType //F_REPAIRMANID 接入渠道 1语音 2留言 3微信 4微博 FromType 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); //工单编号 if (!string.IsNullOrEmpty(workorderNum)) { sql += " and F_CODE like '%" + workorderNum.Trim() + "%'"; } //客户姓名 if (!string.IsNullOrEmpty(cusName)) { sql += " and F_CUSTOMERNAME like '%" + cusName.Trim() + "%'"; } //客户电话 if (!string.IsNullOrEmpty(phoneNumber)) { sql += " and F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'"; } //坐席工号 if (!string.IsNullOrEmpty(userInfo)) { sql += " and F_LINKMAN like '%" + userInfo.Trim() + "%'"; } //业务类别 if (bussType != null && bussType > 0) { sql += " and F_FILEFLAG =" + bussType; } //业务类型 if (detailType != null && detailType > 0) { sql += " and F_REPAIRLEVEL =" + detailType; } //内容 if (!string.IsNullOrEmpty(Content)) { sql += " and F_CONTENT like '%" + Content.Trim() + "%'"; } //查询按钮 if (types == 0) { if (!string.IsNullOrEmpty(dateParty)) { string startDate = dateParty.Substring(0, 10); string endDate = dateParty.Substring(12); sql += " and F_CREATEDATE>= '" + startDate + " 00:00:00" + "'"; sql += " and F_CREATEDATE<= '" + endDate + " 23:59:59" + "'"; } }//一周按钮 else if (types == 1) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddDays(-7).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; }//一月按钮 else if (types == 2) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddMonths(-1).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; }//一年按钮 else if (types == 3) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddYears(-1).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; } DataTable dt = new DataTable(); int recordCount = 0; Model.PageData pageModel = new Model.PageData(); dt = BLL.PagerBLL.GetListPager( "T_Wo_WorkOrderBase", "F_WORKORDERID", "*,CONVERT(varchar,F_CREATEDATE, 120 ) as F_CREATEDATENew" + string.Format(",(select F_HISTORYID from T_Wo_WorkOrderHistory where F_INSTANCEID=F_WORKORDERID and F_WORKORDERSTATEID=0 and F_OPTUSERID={0}) AS F_HISTORYID", F_UserID) + @" , 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", //+ " ,(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", sql, "ORDER BY F_CREATEDATE desc", limit, page, true, out recordCount); dataModel.code = 0; dataModel.count = recordCount; dataModel.data = dt; return JsonConvert.SerializeObject(dataModel); } /// /// 二级单位处理完成提交处理信息 /// /// /// [AcceptVerbs(HttpVerbs.Post)] public bool SubmitOrder(T_Wo_WorkOrderHistory workOrderBaseModel) { return orderBLL.SubmitOrder(workOrderBaseModel); } #endregion #region 待回访 /// /// 获取待回访工单 /// /// 工单类型 1、所有待办工单 2、代办结工单 /// public ActionResult WorkOrderMyListHF(int dtype) { WorkOrderMyModel model = new WorkOrderMyModel(); model.DType = dtype; //业务类型字典表 model.WorkOrderTypeModelList = GetWorkTypeModelList(); //话务标志 model.SeatFlag = F_SeatFlag; return View(model); } /// /// 全媒体客服处理回访 /// /// /// [AcceptVerbs(HttpVerbs.Post)] public bool SubmitOrderHF(T_Wo_WorkOrderBase workOrderBaseModel) { return orderBLL.SubmitOrderHF(workOrderBaseModel); } /// /// 待回访工单 /// /// 当前页码 /// 每页数据量 /// 查询条件 /// [ActionName("WorkOrderMyDataHF")] [HttpGet] public string WorkOrderMyDataHF(DateTime? NowDateTime, int page, int limit, int? types, string dateParty, string workorderNum, string cusName, string phoneNumber, string userInfo, int? bussType, int? detailType, string Content) { //数据结果集 ResponseData dataModel = new ResponseData(); //F_FILEFLAG 业务类型ID //F_WORKORDERSTATEID 0未处理 1处理中 2已办结 status //F_WORKORDERTYPEID 处理方式 1转单 3客服处理 GoType //F_REPAIRMANID 接入渠道 1语音 2留言 3微信 4微博 FromType //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); string sql = string.Format(" and F_WORKORDERTYPEID=3 and F_WORKORDERSTATEID=3 and F_UserId={0}", F_UserID); //工单编号 if (!string.IsNullOrEmpty(workorderNum)) { sql += " and F_CODE like '%" + workorderNum.Trim() + "%'"; } //客户姓名 if (!string.IsNullOrEmpty(cusName)) { sql += " and F_CUSTOMERNAME like '%" + cusName.Trim() + "%'"; } //客户电话 if (!string.IsNullOrEmpty(phoneNumber)) { sql += " and F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'"; } //坐席工号 if (!string.IsNullOrEmpty(userInfo)) { sql += " and F_LINKMAN like '%" + userInfo.Trim() + "%'"; } //业务类别 if (bussType != null && bussType > 0) { sql += " and F_FILEFLAG =" + bussType; } //业务类型 if (detailType != null && detailType > 0) { sql += " and F_REPAIRLEVEL =" + detailType; } //内容 if (!string.IsNullOrEmpty(Content)) { sql += " and F_CONTENT like '%" + Content.Trim() + "%'"; } //查询按钮 if (types == 0) { if (!string.IsNullOrEmpty(dateParty)) { string startDate = dateParty.Substring(0, 10); string endDate = dateParty.Substring(12); sql += " and F_CREATEDATE>= '" + startDate + " 00:00:00" + "'"; sql += " and F_CREATEDATE<= '" + endDate + " 23:59:59" + "'"; } }//一周按钮 else if (types == 1) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddDays(-7).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; }//一月按钮 else if (types == 2) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddMonths(-1).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; }//一年按钮 else if (types == 3) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddYears(-1).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; } DataTable dt = new DataTable(); int recordCount = 0; Model.PageData pageModel = new Model.PageData(); dt = BLL.PagerBLL.GetListPager( "T_Wo_WorkOrderBase", "F_WORKORDERID", "*,CONVERT(varchar,F_CREATEDATE, 120 ) as F_CREATEDATENew" + @" , 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", //+ " ,(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", sql, "ORDER BY F_CREATEDATE desc", limit, page, true, out recordCount); dataModel.code = 0; dataModel.count = recordCount; dataModel.data = dt; return JsonConvert.SerializeObject(dataModel); } #endregion #region 待定责 public string DZDeptList(int workid) { DataTable dt = null; DataSet ds = historyBll.GetListDZ(string.Format(" F_INSTANCEID={0} ", workid)); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { dt = ds.Tables[0]; } ResponseData dataModel = new ResponseData(); dataModel.code = 0; dataModel.count = 0; dataModel.data = dt; return JsonConvert.SerializeObject(dataModel); } /// /// 定责视图 /// /// 工单类型 1、所有待办工单 2、代办结工单 /// public ActionResult WorkOrderMyListDZ(int dtype) { WorkOrderMyModel model = new WorkOrderMyModel(); model.DType = dtype; //业务类型字典表 model.WorkOrderTypeModelList = GetWorkTypeModelList(); //话务标志 model.SeatFlag = F_SeatFlag; return View(model); } /// /// 录入定责结果 /// /// /// [AcceptVerbs(HttpVerbs.Post)] public bool SubmitOrderDZ(T_Wo_WorkOrderNoticeInput modelinput) { if (modelinput.orderid == 0) { return false; } #region 处理工单事件分类 Model.T_Wo_WorkOrderBase modelorder = new T_Wo_WorkOrderBase(); modelorder.F_WORKORDERID = modelinput.orderid; modelorder.F_PROVINCE = modelinput.ClassName1; modelorder.F_CITY = modelinput.ClassName2; modelorder.F_AREA = modelinput.ClassName3; #endregion if (modelinput.Noticelist != null&& modelinput.Noticelist.Count>0) { noticeBLL.updatenum(modelinput.orderid); foreach (T_Wo_WorkOrderNotice model in modelinput.Noticelist) { T_Wo_WorkOrderNotice modeladd = new T_Wo_WorkOrderNotice(); #region 前端传入参数 modeladd.OrderId = modelinput.orderid; modeladd.DealAdvise= model.DealAdvise; modeladd.DealResult = model.DealResult; modeladd.NoticeDeptId = model.NoticeDeptId; modeladd.NoticeDeptName = model.NoticeDeptName; #endregion modeladd.NoticeState = 1; modeladd.NoticeType = 1; modeladd.Userid = F_UserID; modeladd.Username = F_UserName; List modelhisList = historyBll.GetModelList(string.Format(" F_INSTANCEID={0} AND F_OPTBTNID={1}", model.OrderId, model.NoticeDeptId)); foreach (T_Wo_WorkOrderHistory modelhis in modelhisList) { modeladd.NoticeDeptContent += modelhis.F_REMARK; modeladd.NoticeDeptAdvise += modelhis.F_REMARK; modeladd.NoticeUserid = modelhis.F_OPTUSERID.ToInt32(); modeladd.NoticeUsername = modelhis.F_UserName; } noticeBLL.Add(modeladd); } } return orderBLL.UpdateDZClass(modelorder); } /// /// 待定责列表 /// /// 当前页码 /// 每页数据量 /// 查询条件 /// [ActionName("WorkOrderMyDataDZ")] [HttpGet] public string WorkOrderMyDataDZ(DateTime? NowDateTime, int page, int limit, int? types, string dateParty, string workorderNum, string cusName, string phoneNumber, string userInfo, int? bussType, int? detailType, string Content) { //数据结果集 ResponseData dataModel = new ResponseData(); //F_FILEFLAG 业务类型ID //F_WORKORDERSTATEID 0未处理 1处理中 2已办结 status //F_WORKORDERTYPEID 处理方式 1转单 3客服处理 GoType //F_REPAIRMANID 接入渠道 1语音 2留言 3微信 4微博 FromType //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); 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); //工单编号 if (!string.IsNullOrEmpty(workorderNum)) { sql += " and F_CODE like '%" + workorderNum.Trim() + "%'"; } //客户姓名 if (!string.IsNullOrEmpty(cusName)) { sql += " and F_CUSTOMERNAME like '%" + cusName.Trim() + "%'"; } //客户电话 if (!string.IsNullOrEmpty(phoneNumber)) { sql += " and F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'"; } //坐席工号 if (!string.IsNullOrEmpty(userInfo)) { sql += " and F_LINKMAN like '%" + userInfo.Trim() + "%'"; } //业务类别 if (bussType != null && bussType > 0) { sql += " and F_FILEFLAG =" + bussType; } //业务类型 if (detailType != null && detailType > 0) { sql += " and F_REPAIRLEVEL =" + detailType; } //内容 if (!string.IsNullOrEmpty(Content)) { sql += " and F_CONTENT like '%" + Content.Trim() + "%'"; } //查询按钮 if (types == 0) { if (!string.IsNullOrEmpty(dateParty)) { string startDate = dateParty.Substring(0, 10); string endDate = dateParty.Substring(12); sql += " and F_CREATEDATE>= '" + startDate + " 00:00:00" + "'"; sql += " and F_CREATEDATE<= '" + endDate + " 23:59:59" + "'"; } }//一周按钮 else if (types == 1) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddDays(-7).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; }//一月按钮 else if (types == 2) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddMonths(-1).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; }//一年按钮 else if (types == 3) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddYears(-1).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; } DataTable dt = new DataTable(); int recordCount = 0; Model.PageData pageModel = new Model.PageData(); dt = BLL.PagerBLL.GetListPager( "T_Wo_WorkOrderBase", "F_WORKORDERID", "*,CONVERT(varchar,F_CREATEDATE, 120 ) as F_CREATEDATENew" + @" , 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", //+ " ,(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", sql, "ORDER BY F_CREATEDATE desc", limit, page, true, out recordCount); dataModel.code = 0; dataModel.count = recordCount; dataModel.data = dt; return JsonConvert.SerializeObject(dataModel); } [AcceptVerbs(HttpVerbs.Post)] public bool canDZ(int workid) { int n= orderBLL.GetRecordCount(string.Format("F_ROAD='{0}' AND F_WORKORDERID={1}", F_UserID, workid)); if (n > 0) return true; else { Model.T_Wo_WorkOrderBase model = new T_Wo_WorkOrderBase(); model.F_WORKORDERID = workid; model.F_ROAD = F_UserID.ToMyString(); return orderBLL.UpdateDZuser(model); } } #endregion #region 已定责 /// /// 已定责视图 /// /// 工单类型 1、所有待办工单 2、代办结工单 /// public ActionResult WorkOrderMyListDZ1(int dtype) { WorkOrderMyModel model = new WorkOrderMyModel(); model.DType = dtype; //业务类型字典表 model.WorkOrderTypeModelList = GetWorkTypeModelList(); //话务标志 model.SeatFlag = F_SeatFlag; return View(model); } /// /// 录入定责结果 /// /// /// [AcceptVerbs(HttpVerbs.Post)] public bool SubmitOrderDZ1(T_Wo_WorkOrderNoticeInput modelinput) { if (modelinput.orderid == 0) { return false; } #region 处理工单事件分类 Model.T_Wo_WorkOrderBase modelorder = new T_Wo_WorkOrderBase(); modelorder.F_WORKORDERID = modelinput.orderid; modelorder.F_PROVINCE = modelinput.ClassName1; modelorder.F_CITY = modelinput.ClassName2; modelorder.F_AREA = modelinput.ClassName3; #endregion if (modelinput.Noticelist != null) { noticeBLL.updatenum(modelinput.orderid); foreach (T_Wo_WorkOrderNotice model in modelinput.Noticelist) { T_Wo_WorkOrderNotice modeladd = new T_Wo_WorkOrderNotice(); #region 前端传入参数 modeladd.OrderId = modelinput.orderid; modeladd.DealAdvise = model.DealAdvise; modeladd.DealResult = model.DealResult; modeladd.NoticeDeptId = model.NoticeDeptId; modeladd.NoticeDeptName = model.NoticeDeptName; #endregion modeladd.NoticeState = 1; modeladd.NoticeType = 1; modeladd.Userid = F_UserID; modeladd.Username = F_UserName; List modelhisList = historyBll.GetModelList(string.Format(" F_INSTANCEID={0} AND F_OPTBTNID={1}", model.OrderId, model.NoticeDeptId)); foreach (T_Wo_WorkOrderHistory modelhis in modelhisList) { modeladd.NoticeDeptContent += modelhis.F_REMARK; modeladd.NoticeDeptAdvise += modelhis.F_REMARK; modeladd.NoticeUserid = modelhis.F_OPTUSERID.ToInt32(); modeladd.NoticeUsername = modelhis.F_UserName; } noticeBLL.Add(modeladd); } } return orderBLL.UpdateDZClass(modelorder); } /// /// 已定责列表 /// /// 当前页码 /// 每页数据量 /// 查询条件 /// [ActionName("WorkOrderMyDataDZ1")] [HttpGet] public string WorkOrderMyDataDZ1(DateTime? NowDateTime, int page, int limit, int? types, string dateParty, string workorderNum, string cusName, string phoneNumber, string userInfo, int? bussType, int? detailType, string Content) { //数据结果集 ResponseData dataModel = new ResponseData(); //F_FILEFLAG 业务类型ID //F_WORKORDERSTATEID 0未处理 1处理中 2已办结 status //F_WORKORDERTYPEID 处理方式 1转单 3客服处理 GoType //F_REPAIRMANID 接入渠道 1语音 2留言 3微信 4微博 FromType //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); string sql = string.Format(" and F_WORKORDERTYPEID=3 and F_WORKORDERSTATEID=5 and F_ROAD='{0}'", F_UserID); //工单编号 if (!string.IsNullOrEmpty(workorderNum)) { sql += " and F_CODE like '%" + workorderNum.Trim() + "%'"; } //客户姓名 if (!string.IsNullOrEmpty(cusName)) { sql += " and F_CUSTOMERNAME like '%" + cusName.Trim() + "%'"; } //客户电话 if (!string.IsNullOrEmpty(phoneNumber)) { sql += " and F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'"; } //坐席工号 if (!string.IsNullOrEmpty(userInfo)) { sql += " and F_LINKMAN like '%" + userInfo.Trim() + "%'"; } //业务类别 if (bussType != null && bussType > 0) { sql += " and F_FILEFLAG =" + bussType; } //业务类型 if (detailType != null && detailType > 0) { sql += " and F_REPAIRLEVEL =" + detailType; } //内容 if (!string.IsNullOrEmpty(Content)) { sql += " and F_CONTENT like '%" + Content.Trim() + "%'"; } //查询按钮 if (types == 0) { if (!string.IsNullOrEmpty(dateParty)) { string startDate = dateParty.Substring(0, 10); string endDate = dateParty.Substring(12); sql += " and F_CREATEDATE>= '" + startDate + " 00:00:00" + "'"; sql += " and F_CREATEDATE<= '" + endDate + " 23:59:59" + "'"; } }//一周按钮 else if (types == 1) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddDays(-7).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; }//一月按钮 else if (types == 2) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddMonths(-1).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; }//一年按钮 else if (types == 3) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddYears(-1).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; } DataTable dt = new DataTable(); int recordCount = 0; Model.PageData pageModel = new Model.PageData(); dt = BLL.PagerBLL.GetListPager( "T_Wo_WorkOrderBase", "F_WORKORDERID", "*,CONVERT(varchar,F_CREATEDATE, 120 ) as F_CREATEDATENew" + @" , 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", //+ " ,(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", sql, "ORDER BY F_CREATEDATE desc", limit, page, true, out recordCount); dataModel.code = 0; dataModel.count = recordCount; dataModel.data = dt; return JsonConvert.SerializeObject(dataModel); } #endregion #region 相关通知 /// /// 已定责视图 /// /// 工单类型 1、所有待办工单 2、代办结工单 /// public ActionResult WorkOrderMyListNotice(int dtype) { WorkOrderMyModel model = new WorkOrderMyModel(); model.DType = dtype; //业务类型字典表 model.WorkOrderTypeModelList = GetWorkTypeModelList(); //话务标志 model.SeatFlag = F_SeatFlag; return View(model); } /// /// 相关表扬 /// /// 当前页码 /// 每页数据量 /// 查询条件 /// [ActionName("WorkOrderMyDataNotice")] [HttpGet] public string WorkOrderMyDataNotice(DateTime? NowDateTime, int page, int limit, int? types, string dateParty, string workorderNum, string cusName, string phoneNumber, string userInfo, int? bussType, int? detailType, string Content,int NoticeType) { //数据结果集 ResponseData dataModel = new ResponseData(); //F_FILEFLAG 业务类型ID //F_WORKORDERSTATEID 0未处理 1处理中 2已办结 status //F_WORKORDERTYPEID 处理方式 1转单 3客服处理 GoType //F_REPAIRMANID 接入渠道 1语音 2留言 3微信 4微博 FromType //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); string sql = " and F_WORKORDERTYPEID=3 and F_WORKORDERSTATEID=5 "; //工单编号 if (!string.IsNullOrEmpty(workorderNum)) { sql += " and F_CODE like '%" + workorderNum.Trim() + "%'"; } //客户姓名 if (!string.IsNullOrEmpty(cusName)) { sql += " and F_CUSTOMERNAME like '%" + cusName.Trim() + "%'"; } //客户电话 if (!string.IsNullOrEmpty(phoneNumber)) { sql += " and F_CUSTOMERTELEPHONE like '%" + phoneNumber.Trim() + "%'"; } //坐席工号 if (!string.IsNullOrEmpty(userInfo)) { sql += " and F_LINKMAN like '%" + userInfo.Trim() + "%'"; } //业务类别 if (bussType != null && bussType > 0) { sql += " and F_FILEFLAG =" + bussType; } //业务类型 if (detailType != null && detailType > 0) { sql += " and F_REPAIRLEVEL =" + detailType; } //内容 if (!string.IsNullOrEmpty(Content)) { sql += " and F_CONTENT like '%" + Content.Trim() + "%'"; } //查询按钮 if (types == 0) { if (!string.IsNullOrEmpty(dateParty)) { string startDate = dateParty.Substring(0, 10); string endDate = dateParty.Substring(12); sql += " and F_CREATEDATE>= '" + startDate + " 00:00:00" + "'"; sql += " and F_CREATEDATE<= '" + endDate + " 23:59:59" + "'"; } }//一周按钮 else if (types == 1) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddDays(-7).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; }//一月按钮 else if (types == 2) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddMonths(-1).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; }//一年按钮 else if (types == 3) { string endDate = DateTime.Now.ToString(); string startDate = DateTime.Now.AddYears(-1).ToString(); sql += " and F_CREATEDATE>= '" + startDate + "'"; sql += " and F_CREATEDATE<= '" + endDate + "'"; } DataTable dt = new DataTable(); int recordCount = 0; Model.PageData pageModel = new Model.PageData(); dt = BLL.PagerBLL.GetListPager( 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}", F_DeptId, NoticeType), "F_WORKORDERID", "*,CONVERT(varchar,F_CREATEDATE, 120 ) as F_CREATEDATENew,NoticeDeptId,NoticeDeptName" + @" , 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", //+ " ,(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", sql, "ORDER BY F_CREATEDATE desc", limit, page, true, out recordCount); dataModel.code = 0; dataModel.count = recordCount; dataModel.data = dt; return JsonConvert.SerializeObject(dataModel); } #endregion #region 公共 /// /// 获取二级业务类型 /// /// 业务类别 /// public string GetBussType(int? bussnessType) { try { if (bussnessType != null && bussnessType > 0) { List modelList = GetWorkTypeModelList(); return JsonConvert.SerializeObject(modelList.Where(t => t.F_WorkOrderTypeId == bussnessType).ToList()[0].WorkTypeModelList); } else { return null; } } catch (Exception ex) { } return null; } /// /// 导出数据 /// /// 当前页码 /// 每页数据量 /// 查询条件 /// [AcceptVerbs(HttpVerbs.Post)] public string ExToExcel(ExToExcel paramModel) { //数据结果集 ResponseData dataModel = new ResponseData(); string sql = ""; //工单编号 if (!string.IsNullOrEmpty(paramModel.workorderNum)) { sql += " and t.F_CODE like '%" + paramModel.workorderNum.Trim() + "%'"; } //客户姓名 if (!string.IsNullOrEmpty(paramModel.cusName)) { sql += " and t.F_CUSTOMERNAME like '%" + paramModel.cusName.Trim() + "%'"; } //客户电话 if (!string.IsNullOrEmpty(paramModel.phoneNumber)) { sql += " and t.F_CUSTOMERTELEPHONE like '%" + paramModel.phoneNumber.Trim() + "%'"; } //坐席工号 if (!string.IsNullOrEmpty(paramModel.userInfo)) { sql += " and t.F_LINKMAN like '%" + paramModel.userInfo.Trim() + "%'"; } //状态 if (paramModel.status != null) { sql += " and t.F_WORKORDERSTATEID =" + paramModel.status; } //业务类别 if (paramModel.bussType != null && paramModel.bussType > 0) { sql += " and t.F_FILEFLAG =" + paramModel.bussType; } //业务类型 if (paramModel.detailType != null && paramModel.detailType > 0) { sql += " and t.F_REPAIRLEVEL =" + paramModel.detailType; } //内容 if (!string.IsNullOrEmpty(paramModel.Content)) { sql += " and t.F_CONTENT like '%" + paramModel.Content.Trim() + "%'"; } //处理方式 if (paramModel.GoType != null && paramModel.GoType > 0) { sql += " and t.F_WORKORDERTYPEID =" + paramModel.GoType; } //渠道 if (paramModel.FromType != null && paramModel.FromType > 0) { sql += " and t.F_REPAIRMANID =" + paramModel.FromType; } //查询按钮 if (!string.IsNullOrEmpty(paramModel.dateParty)) { string startDate = paramModel.dateParty.Substring(0, 10); string endDate = paramModel.dateParty.Substring(12); sql += " and t.F_CREATEDATE>= '" + startDate + " 00:00:00" + "'"; sql += " and t.F_CREATEDATE<= '" + endDate + " 23:59:59" + "'"; } 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); DataTable dt = new DataTable(); int recordCount = 0; Model.PageData pageModel = new Model.PageData(); dt = BLL.PagerBLL.GetListPager( tableNew, "F_WORKORDERID", " t.F_CODE as 工单编号" + ",F_CUSTOMERNAME as 客户姓名" + ",F_CUSTOMERTELEPHONE as 客户电话" + ",F_LINKMAN as 坐席工号" + ",F_REPAIRMANNAME as 坐席姓名" + ",F_WORKORDERFROM as 接入渠道" + " , CONVERT(varchar, t.F_CREATEDATE, 120) as 受理时间" + ",F_REPAIRREQUEST as 业务状态" + ",F_CONTENT as 内容" + ",F_RETURNVISITCONTENT as 处理回复内容" + ",F_HOUSING as 业务类型" + ",F_ADSLACCOUNT as 业务明细" , sql, "ORDER BY t.F_CREATEDATE desc", 100000, 1, true, out recordCount); ResponseDataModel NewData = new ResponseDataModel(); ExcelReadWrite erw = new ExcelReadWrite(); byte[] Filebyte = erw.GetExcelByte(dt, "sheet1", true); int officeVersion = erw.OfficeType(); if (officeVersion == 1 || officeVersion == 2) { NewData.Message = DateTime.Now.ToString("yyyy-MM-dd") + "工单数据.xls"; } else { NewData.Message = DateTime.Now.ToString("yyyy-MM-dd") + "工单数据.xlsx"; } NewData.Code = "0"; NewData.Data = JsonConvert.SerializeObject(Filebyte); return JsonConvert.SerializeObject(NewData); } #endregion #region 工单详情 public ActionResult ViewMyOrder(int orderKeyId) { //实例化基础信息表 CallScreenModel callScreenModel = new CallScreenModel(); //获取业务工单信息 if (orderKeyId > 0) { callScreenModel.WorkOrderBaseModel = orderBLL.GetModel(orderKeyId); //如果电话号码不为空 if (callScreenModel.WorkOrderBaseModel != null && !string.IsNullOrEmpty(callScreenModel.WorkOrderBaseModel.F_CUSTOMERTELEPHONE)) { T_Cus_CustomerBase baseCusModel = cusBLL.GetCusInfoModel(callScreenModel.WorkOrderBaseModel.F_CUSTOMERTELEPHONE); if (baseCusModel != null && baseCusModel.F_CustomerId > 0) { callScreenModel.WorkOrderBaseModel.CustomerBaseModel = baseCusModel; } else { callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase(); } } else { callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase(); } //获取客户基本信息 if (!string.IsNullOrEmpty(callScreenModel.WorkOrderBaseModel.F_EMPCODE)) { T_Cus_CustomerBase baseCusModel = cusBLL.GetCusInfoModel(1, callScreenModel.WorkOrderBaseModel.F_EMPCODE); if (baseCusModel != null && baseCusModel.F_CustomerId > 0) { callScreenModel.WorkOrderBaseModel.CustomerBaseModel = baseCusModel; } else { callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase(); } } } //业务类型字典表 callScreenModel.WorkOrderTypeModelList = GetWorkTypeModelList(); //获取处理方式字典表 callScreenModel.GoTypeModelList = GetCodeType("CLFS"); //获取部门列表 callScreenModel.DepartmentList = deptBll.GetModelList("F_ParentId=0"); callScreenModel.HistoryOrderList = historyBll.GetModelList("F_INSTANCEID=" + orderKeyId); callScreenModel.Noticelist = noticeBLL.GetModelList(" Orderid=" + orderKeyId + " Order by DZNumber ASC"); return View(callScreenModel); } /// /// 处理历史工单 /// /// 主键 /// public ActionResult EditMyOrder(int dtype = 0, int orderKeyId = 0) { //实例化基础信息表 CallScreenModel callScreenModel = new CallScreenModel(); //工单类型 callScreenModel.DType = dtype; //话务标志 callScreenModel.SeatFlag = F_SeatFlag; //获取业务工单信息 if (orderKeyId > 0) { callScreenModel.WorkOrderBaseModel = orderBLL.GetModel(orderKeyId); //如果电话号码不为空 if (callScreenModel.WorkOrderBaseModel != null && callScreenModel.WorkOrderBaseModel.F_CUSTOMERID > 1) { T_Cus_CustomerBase baseCusModel = cusBLL.GetModel((int)callScreenModel.WorkOrderBaseModel.F_CUSTOMERID); if (baseCusModel != null && baseCusModel.F_CustomerId > 1) { callScreenModel.WorkOrderBaseModel.CustomerBaseModel = baseCusModel; } else { callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase(); } } else { callScreenModel.WorkOrderBaseModel.CustomerBaseModel = new T_Cus_CustomerBase(); } } //业务类型字典表 callScreenModel.WorkOrderTypeModelList = GetWorkTypeModelList(); //获取处理方式字典表 callScreenModel.GoTypeModelList = GetCodeType("CLFS"); //回访满意度 callScreenModel.MYdModelList = GetCodeType("khyjfl"); //获取部门列表 callScreenModel.DepartmentList = deptBll.GetModelList("F_ParentId=0"); callScreenModel.HistoryOrderList = historyBll.GetModelList("F_INSTANCEID=" + orderKeyId); callScreenModel.Noticelist = noticeBLL.GetModelList(" Orderid=" + orderKeyId+ " Order by DZNumber ASC"); return View(callScreenModel); } #endregion } }