protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { int userID = BLL.Util.GetLoginUserID(); if (!BLL.Util.CheckRight(userID, "SYS024BUT500605")) { Response.Write(BLL.Util.GetNotAccessMsgPage("您没有访问该页面的权限")); Response.End(); } Entities.ProjectInfo info = BLL.ProjectInfo.Instance.GetProjectInfo(CommonFunction.ObjectToInteger(ProjectID)); if (info == null) { return; } QueryYTGActivityTaskInfo query = new QueryYTGActivityTaskInfo(); query.ProjectID = CommonFunction.ObjectToInteger(ProjectID); query.LoginID = BLL.Util.GetLoginUserID(); query.TaskCBeginTime = taskcreatestart; query.TaskCEndTime = taskcreateend; query.Subbegintime = tasksubstart; query.Subendtime = tasksubend; DataTable dt = BLL.YTGActivityTask.Instance.GetYTGProjectTasksForExport(query); if (dt != null) { BLL.Util.ExportToCSV(info.Name + "的任务" + DateTime.Now.ToString("yyyy-MM-dd-hh-mm-ss"), dt); } } }
public Entities.ProjectInfo LoadSingleProjectInfo(DataRow row) { Entities.ProjectInfo model = new Entities.ProjectInfo(); if (row["ProjectID"].ToString() != "") { model.ProjectID = long.Parse(row["ProjectID"].ToString()); } if (row["BGID"].ToString() != "") { model.BGID = int.Parse(row["BGID"].ToString()); } if (row["SCID"].ToString() != "") { model.SCID = int.Parse(row["SCID"].ToString()); } model.Name = row["Name"].ToString(); model.Notes = row["Notes"].ToString(); if (row["Source"].ToString() != "") { model.Source = int.Parse(row["Source"].ToString()); } if (row["Status"].ToString() != "") { model.Status = int.Parse(row["Status"].ToString()); } if (row["CreateTime"].ToString() != "") { model.CreateTime = DateTime.Parse(row["CreateTime"].ToString()); } if (row["CreateUserID"].ToString() != "") { model.CreateUserID = int.Parse(row["CreateUserID"].ToString()); } if (row["PCatageID"].ToString() != "") { model.PCatageID = int.Parse(row["PCatageID"].ToString()); } if (row["IsOldData"].ToString() != "") { model.IsOldData = int.Parse(row["IsOldData"].ToString()); } model.TTCode = row["TTCode"].ToString(); model.DemandID = row["DemandID"].ToString(); model.Batch = row["Batch"].ToString() == "" ? null : (int?)int.Parse(row["Batch"].ToString()); model.ExpectedNum = row["ExpectedNum"].ToString() == "" ? null : (int?)int.Parse(row["ExpectedNum"].ToString()); if (row["IsBlacklistCheck"].ToString() != "") { model.IsBlacklistCheck = int.Parse(row["IsBlacklistCheck"].ToString()); } if (row["BlacklistCheckType"].ToString() != "") { model.BlacklistCheckType = int.Parse(row["BlacklistCheckType"].ToString()); } return(model); }
/// 结束易集客项目 /// <summary> /// 结束易集客项目 /// </summary> /// <param name="CurrDemandID"></param> /// <param name="errMsg"></param> public void EndCCProjectForYJK(string CurrDemandID, out string errMsg) { errMsg = ""; Entities.ProjectInfo projectModel = GetProjectInfoByDemandID(CurrDemandID); if (projectModel != null) { //结束项目 BLL.ProjectInfo.Instance.EndCCProject(projectModel.ProjectID, 5, out errMsg); BLL.ProjectLog.Instance.InsertProjectLog(projectModel.ProjectID, ProjectLogOper.L4_结束项目, "结束项目-" + projectModel.Name, null, -1); } }
/// <summary> /// 获取项目名称 /// </summary> /// <returns></returns> protected string GetProjectName() { if (model.ProjectID.HasValue) { Entities.ProjectInfo proModel = BLL.ProjectInfo.Instance.GetProjectInfo(model.ValueOrDefault_ProjectID); return(proModel.Name); } else { return(""); } }
/// <summary> /// /// </summary> /// <param name="p"></param> /// <param name="p_2"></param> /// <returns></returns> private string GetCustID(Entities.ProjectInfo projectInfo, string ttName, string tfName, string RelationID) { string custid = ""; string msg = ""; DataTable tempTableDt = BLL.TTable.Instance.GetDataByRelationIDs(RelationID, ttName, out msg); if (tempTableDt != null && tempTableDt.Rows.Count > 0) { custid = tempTableDt.Rows[0][tfName + "_crmcustid_name"].ToString(); } return(custid); }
/// 验证是否黑名单 /// <summary> /// 验证是否黑名单 /// </summary> /// <param name="projectID">项目ID</param> /// <param name="phone">号码</param> /// <returns>true 是黑名单 false 不是</returns> public bool CheckPhoneAndTelIsInBlackList(long projectID, string phone) { Entities.ProjectInfo pinfo = BLL.ProjectInfo.Instance.GetProjectInfo(projectID); //是否启用黑名单校验 1启用 0禁用 if (pinfo.IsBlacklistCheck.GetValueOrDefault(-2) == 1) { if (pinfo.BlacklistCheckType.HasValue) { BlackListCheckType blackListCheckType = (BlackListCheckType)pinfo.BlacklistCheckType.Value; return(CheckPhoneAndTelIsInBlackList(blackListCheckType, phone)); } } //不进行验证,不是黑名单 return(false); }
/// 根据项目信息,撤销任务 /// <summary> /// 根据项目信息,撤销任务 /// </summary> /// <param name="model">项目信息</param> /// <param name="errMsg"></param> public void RevokeCJKProjectTask(Entities.ProjectInfo model, out string errMsg) { errMsg = ""; try { Dal.ProjectInfo.Instance.RevokeCJKProjectTask(model.ProjectID); if (model.Source == 6)//CJK项目,需要发邮件 { #region 发邮件 int DealCount = 0; //总处理量 int SuccessCount = 0; //总成功量 int totalCount = 0; Entities.QueryLeadsTask query = new QueryLeadsTask(); query.ProjectID = (int)model.ProjectID; //query.Status = (int)LeadsTaskStatus.Processed; DataTable dt = BLL.LeadsTask.Instance.GetLeadsTask(query, "", 1, 999999, out totalCount); DealCount = dt.Rows.Count; query = new QueryLeadsTask(); query.ProjectID = (int)model.ProjectID; query.IsSuccess = 1; dt = BLL.LeadsTask.Instance.GetLeadsTask(query, "", 1, 999999, out totalCount); SuccessCount = dt.Rows.Count; string[] userEmail = ConfigurationManager.AppSettings["CRMCJKProjectEmailInfo"].Trim() != "" ? ConfigurationManager.AppSettings["CRMCJKProjectEmailInfo"].Split(';') : null; if (userEmail != null && userEmail.Length > 0) { foreach (string item in userEmail) { string mailBody1 = item.Split(':')[0]; string url = ConfigurationManager.AppSettings["WebBaseURL"] + "/ProjectManage/ViewProject.aspx?projectid=" + model.ProjectID.ToString(); string mailBody2 = "您有一个关于线索邀约的项目已完成目标数量,未处理任务已自动撤销。<br/><br/>项目名称:<a href='" + url + "'>" + model.Name + "</a><br/><br/>总线索量:" + DealCount.ToString() + "<br/><br/>实际成功量:" + SuccessCount.ToString(); string Title = "您有一个项目已结束"; string[] reciver = new string[] { item.Split(':')[1] }; BLL.EmailHelper.Instance.SendMail(mailBody1, mailBody2, Title, reciver); } } #endregion } } catch (Exception ex) { BLL.Loger.Log4Net.Error("撤销项目下任务时报错,项目ID为:" + model.ProjectID.ToString(), ex); errMsg = ex.Message; } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (ProjectID != "") { Entities.ProjectInfo model = new Entities.ProjectInfo(); model = BLL.ProjectInfo.Instance.GetProjectInfo(int.Parse(ProjectID)); if (model != null) { if (model.Source == 1 || model.Source == 2 || model.Source == 3 || model.Source == 4) { importhistroycss = "display:block"; } this.txtProjectName.Value = model.Name; BGID = model.BGID.ToString(); CID = model.PCatageID.ToString(); this.txtDescription.Value = model.Notes; SourceID = model.Source.ToString(); statusId = model.Status.ToString(); TTCode = model.TTCode; IsBlacklistCheck = model.IsBlacklistCheck.GetValueOrDefault(0); BlackListCheckType = model.BlacklistCheckType.GetValueOrDefault(0); selectDataIDs = BLL.ProjectDataSoure.Instance.GetProjectDataSoureID(model.ProjectID, out DataCount, true); #region 计算问卷个数 int totalCount = 0; Entities.QueryProjectSurveyMapping mapQuery = new Entities.QueryProjectSurveyMapping(); mapQuery.ProjectID = int.Parse(ProjectID); DataTable dt = BLL.ProjectSurveyMapping.Instance.GetProjectSurveyMapping(mapQuery, "", 1, 999, out totalCount); if (dt != null) { SurveryCount = dt.Rows.Count.ToString(); } #endregion } } } }
public Entities.ProjectInfo GetProjectInfoByDemandID(string CurrDemandID) { Entities.ProjectInfo model = new Entities.ProjectInfo(); Entities.QueryProjectInfo query = new Entities.QueryProjectInfo(); query.DemandID = CurrDemandID; int totalCount = 0; DataTable dt = GetProjectInfo(query, "", 1, 999, out totalCount); if (dt != null && dt.Rows.Count > 0) { model = Dal.ProjectInfo.Instance.LoadSingleProjectInfo(dt.Rows[0]); } else { model = null; } return(model); }
/// <summary> /// 增加一条数据 /// </summary> public int Insert(SqlTransaction sqltran, Entities.ProjectInfo model) { SqlParameter[] parameters = { new SqlParameter("@ProjectID", SqlDbType.Int, 8), new SqlParameter("@BGID", SqlDbType.Int, 4), new SqlParameter("@SCID", SqlDbType.Int, 4), new SqlParameter("@Name", SqlDbType.NVarChar, 200), new SqlParameter("@Notes", SqlDbType.NVarChar, 1000), new SqlParameter("@Source", SqlDbType.Int, 4), new SqlParameter("@Status", SqlDbType.Int, 4), new SqlParameter("@CreateTime", SqlDbType.DateTime), new SqlParameter("@CreateUserID", SqlDbType.Int, 4), new SqlParameter("@PCatageID", SqlDbType.Int, 4), new SqlParameter("@TTCode", SqlDbType.NVarChar, 20), new SqlParameter("@DemandID", SqlDbType.VarChar, 20), new SqlParameter("@Batch", SqlDbType.Int, 4), new SqlParameter("@ExpectedNum", SqlDbType.Int, 4), new SqlParameter("@IsBlacklistCheck", SqlDbType.Int, 4), new SqlParameter("@BlacklistCheckType", SqlDbType.Int, 4) }; parameters[0].Direction = ParameterDirection.Output; parameters[1].Value = model.BGID; parameters[2].Value = model.SCID; parameters[3].Value = model.Name; parameters[4].Value = model.Notes; parameters[5].Value = model.Source; parameters[6].Value = model.Status; parameters[7].Value = model.CreateTime; parameters[8].Value = model.CreateUserID; parameters[9].Value = model.PCatageID; parameters[10].Value = model.TTCode; parameters[11].Value = model.DemandID; parameters[12].Value = model.Batch; parameters[13].Value = model.ExpectedNum; parameters[14].Value = model.IsBlacklistCheck; parameters[15].Value = model.BlacklistCheckType; SqlHelper.ExecuteNonQuery(sqltran, CommandType.StoredProcedure, P_PROJECTINFO_INSERT, parameters); return((int)parameters[0].Value); }
/// <summary> /// 更新一条数据 /// </summary> public int Update(Entities.ProjectInfo model) { SqlParameter[] parameters = { new SqlParameter("@ProjectID", SqlDbType.Int, 8), new SqlParameter("@BGID", SqlDbType.Int, 4), new SqlParameter("@SCID", SqlDbType.Int, 4), new SqlParameter("@Name", SqlDbType.NVarChar, 200), new SqlParameter("@Notes", SqlDbType.NVarChar, 1000), new SqlParameter("@Source", SqlDbType.Int, 4), new SqlParameter("@Status", SqlDbType.Int, 4), new SqlParameter("@CreateTime", SqlDbType.DateTime), new SqlParameter("@CreateUserID", SqlDbType.Int, 4), new SqlParameter("@PCatageID", SqlDbType.Int, 4), new SqlParameter("@TTCode", SqlDbType.NVarChar, 20), new SqlParameter("@DemandID", SqlDbType.VarChar, 20), new SqlParameter("@Batch", SqlDbType.Int, 4), new SqlParameter("@ExpectedNum", SqlDbType.Int, 4), new SqlParameter("@IsBlacklistCheck", SqlDbType.Int, 4), new SqlParameter("@BlacklistCheckType", SqlDbType.Int, 4) }; parameters[0].Value = model.ProjectID; parameters[1].Value = model.BGID; parameters[2].Value = model.SCID; parameters[3].Value = model.Name; parameters[4].Value = model.Notes; parameters[5].Value = model.Source; parameters[6].Value = model.Status; parameters[7].Value = model.CreateTime; parameters[8].Value = model.CreateUserID; parameters[9].Value = model.PCatageID; parameters[10].Value = model.TTCode; parameters[11].Value = model.DemandID; parameters[12].Value = model.Batch; parameters[13].Value = model.ExpectedNum; parameters[14].Value = model.IsBlacklistCheck; parameters[15].Value = model.BlacklistCheckType; return(SqlHelper.ExecuteNonQuery(CONNECTIONSTRINGS, CommandType.StoredProcedure, P_PROJECTINFO_UPDATE, parameters)); }
/// <summary> /// 获取项目、自定义数据表、字段信息 基本信息 /// </summary> /// <param name="ProjectID"></param> /// <param name="model"></param> /// <param name="TTCode"></param> /// <param name="ttable"></param> /// <param name="TTName"></param> /// <param name="fieldList"></param> /// <param name="msg"></param> private void GetBaseInfo(int ProjectID, out Entities.ProjectInfo model, out string TTCode, out Entities.TTable ttable, out string TTName, out List <Entities.TField> fieldList, out string msg) { msg = string.Empty; model = BLL.ProjectInfo.Instance.GetProjectInfo(ProjectID); TTCode = string.Empty; ttable = new Entities.TTable(); TTName = string.Empty; fieldList = new List <Entities.TField>(); if (model == null) { msg += "没找到对应的项目"; return; } 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); }
public void ProcessRequest(HttpContext context) { BitAuto.YanFa.SysRightManager.Common.UserInfo.Check(); context.Response.ContentType = "text/plain"; string msg = ""; if (Status == "-1") { int userID = BLL.Util.GetLoginUserID(); if (!BLL.Util.CheckRight(userID, "SYS024BUT500603")) { msg += "您没有执行该操作的的权限"; context.Response.Write(msg); return; } } else if (Status == "2") { int userID = BLL.Util.GetLoginUserID(); if (!BLL.Util.CheckRight(userID, "SYS024BUT500607")) { msg += "您没有执行该操作的的权限"; context.Response.Write(msg); return; } } CheckPro(out msg); if (msg == "") { int userID = BLL.Util.GetLoginUserID(); int totalCount = 0; Entities.ProjectInfo model = new Entities.ProjectInfo(); model = BLL.ProjectInfo.Instance.GetProjectInfo(int.Parse(ProjectID)); if (model != null) { if (Status == "2") { if (model.Source == 1 || model.Source == 2) { Entities.QueryProjectTaskInfo query = new Entities.QueryProjectTaskInfo(); query.ProjectID = int.Parse(ProjectID); query.TaskStatus_s = "180012,180000,180001,180003,180004,180010"; DataTable dt = BLL.ProjectTaskInfo.Instance.GetProjectTaskInfo(query, 1, 999999, out totalCount, userID); foreach (DataRow dr in dt.Rows) { BLL.ProjectTaskInfo.Instance.UpdateTaskStatus(dr["PTID"].ToString(), EnumProjectTaskStatus.STOPTask, EnumProjectTaskOperationStatus.TaskFinish, DateTime.Now); } } else { // 结束其他任务 DataTable dt = BLL.OtherTaskInfo.Instance.GetStopForOtherTaskInfoByList(int.Parse(ProjectID)); foreach (DataRow dr in dt.Rows) { BLL.OtherTaskInfo.Instance.UpdateTaskStatus(dr["PTID"].ToString(), Entities.OtheTaskStatus.StopTask, Entities.EnumProjectTaskOperationStatus.TaskFinish, "结束项目", userID); } } } if (Status == "-1") { //删除问卷 Entities.QueryProjectSurveyMapping query = new QueryProjectSurveyMapping(); query.ProjectID = int.Parse(ProjectID); List <Entities.ProjectSurveyMapping> mapList = BLL.ProjectSurveyMapping.Instance.GetProjectSurveyMappingList(query, out totalCount); if (mapList != null && mapList.Count > 0) { foreach (Entities.ProjectSurveyMapping item in mapList) { item.Status = -1; BLL.ProjectSurveyMapping.Instance.Update(item); } } } #region 修改项目状态 model.Status = int.Parse(Status); BLL.ProjectInfo.Instance.Update(model); BLL.ProjectLog.Instance.InsertProjectLog(model.ProjectID, ProjectLogOper.L4_结束项目, "结束项目-" + model.Name); #endregion #region 停止自动外呼 int a = BLL.ProjectInfo.Instance.EndAutoCallProject(model.ProjectID); if (a > 0) { BLL.ProjectLog.Instance.InsertProjectLog(model.ProjectID, ProjectLogOper.Z6_结束自动外呼, ""); } #endregion } else { msg += "没有找到对应的项目"; } } if (msg == "") { msg = "success"; } context.Response.Write(msg); }
/// <summary> /// 根据Leads处理实体加载信息 /// </summary> /// <param name="model"></param> protected void LoadLeadInfo(Entities.LeadsTask model) { //项目名称 Entities.ProjectInfo ProjectInfoModel = BLL.ProjectInfo.Instance.GetProjectInfo(model.ProjectID); if (ProjectInfoModel != null) { ProjectName = ProjectInfoModel.Name; } BitAuto.YanFa.Crm2009.Entities.CJKDemandInfo cjkmodel = null; cjkmodel = BitAuto.YanFa.Crm2009.BLL.CJKDemandBll.Instance.GetCJKDemandInfo(model.DemandID); if (cjkmodel != null) { CustName = cjkmodel.CustName; } PlanBuyCarTime = BitAuto.ISDC.CC2012.BLL.Util.GetEnumOptText(typeof(BitAuto.ISDC.CC2012.Entities.LeadPlanBuyCarTime), Convert.ToInt32(model.PBuyCarTime)); //地区 if (model.ProvinceID != Entities.Constants.Constant.INT_INVALID_VALUE) { PlaceStr += BitAuto.YanFa.Crm2009.BLL.AreaInfo.Instance.GetAreaName(model.ProvinceID.ToString()); } if (model.CityID != Entities.Constants.Constant.INT_INVALID_VALUE) { PlaceStr += " " + BitAuto.YanFa.Crm2009.BLL.AreaInfo.Instance.GetAreaName(model.CityID.ToString()); } PlaceStr = PlaceStr.Trim(' '); //下单车型 if (!string.IsNullOrEmpty(model.OrderCarMaster)) { OrderCarInfo += model.OrderCarMaster + " "; } if (!string.IsNullOrEmpty(model.OrderCarSerial)) { OrderCarInfo += model.OrderCarSerial + " "; } if (!string.IsNullOrEmpty(model.OrderCar)) { OrderCarInfo += model.OrderCar + " "; } OrderCarInfo = OrderCarInfo.TrimEnd(' '); //需匹配车型 if (!string.IsNullOrEmpty(model.DCarMaster)) { DCarInfo += model.DCarMaster + " "; } if (!string.IsNullOrEmpty(model.DCarSerial)) { DCarInfo += model.DCarSerial + " "; } DCarInfo = DCarInfo.TrimEnd(' '); ////加载失败原因 //if (model.FailReason != Entities.Constants.Constant.INT_INVALID_VALUE) //{ // int _failreason; // int.TryParse(model.FailReason.ToString(), out _failreason); // FailReason = BLL.Util.GetEnumOptText(typeof(Entities.CJKLeadTaskFailReason), _failreason); //} //加载未接通原因 if (model.NotEstablishReason != Entities.Constants.Constant.INT_INVALID_VALUE) { int _notEstablishReason; int.TryParse(model.NotEstablishReason.ToString(), out _notEstablishReason); NotEstablishReason = BLL.Util.GetEnumOptText(typeof(Entities.NotEstablishReason), _notEstablishReason); } //加载接通后失败原因 if (model.NotSuccessReason != Entities.Constants.Constant.INT_INVALID_VALUE) { int _notSuccessReason; int.TryParse(model.NotSuccessReason.ToString(), out _notSuccessReason); NotSuccessReason = BLL.Util.GetEnumOptText(typeof(Entities.NotSuccessReason), _notSuccessReason); } ////加载需匹配车款 //if (model.DCarID != Entities.Constants.Constant.INT_INVALID_VALUE) //{ // int _dcarid; // int.TryParse(model.DCarID.ToString(), out _dcarid); // DCarName = model.DCarName; //} string[] strYM = model.BoughtCarYearMonth.Split(','); if (strYM.Length == 2) { strBoughtCarYear = strYM[0]; if (strYM[1] == "-1") { strBoughtCarMonth = ""; } else { strBoughtCarMonth = strYM[1]; } } }
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> public int Update(SqlTransaction sqltran, Entities.ProjectInfo model) { return(Dal.ProjectInfo.Instance.Update(sqltran, model)); }
/// <summary> /// 更新一条数据 /// </summary> public int Update(Entities.ProjectInfo model) { return(Dal.ProjectInfo.Instance.Update(model)); }
/// 生成任务 /// <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 += "没有找到对应的项目"; } }
/// <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) { if (!IsPostBack) { if (!string.IsNullOrEmpty(OtherTaskID)) { Entities.OtherTaskInfo model = BLL.OtherTaskInfo.Instance.GetOtherTaskInfo(OtherTaskID); BlackWhiteList = Convert.ToInt16(Entities.NotEstablishReason.N05_免打扰屏蔽).ToString(); if (model != null) { UserID = BLL.Util.GetLoginUserID().ToString(); if (IsAutoCall == "true") { //重新分配坐席 BLL.ProjectTask_Employee.Instance.DeleteByIDs("'" + OtherTaskID + "'"); //新建坐席数据 Entities.ProjectTask_Employee info = new Entities.ProjectTask_Employee(); info.PTID = OtherTaskID; info.UserID = int.Parse(UserID); info.Status = 0; info.CreateTime = DateTime.Now; info.CreateUserID = int.Parse(UserID); BLL.ProjectTask_Employee.Instance.Add(info); //修改任务状态=处理中 BLL.OtherTaskInfo.Instance.UpdateTaskStatus(info.PTID, Entities.OtheTaskStatus.Processing, Entities.EnumProjectTaskOperationStatus.TaskAllot, "分配", info.UserID.Value); //修改实体类中属性 model.TaskStatus = (Int32)Entities.OtheTaskStatus.Processing; } if (model.TaskStatus == (Int32)Entities.OtheTaskStatus.Processed) { Response.Write(@"<script language='javascript'>javascript:alert('该任务已处理完毕!');try { window.external.MethodScript('/browsercontrol/closepage'); } catch (e) { window.opener = null; window.open('', '_self'); window.close(); };</script>"); } else if (model.TaskStatus == (Int32)Entities.OtheTaskStatus.StopTask) { Response.Write(@"<script language='javascript'>javascript:alert('该任务已结束!');try { window.external.MethodScript('/browsercontrol/closepage'); } catch (e) { window.opener = null; window.open('', '_self'); window.close(); };</script>"); } else if (model.TaskStatus == (Int32)Entities.OtheTaskStatus.Unallocated) { Response.Write(@"<script language='javascript'>javascript:alert('该任务未分配处理人!');try { window.external.MethodScript('/browsercontrol/closepage'); } catch (e) { window.opener = null; window.open('', '_self'); window.close(); };</script>"); } else { DataTable dtEmployee = BLL.ProjectTask_Employee.Instance.GetProjectTask_Employee(OtherTaskID); if (dtEmployee != null && dtEmployee.Rows.Count > 0) { if (BLL.Util.GetLoginUserID().ToString() == dtEmployee.Rows[0]["userid"].ToString()) { OtherTaskEdit1.RequestTaskID = OtherTaskID; } else { Response.Write(@"<script language='javascript'>javascript:alert('您没有该任务的处理权限!');try { window.external.MethodScript('/browsercontrol/closepage'); } catch (e) { window.opener = null; window.open('', '_self'); window.close(); };</script>"); } } else { Response.Write(@"<script language='javascript'>javascript:alert('该任务未分配处理人!');try { window.external.MethodScript('/browsercontrol/closepage'); } catch (e) { window.opener = null; window.open('', '_self'); window.close(); };</script>"); } } Entities.ProjectInfo projectModel = BLL.ProjectInfo.Instance.GetProjectInfo((long)model.ProjectID); if (projectModel != null) { BGID = projectModel.BGID.ToString(); SCID = projectModel.PCatageID.ToString(); Entities.TPage pageModel = BLL.TPage.Instance.GetTPageByTTCode(projectModel.TTCode); if (pageModel.IsShowSubmitOrder.ToString() == "1") { IsShowSubmitOrder = true; } } } else { Response.Write(@"<script language='javascript'>javascript:alert('该任务不存在。');try { window.external.MethodScript('/browsercontrol/closepage'); } catch (e) { window.opener = null; window.open('', '_self'); window.close(); };</script>"); } } } }
public DataTable ExportTask(int ProjectID, out string msg, out string exportName, string taskcreatestart, string taskcreateend, string tasksubstart, string tasksubend) { msg = ""; exportName = ""; #region 定义变量 int totalCount = 0; string TTName = ""; string TTCode = ""; string selectDataIDs = ""; Entities.TTable ttable = null; Entities.ProjectInfo model = null; List <Entities.TField> fieldList = null; DataTable DbdataDt = null;//自定义数据表中的数据 #endregion #region 获取项目、自定义数据表、字段信息 GetBaseInfo(ProjectID, out model, out TTCode, out ttable, out TTName, out fieldList, out msg); if (msg != "") { return(null); } exportName = model.Name; #endregion #region 获取自定义数据表中的关联数据 GetTemptRelationData(ProjectID, TTName, TTCode, model, out selectDataIDs, out DbdataDt, taskcreatestart, taskcreateend, tasksubstart, tasksubend, out msg); if (msg != "") { return(null); } #endregion #region 是否成功,是否接通,接通后失败原因,未接通原因列的转换 if (DbdataDt.Columns.Contains("IsSuccess") && DbdataDt.Columns.Contains("IsEstablish") && DbdataDt.Columns.Contains("NotSuccessReason") && DbdataDt.Columns.Contains("NotEstablishReason")) { DataColumn colIsSuccess = new DataColumn("IsSucName", Type.GetType("System.String")); DbdataDt.Columns.Add(colIsSuccess); DataColumn colIsJT = new DataColumn("IsJTName", Type.GetType("System.String")); DbdataDt.Columns.Add(colIsJT); DataColumn colNotSuccessReason = new DataColumn("NotSuccessReasonName", Type.GetType("System.String")); DbdataDt.Columns.Add(colNotSuccessReason); DataColumn colNotExport = new DataColumn("NotExportName", Type.GetType("System.String")); DbdataDt.Columns.Add(colNotExport); for (int i = 0; i < DbdataDt.Rows.Count; i++) { DbdataDt.Rows[i]["IsSucName"] = BLL.Util.GetIsNotStatus(DbdataDt.Rows[i]["IsSuccess"].ToString()); DbdataDt.Rows[i]["IsJTName"] = BLL.Util.GetIsNotStatus(DbdataDt.Rows[i]["IsEstablish"].ToString()); string notSuc = DbdataDt.Rows[i]["NotSuccessReason"].ToString(); string notExport = DbdataDt.Rows[i]["NotEstablishReason"].ToString(); string notExportName = String.Empty; if (!(String.IsNullOrEmpty(notExport) || notExport.Trim() == "-1" || notExport.Trim() == "-2" || DbdataDt.Rows[i]["IsEstablish"].ToString() == "1")) { //notExport=空,-1,-2 或者 接通了 是没有值的 notExportName = BLL.Util.GetEnumOptText(typeof(Entities.NotEstablishReason), Int32.Parse(notExport)); } string notSuccessReasonName = String.Empty; if (!(String.IsNullOrEmpty(notSuc) || notSuc.Trim() == "-1" || notSuc.Trim() == "-2")) { //notSuc=空,-1,-2 是没有值的 notSuccessReasonName = BLL.Util.GetEnumOptText(typeof(Entities.NotSuccessReason), Int32.Parse(notSuc)); } DbdataDt.Rows[i]["NotSuccessReasonName"] = notSuccessReasonName; DbdataDt.Rows[i]["NotExportName"] = notExportName; } } #endregion #region 处理列 DbdataDt = ProcessExportDataColoumns(TTName, TTCode, model, fieldList, DbdataDt); #endregion #region 处理数据 DbdataDt = ProcessData(DbdataDt); #endregion #region 关联crm客户信息 if (crmCustIDFieldName != string.Empty) { GetTogetherCustInfo(crmCustIDFieldName, ProjectID, DbdataDt); } #endregion #region 除用户ID列 DbdataDt.Columns.Remove("LastOptUserID"); DbdataDt.Columns.Remove("TaskStatus"); #endregion return(DbdataDt); }
/// <summary> /// /// </summary> /// <param name="ProjectModel">项目</param> /// <param name="userId"></param> /// <param name="dt">项目的DataSource数据</param> /// <param name="msg"></param> public void GenByOtherTaskDataTable(Entities.ProjectInfo ProjectModel, int userId, DataTable dt, out string msg, out string data) { msg = ""; data = ""; #region panduan bool IsExistCrmCustID = false; string ttName = ""; string tfName = ""; List <Entities.TField> fieldlist = BLL.TField.Instance.GetTFieldListByTTCode(ProjectModel.TTCode); Entities.TField fielditem = fieldlist.Find(delegate(Entities.TField o) { return(o.TFShowCode == "100014"); }); if (fielditem != null) { IsExistCrmCustID = true; tfName = fielditem.TFName; Entities.TTable tableModel = BLL.TTable.Instance.GetTTableByTTCode(ProjectModel.TTCode); if (tableModel != null) { ttName = tableModel.TTName; } } #endregion #region 根据数据关联生成任务 List <Entities.OtherTaskInfo> list = new List <Entities.OtherTaskInfo>(); int maxcount = BLL.ProjectTaskInfo.Instance.GetMaxRecID();//从OtherTaskInfo表中查找最大值,不是ProjectTaskInfo表中查找最大值 DataTable SourceOtherTaskDt = new DataTable(); SourceOtherTaskDt.Columns.Add("PTID"); SourceOtherTaskDt.Columns.Add("ProjectID", typeof(int)); SourceOtherTaskDt.Columns.Add("RelationTableID"); SourceOtherTaskDt.Columns.Add("RelationID"); SourceOtherTaskDt.Columns.Add("CreateTime", typeof(DateTime)); SourceOtherTaskDt.Columns.Add("CreateUserID", typeof(int)); SourceOtherTaskDt.Columns.Add("LastOptTime", typeof(DateTime)); SourceOtherTaskDt.Columns.Add("LastOptUserID", typeof(int)); SourceOtherTaskDt.Columns.Add("TaskStatus", typeof(int)); SourceOtherTaskDt.Columns.Add("Status", typeof(int)); SourceOtherTaskDt.Columns.Add("CustID"); int i = 0; foreach (DataRow dr in dt.Rows) { DataRow newDr = SourceOtherTaskDt.NewRow(); string PixStr = ""; if (ProjectModel.Source == 4) { PixStr = "OTH"; } newDr["PTID"] = PixStr + (++maxcount).ToString().PadLeft(7, '0'); //记录最小id和最大id if (i == 0) { data += "{open:'@open',MinOtherTaskID:'" + newDr["PTID"] + "',"; } if (i + 1 == dt.Rows.Count) { data += "MaxOtherTaskID:'" + newDr["PTID"] + "'}"; } newDr["ProjectID"] = int.Parse(ProjectID); newDr["RelationTableID"] = ProjectModel.TTCode; newDr["RelationID"] = dr["RelationID"].ToString(); newDr["CreateTime"] = DateTime.Now; newDr["CreateUserID"] = userId; newDr["LastOptTime"] = DateTime.Now; newDr["LastOptUserID"] = userId; newDr["TaskStatus"] = (int)(OtheTaskStatus.Unallocated); newDr["Status"] = 0; if (IsExistCrmCustID) { newDr["CustID"] = GetCustID(ProjectModel, ttName, tfName, dr["RelationID"].ToString()); } else { newDr["CustID"] = ""; } SourceOtherTaskDt.Rows.Add(newDr); i++; } string connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC"); SqlConnection connection = new SqlConnection(connectionstrings); connection.Open(); SqlTransaction tran = connection.BeginTransaction("SampleTransaction"); try { BLL.Util.BulkCopyToDB(SourceOtherTaskDt, connectionstrings, "OtherTaskInfo", tran, out msg); BLL.ProjectLog.Instance.InsertProjectLog(ProjectModel.ProjectID, ProjectLogOper.L6_生成任务, "生成任务" + SourceOtherTaskDt.Rows.Count + "条", tran); if (msg == "") { #region 修改项目状态 ProjectModel.Status = 1; BLL.ProjectInfo.Instance.Update(tran, ProjectModel); #endregion #region 修改关联数据状态 BLL.ProjectDataSoure.Instance.UpdateStatusByProjectId(tran, "1", dt, (int)ProjectModel.ProjectID); #endregion tran.Commit(); } } catch (Exception ex) { if (tran.Connection != null) { tran.Rollback(); } msg = ex.Message.ToString(); } finally { connection.Close(); } #endregion }
private void GenByDataTable(Entities.ProjectInfo ProjectModel, int userId, DataTable dt, out string msg) { msg = ""; #region 根据数据关联生成任务 List <Entities.ProjectTaskInfo> list = new List <Entities.ProjectTaskInfo>(); Entities.ProjectTaskInfo ptaskModel = null; List <Entities.CustLastOperTask> list_OperTask = new List <Entities.CustLastOperTask>(); List <Entities.CustLastOperTask> list_OldOperTask = new List <Entities.CustLastOperTask>(); int maxcount = BLL.ProjectTaskInfo.Instance.GetMax();//从ProjectTaskInfo表中查找最大值 string PixStr = ""; if (ProjectModel.Source == 1) { PixStr = "IMP"; } else if (ProjectModel.Source == 2) { PixStr = "CRM"; } DateTime dtime = DateTime.Now; foreach (DataRow dr in dt.Rows) { ptaskModel = new Entities.ProjectTaskInfo(); ptaskModel.PTID = PixStr + (++maxcount).ToString().PadLeft(7, '0'); ptaskModel.PDSID = long.Parse(dr["PDSID"].ToString()); ptaskModel.ProjectID = int.Parse(ProjectID); ptaskModel.CustName = dr["CustName"].ToString(); //客户名称 ptaskModel.Source = int.Parse(dr["Source"].ToString()); ptaskModel.RelationID = dr["RelationID"].ToString(); ptaskModel.CrmCustID = dr["CustID"].ToString();//CRM客户ID ptaskModel.CreateTime = dtime; ptaskModel.CreateUserID = userId; ptaskModel.LastOptTime = dtime; ptaskModel.LastOptUserID = userId; ptaskModel.TaskStatus = (int)(EnumProjectTaskStatus.NoSelEmployee); ptaskModel.Status = 0; ptaskModel.CustType = dr["CustType"].ToString(); list.Add(ptaskModel); if (PixStr == "CRM") { Entities.CustLastOperTask operTaskModel = new BitAuto.ISDC.CC2012.Entities.CustLastOperTask(); if (ptaskModel.CrmCustID != "") { Entities.CustLastOperTask oldModel = BLL.CustLastOperTask.Instance.GetCustLastOperTask(ptaskModel.CrmCustID); if (oldModel == null) { operTaskModel.CustID = ptaskModel.CrmCustID; operTaskModel.TaskID = ptaskModel.PTID; operTaskModel.TaskType = 1; operTaskModel.LastOperUserID = operTaskModel.CreateUserID = BLL.Util.GetLoginUserID(); operTaskModel.LastOperTime = operTaskModel.CreateTime = dtime; list_OperTask.Add(operTaskModel); list_OldOperTask.Add(null); } else { operTaskModel.CustID = ptaskModel.CrmCustID; operTaskModel.TaskID = ptaskModel.PTID; operTaskModel.LastOperUserID = BLL.Util.GetLoginUserID(); operTaskModel.LastOperTime = dtime; list_OperTask.Add(operTaskModel); list_OldOperTask.Add(oldModel); } } } } string connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC"); SqlConnection connection = new SqlConnection(connectionstrings); connection.Open(); SqlTransaction tran = connection.BeginTransaction("SampleTransaction"); try { //add by qizq 2013-3-11 4S和非4S电话营销 if (ProjectModel.Source != 3) //Modify By Chybin At 2014-3-31 { #region 生成任务 foreach (Entities.ProjectTaskInfo item in list) { BLL.ProjectTaskInfo.Instance.Add(tran, item); } BLL.ProjectLog.Instance.InsertProjectLog(ProjectModel.ProjectID, ProjectLogOper.L6_生成任务, "生成任务" + list.Count + "条", tran); #endregion } #region 修改项目状态 ProjectModel.Status = 1; BLL.ProjectInfo.Instance.Update(tran, ProjectModel); #endregion #region 修改关联数据状态 BLL.ProjectDataSoure.Instance.UpdateStatusByProjectId(tran, "1", (int)ProjectModel.ProjectID); #endregion tran.Commit(); } catch (Exception ex) { if (tran.Connection != null) { tran.Rollback(); } msg = ex.Message.ToString(); } finally { connection.Close(); } #endregion }
/// 结束集客项目 /// <summary> /// 结束集客项目 /// </summary> /// <param name="ProjectID"></param> /// <param name="Source">5:YJK 6:CJK</param> /// <param name="errMsg"></param> public void EndCCProject(long ProjectID, int Source, out string errMsg) { errMsg = ""; Entities.ProjectInfo InfoModel = BLL.ProjectInfo.Instance.GetProjectInfo(ProjectID); if (InfoModel != null) { //5:YJK项目 //6:CJK项目 if (InfoModel.Source == Source && InfoModel.Status != 2) { Dal.ProjectInfo.Instance.EndCCProjectForYiJiKe(ProjectID); if (Source == 5) { int DealCount = 0; //总处理量 int SuccessCount = 0; //总成功量 int totalCount = 0; Entities.QueryLeadsTask query = new QueryLeadsTask(); query.ProjectID = (int)ProjectID; query.Status = (int)LeadsTaskStatus.Processed; DataTable dt = BLL.LeadsTask.Instance.GetLeadsTask(query, "", 1, 999999, out totalCount); DealCount = dt.Rows.Count; query = new QueryLeadsTask(); query.ProjectID = (int)ProjectID; query.IsSuccess = 1; dt = BLL.LeadsTask.Instance.GetLeadsTask(query, "", 1, 999999, out totalCount); SuccessCount = dt.Rows.Count; #region 发送邮件 string[] userEmail;//发送接收人列表 switch (Source) { case 5: //易集客-YJK项目 userEmail = ConfigurationManager.AppSettings["YiJiKeProjectEmailInfo"].Trim() != "" ? ConfigurationManager.AppSettings["YiJiKeProjectEmailInfo"].Split(';') : null; break; case 6: //厂商集客-CJK项目 userEmail = ConfigurationManager.AppSettings["CRMCJKProjectEmailInfo"].Trim() != "" ? ConfigurationManager.AppSettings["CRMCJKProjectEmailInfo"].Split(';') : null; break; default: userEmail = null; break; } if (userEmail != null && userEmail.Length > 0) { foreach (string item in userEmail) { string mailBody1 = item.Split(':')[0]; string url = ConfigurationManager.AppSettings["WebBaseURL"] + "/ProjectManage/ViewProject.aspx?projectid=" + InfoModel.ProjectID.ToString(); string mailBody2 = "您有一个关于线索邀约的项目已完成目标数量,未处理任务已自动撤销。<br/><br/>项目名称:<a href='" + url + "'>" + InfoModel.Name + "</a><br/><br/>总处理量:" + DealCount.ToString() + "<br/><br/>实际成功量:" + SuccessCount.ToString(); string Title = "您有一个项目已结束"; string[] reciver = new string[] { item.Split(':')[1] }; BLL.EmailHelper.Instance.SendMail(mailBody1, mailBody2, Title, reciver); } } #endregion } } else if (InfoModel.Source == Source && InfoModel.Status == 2) { BLL.Loger.Log4Net.Info("需求单号:" + InfoModel.DemandID + ",批次号:" + InfoModel.Batch + "对应的项目已结束"); } else if (InfoModel.Source != Source) { errMsg = "需求单号:" + InfoModel.DemandID + ",批次号:" + InfoModel.Batch + "对应的项目不是易集客或厂商集客相对应的项目。"; BLL.Loger.Log4Net.Info(errMsg); } } else { errMsg = "没找到相关CC项目"; } }
protected void Page_Load(object sender, EventArgs e) { DemandDetailsUrl += "&OrderCode={0}"; if (!IsPostBack) { ALLNotEstablishReasonStr = CallResult_ORIG_Task.GetNotEstablishReasonStr(); BlackWhiteList = Convert.ToInt16(Entities.NotEstablishReason.N05_免打扰屏蔽).ToString(); List <int> filterList = new List <int>() { 24, 1, 10, 16, 12, 13, 11, 14, 6, 8, 9, 17, 25, 26, 27, 28, 23 }; ALLNotSuccessReasonStr = CallResult_ORIG_Task.GetNotSuccessReasonStr(filterList); userid = BLL.Util.GetLoginUserID(); model = BLL.LeadsTask.Instance.GetLeadsTask(TaskID); if (model == null) { #region 任务不存在 Response.Write(@"<script language='javascript'>alert('该任务不存在,页面将被关闭。');try { window.external.MethodScript('/browsercontrol/closepagereloadppage'); } catch (e) { window.opener = null; window.open('', '_self'); window.close(); }</script>"); #endregion } else { this.Remark.Value = model.Remark.ToString(); if (model.AssignUserID != BLL.Util.GetLoginUserID()) { #region 当前人不是处理人 Response.Write(@"<script language='javascript'>alert('您不是该任务的当前处理人,页面将被关闭。');try { window.external.MethodScript('/browsercontrol/closepagereloadppage'); } catch (e) { window.opener = null; window.open('', '_self'); window.close(); }</script>"); #endregion } //判断是否是处理状态 else if (model.Status != (int)Entities.LeadsTaskStatus.Processing && model.Status != (int)Entities.LeadsTaskStatus.NoProcess) { #region 任务不在处理状态 Response.Write(@"<script language='javascript'>alert('该任务不处于处理状态,页面将被关闭。');try { window.external.MethodScript('/browsercontrol/closepagereloadppage'); } catch (e) { window.opener = null; window.open('', '_self'); window.close(); }</script>"); #endregion } else { //项目名称 Entities.ProjectInfo ProjectInfoModel = BLL.ProjectInfo.Instance.GetProjectInfo(model.ProjectID); ProjectName = ProjectInfoModel.Name; //性别 int Sex = -2; Sex = (int)model.Sex; if (Sex == 1) { this.rdoMan.Checked = true; } else if (Sex == 2) { this.rdoWomen.Checked = true; } //下单地区 ProvinceName = BitAuto.YanFa.Crm2009.BLL.AreaInfo.Instance.GetAreaName(model.ProvinceID.ToString()); CityName = BitAuto.YanFa.Crm2009.BLL.AreaInfo.Instance.GetAreaName(model.CityID.ToString()); //加载客户名称,需匹配车型列表 GetDemandIDInfo(model.DemandID); //绑定失败原因 BindFailReason(); //绑定预计购车时间 BindPlanBuyCarTime(); //根据Leads处理实体加载地区,下单车型,需匹配车型信息 LoadLeadInfo(model); //绑定月份 BindLatelyThreeYear(); intIsBoughtCar = model.IsBoughtCar.HasValue ? model.IsBoughtCar.Value : -1; intBoughtCarMasterID = model.BoughtCarMasterID.HasValue ? model.BoughtCarMasterID.Value : -1; strBoughtCarMaster = model.BoughtCarMaster; intBoughtCarSerialID = model.BoughtCarSerialID.HasValue ? model.BoughtCarSerialID.Value : -1; strBoughtCarSerial = model.BoughtCarSerial; if (!string.IsNullOrEmpty(model.BoughtCarYearMonth)) { string[] strYM = model.BoughtCarYearMonth.Split(','); if (strYM.Length == 2) { strBoughtCarYear = strYM[0]; strBoughtCarMonth = strYM[1]; } } strBoughtCarDealerID = model.BoughtCarDealerID; strBoughtCarDealerName = model.BoughtCarDealerName; //未购车 intHasBuyCarPlan = model.HasBuyCarPlan.HasValue ? model.HasBuyCarPlan.Value : -1; intIsAttention = model.IsAttention.HasValue ? model.IsAttention.Value : -1; intIsContactedDealer = model.IsContactedDealer.HasValue ? model.IsContactedDealer.Value : -1; intIsSatisfiedService = model.IsSatisfiedService.HasValue ? model.IsSatisfiedService.Value : -1; strContactedWhichDealer = model.ContactedWhichDealer; intIntentionCarMasterID = model.IntentionCarMasterID.HasValue ? model.IntentionCarMasterID.Value : -1; strIntentionCarMaster = model.IntentionCarMaster; intIntentionCarSerialID = model.IntentionCarSerialID.HasValue ? model.IntentionCarSerialID.Value : -1; strIntentionCarSerial = model.IntentionCarSerial; } } } }
private void Submit(out string msg, int userID, out int retProjectID) { msg = ""; retProjectID = 0; string datainfoStr = DataStr; ProjectInfo sInfoData = null; sInfoData = (ProjectInfo)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(datainfoStr, typeof(ProjectInfo)); Entities.ProjectInfo projectModel; Entities.ProjectDataSoure dsModel; List <Entities.ProjectDataSoure> dslist = new List <Entities.ProjectDataSoure>(); List <Entities.ProjectDataSoure> AddDatalist = new List <Entities.ProjectDataSoure>(); Entities.ProjectSurveyMapping psMap; List <Entities.ProjectSurveyMapping> psmaplist = new List <Entities.ProjectSurveyMapping>(); List <Entities.ProjectSurveyMapping> oldMaplist = new List <ProjectSurveyMapping>(); List <Entities.ProjectSurveyMapping> newMaplist = new List <ProjectSurveyMapping>(); List <int> delIds = new List <int>(); int sourceid = int.Parse(sInfoData.Source); int oldSourceId = -1; //原来的来源 string oldTTCode = ""; //原来的TTcode //add by qizq 2014-11-24 加原bgID,scid int oldbgid = 0; int oldpcatageid = 0; #region 判断项目名称是否重复 if (ProjectID == "") { DataTable dt = BLL.ProjectInfo.Instance.GetDataByName(sInfoData.txtProjectName); if (dt.Rows.Count > 0) { msg += "已经存在名为【" + sInfoData.txtProjectName + "】的项目!"; return; } } #endregion #region 项目关联数据 string[] ids = null; //crm来源数据 if (CrmSelectIDs != "") { ids = CrmSelectIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); } //OTH 来源数据=优先级高 if (sInfoData.hidExportSelectIDs != "") { ids = sInfoData.hidExportSelectIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); } //hidExportAddIDs:OTH 追加数据 //hidCrmAddIDs:CRM 追加数据 //校验4个数据是否都为空 if (sInfoData.hidExportSelectIDs == "" && sInfoData.hidExportAddIDs == "" && CrmSelectIDs == "" && sInfoData.hidCrmAddIDs == "") { msg += "没有选择关联数据"; return; } //选择的数据 (来源:CRM或者OTH) foreach (string id in ids) { dsModel = new Entities.ProjectDataSoure(); dsModel.ProjectID = -2; dsModel.RelationID = id; dsModel.Source = sourceid; dsModel.Status = 0;//0未生产任务 dsModel.CreateTime = DateTime.Now; dsModel.CreateUserID = userID; dslist.Add(dsModel); } //OTH追加数据 if (sInfoData.hidExportAddIDs != "") { foreach (string id in sInfoData.hidExportAddIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { dsModel = new Entities.ProjectDataSoure(); dsModel.ProjectID = -2; dsModel.RelationID = id; dsModel.Source = sourceid; dsModel.Status = 0;//0未生产任务 dsModel.CreateTime = DateTime.Now; dsModel.CreateUserID = userID; AddDatalist.Add(dsModel); } } #endregion if (ProjectID == "") { //新增 #region 项目信息实体 projectModel = new Entities.ProjectInfo(); projectModel.BGID = int.Parse(sInfoData.sltUserGroup); projectModel.PCatageID = int.Parse(sInfoData.sltSurveyCategory); projectModel.Name = sInfoData.txtProjectName; projectModel.Notes = sInfoData.txtDescription; projectModel.Source = sourceid; projectModel.Status = 0; projectModel.CreateTime = DateTime.Now; projectModel.CreateUserID = userID; projectModel.TTCode = sInfoData.TTCode; projectModel.IsBlacklistCheck = sInfoData.IsBlacklistCheck; projectModel.BlacklistCheckType = sInfoData.BlackListCheckType == 0 ? null : (int?)sInfoData.BlackListCheckType; #endregion #region 项目管理问卷 DateTime nowDt = DateTime.Now; if (sInfoData.SurveyList != null) { int i = 0; foreach (SurveryInfo item in sInfoData.SurveyList) { psMap = new Entities.ProjectSurveyMapping(); psMap.ProjectID = item.ProjectID == "" ? -2 : int.Parse(item.ProjectID); psMap.SIID = int.Parse(item.hdnSIID); psMap.BeginDate = item.beginTime + " 00:00:00"; psMap.EndDate = item.endTime + " 23:59:59"; psMap.Status = 0;//默认是0 psMap.CreateTime = nowDt.AddSeconds((i++) * 2); psMap.CreateUserID = userID; psmaplist.Add(psMap); } } #endregion } else { projectModel = BLL.ProjectInfo.Instance.GetProjectInfo(int.Parse(ProjectID)); if (projectModel == null) { msg += "没有找到对应的项目"; } else { oldSourceId = (int)projectModel.Source; retProjectID = (int)projectModel.ProjectID; oldTTCode = projectModel.TTCode; //add by qizq 2014-11-28 oldbgid = (int)projectModel.BGID; oldpcatageid = (int)projectModel.PCatageID; #region 编辑项目 projectModel.BGID = int.Parse(sInfoData.sltUserGroup); projectModel.PCatageID = int.Parse(sInfoData.sltSurveyCategory); projectModel.Name = sInfoData.txtProjectName; projectModel.Notes = sInfoData.txtDescription; projectModel.Source = sourceid; projectModel.TTCode = sInfoData.TTCode; #endregion #region 编辑问卷 Entities.QueryProjectSurveyMapping query = new QueryProjectSurveyMapping(); query.ProjectID = int.Parse(ProjectID); int totalCount = 0; oldMaplist = BLL.ProjectSurveyMapping.Instance.GetProjectSurveyMappingList(query, out totalCount); newMaplist = new List <ProjectSurveyMapping>(); DateTime nowDt = DateTime.Now; int i = 0; foreach (SurveryInfo surinfo in sInfoData.SurveyList) { //查找 ProjectSurveyMapping mapModel = oldMaplist.Find( delegate(ProjectSurveyMapping map) { return(map.SIID == int.Parse(surinfo.hdnSIID)); } ); if (mapModel != null) { //找到了,修改日期 mapModel.BeginDate = surinfo.beginTime + " 00:00:00";; mapModel.EndDate = surinfo.endTime + " 23:59:59"; newMaplist.Add(mapModel); } else { //没找到,就是新加的 psMap = new ProjectSurveyMapping(); psMap.ProjectID = -2; psMap.SIID = int.Parse(surinfo.hdnSIID); psMap.BeginDate = surinfo.beginTime + " 00:00:00";; psMap.EndDate = surinfo.endTime + " 23:59:59"; psMap.Status = 0;//默认是0 psMap.CreateTime = nowDt.AddSeconds((i++) * 2); psMap.CreateUserID = userID; newMaplist.Add(psMap); } } //查找删除的 foreach (Entities.ProjectSurveyMapping item in oldMaplist) { int isExist = 0; //查找 foreach (SurveryInfo surinfo in sInfoData.SurveyList) { if (item.SIID.ToString() == surinfo.hdnSIID) { isExist = 1; break; } } if (isExist == 0) { //没找到,就是删除了 delIds.Add(item.SIID); } } #endregion } } #region 提交到数据库 string connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC"); SqlConnection connection = new SqlConnection(connectionstrings); connection.Open(); SqlTransaction tran = connection.BeginTransaction("SampleTransaction"); try { if (ProjectID == "") { //新增 #region 新增项目 retProjectID = BLL.ProjectInfo.Instance.Insert(tran, projectModel); BLL.ProjectLog.Instance.InsertProjectLog(retProjectID, ProjectLogOper.L1_新建项目, "新建项目-" + projectModel.Name, tran); #endregion #region 新增数据 foreach (Entities.ProjectDataSoure pds in dslist) { pds.ProjectID = retProjectID; BLL.ProjectDataSoure.Instance.Insert(tran, pds); } //add by qizq 2014-11-24 加入数据导入日志 Entities.ProjectImportHistory pih = new ProjectImportHistory(); pih.ProjectID = retProjectID; pih.ImportNumber = dslist.Count; pih.CreateTime = System.DateTime.Now; pih.CreateUserID = userID; BLL.ProjectImportHistory.Instance.Insert(tran, pih); #endregion #region 新增问卷 foreach (Entities.ProjectSurveyMapping item in psmaplist) { item.ProjectID = retProjectID; BLL.ProjectSurveyMapping.Instance.Insert(tran, item); } BLL.ProjectLog.Instance.InsertProjectLog(retProjectID, ProjectLogOper.L5_修改问卷, "新增问卷" + psmaplist.Count + "条", tran); BLL.ProjectLog.Instance.InsertProjectLog(retProjectID, ProjectLogOper.L3_导入数据, "导入数据" + pih.ImportNumber + "条", tran); #endregion } else { #region 编辑项目 BLL.ProjectInfo.Instance.Update(tran, projectModel); BLL.ProjectLog.Instance.InsertProjectLog(projectModel.ProjectID, ProjectLogOper.L2_编辑项目, "编辑项目-" + projectModel.Name, tran); #endregion #region 修改关联数据 if (projectModel.Status == 0) { //如果未生成任务,选择的数据时先删除、后插入 //modify by qizq 2014-11-28 取出所有关联数据,与前台传过来的数据做比较,如果不相同先删除后插入,如果相同不做修改 //如果分组,分类,涞源,或对应的模板变了就全部删除,然后插入 bool flag = true; if (oldbgid != projectModel.BGID || oldpcatageid != projectModel.PCatageID || oldSourceId != projectModel.Source || oldTTCode != projectModel.TTCode.ToString()) { flag = false; } //否则取出所有关联数据做比较,如果发生变化先全部删除后插入 else { flag = IsSameProjectDataSource(projectModel.ProjectID, dslist); } if (flag == false) { //删除原来的关联数据 BLL.ProjectDataSoure.Instance.DeleteByProjectID(tran, (int)projectModel.ProjectID); //删除日志信息 BLL.ProjectImportHistory.Instance.Delete(tran, Convert.ToInt32(projectModel.ProjectID)); //插入新的关联数据 foreach (Entities.ProjectDataSoure pds in dslist) { pds.ProjectID = projectModel.ProjectID; BLL.ProjectDataSoure.Instance.Insert(tran, pds); } // 添加插入数据日志 Entities.ProjectImportHistory pihadd = new ProjectImportHistory(); pihadd.ProjectID = Convert.ToInt32(projectModel.ProjectID); pihadd.ImportNumber = dslist.Count; pihadd.CreateTime = System.DateTime.Now; pihadd.CreateUserID = userID; BLL.ProjectImportHistory.Instance.Insert(tran, pihadd); BLL.ProjectLog.Instance.InsertProjectLog(projectModel.ProjectID, ProjectLogOper.L3_导入数据, "覆盖数据" + pihadd.ImportNumber + "条", tran); } } else { //如果已生成任务,不用管原来的DataSource } //补充的数据 foreach (Entities.ProjectDataSoure pds in AddDatalist) { pds.ProjectID = projectModel.ProjectID; BLL.ProjectDataSoure.Instance.Insert(tran, pds); } //add by qizq 2014-11-24,当补充数据不为空,加补充数据导入日志 if (AddDatalist != null && AddDatalist.Count > 0) { Entities.ProjectImportHistory pihadd = new ProjectImportHistory(); pihadd.ProjectID = retProjectID; pihadd.ImportNumber = AddDatalist.Count; pihadd.CreateTime = System.DateTime.Now; pihadd.CreateUserID = userID; BLL.ProjectImportHistory.Instance.Insert(tran, pihadd); BLL.ProjectLog.Instance.InsertProjectLog(retProjectID, ProjectLogOper.L3_导入数据, "追加数据" + pihadd.ImportNumber + "条", tran); } //补充客户回访数据 sInfoData.hidCrmAddIDs if (sInfoData.hidCrmAddIDs != "") { Entities.ProjectDataSoure model = new Entities.ProjectDataSoure(); model.ProjectID = projectModel.ProjectID; model.Source = projectModel.Source.Value; model.Status = projectModel.Status; model.CreateTime = DateTime.Now; model.CreateUserID = userID; int returnval = 0; string strrelationIds = ""; int addNum = 0; foreach (string relationid in sInfoData.hidCrmAddIDs.Split(',')) { if (!string.IsNullOrEmpty(relationid)) { model.RelationID = relationid; returnval = BLL.ProjectDataSoure.Instance.Insert(tran, model); if (returnval > 0) { strrelationIds += "," + relationid; addNum++; } } } if (strrelationIds.Length > 0) { Entities.ProjectImportHistory pihadd = new ProjectImportHistory(); pihadd.ProjectID = Convert.ToInt32(model.ProjectID); pihadd.ImportNumber = addNum; pihadd.CreateTime = System.DateTime.Now; pihadd.CreateUserID = userID; BLL.ProjectImportHistory.Instance.Insert(tran, pihadd); BLL.ProjectLog.Instance.InsertProjectLog(model.ProjectID, ProjectLogOper.L3_导入数据, "追加数据" + pihadd.ImportNumber + "条", tran); } } #endregion #region 编辑或删除问卷 int add = 0, mod = 0, del = 0; //删除的问卷 foreach (int id in delIds) { BLL.ProjectSurveyMapping.Instance.Delete(long.Parse(ProjectID), id); del++; } for (int i = newMaplist.Count - 1; i >= 0; i--) { if (newMaplist[i].ProjectID != -2) { //编辑了问卷 BLL.ProjectSurveyMapping.Instance.Update(tran, newMaplist[i]); mod++; } else { //新增的问卷 newMaplist[i].ProjectID = int.Parse(ProjectID); BLL.ProjectSurveyMapping.Instance.Insert(tran, newMaplist[i]); add++; } } if (add + del > 0) { string info = ""; if (add > 0) { info += "新增问卷" + add + "条;"; } if (del > 0) { info += "删除问卷" + del + "条;"; } BLL.ProjectLog.Instance.InsertProjectLog(projectModel.ProjectID, ProjectLogOper.L5_修改问卷, info, tran); } #endregion } tran.Commit(); } catch (Exception ex) { if (tran.Connection != null) { tran.Rollback(); } msg = ex.Message.ToString(); } finally { connection.Close(); } #endregion }
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 }
/// <summary> /// 处理列 /// </summary> /// <param name="TTName"></param> /// <param name="TTCode"></param> /// <param name="model"></param> /// <param name="fieldList"></param> /// <param name="OriginalDbdataDt"></param> /// <returns></returns> private DataTable ProcessExportDataColoumns(string TTName, string TTCode, Entities.ProjectInfo model, List <Entities.TField> fieldList, DataTable OriginalDbdataDt) { DataTable DbdataDt = new DataTable(); DbdataDt = OriginalDbdataDt; 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] == "XDBrand" || DbdataDt.Columns[i].ColumnName.Split('_')[1] == "YXBrand" || DbdataDt.Columns[i].ColumnName.Split('_')[1] == "CSBrand") { DbdataDt.Columns.RemoveAt(i); } else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "XDSerial" || DbdataDt.Columns[i].ColumnName.Split('_')[1] == "YXSerial" || DbdataDt.Columns[i].ColumnName.Split('_')[1] == "CSSerial") { 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); } //删除推荐活动Guid串列 else if (DbdataDt.Columns[i].ColumnName.Split('_')[1] == "Activity") { 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); } else if (DbdataDt.Columns[i].ColumnName == "IsSuccess" || DbdataDt.Columns[i].ColumnName == "IsEstablish" || DbdataDt.Columns[i].ColumnName == "NotSuccessReason" || DbdataDt.Columns[i].ColumnName == "NotEstablishReason" ) { 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 if (DbdataDt.Columns[i].ColumnName == "TrueName") { DbdataDt.Columns[i].ColumnName = "操作人"; } else if (DbdataDt.Columns[i].ColumnName.IndexOf("_crmcustid_name") != -1) { crmCustIDFieldName = DbdataDt.Columns[i].ColumnName; } else if (DbdataDt.Columns[i].ColumnName.IndexOf("Brand_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("Serial_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("_Activity_Name") != -1) { DbdataDt.Columns[i].ColumnName = "推荐活动"; } else if (DbdataDt.Columns[i].ColumnName == "IsSucName") { DbdataDt.Columns[i].ColumnName = "是否成功"; } else if (DbdataDt.Columns[i].ColumnName == "IsJTName") { DbdataDt.Columns[i].ColumnName = "是否接通"; } else if (DbdataDt.Columns[i].ColumnName == "NotSuccessReasonName") { DbdataDt.Columns[i].ColumnName = "失败原因"; } else if (DbdataDt.Columns[i].ColumnName == "NotExportName") { 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 增加客户信息列 if (crmCustIDFieldName != string.Empty) { DbdataDt.Columns[crmCustIDFieldName].SetOrdinal(1); DbdataDt.Columns[crmCustIDFieldName].ColumnName = "客户ID"; for (int k = 0; k < array_CustColumns.Length; k++) { string columnName = array_CustColumns[k]; //如果之前导出的列中存在该列名,则修改下现在的列名 if (DbdataDt.Columns.Contains(columnName)) { columnName += "(固定项)"; array_CustColumns[k] = columnName; } DbdataDt.Columns.Add(columnName); DbdataDt.Columns[columnName].SetOrdinal(k + 2); } } #endregion #region 增加列 DbdataDt.Columns.Add("任务状态"); #endregion return(DbdataDt); }