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
}
}