/// <summary> /// 获取自定义数据表中的关联数据 /// </summary> /// <param name="ProjectID"></param> /// <param name="TTName"></param> /// <param name="TTCode"></param> /// <param name="model"></param> /// <param name="selectDataIDs"></param> /// <param name="DbdataDt"></param> /// <param name="msg"></param> private void GetTemptRelationData(int ProjectID, string TTName, string TTCode, Entities.ProjectInfo model, out string selectDataIDs, out DataTable DbdataDt, string taskcreatestart, string taskcreateend, string tasksubstart, string tasksubend, out string msg) { msg = string.Empty; selectDataIDs = string.Empty; DbdataDt = new DataTable(); Entities.QueryProjectDataSoure query = new Entities.QueryProjectDataSoure(); query.ProjectID = ProjectID; int totalCount = 0; DataTable dt = BLL.ProjectDataSoure.Instance.GetProjectDataSoure(query, "", 1, -1, out totalCount); foreach (DataRow dr in dt.Rows) { selectDataIDs += dr["RelationID"].ToString() + ","; } if (selectDataIDs != "") { selectDataIDs = selectDataIDs.Substring(0, selectDataIDs.Length - 1); } //modify by qizq 2014-11-24 给项目导出加任务的创建时间,任务提交时间等过滤条件 //DbdataDt = BLL.TTable.Instance.GetDataByIDs(selectDataIDs, TTName, TTCode, model.ProjectID.ToString(), out msg); DbdataDt = BLL.TTable.Instance.GetDataByIDs(selectDataIDs, TTName, TTCode, model.ProjectID.ToString(), taskcreatestart, taskcreateend, tasksubstart, tasksubend, out msg); if (msg != "" || DbdataDt == null) { msg = "读取自定义数据出错!"; return; } }
protected void Page_Load(object sender, EventArgs e) { int intval = 0; if (int.TryParse(returnProjectID, out intval)) { Entities.QueryProjectDataSoure dsQuery = new Entities.QueryProjectDataSoure(); dsQuery.ProjectID = intval; dsQuery.Status = 0; int totalCount = 0; DataTable dt = BLL.ProjectDataSoure.Instance.GetProjectDataSoure(dsQuery, "", 1, 99999999, out totalCount); // AddIDcount = dt.Rows.Count.ToString(); } }
private void ExportTask(out string msg) { msg = ""; #region 定义变量 int totalCount = 0; string TTName = ""; string TTCode = ""; string selectDataIDs = ""; Entities.TTable ttable; List <Entities.TField> fieldList = new List <Entities.TField>(); DataTable DbdataDt;//自定义数据表中的数据 #endregion #region 获取项目、自定义数据表、字段信息 Entities.ProjectInfo model = BLL.ProjectInfo.Instance.GetProjectInfo(int.Parse(ProjectID)); if (model == null) { msg += "没找到对应的项目"; return; } ProjectName = model.Name; if (model.Source != 4) { msg += "此类型项目不允许导出"; return; } TTCode = model.TTCode; ttable = BLL.TTable.Instance.GetTTableByTTCode(TTCode); // if (ttable.TTName == "" || ttable.TTName == null) { msg += "没有找到定义的自定义数据表名称"; return; } TTName = ttable.TTName; fieldList = BLL.TField.Instance.GetTFieldListByTTCode(TTCode); #endregion #region 获取自定义数据表中的关联数据 Entities.QueryProjectDataSoure query = new Entities.QueryProjectDataSoure(); query.ProjectID = int.Parse(ProjectID); DataTable dt = BLL.ProjectDataSoure.Instance.GetProjectDataSoure(query, "", 1, 9999999, out totalCount); foreach (DataRow dr in dt.Rows) { selectDataIDs += dr["RelationID"].ToString() + ","; } if (selectDataIDs != "") { selectDataIDs = selectDataIDs.Substring(0, selectDataIDs.Length - 1); } DbdataDt = BLL.TTable.Instance.GetDataByIDs(selectDataIDs, TTName, TTCode, model.ProjectID.ToString(), out msg); if (msg != "" || DbdataDt == null) { msg = "读取自定义数据出错!" + msg; return; } #endregion #region 处理列 Entities.TField tempfield; for (int i = DbdataDt.Columns.Count - 1; i >= 0; i--) { tempfield = null; #region 除不用导出的字段 if (DbdataDt.Columns[i].ColumnName.Split('_').Length == 2) { if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "Province") { DbdataDt.Columns.RemoveAt(i); } else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "City") { DbdataDt.Columns.RemoveAt(i); } else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "Country") { DbdataDt.Columns.RemoveAt(i); } else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "checkid") { DbdataDt.Columns.RemoveAt(i); } else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "radioid") { DbdataDt.Columns.RemoveAt(i); } else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "selectid") { DbdataDt.Columns.RemoveAt(i); } } if (DbdataDt.Columns[i].ColumnName == "RecID" || DbdataDt.Columns[i].ColumnName == "Status" || DbdataDt.Columns[i].ColumnName == "CreateTime" || DbdataDt.Columns[i].ColumnName == "CreateUserID" ) { DbdataDt.Columns.RemoveAt(i); } #endregion #region 替换字段名 if (DbdataDt.Columns[i].ColumnName.IndexOf("_startdata") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(起)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_enddata") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(止)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_starttime") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(起)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_endtime") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(止)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_Province_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(省)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_City_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(市)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_Country_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(县)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_checkid_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_radioid_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_selectid_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName; } } else if (DbdataDt.Columns[i].ColumnName == "LastOptTime") { DbdataDt.Columns[i].ColumnName = "操作时间"; } else { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName; } } #endregion } #region 任务ID列 DbdataDt.Columns["PTID"].SetOrdinal(0); DbdataDt.Columns["PTID"].ColumnName = "任务ID"; #endregion #region 增加列 DbdataDt.Columns.Add("操作人"); DbdataDt.Columns.Add("任务状态"); #endregion #endregion #region 处理数据 if (DbdataDt.Columns.Contains("LastOptUserID")) { int intVal = 0; string statusName = ""; foreach (DataRow dr in DbdataDt.Rows) { if (int.TryParse(dr["LastOptUserID"].ToString(), out intVal)) { dr["操作人"] = BitAuto.YanFa.SysRightManager.Common.UserInfo.GerTrueName(intVal); } switch (dr["TaskStatus"].ToString()) { case "1": statusName = "未分配"; break; case "2": statusName = "未处理"; break; case "3": statusName = "处理中"; break; case "4": statusName = "已处理"; break; case "5": statusName = "已结束"; break; } dr["任务状态"] = statusName; foreach (DataColumn col in DbdataDt.Columns) { if (col.DataType == typeof(DateTime) && dr[col.ColumnName].ToString() == "1900-1-1 0:00:00") { dr[col.ColumnName] = DBNull.Value; } } } } #endregion #region 除用户ID列 DbdataDt.Columns.Remove("LastOptUserID"); DbdataDt.Columns.Remove("TaskStatus"); #endregion #region 保存到服务器根目录下 var exportString = BLL.Util.TableToSCV(DbdataDt); string Path = System.AppDomain.CurrentDomain.BaseDirectory + @"Excel201307"; if (!Directory.Exists(Path)) { Directory.CreateDirectory(Path); } string filePath = Path + "\\" + model.Name + ".csv"; File.WriteAllText(filePath, exportString.ToString(), Encoding.GetEncoding("GB2312")); #endregion }
/// 生成任务 /// <summary> /// 生成任务 /// </summary> /// <param name="msg"></param> public void DoGenerateTask(out string msg, out string data) { msg = ""; data = ""; int userId = BLL.Util.GetLoginUserID(); Entities.ProjectInfo ProjectModel = BLL.ProjectInfo.Instance.GetProjectInfo(int.Parse(ProjectID)); if (ProjectModel != null) { if (ProjectModel.Status != 0 && ProjectModel.Status != 1) { msg += "项目的当前状态不允许生成任务"; return; } else { Entities.QueryProjectDataSoure dsQuery = new Entities.QueryProjectDataSoure(); dsQuery.ProjectID = int.Parse(ProjectID); dsQuery.Status = 0; int totalCount = 0; DataTable dt = BLL.ProjectDataSoure.Instance.GetProjectDataSoure(dsQuery, "", 1, 99999999, out totalCount); if (dt != null && dt.Rows.Count > 0) { //Source:1:数据清洗-Excel;2:数据清洗-Crm;3:客户回访;4:其他任务 switch (Source) { case "1": case "2": case "3": GenByDataTable(ProjectModel, userId, dt, out msg); break; case "4": GenByOtherTaskDataTable(ProjectModel, userId, dt, out msg, out data); int?acstatus = BLL.ProjectInfo.Instance.GetProjectAutoCallACStatus(long.Parse(ProjectID)); if (acstatus.HasValue && (acstatus.Value == (int)ProjectACStatus.P01_进行中 || acstatus.Value == (int)ProjectACStatus.P02_暂停中)) { //有自动外呼,且状态=进行中和暂停中 导入数据到自动外呼表中 BLL.AutoCall_TaskInfo.Instance.AutoCallTaskInfoUpdate_Async(long.Parse(ProjectID)); } if (acstatus.HasValue && acstatus.Value == (int)ProjectACStatus.P01_进行中) { //只有进行中的不弹出分配框 data = data.Replace("@open", "false"); } else { data = data.Replace("@open", "true"); } break; } } else { msg += "此项目没有关联的数据"; } } } else { msg += "没有找到对应的项目"; } }
private void ExportTask(out string msg) { msg = ""; #region 定义变量 int totalCount = 0; string TTName = ""; string TTCode = ""; string selectDataIDs = ""; Entities.TTable ttable; List <Entities.TField> fieldList = new List <Entities.TField>(); DataTable DbdataDt; //自定义数据表中的数据 DataTable ExportDataDt; //导出的数据 #endregion #region 获取项目、自定义数据表、字段信息 Entities.ProjectInfo model = BLL.ProjectInfo.Instance.GetProjectInfo(int.Parse(ProjectID)); if (model == null) { msg += "没找到对应的项目"; return; } if (model.Source != 4) { msg += "此类型项目不允许导出"; return; } TTCode = model.TTCode; ttable = BLL.TTable.Instance.GetTTableByTTCode(TTCode); // if (ttable.TTName == "") { msg += "没有找到定义的自定义数据表名称"; return; } TTName = ttable.TTName; fieldList = BLL.TField.Instance.GetTFieldListByTTCode(TTCode); #endregion #region 获取自定义数据表中的关联数据 Entities.QueryProjectDataSoure query = new Entities.QueryProjectDataSoure(); query.ProjectID = int.Parse(ProjectID); DataTable dt = BLL.ProjectDataSoure.Instance.GetProjectDataSoure(query, "", 1, 9999999, out totalCount); foreach (DataRow dr in dt.Rows) { selectDataIDs += dr["RelationID"].ToString() + ","; } if (selectDataIDs != "") { selectDataIDs = selectDataIDs.Substring(0, selectDataIDs.Length - 1); } DbdataDt = BLL.TTable.Instance.GetDataByIDs(selectDataIDs, TTName, out msg); if (msg != "" || DbdataDt == null) { msg = "读取自定义数据出错!" + msg; return; } #endregion #region 处理列 Entities.TField tempfield; for (int i = DbdataDt.Columns.Count - 1; i >= 0; i--) { tempfield = null; #region 除不用导出的字段 if (DbdataDt.Columns[i].ColumnName.Split('_').Length == 2) { if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "Province") { DbdataDt.Columns.RemoveAt(i); } else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "City") { DbdataDt.Columns.RemoveAt(i); } else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "Country") { DbdataDt.Columns.RemoveAt(i); } else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "checkid") { DbdataDt.Columns.RemoveAt(i); } else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "radioid") { DbdataDt.Columns.RemoveAt(i); } else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "selectid") { DbdataDt.Columns.RemoveAt(i); } } if (DbdataDt.Columns[i].ColumnName == "RecID" || DbdataDt.Columns[i].ColumnName == "Status") { DbdataDt.Columns.RemoveAt(i); } #endregion #region 替换字段名 if (DbdataDt.Columns[i].ColumnName.IndexOf("_startdata") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(起)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_enddata") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(止)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_starttime") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(起)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_endtime") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(止)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_Province_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(省)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_City_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(市)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_Country_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName + "(县)"; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_checkid_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_radioid_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName; } } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_selectid_name") != -1) { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName; } } else if (DbdataDt.Columns[i].ColumnName == "CreateTime") { DbdataDt.Columns[i].ColumnName = "导入时间"; } else { tempfield = fieldList.Find(delegate(Entities.TField o) { return(o.TFName == DbdataDt.Columns[i].ColumnName.Split('_')[0]); }); if (tempfield != null) { DbdataDt.Columns[i].ColumnName = tempfield.TFDesName; } } #endregion } #endregion #region 处理数据 if (DbdataDt.Columns.Contains("CreateUserID")) { int intVal = 0; DbdataDt.Columns.Add("导入人").SetOrdinal(0); string userName = ""; foreach (DataRow dr in DbdataDt.Rows) { if (int.TryParse(dr["CreateUserID"].ToString(), out intVal)) { if (userName == "") { userName = BitAuto.YanFa.SysRightManager.Common.UserInfo.GerTrueName(intVal); } dr["导入人"] = userName; } } } #endregion #region 除用户ID列 DbdataDt.Columns.Remove("CreateUserID"); #endregion #region 导出 ExcelInOut.CreateEXCEL(DbdataDt, model.Name + "的任务" + DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss"), RequestBrowser); #endregion }