using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using CallCenter.Utility;
namespace CallCenterApi.BLL
{
///
/// 计划表
///
public partial class T_CTI_Task
{
private readonly CallCenterApi.DAL.T_CTI_Task dal = new CallCenterApi.DAL.T_CTI_Task();
private readonly CallCenterApi.DAL.T_Call_TaskTelNum telNumDal = new CallCenterApi.DAL.T_Call_TaskTelNum();
public T_CTI_Task()
{ }
#region Method
///
/// 是否存在该记录
///
public bool Exists(long TaskID)
{
return dal.Exists(TaskID);
}
///
/// 增加一条数据
///
public long Add(CallCenterApi.Model.T_CTI_Task model)
{
return dal.Add(model);
}
///
/// 更新一条数据
///
public bool Update(CallCenterApi.Model.T_CTI_Task model)
{
return dal.Update(model);
}
///
/// 更新一条数据
///
public bool UpdateState(int id, int state)
{
return dal.UpdateState(id, state);
}
///
/// 更新多条数据
///
public bool UpdateStateBatch(string where, int state)
{
return dal.UpdateStateBatch(where, state);
}
///
/// 删除一条数据
///
public bool Delete(long TaskID)
{
return dal.Delete(TaskID);
}
///
/// 删除一条数据
///
public bool DeleteList(string TaskIDlist)
{
return dal.DeleteList(TaskIDlist);
}
///
/// 得到一个对象实体
///
public CallCenterApi.Model.T_CTI_Task GetModel(long TaskID)
{
return dal.GetModel(TaskID);
}
///
/// 获得数据列表
///
public DataSet GetList(string strWhere)
{
return dal.GetList(strWhere);
}
///
/// 获得数据列表
///
public DataSet GetTaskList(string strWhere)
{
return dal.GetTaskList(strWhere);
}
/////
///// 获得前几行数据
/////
//public DataSet GetList(int Top, string strWhere, string filedOrder)
//{
// return dal.GetList(Top, strWhere, filedOrder);
//}
///
/// 获得数据列表
///
public List GetModelList(string strWhere)
{
DataSet ds = dal.GetList(strWhere);
return DataTableToList(ds.Tables[0]);
}
///
/// 获得数据列表
///
public List DataTableToList(DataTable dt)
{
List modelList = new List();
int rowsCount = dt.Rows.Count;
if (rowsCount > 0)
{
CallCenterApi.Model.T_CTI_Task model;
for (int n = 0; n < rowsCount; n++)
{
model = new CallCenterApi.Model.T_CTI_Task();
if (dt.Rows[n]["TaskID"] != null && dt.Rows[n]["TaskID"].ToString() != "")
{
model.TaskID = long.Parse(dt.Rows[n]["TaskID"].ToString());
}
if (dt.Rows[n]["TaskName"] != null && dt.Rows[n]["TaskName"].ToString() != "")
{
model.TaskName = dt.Rows[n]["TaskName"].ToString();
}
if (dt.Rows[n]["State"] != null && dt.Rows[n]["State"].ToString() != "")
{
model.State = int.Parse(dt.Rows[n]["State"].ToString());
}
if (dt.Rows[n]["AddTime"] != null && dt.Rows[n]["AddTime"].ToString() != "")
{
model.AddTime = DateTime.Parse(dt.Rows[n]["AddTime"].ToString());
}
model.y_YJCount = Convert.ToInt32(dt.Rows[n]["y_YJCount"]);
model.y_HMCount = Convert.ToInt32(dt.Rows[n]["y_HMCount"]);
model.PlanStartDate = dt.Rows[n]["PlanStartDate"] == DBNull.Value ? DateTime.Now : Convert.ToDateTime(dt.Rows[n]["PlanStartDate"]);
model.PlanEndDate = dt.Rows[n]["PlanEndDate"] == DBNull.Value ? DateTime.Now : Convert.ToDateTime(dt.Rows[n]["PlanEndDate"]);
model.StartTime1 = dt.Rows[n]["StartTime1"] == DBNull.Value ? DateTime.Now : Convert.ToDateTime(dt.Rows[n]["StartTime1"]);
model.EndTime1 = dt.Rows[n]["EndTime1"] == DBNull.Value ? DateTime.Now : Convert.ToDateTime(dt.Rows[n]["EndTime1"]);
model.StartTime2 = dt.Rows[n]["StartTime2"] == DBNull.Value ? DateTime.Now : Convert.ToDateTime(dt.Rows[n]["StartTime2"]);
model.EndTime2 = dt.Rows[n]["EndTime2"] == DBNull.Value ? DateTime.Now : Convert.ToDateTime(dt.Rows[n]["EndTime2"]);
model.TaskCategoryId = dt.Rows[n]["TaskCategoryId"] == DBNull.Value ? 0 : Convert.ToInt32(dt.Rows[n]["TaskCategoryId"]);
model.TaskContent = dt.Rows[n]["TaskContent"] == DBNull.Value ? "" : dt.Rows[n]["TaskContent"].ToString();
model.IsExcuteNow = dt.Rows[n]["IsExcuteNow"] == DBNull.Value ? false : Convert.ToBoolean(dt.Rows[n]["IsExcuteNow"]);
model.LoopTime = dt.Rows[n]["LoopTime"] == DBNull.Value ? 0 : Convert.ToInt32(dt.Rows[n]["LoopTime"]);
modelList.Add(model);
}
}
return modelList;
}
/////
///// 获得数据列表
/////
//public List DataTableToListPager(DataTable dt)
//{
// List modelList = new List();
// int rowsCount = dt.Rows.Count;
// var columns = dt.Columns;
// if (rowsCount > 0)
// {
// CallCenterApi.Model.vw_CTI_TaskPager model;
// for (int n = 0; n < rowsCount; n++)
// {
// try
// {
// model = new CallCenterApi.Model.vw_CTI_TaskPager();
// if (dt.Rows[n]["TaskID"] != null && dt.Rows[n]["TaskID"].ToString() != "")
// {
// model.TaskID = long.Parse(dt.Rows[n]["TaskID"].ToString());
// }
// if (dt.Rows[n]["TaskName"] != null && dt.Rows[n]["TaskName"].ToString() != "")
// {
// model.TaskName = dt.Rows[n]["TaskName"].ToString();
// }
// if (columns.Contains("TrunkGroupID"))
// {
// if (dt.Rows[n]["TrunkGroupID"] != null && dt.Rows[n]["TrunkGroupID"].ToString() != "")
// {
// model.TrunkGroupID = int.Parse(dt.Rows[n]["TrunkGroupID"].ToString());
// }
// }
// if (dt.Rows[n]["CallerNum"] != null && dt.Rows[n]["CallerNum"].ToString() != "")
// {
// model.CallerNum = dt.Rows[n]["CallerNum"].ToString();
// }
// if (dt.Rows[n]["CallType"] != null && dt.Rows[n]["CallType"].ToString() != "")
// {
// model.CallType = int.Parse(dt.Rows[n]["CallType"].ToString());
// }
// if (dt.Rows[n]["ExInfo"] != null && dt.Rows[n]["ExInfo"].ToString() != "")
// {
// model.ExInfo = dt.Rows[n]["ExInfo"].ToString();
// }
// if (dt.Rows[n]["MaxTrunkCount"] != null && dt.Rows[n]["MaxTrunkCount"].ToString() != "")
// {
// model.MaxTrunkCount = int.Parse(dt.Rows[n]["MaxTrunkCount"].ToString());
// }
// if (dt.Rows[n]["IntensityCoefficient"] != null && dt.Rows[n]["IntensityCoefficient"].ToString() != "")
// {
// model.IntensityCoefficient = decimal.Parse(dt.Rows[n]["IntensityCoefficient"].ToString());
// }
// if (dt.Rows[n]["ItemTableName"] != null && dt.Rows[n]["ItemTableName"].ToString() != "")
// {
// model.ItemTableName = dt.Rows[n]["ItemTableName"].ToString();
// }
// if (dt.Rows[n]["State"] != null && dt.Rows[n]["State"].ToString() != "")
// {
// model.State = int.Parse(dt.Rows[n]["State"].ToString());
// }
// if (dt.Rows[n]["AddTime"] != null && dt.Rows[n]["AddTime"].ToString() != "")
// {
// model.AddTime = Convert.ToDateTime(dt.Rows[n]["AddTime"].ToString());
// }
// if (dt.Rows[n]["y_PSort"] != null && dt.Rows[n]["y_PSort"].ToString() != "")
// {
// model.y_PSort = int.Parse(dt.Rows[n]["y_PSort"].ToString());
// }
// if (dt.Rows[n]["y_TkModelId"] != null && dt.Rows[n]["y_TkModelId"].ToString() != "")
// {
// model.y_TkModelId = long.Parse(dt.Rows[n]["y_TkModelId"].ToString());
// }
// if (dt.Rows[n]["y_SXH"] != null && dt.Rows[n]["y_SXH"].ToString() != "")
// {
// model.y_SXH = int.Parse(dt.Rows[n]["y_SXH"].ToString());
// }
// if (dt.Rows[n]["y_FPCount"] != null && dt.Rows[n]["y_FPCount"].ToString() != "")
// {
// model.y_FPCount = int.Parse(dt.Rows[n]["y_FPCount"].ToString());
// }
// if (dt.Rows[n]["y_YJCount"] != null && dt.Rows[n]["y_YJCount"].ToString() != "")
// {
// model.y_YJCount = int.Parse(dt.Rows[n]["y_YJCount"].ToString());
// }
// if (dt.Rows[n]["y_HCCount"] != null && dt.Rows[n]["y_HCCount"].ToString() != "")
// {
// model.y_HCCount = int.Parse(dt.Rows[n]["y_HCCount"].ToString());
// }
// if (dt.Rows[n]["y_HSCount"] != null && dt.Rows[n]["y_HSCount"].ToString() != "")
// {
// model.y_HSCount = int.Parse(dt.Rows[n]["y_HSCount"].ToString());
// }
// if (dt.Rows[n]["y_HTCount"] != null && dt.Rows[n]["y_HTCount"].ToString() != "")
// {
// model.y_HTCount = int.Parse(dt.Rows[n]["y_HTCount"].ToString());
// }
// if (dt.Rows[n]["y_HMCount"] != null && dt.Rows[n]["y_HMCount"].ToString() != "")
// {
// model.y_HMCount = int.Parse(dt.Rows[n]["y_HMCount"].ToString());
// }
// if (dt.Rows[n]["y_OkCount"] != null && dt.Rows[n]["y_OkCount"].ToString() != "")
// {
// model.y_OkCount = int.Parse(dt.Rows[n]["y_OkCount"].ToString());
// }
// if (dt.Rows[n]["y_RFCount"] != null && dt.Rows[n]["y_RFCount"].ToString() != "")
// {
// model.y_RFCount = int.Parse(dt.Rows[n]["y_RFCount"].ToString());
// }
// if (dt.Rows[n]["y_ConsCount"] != null && dt.Rows[n]["y_ConsCount"].ToString() != "")
// {
// model.y_ConsCount = int.Parse(dt.Rows[n]["y_ConsCount"].ToString());
// }
// if (dt.Rows[n]["y_InvlCount"] != null && dt.Rows[n]["y_InvlCount"].ToString() != "")
// {
// model.y_InvlCount = int.Parse(dt.Rows[n]["y_InvlCount"].ToString());
// }
// if (dt.Rows[n]["y_NoAnswerCount"] != null && dt.Rows[n]["y_NoAnswerCount"].ToString() != "")
// {
// model.y_NoAnswerCount = int.Parse(dt.Rows[n]["y_NoAnswerCount"].ToString());
// }
// if (dt.Rows[n]["y_ShutDownCount"] != null && dt.Rows[n]["y_ShutDownCount"].ToString() != "")
// {
// model.y_ShutDownCount = int.Parse(dt.Rows[n]["y_ShutDownCount"].ToString());
// }
// if (dt.Rows[n]["TaskType"] != null && dt.Rows[n]["TaskType"].ToString() != "")
// {
// model.TaskType = int.Parse(dt.Rows[n]["TaskType"].ToString());
// }
// model.F_Title = dt.Rows[n]["F_Title"].ToString();
// modelList.Add(model);
// }
// catch
// {
// throw new Exception("AddTime=" + dt.Rows[n]["AddTime"].ToString());
// }
// }
// }
// return modelList;
//}
///
/// 获得数据列表
///
public DataSet GetAllList()
{
return GetList("");
}
///
/// 分页获取数据列表
///
public int GetRecordCount(string strWhere)
{
return dal.GetRecordCount(strWhere);
}
///
/// 分页获取数据列表
///
public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
{
return dal.GetListByPage(strWhere, orderby, startIndex, endIndex);
}
///
/// 分页获取数据列表
///
//public DataSet GetList(int PageSize,int PageIndex,string strWhere)
//{
//return dal.GetList(PageSize,PageIndex,strWhere);
//}
public DataSet GetTask(int groupId)
{
return dal.GetTask(groupId);
}
///
/// 语音自动回访 //taskid=-10002 是语音自动回访任务,固定,仅可以修改内容
///
///
///
///
///
///
public bool AddToAutoVoiceNotice(string phone, string workOrderId, int? assignId, out string msg)
{
msg = "";
var model = dal.GetModel(-10002);
if (model == null)
{
msg = "语音回访队列阻塞,请联系管理员";
return false;
}
//string fix = ""; string bfix = ""; string wfix = "";
//string zipcode = Configs.GetValue("CallOutZipCode");
//bfix = Configs.GetValue("CallOutBPre");
//wfix = Configs.GetValue("CallOutWPre");
//int zip = GetZipCodeByPhone(phone, zipcode);
//if (zip == 1)
//{
// fix = bfix;
//}
//else if (zip == 2)
//{
// fix = wfix;
//}
var i = telNumDal.Add(new Model.T_Call_TaskTelNum
{
F_TaskId = -10002,
//F_Phone = fix + phone,
F_Phone = phone,
WorkOrderId = workOrderId,
AssignedId = assignId
});
if (i > 0)
{
model.y_HMCount = model.y_HMCount + 1;
var flag = dal.Update(model);
if (flag)
{
msg = "号码已加入语音回访队列";
return true;
}
return false;
}
msg = "语音回访队列阻塞,请联系管理员";
return false;
}
public int GetZipCodeByPhone(string phone, string zipcode)
{
int res = 0;
if (phone.Trim().Length >= 7)
{
//7位及7位以上是固定电话或手机
//判断是否手机
if (phone.Trim().Length == 11 && phone[0] == '1')
{//号码为11位,首位是1,为手机号
BLL.T_Sys_MobileData mobile_Bll = new BLL.T_Sys_MobileData();
Model.T_Sys_MobileData mobileModel = mobile_Bll.GetModelList(" F_MobileNum = '" + phone.Substring(0, 7) + "'").FirstOrDefault();
if (mobileModel != null)
{
if (mobileModel.F_ZipCode.Equals(zipcode))
{
res = 1;
}
else
{
res = 2;
}
}
}
else
{
if (phone.Trim().Length == 11 && phone.Substring(0, 3).Equals(zipcode))
{//号码为11位
//截取前三位区号判断是否本地
bool resbd3 = phone.Substring(0, 3).Equals(zipcode);
//截取前四位区号判断是否本地
bool resbd4 = phone.Substring(0, 4).Equals(zipcode);
if (resbd3 || resbd4)
{
res = 1;
}
}
else if (phone.Trim().Length < 11)
{//号码小于11位,为本地
res = 1;
}
else if (phone.Trim().Length > 11 && phone.Substring(0, 4).Equals(zipcode))
{//号码大于11位,截取前四位区号判断是否本地
res = 1;
}
else
{
res = 2;
}
}
}
return res;
}
#endregion Method
}
}