private void LoginByPara() { //string url = "login.aspx"; string url = "LoginWB.aspx"; if (!string.IsNullOrEmpty(DomainAccount) && (!string.IsNullOrEmpty(Password) || !string.IsNullOrEmpty(PasswordEncrypt))) { string pwd = ""; if (!string.IsNullOrEmpty(Password)) { pwd = Password; } if (!string.IsNullOrEmpty(PasswordEncrypt)) { pwd = BitAuto.Utils.Security.DESEncryptor.Encrypt(PasswordEncrypt); } int ret = BitAuto.YanFa.SysRightManager.Common.UserInfo.Login(DomainAccount, pwd); if (ret > 0) { BitAuto.YanFa.SysRightManager.Common.UserInfo.passport(ret); url = ConfigurationUtil.GetAppSettingValue("NotAccessMsgPagePath").Replace("~", "");//ConfigurationUtil.GetAppSettingValue("NotAccessMsgPagePath") DataTable dtParent = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.GetParentModuleInfoByUserID(Convert.ToInt32(HttpContext.Current.Session["userid"]), sysID); if (dtParent != null) { DataTable dtChild = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.GetChildModuleByUserId(Convert.ToInt32(HttpContext.Current.Session["userid"]), sysID, dtParent.Rows[0]["moduleid"].ToString()); if (dtChild.Rows.Count > 0) { url = dtChild.Rows[0]["url"].ToString(); } } ret = 1;//登陆成功 string content = string.Format("用户{1}(ID:{0})登录成功。", HttpContext.Current.Session["userid"], HttpContext.Current.Session["truename"]); BitAuto.YanFa.SysRightManager.Common.LogInfo.Instance.InsertLog(ConfigurationUtil.GetAppSettingValue("LoginLogModuleID"), (int)BitAuto.YanFa.SysRightManager.Common.LogInfo.ActionType.Login, content); } Response.Redirect(url); } }
private void GetHeLiDataByUserNameAndAgentNum(string TheUserName, string TheAgentNum, out string msg) { msg = string.Empty; string strUrl = ConfigurationUtil.GetAppSettingValue("HeLiURL") + "/busiService/addAgentInfo?" + "userName="******"&agentId=" + TheAgentNum + "&deptId=" + AtGroupID + "&deptName=" + AtGroupName + "&skill=" + ToHeLiSGIDAndPriority; try { HttpWebResponse webResp = HttpHelper.CreateGetHttpResponse(strUrl); string data = HttpHelper.GetResponseString(webResp); ResultJson jsondata = (ResultJson)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(data, typeof(ResultJson)); if (jsondata != null) { if (jsondata.returncode == "0") { msg = "{'result':'failure','msg':'合力厂商接口调用失败:" + jsondata.returnmsg + "'}"; BLL.Loger.Log4Net.Error("【批量修改用户数据权限】Step3.调用合力厂商接口调用失败:访问url(" + strUrl + "),返回信息[" + jsondata.returnmsg + "]"); } else { msg = "{'result':'success'}"; BLL.Loger.Log4Net.Info("【批量修改用户数据权限】Step3.合力厂商接口调用成功:访问url(" + strUrl + ")"); } } else { msg = "{'result':'failure','msg':'合力厂商接口异常,未能返回数据!'}"; BLL.Loger.Log4Net.Error("【批量修改用户数据权限】Step3.调用合力厂商接口异常:访问url(" + strUrl + ")未能返回数据!"); } } catch (Exception ex) { msg = "{'result':'failure','msg':'合力厂商接口异常,导致无法访问!'}"; BLL.Loger.Log4Net.Error("【批量修改用户数据权限】Step3.调用合力厂商接口异常:访问url(" + strUrl + "); ", ex); } }
//汽车金融加密 public static string Encrypt(string Text, string sKey) { string Key = ConfigurationUtil.GetAppSettingValue("CarFinancial_GenURLParaMD5"); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray; inputByteArray = Encoding.Default.GetBytes(Text); des.Key = ASCIIEncoding.ASCII.GetBytes(Key); des.IV = ASCIIEncoding.ASCII.GetBytes(Key); System.IO.MemoryStream ms = new System.IO.MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); foreach (byte b in ms.ToArray()) { ret.AppendFormat("{0:X2}", b); } return(ret.ToString()); }
protected void Page_Load(object sender, EventArgs e) { DataTable db = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.GetRoleInfoBySysID (ConfigurationUtil.GetAppSettingValue("ThisSysID")); if (db != null && db.Rows.Count > 0) { Rpt_Role.DataSource = db; Rpt_Role.DataBind(); GroupDataBind(); } if (IsModfiySingle == "false") { //如果是批量修改 this.divAgentNum.Visible = false; this.divData.Visible = false; } else { BingData(); } }
/// <summary> /// 验证授权逻辑 /// </summary> /// <param name="Verifycode">授权码</param> /// <param name="status">状态(默认-0,1-工单接口)</param> /// <param name="msg">返回信息</param> /// <param name="errorMsg">传入信息</param> /// <returns>验证通过为True,否则返回False</returns> public bool Verify(string Verifycode, int status, ref string msg, string errorMsg) { //是否启用话务记录保存 string sVerify = ""; sVerify = ConfigurationUtil.GetAppSettingValue("CallRecordAuthorizeVerify"); if (sVerify == "false") { return(true); } string userHostAddress = System.Web.HttpContext.Current.Request.UserHostAddress; if (BLL.CallRecord_ORIG_Authorizer.Instance.IsExistsByIPAndCode(userHostAddress, Verifycode, status)) { return(true); } else { msg = errorMsg + "userHostAddress=" + userHostAddress + ",Verifycode=" + Verifycode; return(false); } }
private void LoginByPara() { string url = "login.aspx"; if (!string.IsNullOrEmpty(DomainAccount) && !string.IsNullOrEmpty(Password)) { string organizationService = ConfigurationManager.AppSettings["OrganizationService"]; IOrganizationService service = (IOrganizationService)Activator.GetObject(typeof(IOrganizationService), organizationService); LoginResult loginResult = service.Login(DomainAccount, Password); if (loginResult == LoginResult.Success) { int ret = BitAuto.YanFa.SysRightManager.Common.UserInfo.Login(DomainAccount); if (ret > 0) { BitAuto.YanFa.SysRightManager.Common.UserInfo.passport(ret); BLL.Util.LoginPassport(ret, sysID); url = ConfigurationUtil.GetAppSettingValue("NotAccessMsgPagePath").Replace("~", "");//ConfigurationUtil.GetAppSettingValue("NotAccessMsgPagePath") DataTable dtParent = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.GetParentModuleInfoByUserID(Convert.ToInt32(HttpContext.Current.Session["userid"]), sysID); if (dtParent != null) { DataTable dtChild = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.GetChildModuleByUserId(Convert.ToInt32(HttpContext.Current.Session["userid"]), sysID, dtParent.Rows[0]["moduleid"].ToString()); if (dtChild.Rows.Count > 0) { url = dtChild.Rows[0]["url"].ToString(); } } ret = 1;//登陆成功 string content = string.Format("用户{1}(ID:{0})登录成功。", HttpContext.Current.Session["userid"], HttpContext.Current.Session["truename"]); BitAuto.YanFa.SysRightManager.Common.LogInfo.Instance.InsertLog(ConfigurationUtil.GetAppSettingValue("LoginLogModuleID"), (int)BitAuto.YanFa.SysRightManager.Common.LogInfo.ActionType.Login, content); } } Response.Redirect(url); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (this.CustInfo == null) { return; } this.CustID = this.CustInfo.CustID; //查询第一个经销商 List <BitAuto.YanFa.Crm2009.Entities.DMSMember> list = BitAuto.YanFa.Crm2009.BLL.DMSMember.Instance.GetDMSMember(CustID); if (list != null && list.Count > 0) { FirstMemberCode = list[0].MemberCode; FirstMemberName = list[0].Name; } AddWorderv2Url = "/WOrderV2/AddWOrderInfo.aspx?" + BLL.WOrderRequest.AddWOrderComeIn_CRMCustID(CustID).ToString(); if (this.CustInfo.Officetel == "") { AddWorderv2Url_Phone = "href='javascript:void(0)' "; } else { AddWorderv2Url_Phone = "href='/WOrderV2/AddWOrderInfo.aspx?" + BLL.WOrderRequest.AddWOrderComeIn_CallOut(this.CustInfo.Officetel, this.CustInfo.CustID, this.CustInfo.contactName, -1, FirstMemberCode, -1).ToString() + "' "; AddWorderv2Url_Phone += "target='_blank'"; } BindCustomerInfo(); BindMemberList(this.CustInfo.CustID); SurveyListID.RequestCustID = this.CustID; string sysId = ConfigurationUtil.GetAppSettingValue("ThisSysID"); int userId = BLL.Util.GetLoginUserID(); AddReturnVistCustButton = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.CheckRight("SYS024BUT1410", sysId, userId); } }
private static string Key = ConfigurationUtil.GetAppSettingValue("CarFinancial_GenURLParaMD5");//"@#$%^&*("; public void ProcessRequest(HttpContext context) { BitAuto.YanFa.SysRightManager.Common.UserInfo.Check(); int userid = BLL.Util.GetLoginUserID(); //userid = 167697; //测试账号 context.Response.ContentType = "text/plain"; string msg = string.Empty; try { string url = ConfigurationUtil.GetAppSettingValue("CarFinancial_URL");//"http://testcc.chedai.bitauto.com/Account/LogOn"; // 加密字符串 string enString = Encrypt(userid.ToString(), Key); msg = string.Format("{0}?u={1}&sign={2}", url, userid.ToString(), enString); msg = HttpUtility.UrlEncode(msg); } catch (Exception ex) { msg = "Error"; } context.Response.Write(msg); }
public bool subDate(out string msg) { bool result = false; msg = ""; string log = ""; #region 事务保存信息 string connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC"); SqlConnection connection = new SqlConnection(connectionstrings); connection.Open(); SqlTransaction tran = connection.BeginTransaction("SampleTransaction"); //真实的数据操作 try { if (examObj.EIID > 0) {//编辑 Entities.ExamInfo examObjOri = new Entities.ExamInfo(); examObjOri = BLL.ExamInfo.Instance.GetExamInfo(examObj.EIID); examObj.JoinNum = examPersionList.Count; BLL.ExamInfo.Instance.Update(tran, examObj); //先清除参考人员 BLL.ExamPerson.Instance.Delete(examObj.EIID); foreach (Entities.ExamPerson examPersion in examPersionList) { examPersion.EIID = examObj.EIID; try { BLL.ExamPerson.Instance.Insert(tran, examPersion); } catch (Exception ex) { msg = ex.Message.ToString().Replace("'", ""); msg = msg.Replace("\r\n", ""); } } //清除补考 BLL.MakeUpExamInfo.Instance.Delete(tran, (int)examObj.EIID); if (examObj.IsMakeUp == 1) {//添加新补考 makeExamOjb.JoinNum = makeExamPersionList.Count; makeExamOjb.EIID = examObj.EIID; makeExamOjb.MEIID = BLL.MakeUpExamInfo.Instance.Insert(tran, makeExamOjb); foreach (Entities.ExamPerson examPersion in makeExamPersionList) { examPersion.MEIID = makeExamOjb.MEIID; examPersion.EIID = makeExamOjb.EIID; try { BLL.ExamPerson.Instance.Insert(tran, examPersion); } catch (Exception ex) { msg = ex.Message.ToString().Replace("'", ""); msg = msg.Replace("\r\n", ""); } } log += ";补考信息更新为-补考MEIID:" + makeExamOjb.MEIID + ";开始时间:" + makeExamOjb.MakeUpExamStartTime + ";结束时间:" + makeExamOjb.MakeupExamEndTime; } } else {//添加 examObj.JoinNum = examPersionList.Count; examObj.EIID = BLL.ExamInfo.Instance.Insert(tran, examObj); foreach (Entities.ExamPerson examPersion in examPersionList) { examPersion.EIID = examObj.EIID; try { BLL.ExamPerson.Instance.Insert(tran, examPersion); } catch (Exception ex) { msg = ex.Message.ToString().Replace("'", ""); msg = msg.Replace("\r\n", ""); } } log = "添加考试项目-EIID:" + examObj.EIID + ";标题:" + examObj.Name + ";考试说明:" + examObj.Description + ";开始时间:" + examObj.ExamStartTime + ";结束时间:" + examObj.ExamEndTime; if (examObj.IsMakeUp == 1) {//补考 makeExamOjb.JoinNum = makeExamPersionList.Count; makeExamOjb.EIID = examObj.EIID; makeExamOjb.MEIID = BLL.MakeUpExamInfo.Instance.Insert(tran, makeExamOjb); foreach (Entities.ExamPerson examPersion in makeExamPersionList) { examPersion.MEIID = makeExamOjb.MEIID; examPersion.EIID = makeExamOjb.EIID; try { BLL.ExamPerson.Instance.Insert(tran, examPersion); } catch (Exception ex) { msg = ex.Message.ToString().Replace("'", ""); msg = msg.Replace("\r\n", ""); } } log += ";补考信息-补考MEIID:" + makeExamOjb.MEIID + ";开始时间:" + makeExamOjb.MakeUpExamStartTime + ";结束时间:" + makeExamOjb.MakeupExamEndTime; } } tran.Commit(); //写入日志 BLL.Util.InsertUserLog(log); result = true; } catch (Exception ex) { tran.Rollback(); msg = ex.Message.ToString().Replace("'", ""); msg = msg.Replace("\r\n", ""); } finally { connection.Close(); } return(result); #endregion }
/// <summary> /// 生成任务 /// </summary> /// <param name="dt"></param> public void GenTask(DataTable dt) { int taskCount = 0; int existCount = 0; BLL.Loger.Log4Net.Info("生成_易湃_置换订单_开始:"); DateTime dtNow = DateTime.Now; DataTable dtNew = dt.Clone(); for (int i = 0; i < dt.Rows.Count; i++) { int YPOrderID = int.Parse(dt.Rows[i]["OrderBusinessOpportunityID"].ToString()); int dealerID = -1; int.TryParse(dt.Rows[i]["DealerID"].ToString(), out dealerID); if (BLL.OrderRelpaceCarLog.Instance.IsExistsByYPOrderID(YPOrderID))//存在 { BLL.Util.InsertUserLogNoUser("(置换)易湃订单ID:" + YPOrderID + "的记录已经存在,不在生成任务!"); } else if (dealerID > 0)//Add=Masj,Date=2013-08-26,去掉免费订单的相关数据 { BLL.Loger.Log4Net.Info("(置换)易湃订单ID:" + YPOrderID + "的记录经销商为" + dealerID + "(免费订单),不生成任务!"); } else//不存在 { dtNew.ImportRow(dt.Rows[i]); } } BLL.Loger.Log4Net.Info("检测拿到的置换订单数据中有" + existCount + "条数据在呼叫中心库中已经存在了"); string connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC"); SqlConnection connection = new SqlConnection(connectionstrings); connection.Open(); SqlTransaction tran = connection.BeginTransaction("OrderRelpaceCarLogTransaction"); try { for (int i = 0; i < dtNew.Rows.Count; i++) { Entities.OrderRelpaceCarLog model = InitOrderRelpaceCarLog(dtNew.Rows[i]); if (model != null) { long OrderRelpaceCarLogID = Insert(tran, model); //插入OrderRelpaceCarLog表 if (model.CarID != Constant.INT_INVALID_VALUE && model.CarID != 0) { //Add By Chybin At 2013.2.13 如果Carid和OrderQuantity为空,就只插入OrderRelpaceCarLog 表,不生成任务,不插入OrderRelpaceCar 表 //Add By Masj At 2013.7.26 OrderQuantity为空去掉限制了 long taskID = BLL.OrderTask.Instance.InsertByOrder(tran, model); if (BLL.OrderRelpaceCar.Instance.IsExistsByTaskID(taskID)) { BLL.Util.InsertUserLogNoUser(tran, "(置换)任务ID" + taskID + "的记录已经存在,不在生成任务!"); } else if (BLL.OrderRelpaceCar.Instance.InsertByTaskID(tran, taskID, model)) { BLL.Util.InsertUserLogNoUser(tran, "(置换)任务ID" + taskID + "的记录生成成功!"); taskCount++; } } } } //事务提交 tran.Commit(); } catch (Exception ex) { tran.Rollback(); string msg = "(置换)生成任务失败!失败原因:" + ex.Message; BLL.Util.InsertUserLogNoUser(msg); BLL.Loger.Log4Net.Error(msg, ex); } finally { connection.Close(); } string msgTitle = "一共生成(置换)任务:" + taskCount + "个"; BLL.Util.InsertUserLogNoUser(msgTitle); BLL.Loger.Log4Net.Error(msgTitle); TimeSpan ts = new TimeSpan(); ts = DateTime.Now - dtNow; BLL.Loger.Log4Net.Info("生成_易湃_置换订单_结束:" + msgTitle + ",用时" + ts.TotalSeconds + "秒。"); }
//提交或保存:type=submit 提交;type=save 保存 public void examOnlineOperate(string type, out string msg) { msg = string.Empty; int loginerID = BLL.Util.GetLoginUserID(); //登陆者ID int _EOLID = 0; //插入该考生在线考试记录后返回的主键 int _EOLDID = 0; //插入在线考试小题明细记录后返回的主键 int _totalScore = 0; //记录总得分,最后一步更新到在线考试表中 bool isSubject = false; //是否存在主观题,默认false 不存在(在线考试试卷则为已阅);true存在(在线考试试卷则为未阅) int _paperID; //试卷ID if (!int.TryParse(RequestExamPaperID, out _paperID)) { msg = "{msg:'试卷ID出错,操作失败!'}"; return; } Entities.ExamOnline model_examOnlineInsert = null; //新增时增加的在线考试实体,如果之前没保存过,则需要新增 Entities.ExamOnline model_examOnlineToUpdate = null; //需要修改之前保存过的试卷信息 ArrayList array_examOnlineDetailDelete = new ArrayList(); //如果有过保存的记录,则保存需要删除的小题明细ID 集合 ArrayList array_examOnlineAnswerDelete = new ArrayList(); //如果有过保存的记录,则保存需要删除的答案ID 集合 bool paperIsSave = false; //该考生试卷是否被保存过,false 没有;true 是; ArrayList array_appendValueAnswer = new ArrayList(); //记录答案对应的小题明细数组 int examOnlineDetailIndex = 0; //数组值 int _EIID; if (!int.TryParse(RequestEIID, out _EIID)) { msg = "{msg:'项目ID出错,操作失败!'}"; return; } judgeSubmitExamLimit(_EIID, out msg); if (msg != string.Empty) { return; } //在线考试明细表 集合(非主观题) List <Entities.ExamOnlineDetail> list_examOnlineDetail = new List <Entities.ExamOnlineDetail>(); //在线考试答案表 集合(非主观题) List <Entities.ExamOnlineAnswer> list_examOnlineAnswer = new List <Entities.ExamOnlineAnswer>(); //在线考试明细表 集合(主观题) List <Entities.ExamOnlineDetail> list_SubjetExamOnlineDetail = new List <Entities.ExamOnlineDetail>(); //在线考试答案表 集合(主观题) List <Entities.ExamOnlineAnswer> list_SubjetExamOnlineAnswer = new List <Entities.ExamOnlineAnswer>(); //日志:修改 在线考试表 集合 ArrayList array_updateExamOnlineLog = new ArrayList(); //在线考试表 修改前的model Entities.ExamOnline model_updateExamOnlineLog_Old = null; //日志:插入 在线考试表 集合 ArrayList arry_insertExamOnlineLog = new ArrayList(); //日志:插入 在线考试明细表 记录集合 ArrayList array_insertExamOnlineDetailLog = new ArrayList(); //日志:插入 在线考试答案表 记录集合 ArrayList array_insertExamOnlineAnswerLog = new ArrayList(); #region 准备数据 Entities.QueryExamOnline query_examOnlineSave = new Entities.QueryExamOnline(); int saveCount; if (RequestExamType == "1") //补考项目考试 { query_examOnlineSave.MEIID = _EIID; query_examOnlineSave.IsMakeUp = 1; } else if (RequestExamType == "0") //正常项目考试 { query_examOnlineSave.IsMakeUp = 0; query_examOnlineSave.EIID = _EIID; } query_examOnlineSave.ExamPersonID = loginerID; DataTable dt_examOnlineSave = BLL.ExamOnline.Instance.GetExamOnline(query_examOnlineSave, "", 1, 10000, out saveCount); if (dt_examOnlineSave.Rows.Count > 0) { paperIsSave = true; //存在数据,准备上次保存的数据,对其进行修改 model_examOnlineToUpdate = BLL.ExamOnline.Instance.GetExamOnline(long.Parse(dt_examOnlineSave.Rows[0]["EOLID"].ToString())); model_updateExamOnlineLog_Old = model_examOnlineToUpdate; if (model_examOnlineToUpdate != null) { model_examOnlineToUpdate.ExamEndTime = DateTime.Now; model_examOnlineToUpdate.IsLack = 0; //准备需要删除的小题明细ID 集合 Entities.QueryExamOnlineDetail query_examOnlineDetailDelete = new Entities.QueryExamOnlineDetail(); query_examOnlineDetailDelete.EOLID = int.Parse(model_examOnlineToUpdate.EOLID.ToString()); DataTable dt_detailDelete = BLL.ExamOnlineDetail.Instance.GetExamOnlineDetail(query_examOnlineDetailDelete, "", 1, 10000, out saveCount); for (int i = 0; i < dt_detailDelete.Rows.Count; i++) { //插入 集合 array_examOnlineDetailDelete.Add(dt_detailDelete.Rows[i]["EOLDID"].ToString()); //准备需要删除的该小题答案ID 集合 Entities.QueryExamOnlineAnswer query_examOnlineAnswerDelete = new Entities.QueryExamOnlineAnswer(); query_examOnlineAnswerDelete.EOLDID = int.Parse(dt_detailDelete.Rows[i]["EOLDID"].ToString()); DataTable dt_answerDelete = BLL.ExamOnlineAnswer.Instance.GetExamOnlineAnswer(query_examOnlineAnswerDelete, "", 1, 10000, out saveCount); for (int j = 0; j < dt_answerDelete.Rows.Count; j++) { //插入 集合 array_examOnlineAnswerDelete.Add(dt_answerDelete.Rows[j]["RecID"].ToString()); } } } } // a、准备 插入在线考试表记录 数据 // 如果之前保存过数据,则不需要新增,修改即可 if (paperIsSave == false) { model_examOnlineInsert = new Entities.ExamOnline(); if (RequestExamType == "1") //补考项目考试 { model_examOnlineInsert.IsMakeUp = 1; model_examOnlineInsert.MEIID = _EIID; //根据补考项目ID,找到对应的考试项目ID,并赋值 Entities.MakeUpExamInfo model_makeUpExamInfoGetEIID = BLL.MakeUpExamInfo.Instance.GetMakeUpExamInfo(_EIID); if (model_makeUpExamInfoGetEIID == null) { msg = "{msg:'该补考项目对应考试项目ID未找到,操作失败!'}"; return; } model_examOnlineInsert.EIID = int.Parse(model_makeUpExamInfoGetEIID.EIID.ToString()); } else if (RequestExamType == "0") //正常项目考试 { model_examOnlineInsert.IsMakeUp = 0; model_examOnlineInsert.EIID = _EIID; } model_examOnlineInsert.ExamPersonID = loginerID; model_examOnlineInsert.ExamStartTime = DateTime.Parse(RequestExamStartTime); model_examOnlineInsert.ExamEndTime = DateTime.Now; model_examOnlineInsert.CreateTime = DateTime.Now; model_examOnlineInsert.CreaetUserID = loginerID; model_examOnlineInsert.IsLack = 0; //不算缺考 //_EOLID = insertExamOnline(tran, model_examOnlineInsert); } if (model_examOnlineInsert != null) { model_examOnlineInsert.Status = type == "save" ? 0 : 1; } if (model_examOnlineToUpdate != null) { model_examOnlineToUpdate.Status = type == "save" ? 0 : 1; } #endregion #region b、准备 插入在线考试小题明细 数据 #region 1)准备 非主观题 数据 if (RequestNoSubjectQestion != "") { //分解成每一个小题数组,类似['大题ID:小题ID:单选题答案','大题ID:小题ID:复选题答案1;复选题答案2;复选题答案3'] string[] noSubjectQuestion = RequestNoSubjectQestion.Split(','); for (int i = 0; i < noSubjectQuestion.Length; i++) { examOnlineDetailIndex = i; //分解成每一个小题详细信息的数组,类似['大题ID','小题ID','复选题答案1;复选题答案2;复选题答案3'] string[] eachNoSubjectQuestion = noSubjectQuestion[i].Split(':'); //如果该小题的详细信息都有值,则插入;否则,不插入 if (eachNoSubjectQuestion[0] != "" && eachNoSubjectQuestion[1] != "" && eachNoSubjectQuestion[2] != "") { Entities.ExamOnlineDetail model_examOnlineDetailInsert = new Entities.ExamOnlineDetail(); //model_examOnlineDetailInsert.EOLID = int.Parse(_EOLID.ToString()); model_examOnlineDetailInsert.EPID = _paperID; model_examOnlineDetailInsert.BQID = long.Parse(eachNoSubjectQuestion[0]); model_examOnlineDetailInsert.KLQID = long.Parse(eachNoSubjectQuestion[1]); model_examOnlineDetailInsert.Score = 0; // (1)根据该生给出的答案去比较正确的答案 // 先根据该小题ID去找出该题正确答案串 string rightAnswer = string.Empty; Entities.QueryKLQAnswer query_KLQAnswer = new Entities.QueryKLQAnswer(); int totalCount; query_KLQAnswer.KLQID = model_examOnlineDetailInsert.KLQID; DataTable dt_KLQAnswer = BLL.KLQAnswer.Instance.GetKLQAnswer(query_KLQAnswer, "", 1, 10000, out totalCount); if (dt_KLQAnswer.Rows.Count == 0) { msg = "{msg:'对应题目的答案未找到,操作失败!'}"; return; } for (int j = 0; j < dt_KLQAnswer.Rows.Count; j++) { rightAnswer += dt_KLQAnswer.Rows[j]["KLAOID"].ToString() + ";"; } rightAnswer = rightAnswer.TrimEnd(';'); // 比较该串与考生给出的答案串是否相同,相同则得分;不相同给零分 // 比较方法(两个长度相同,分解考生答案,保证每一个答案都在正确答案内) if (eachNoSubjectQuestion[2].Length == rightAnswer.Length) { string[] eachNoSubjectAnswer = eachNoSubjectQuestion[2].Split(';'); bool IsRightOrWrong = true; // 答案是否正确,正确true;错误false for (int ea = 0; ea < eachNoSubjectAnswer.Length; ea++) { if (!rightAnswer.Contains(eachNoSubjectAnswer[ea])) { IsRightOrWrong = false; } } if (IsRightOrWrong) { // (2)找到该小题如果正确则应得的分数 Entities.ExamBigQuestion model_examBigQuestion = BLL.ExamBigQuestion.Instance.GetExamBigQuestion(model_examOnlineDetailInsert.BQID); if (model_examBigQuestion == null) { msg = "{msg:'对应该小题的对应的分数未找到,操作失败!'}"; return; } int eachQuestionScore = model_examBigQuestion.EachQuestionScore; model_examOnlineDetailInsert.Score = eachQuestionScore; _totalScore += eachQuestionScore; //计入总得分 } } model_examOnlineDetailInsert.CreaetUserID = loginerID; model_examOnlineDetailInsert.CreateTime = DateTime.Now; //插入在线考试小题明细表 集合 list_examOnlineDetail.Add(model_examOnlineDetailInsert); //插入在线考试小题明细表 日志集合 string detailsLog = "在线考试小题明细表【插入】"; int epidLog; int bqidLog; int klqidLog; if (int.TryParse(model_examOnlineDetailInsert.EPID.ToString(), out epidLog)) { Entities.ExamPaper model_examPaperLog = BLL.ExamPaper.Instance.GetExamPaper(epidLog); if (model_examPaperLog != null) { detailsLog += "试卷名称【" + model_examPaperLog.Name + "】"; } } if (int.TryParse(model_examOnlineDetailInsert.BQID.ToString(), out bqidLog)) { Entities.ExamBigQuestion model_examBigQuestionLog = BLL.ExamBigQuestion.Instance.GetExamBigQuestion(bqidLog); if (model_examBigQuestionLog != null) { detailsLog += "大题名称【" + model_examBigQuestionLog.Name + "】"; } } if (int.TryParse(model_examOnlineDetailInsert.KLQID.ToString(), out klqidLog)) { Entities.KLQuestion model_klqQestionLog = BLL.KLQuestion.Instance.GetKLQuestion(klqidLog); if (model_klqQestionLog != null) { detailsLog += "小题内容【" + model_klqQestionLog.Ask + "】"; } } detailsLog += "本小题得分【" + model_examOnlineDetailInsert.Score + "】插入时间【" + model_examOnlineDetailInsert.CreateTime + "】的记录"; array_insertExamOnlineDetailLog.Add(detailsLog); // (3)插入在线考试答案表 // 分解答案串,分条插入该表 string[] eachAnswer = eachNoSubjectQuestion[2].Split(';'); for (int k = 0; k < eachAnswer.Length; k++) { Entities.ExamOnlineAnswer model_examOnlineAnswer = new Entities.ExamOnlineAnswer(); //model_examOnlineAnswer.EOLDID = int.Parse(_EOLDID.ToString()); model_examOnlineAnswer.ExamAnswer = eachAnswer[k]; model_examOnlineAnswer.CreaetUserID = loginerID; model_examOnlineAnswer.CreateTime = DateTime.Now; //插入在线考试答案表 集合 list_examOnlineAnswer.Add(model_examOnlineAnswer); array_appendValueAnswer.Add(examOnlineDetailIndex); //插入在线考试答案表 日志集合 array_insertExamOnlineAnswerLog.Add("在线考试答案表【插入】提交答案:【" + model_examOnlineAnswer.ExamAnswer + "】插入时间【" + model_examOnlineAnswer.CreateTime + "】的记录"); } } } } #endregion #region 2)准备 插入主观题 数据(主观题答案为空,也会插入) if (RequestSubjectQuestion != "") { //分解成每一个小题数组,类似['大题ID^^小题ID^^答案','大题ID^^小题ID^^答案','大题ID^^小题ID^^答案'] string[] subjectQuestion = RequestSubjectQuestion.Split(new string[] { "$$" }, StringSplitOptions.None); for (int i = 0; i < subjectQuestion.Length; i++) { //分解成每一题的每个详细信息,类似['大题ID','小题ID','答案'] string[] eachSubjectQuestion = subjectQuestion[i].Split(new string[] { "^^" }, StringSplitOptions.None); Entities.ExamOnlineDetail model_subjectExamOnlineDetail = new Entities.ExamOnlineDetail(); //model_subjectExamOnlineDetail.EOLID = _EOLID.ToString; model_subjectExamOnlineDetail.EPID = _paperID; model_subjectExamOnlineDetail.BQID = long.Parse(eachSubjectQuestion[0]); model_subjectExamOnlineDetail.KLQID = long.Parse(eachSubjectQuestion[1]); model_subjectExamOnlineDetail.Score = 0; model_subjectExamOnlineDetail.CreaetUserID = loginerID; model_subjectExamOnlineDetail.CreateTime = DateTime.Now; //插入在线考试小题明细表 集合 list_SubjetExamOnlineDetail.Add(model_subjectExamOnlineDetail); //插入在线考试小题明细表 日志集合 string detailsLog = "在线考试小题明细表【主观题】【插入】"; int epidLog; int bqidLog; int klqidLog; if (int.TryParse(model_subjectExamOnlineDetail.EPID.ToString(), out epidLog)) { Entities.ExamPaper model_examPaperLog = BLL.ExamPaper.Instance.GetExamPaper(epidLog); if (model_examPaperLog != null) { detailsLog += "试卷名称【" + model_examPaperLog.Name + "】"; } } if (int.TryParse(model_subjectExamOnlineDetail.BQID.ToString(), out bqidLog)) { Entities.ExamBigQuestion model_examBigQuestionLog = BLL.ExamBigQuestion.Instance.GetExamBigQuestion(bqidLog); if (model_examBigQuestionLog != null) { detailsLog += "大题名称【" + model_examBigQuestionLog.Name + "】"; } } if (int.TryParse(model_subjectExamOnlineDetail.KLQID.ToString(), out klqidLog)) { Entities.KLQuestion model_klqQestionLog = BLL.KLQuestion.Instance.GetKLQuestion(klqidLog); if (model_klqQestionLog != null) { detailsLog += "小题内容【" + model_klqQestionLog.Ask + "】"; } } detailsLog += "本小题得分【" + model_subjectExamOnlineDetail.Score + "】插入时间【" + model_subjectExamOnlineDetail.CreateTime + "】的记录"; array_insertExamOnlineDetailLog.Add(detailsLog); //在线考试答案表 实体 Entities.ExamOnlineAnswer model_subjectExamOnlineAnswer = new Entities.ExamOnlineAnswer(); //model_subjectExamOnlineAnswer.EOLDID = _EOLDID; model_subjectExamOnlineAnswer.ExamAnswer = eachSubjectQuestion[2]; model_subjectExamOnlineAnswer.CreaetUserID = loginerID; model_subjectExamOnlineAnswer.CreateTime = DateTime.Now; //插入在线考试答案表 集合 list_SubjetExamOnlineAnswer.Add(model_subjectExamOnlineAnswer); //插入在线考试答案表 日志集合 array_insertExamOnlineAnswerLog.Add("在线考试答案表【插入】提交答案:【" + model_subjectExamOnlineAnswer.ExamAnswer + "】插入时间【" + model_subjectExamOnlineAnswer.CreateTime + "】的记录"); //将isSubject字段修改为 true;在线考试的IsMarking需修改为0未阅 isSubject = true; } } if (model_examOnlineInsert != null) { model_examOnlineInsert.SumScore = _totalScore; model_examOnlineInsert.IsMarking = isSubject == false ? 1 : 0; //准备插入数据的日志 string logStr = string.Empty; if (type == "save") { logStr += "【保存】"; } else { logStr += "【提交】"; } logStr += "在线考试表【插入】"; string meiidStr = model_examOnlineInsert.IsMakeUp == 1 ? "补考项目ID【" + model_examOnlineInsert.MEIID + "】" : ""; string isMakeUp = model_examOnlineInsert.IsMakeUp == 1 ? "补考" : "未补考"; string isMakeing = model_examOnlineInsert.IsMarking == 1 ? "已阅" : "未阅"; string status = model_examOnlineInsert.Status == 1 ? "提交" : "保存"; //考试项目名称 string eiidName = string.Empty; Entities.ExamInfo model_examInfo = BLL.ExamInfo.Instance.GetExamInfo(model_examOnlineInsert.EIID); if (model_examInfo != null) { eiidName = model_examInfo.Name; logStr += "考试项目名称【" + eiidName + "】"; } logStr += meiidStr + "考生名称【" + BLL.Util.GetNameInHRLimitEID(loginerID) + "】考试开始时间【" + model_examOnlineInsert.ExamStartTime + "】考试结束时间【" + model_examOnlineInsert.ExamEndTime + "】总得分【" + model_examOnlineInsert.SumScore + "】是否补考【" + isMakeUp + "】是否阅卷【" + isMakeing + "】状态【" + status + "】的记录"; arry_insertExamOnlineLog.Add(logStr); } if (model_examOnlineToUpdate != null) { model_examOnlineToUpdate.SumScore = _totalScore; model_examOnlineToUpdate.IsMarking = isSubject == false ? 1 : 0; //准备修改数据的日志 string logStr = string.Empty; if (type == "save") { logStr += "【保存】"; } else { logStr += "【提交】"; } logStr += "在线考试表【更新】"; if (model_updateExamOnlineLog_Old.SumScore != model_examOnlineToUpdate.SumScore) { logStr += "总得分从【" + model_updateExamOnlineLog_Old.SumScore + "】修改成【" + model_examOnlineToUpdate.SumScore + "】"; } if (model_updateExamOnlineLog_Old.IsMarking != model_examOnlineToUpdate.IsMarking) { string isMarking_Old = model_updateExamOnlineLog_Old.IsMarking == 1 ? "是" : "否"; string isMarking_Now = model_examOnlineToUpdate.IsMarking == 1 ? "是" : "否"; logStr += "是否阅卷从【" + isMarking_Old + "】修改成【" + isMarking_Now + "】"; } if (model_updateExamOnlineLog_Old.ExamEndTime != model_examOnlineToUpdate.ExamEndTime) { logStr += "考试结束时间从【" + model_updateExamOnlineLog_Old.ExamEndTime + "】修改成【" + model_examOnlineToUpdate.ExamEndTime + "】"; } if (model_updateExamOnlineLog_Old.Status != model_examOnlineToUpdate.Status) { string status_Old = model_updateExamOnlineLog_Old.Status == 1 ? "提交" : "保存"; string status_Now = model_examOnlineToUpdate.Status == 1 ? "提交" : "保存"; logStr += "考生试卷状态从【" + status_Old + "】修改成【" + status_Now + "】"; } logStr += "记录"; array_updateExamOnlineLog.Add(logStr); } #endregion #endregion #region 提交、保存 实务操作 string connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC"); SqlConnection connection = new SqlConnection(connectionstrings); connection.Open(); SqlTransaction tran = connection.BeginTransaction("SampleTransaction"); try { //如果没有保存过的,新增一条;如果被保存过,修改在线考试这条记录并删除之前的小题明细和答案,然后重新插入,反之都要插入 if (paperIsSave == false) { //插入在线考试表一条记录 _EOLID得到返回的主键值 _EOLID = insertExamOnline(tran, model_examOnlineInsert); } else { _EOLID = int.Parse(model_examOnlineToUpdate.EOLID.ToString()); //修改在线考试表的该条记录 updateExamOnline(tran, model_examOnlineToUpdate); //删除明细表的该考生本张试卷ID的所有明细记录 for (int i = 0; i < array_examOnlineDetailDelete.Count; i++) { long eoldid = long.Parse(array_examOnlineDetailDelete[i].ToString()); BLL.ExamOnlineDetail.Instance.Delete(tran, eoldid); BLL.Util.InsertUserLog(tran, "在线考试明细表【删除】主键ID:【" + eoldid + "】的记录"); } //删除答案表的该考生本张试卷ID的所有答案记录 for (int j = 0; j < array_examOnlineAnswerDelete.Count; j++) { long recid = long.Parse(array_examOnlineAnswerDelete[j].ToString()); BLL.ExamOnlineAnswer.Instance.Delete(tran, recid); BLL.Util.InsertUserLog(tran, "在线考试答案表【删除】主键ID:【" + recid + "】的记录"); } } //插入非主观题 for (int kk = 0; kk < list_examOnlineDetail.Count; kk++) { //插入在线考试小题明细表 _EOLDID到返回的主键值 Entities.ExamOnlineDetail eachExamOnlineDetail = list_examOnlineDetail[kk]; eachExamOnlineDetail.EOLID = _EOLID; _EOLDID = insertOnlineDetail(tran, eachExamOnlineDetail); //插入在线考试答案表 这两个表的插入不一定是一对,因为有的是多选,需要多条插入 for (int n = kk; n < array_appendValueAnswer.Count; n++) { if (kk == int.Parse(array_appendValueAnswer[n].ToString())) { Entities.ExamOnlineAnswer eachExamOnlineAnswer = list_examOnlineAnswer[n]; eachExamOnlineAnswer.EOLDID = _EOLDID; insertExamOnlineAnswer(tran, eachExamOnlineAnswer); } } } //插入主观题 for (int tt = 0; tt < list_SubjetExamOnlineDetail.Count; tt++) { //插入在线考试小题明细表 _EOLDID到返回的主键值 Entities.ExamOnlineDetail eachExamOnlineDetail = list_SubjetExamOnlineDetail[tt]; eachExamOnlineDetail.EOLID = _EOLID; _EOLDID = int.Parse(insertOnlineDetail(tran, eachExamOnlineDetail).ToString()); //插入在线考试答案表 这两个表的插入肯定是一对,所以不用循环list Entities.ExamOnlineAnswer eachExamOnlineAnswer = list_SubjetExamOnlineAnswer[tt]; eachExamOnlineAnswer.EOLDID = _EOLDID; insertExamOnlineAnswer(tran, eachExamOnlineAnswer); } //插入日志 for (int log1 = 0; log1 < arry_insertExamOnlineLog.Count; log1++) { BLL.Util.InsertUserLog(tran, arry_insertExamOnlineLog[log1].ToString()); } for (int log2 = 0; log2 < array_updateExamOnlineLog.Count; log2++) { BLL.Util.InsertUserLog(tran, array_updateExamOnlineLog[log2].ToString()); } for (int log3 = 0; log3 < array_insertExamOnlineDetailLog.Count; log3++) { BLL.Util.InsertUserLog(tran, array_insertExamOnlineDetailLog[log3].ToString()); } for (int log4 = 0; log4 < array_insertExamOnlineAnswerLog.Count; log4++) { BLL.Util.InsertUserLog(tran, array_insertExamOnlineAnswerLog[log4].ToString()); } //事务提交 tran.Commit(); msg = "{msg:'true'}"; } catch (Exception ex) { tran.Rollback(); msg = "{msg:'" + ex.Message.ToString() + "'}"; BLL.Loger.Log4Net.Error("在线考试异常", ex); } finally { connection.Close(); } #endregion }
public DataTable GetWorkOrderInfoHMC(string Verifycode, QueryWorkOrderInfo query, int currentPage, out int totalCount, ref string msg) { string starttime = query.BeginCreateTime; string endtime = query.EndCreateTime; BLL.Loger.Log4Net.Info("[CCDataInterfaceService.asmx]WorkOrderInfoExportHMC ...BEGIN...开始时间:" + starttime + ",结束时间:" + endtime); totalCount = 0; int pageSize = 20; string spageSize = ConfigurationUtil.GetAppSettingValue("CCInterfaceHMCPageSize"); if (!string.IsNullOrEmpty(spageSize)) { int itmp = 0; if (Int32.TryParse(spageSize, out itmp)) { pageSize = itmp; } } //验证授权码 string sVerify = ""; sVerify = ConfigurationUtil.GetAppSettingValue("CallRecordAuthorizeCode"); if (sVerify == Verifycode) { } else { msg = "授权码错误!!"; return(null); } //验证开始、结束时间格式是否正确 DateTime dt; if (!DateTime.TryParse(starttime, out dt)) { msg = "开始时间格式不正确!!"; return(null); } if (!DateTime.TryParse(endtime, out dt)) { msg = "结束时间格式不正确!!"; return(null); } DataTable mydt = null; try { mydt = BLL.WorkOrderInfo.Instance.WorkOrderInfoExportHMC(query, "woi.CreateTime DESC", currentPage, pageSize, out totalCount); } catch (Exception ex) { BLL.Loger.Log4Net.Info("[CCDataInterfaceService.asmx]WorkOrderInfoExportHMC ...获取数据操作出错!errorStackTrace:" + ex.StackTrace); } BLL.Loger.Log4Net.Info("[CCDataInterfaceService.asmx]WorkOrderInfoExportHMC ...获取数据操作结束!"); return(mydt); }
//问卷调查提交 private void surveyAnswerSubmit(out string msg) { msg = string.Empty; judgeIsCorrect(out msg); if (msg != "success") { return; } #region 提交准备数据 SurveyAnswerRoot modelRoot = null; List <Entities.SurveyAnswer> list_ESurveyAnswer = new List <Entities.SurveyAnswer>(); ArrayList array_UserActionLog = new ArrayList();//日志 modelRoot = (SurveyAnswerRoot)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(RequestJsonSurveyAnswer, typeof(SurveyAnswerRoot)); if (modelRoot == null) { msg = "提交的问卷数据不存在"; return; } for (int i = 0; i < modelRoot.DataRoot.Length; i++) { Entities.SurveyAnswer model = new Entities.SurveyAnswer(); SurveyAnswer answer = modelRoot.DataRoot[i]; int _spiid; if (int.TryParse(RequestSPIID, out _spiid)) { model.SPIID = _spiid; } if (!string.IsNullOrEmpty(RequestPTID)) { model.PTID = RequestPTID; } int _siid; if (int.TryParse(RequestSIID, out _siid)) { model.SIID = _siid; } int _sqid; if (int.TryParse(answer.SQID, out _sqid)) { model.SQID = _sqid; } int _smrtid; if (int.TryParse(answer.SMRTID, out _smrtid)) { model.SMRTID = _smrtid; } int _smctid; if (int.TryParse(answer.SMCTID, out _smctid)) { model.SMCTID = _smctid; } int _soid; if (int.TryParse(answer.SOID, out _soid)) { model.SOID = _soid; } model.AnswerContent = answer.AnswerContent; model.CreateUserID = userID; model.CreateTime = DateTime.Now; list_ESurveyAnswer.Add(model); string logStr = string.Empty; logStr = "调查问卷回答信息表【插入】问卷调查项目ID【" + model.SPIID + "】调查问卷ID【" + model.SIID + "】调查问卷试题ID【" + model.SQID + "】提交人【" + model.CreateUserID + "】调查问卷矩阵行ID【" + model.SMRTID + "】矩阵列ID【" + model.SMCTID + "】调查问卷选项ID【" + model.SOID + "】回答内容【" + model.AnswerContent + "】创建时间【" + model.CreateTime + "】"; array_UserActionLog.Add(logStr); } #endregion #region 事务提交 string connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC"); SqlConnection connection = new SqlConnection(connectionstrings); connection.Open(); SqlTransaction tran = connection.BeginTransaction("SampleTransaction"); try { //删除之前的答案 if (!string.IsNullOrEmpty(RequestPTID)) { int _siid1; if (int.TryParse(RequestSIID, out _siid1)) { BLL.SurveyAnswer.Instance.Delete(tran, _siid1, RequestPTID); } } for (int i = 0; i < list_ESurveyAnswer.Count; i++) { BLL.SurveyAnswer.Instance.Insert(tran, list_ESurveyAnswer[i]); } for (int i = 0; i < array_UserActionLog.Count; i++) { BLL.Util.InsertUserLog(tran, array_UserActionLog[i].ToString()); } //是否答过题,默认答没答过 bool flag = false; if (list_ESurveyAnswer.Count == 0) { flag = false; } else { for (int i = 0; i < list_ESurveyAnswer.Count; i++) { if (list_ESurveyAnswer[i].SOID != -2 || list_ESurveyAnswer[i].AnswerContent != "" || list_ESurveyAnswer[i].SMCTID != -2 || list_ESurveyAnswer[i].SMRTID != -2) { flag = true; } } } //答过题记录 if (flag == true) { //判断该项目,该任务,该问卷,是否已有答问卷记录,没有插入 DataTable dt = null; Entities.QueryProjectTask_SurveyAnswer querey = new Entities.QueryProjectTask_SurveyAnswer(); querey.PTID = RequestPTID; int _projectID; if (int.TryParse(RequestProjectID, out _projectID)) { } querey.ProjectID = _projectID; int _siid; if (int.TryParse(RequestSIID, out _siid)) { } querey.SIID = _siid; //int rowcount = 0; //dt = BLL.ProjectTask_SurveyAnswer.Instance.GetProjectTask_SurveyAnswer(tran, querey, "", 1, 1000000, out rowcount); Entities.ProjectTask_SurveyAnswer getModel = BLL.ProjectTask_SurveyAnswer.Instance.GetProjectTask_SurveyAnswerByQuery(tran, querey); if (getModel == null) { Entities.ProjectTask_SurveyAnswer model = new Entities.ProjectTask_SurveyAnswer(); model.ProjectID = _projectID; model.PTID = RequestPTID; model.SIID = _siid; model.CreateTime = System.DateTime.Now; model.CreateUserID = BLL.Util.GetLoginUserID(); model.Status = RequestIsSub; BLL.ProjectTask_SurveyAnswer.Instance.Insert(tran, model); } else { getModel.CreateTime = DateTime.Now; getModel.Status = RequestIsSub; BLL.ProjectTask_SurveyAnswer.Instance.UpdateCreateTimeAndStatus(tran, getModel); } } msg = "success"; tran.Commit(); } catch (Exception ex) { BitAuto.ISDC.CC2012.BLL.Loger.Log4Net.Error("[TakingAnSurveyHandler.ashx]surveyAnswerSubmit...任务ID:" + RequestPTID + ",事务提交阶段出错:", ex); if (tran.Connection != null) { tran.Rollback(); } msg = ex.Message.ToString(); } finally { connection.Close(); } #endregion }
/// 批量修改处理逻辑 /// <summary> /// 批量修改处理逻辑 /// </summary> /// <param name="msg"></param> private void EmployeeAgentMutilOption(out string msg) { msg = ""; try { string[] userids = UserIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string cc_sysid = ConfigurationUtil.GetAppSettingValue("ThisSysID"); string im_sysid = ConfigurationUtil.GetAppSettingValue("IMSysID"); string[] role_ids = UserRolesID.Split('_'); string cc_role_id = role_ids[0]; string im_role_id = role_ids[1]; int btype = BLL.Util.GetMutilEnumDataValue <BusinessTypeEnum>(BusinessType); BLL.Loger.Log4Net.Info("【批量修改用户数据权限】Start"); //权限设置 foreach (string key in userids) { //批量清空权限 int userid = CommonFunction.ObjectToInteger(key); BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.DeleteUserRole(userid, cc_sysid); BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.DeleteUserRole(userid, im_sysid); //批量设置权限 if ((btype & (int)BusinessTypeEnum.CC) == (int)BusinessTypeEnum.CC) { BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.InsertUserRole(userid, cc_sysid, cc_role_id); BLL.Loger.Log4Net.Info("【批量修改用户数据权限】Step1.更新CC系统中[UserID=" + userid + "]的用户的角色ID为:" + cc_role_id); } if ((btype & (int)BusinessTypeEnum.IM) == (int)BusinessTypeEnum.IM) { BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.InsertUserRole(userid, im_sysid, im_role_id); BLL.Loger.Log4Net.Info("【批量修改用户数据权限】Step1.更新IM系统中[UserID=" + userid + "]的用户的角色ID为:" + im_role_id); } } //批量更新所属业务和所属分组 string ids = string.Join(",", userids); BLL.EmployeeAgent.Instance.UpdateMutilEmployeeAgent(ids, btype, CommonFunction.ObjectToInteger(AtGroupID)); BLL.Loger.Log4Net.Info("【批量修改用户数据权限】Step2.更新[UserID in (" + ids + ")]的用户的[BusinessType(所属业务)=" + btype + "],[BGID(所属分组)=" + AtGroupID + "]"); foreach (string key in userids) { int userid = CommonFunction.ObjectToInteger(key); UpdateUserSkillGroupDataRightByUserID(userid, out msg); string TrueNameAgentNum = BLL.EmployeeAgent.Instance.GetAgentNumberAndUserNameByUserId(userid); if (!string.IsNullOrEmpty(TrueNameAgentNum)) { string[] tnan = TrueNameAgentNum.Split(';'); if (tnan.Length == 2) { GetHeLiDataByUserNameAndAgentNum(tnan[0], tnan[1], out msg); } else { msg = "{'result':'failure','msg':'部分用户由于数据异常导致技能组数据未能传给合力厂商接口,请检查坐席的“用户名”和“工号”数据是否存在!'}"; BLL.Loger.Log4Net.Info("【批量修改用户数据权限】Step3.由于未能取到UserID=" + userid + "的用户的UserName或AgentNum的值,导致未能调用合力厂商的接口!"); } } else { msg = "{'result':'failure','msg':'部分用户由于数据异常导致技能组数据未能传给合力厂商接口,请检查坐席的“用户名”和“工号”数据是否存在!'}"; BLL.Loger.Log4Net.Info("【批量修改用户数据权限】Step3.由于未能取到UserID=" + userid + "的用户的UserName或AgentNum的值,导致未能调用合力厂商的接口!"); } } BLL.Loger.Log4Net.Info("【批量修改用户数据权限】End"); if (msg == "") { msg = "{'result':'success'}"; } } catch (Exception ex) { msg = "{'result':'failure','msg':'" + ex.Message + "'}"; } }
public void DeleteMemberInfo() { int id = -1; if (MemberID != "") { if (int.TryParse(MemberID, out id)) { Entities.ProjectTask_DMSMember member = BLL.ProjectTask_DMSMember.Instance.GetProjectTask_DMSMember(id); if (member != null) { BitAuto.YanFa.Crm2009.Entities.DMSMember dmsMember = BitAuto.YanFa.Crm2009.BLL.DMSMember.Instance.GetDMSMember(new Guid(member.OriginalDMSMemberID)); if (dmsMember != null) { if (dmsMember.SyncStatus == (int)BitAuto.YanFa.Crm2009.Entities.EnumDMSSyncStatus.Rejected) { BitAuto.YanFa.Crm2009.BLL.DMSMember.Instance.Delete(dmsMember.ID.ToString()); BLL.ProjectTask_DMSMember.Instance.ProjectTask_DMSMemberDelete(id); string content = string.Format("为【{0}(ID:{1})】删除会员【{2}(ID:{3})】成功。", dmsMember.CustName, dmsMember.CustID, dmsMember.Name, dmsMember.MemberCode); BitAuto.YanFa.SysRightManager.Common.LogInfo.Instance.InsertLog(ConfigurationUtil.GetAppSettingValue("MemberLogModuleID"), (int)BitAuto.YanFa.SysRightManager.Common.LogInfo.ActionType.Delete, content); } else { throw new Exception("只有打回的会员才能删除!"); } } } } else { throw new Exception("会员ID无法转换为int类型"); } } //车商通会员删除 if (OriginalCSTRecID != string.Empty) { BitAuto.YanFa.Crm2009.Entities.CstMember cstMember = BitAuto.YanFa.Crm2009.BLL.CstMember.Instance.GetCstMemberModel(OriginalCSTRecID); int ID = BLL.ProjectTask_CSTMember.Instance.GetIDByCSTRecID(OriginalCSTRecID); if (cstMember != null) { if (cstMember.SyncStatus == (int)BitAuto.YanFa.Crm2009.Entities.EnumCSTSyncStatus.Rejected) { BitAuto.YanFa.Crm2009.BLL.CstMember.Instance.Delete(cstMember.ID.ToString()); //删除CRM车商通会员信息 BLL.ProjectTask_CSTMember.Instance.ProjectTask_CSTMemberDelete(ID); //删除CC车商通会员信息 string content = string.Format("为【{0}(ID:{1})】删除会员【{2}(ID:{3})】成功。", cstMember.CustName, cstMember.CustID, cstMember.FullName, cstMember.VendorCode); BitAuto.YanFa.SysRightManager.Common.LogInfo.Instance.InsertLog(ConfigurationUtil.GetAppSettingValue("MemberLogModuleID"), (int)BitAuto.YanFa.SysRightManager.Common.LogInfo.ActionType.Delete, content); } else { throw new Exception("只有打回的会员才能删除!"); } } else { throw new Exception("删除失败"); } } }
//发送邮件 外部提交-根据固定的模板发送邮件 private void sendEmail(string taskID, string templateID, int eid, string custID) { //url string urlHead = ConfigurationUtil.GetAppSettingValue("TaskProcessUrl"); //找到邮件接收人的邮箱 string userEmail = BLL.Util.GetEmployeeEmailByEid(eid); //1 插入 发送邮件日志表 (记录) SendEmailLog model_Email = new SendEmailLog(); string templateName = BLL.Util.GetEmployeeNameByEid(eid);//收件人姓名 string urlInternal = urlHead + "/TaskManager/TaskProcess.aspx?TaskID=" + taskID; string urlExternal = urlHead + "/ExternalTask/ExternalTaskProcess.aspx?TaskID=" + taskID; string templateTitle = string.Empty; //模板标题 string templateLog = string.Empty; //模板日志 string templateUrl = string.Empty; //模板链接格式 int _templateID; //模板ID //根据TaskID和受理人ID获取所要发送的模板ID if (int.TryParse(templateID, out _templateID)) { QueryCustHistoryTemplateMapping query_Template = new QueryCustHistoryTemplateMapping(); query_Template.TaskID = taskID; query_Template.SolveUserEID = eid; int count; DataTable dt_Template = BLL.CustHistoryTemplateMapping.Instance.GetCustHistoryTemplateMapping(query_Template, "", 1, 10000, out count); if (dt_Template != null) { //根据模板ID获取模板内容 TemplateInfo model_TemplateInfo = new TemplateInfo(); model_TemplateInfo = BLL.TemplateInfo.Instance.GetTemplateInfo(_templateID); if (model_TemplateInfo == null) { return; } //templateInfo += model_TemplateInfo.Content; templateUrl += model_TemplateInfo.Content + "<br/>"; templateTitle = model_TemplateInfo.Title; } templateLog += "【同意转出】"; } else { _templateID = 0; templateUrl += "呼叫中心系统有需要您协助处理的问题,"; templateLog += "【提交】"; } templateLog += "发出邮件至【" + userEmail + "】;接收人【" + templateName + "】"; templateUrl += "详情请点击:<br/><a href='" + urlExternal + "'>" + urlHead + "/ExternalTask/ExternalTaskProcess.aspx</a><br/>"; templateUrl += "呼叫中心系统内部人员请访问:<br/><a href='" + urlInternal + "'>" + urlHead + "/TaskManager/TaskProcess.aspx</a>"; model_Email.TemplateID = 0; model_Email.CustID = custID; model_Email.MailTo = userEmail; model_Email.SendTime = DateTime.Now; model_Email.SendContent = templateUrl; model_Email.CreateUserID = int.Parse(RequestLoginEID); BLL.SendEmailLog.Instance.Insert(model_Email); //2根据 客户历史记录信息表中 模板ID来发送模板邮件 BLL.EmailHelper.Instance.SendMail(templateName, templateUrl, "呼叫中心问题处理", new string[] { userEmail }); BLL.Util.InsertUserLog("【外部提交】发送邮件日志表【插入】客户名称:【" + BLL.CustBasicInfo.Instance.GetCustBasicInfo(model_Email.CustID).CustName + "】接收人:【" + templateName + "】邮箱:【" + model_Email.MailTo + "】发送内容:【" + model_Email.SendContent + "】的记录【邮件发送成功】", int.Parse(RequestLoginEID)); }
private void Submit(out string msg, int userID) { //此方法内的逻辑可参考文档:$/A5信息系统研发/销售业务管理平台/客户关系管理/doc/Call Center/无主订单处理页面保存和提交逻辑.docx ---- Add By Chybin At 2013-07-19 msg = ""; //System.Threading.Thread.Sleep(5000); #region 准备数据 NewCarConsultInfo newInfo = null; //新车订单信息 ReplaceCarConsultInfo replaceInfo = null; //置换订单信息 Entities.OrderTask orderTaskModel = null; //无主订单任务信息 Entities.OrderTaskOperationLog orderLog = null; //任务操作日志 List <StringBuilder> listLogStr = new List <StringBuilder>(); //用户操作日志 StringBuilder sblogstr = new StringBuilder(); string logstr = ""; #region 取得新车/置换无主订单信息更新后Model(此时不保存到数据库) Entities.OrderNewCar newModel = null; //新车订单实体类 Entities.OrderRelpaceCar replaceModel = null; //置换订单实体类 if (Source == "1" || Source == "3") { newInfo = (NewCarConsultInfo)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(NewCarConsultInfoStr, typeof(NewCarConsultInfo)); newModel = OrderNewSave.Save(newInfo, out msg, userID, int.Parse(TaskID)); if (msg != "") { return; } } else if (Source == "2") { replaceInfo = (ReplaceCarConsultInfo)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(ReplaceCarConsultInfoStr, typeof(ReplaceCarConsultInfo)); replaceModel = OrderReplaceSave.Save(replaceInfo, out msg, userID, long.Parse(TaskID)); if (msg != "") { return; } } #endregion #region 取得任务的更新后信息 orderTaskModel = BLL.OrderTask.Instance.GetOrderTask(long.Parse(TaskID)); if (orderTaskModel == null) { msg += "没有找到相关的任务信息"; return; } if (orderTaskModel.TaskStatus != 2 && orderTaskModel.TaskStatus != 3) { msg += "当前任务状态不能保存和提交"; return; } if (orderTaskModel.AssignUserID != userID) { msg += "此订单没有分配给你"; return; } //修改状态 if (Action == "save") { orderTaskModel.TaskStatus = (int)TaskStatus.Processing; } else if (Action == "sub") { orderTaskModel.TaskStatus = (int)TaskStatus.Processed; orderTaskModel.SubmitTime = DateTime.Now; } //是否已选择经销商 只有在提交时,才会改动该属性 -是否已选择经销商 lxw if (Action == "sub") { if (((Source == "1" || Source == "3") && newModel.DMSMemberCode != "") || (Source == "2" && replaceModel.DMSMemberCode != "")) { orderTaskModel.IsSelectDMSMember = true; } else { orderTaskModel.IsSelectDMSMember = false; } } if (Source == "1" || Source == "3") { orderTaskModel.UserName = newModel.UserName; } else if (Source == "2") { orderTaskModel.UserName = replaceModel.UserName; } if (NoDealerReasonID != "") { orderTaskModel.NoDealerReasonID = int.Parse(NoDealerReasonID); } orderTaskModel.NoDealerReason = NoDealerReason; #endregion #region 任务操作日志 orderLog = new OrderTaskOperationLog(); //modify by qizq 2013-1-4首先判断是否是通话中 if (IsCalling == "1") { if (HistoryLogID == "") { //通话中提交把本地录音主键付给实体 long CallRecordReCID = 0; if (CallRecordID != "") { if (long.TryParse(CallRecordID, out CallRecordReCID)) { orderLog.CallRecordID = CallRecordReCID; } } } } // orderLog.TaskID = int.Parse(TaskID); if (Action == "save") { orderLog.OperationStatus = (int)OperationStatus.Save; } else if (Action == "sub") { orderLog.OperationStatus = (int)OperationStatus.Submit; } orderLog.TaskStatus = orderTaskModel.TaskStatus; orderLog.CreateTime = DateTime.Now; orderLog.CreateUserID = userID; #endregion #region 如果是提交操作,更新客户信息、插入咨询类型、添加客户联系记录 Entities.CustBasicInfo custmodel = null; //客户信息实体类 Entities.CustTel telPhoneMode = null; //电话实体类 Entities.CustTel telMobileMode = null; //电话实体类 Entities.CustEmail emailMode = null; //邮件实体类 Entities.ConsultOrderNewCar cNewCar = null; //新车咨询类型 Entities.ConsultOrderRelpaceCar cReplaceCar = null; //置换车咨询类型 Entities.CustHistoryInfo custHistInfo = null; //客户联系记录 Entities.BuyCarInfo buyCarInfo = new Entities.BuyCarInfo(); //已购车或未购车信息 lxw if (Action == "sub") { #region 更新或插入客户信息 //代码失效,功能废弃,需求重新实现 #endregion #region 插入咨询类型 if (Source == "1" || Source == "3") { cNewCar = new ConsultOrderNewCar(); #region 赋值 cNewCar.CarBrandId = newModel.CarMasterID; cNewCar.CarSerialId = newModel.CarSerialID; cNewCar.CarNameID = newModel.CarTypeID; cNewCar.CarColor = newModel.CarColor; cNewCar.DealerCode = newModel.DMSMemberCode; cNewCar.DealerName = newModel.DMSMemberName; cNewCar.OrderRemark = newModel.OrderRemark; cNewCar.CallRecord = newModel.CallRecord; cNewCar.CreateTime = DateTime.Now; cNewCar.CreateUserID = userID; #endregion } else if (Source == "2") { cReplaceCar = new ConsultOrderRelpaceCar(); #region 赋值 cReplaceCar.WantBrandId = replaceModel.RepCarMasterID; cReplaceCar.WantSerialId = replaceModel.RepCarSerialID; cReplaceCar.WantNameID = replaceModel.RepCarTypeId; cReplaceCar.WantCarColor = replaceModel.ReplacementCarColor; cReplaceCar.WantDealerName = replaceModel.DMSMemberName; cReplaceCar.WantDealerCode = replaceModel.DMSMemberCode; cReplaceCar.CallRecord = replaceModel.CallRecord; cReplaceCar.OldBrandId = replaceModel.CarMasterID; cReplaceCar.OldSerialId = replaceModel.CarSerialID; cReplaceCar.OldNameID = replaceModel.CarTypeID; cReplaceCar.OldCarColor = replaceModel.CarColor; cReplaceCar.RegisterDateYear = replaceModel.ReplacementCarBuyYear.ToString(); cReplaceCar.RegisterDateMonth = replaceModel.ReplacementCarBuyMonth.ToString(); cReplaceCar.RegisterProvinceID = replaceModel.RepCarProvinceID; cReplaceCar.RegisterCityID = replaceModel.RepCarCityID; cReplaceCar.RegisterCountyID = replaceModel.RepCarCountyID; cReplaceCar.Mileage = (decimal)replaceModel.ReplacementCarUsedMiles; cReplaceCar.PresellPrice = replaceModel.SalePrice; cReplaceCar.OrderRemark = replaceModel.OrderRemark; cReplaceCar.CreateTime = DateTime.Now; cReplaceCar.CreateUserID = userID; #endregion } #endregion #region 插入客户历史记录 custHistInfo = new CustHistoryInfo(); #region 赋值 custHistInfo.TaskID = TaskID; if (Source == "1" || Source == "3") { custHistInfo.ConsultID = 60010;//新车咨询类型 } else { custHistInfo.ConsultID = 60011;//置换咨询类型 } custHistInfo.RecordType = 2; custHistInfo.QuestionQuality = (int)QuestionNature.NatureCommon; custHistInfo.ProcessStatus = (int)EnumTaskStatus.TaskStatusOver; custHistInfo.CreateTime = DateTime.Now; custHistInfo.CreateUserID = userID; custHistInfo.LastTreatmentTime = DateTime.Now; #endregion #endregion } #endregion #endregion #region 事务提交 string connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC"); SqlConnection connection = new SqlConnection(connectionstrings); connection.Open(); SqlTransaction tran = connection.BeginTransaction(IsolationLevel.ReadUncommitted, "SampleTransaction"); try { #region 保存新车/置换无主订单信息 if (Source == "1" || Source == "3") { BLL.OrderNewCar.Instance.Update(tran, newModel); } else if (Source == "2") { BLL.OrderRelpaceCar.Instance.Update(tran, replaceModel); } #endregion #region 修改任务信息 BLL.OrderTask.Instance.Update(tran, orderTaskModel); #endregion #region 任务操作日志 //modify by qizq 2013-1-4不是在通话中,处理记录已存在更新处理记录 if (IsCalling != "1" && HistoryLogID != "") { //通话中提交把本地录音主键付给实体 long CallRecordReCID = 0; if (CallRecordID != "") { if (long.TryParse(CallRecordID, out CallRecordReCID)) { orderLog.CallRecordID = CallRecordReCID; } } long HistoryLogIDLog = 0; if (long.TryParse(HistoryLogID, out HistoryLogIDLog)) { orderLog.RecID = HistoryLogIDLog; } BLL.OrderTaskOperationLog.Instance.Update(tran, orderLog); } else { BLL.OrderTaskOperationLog.Instance.Insert(tran, orderLog); } // #endregion if (Action == "sub") { string retCustID = ""; #region 更新或插入客户信息 if (custmodel.RecID == -2) { //新加的客户 retCustID = BLL.CustBasicInfo.Instance.Insert(tran, custmodel); #region 记日志 sblogstr = new StringBuilder(); logstr = ""; logstr += "新加了客户‘" + custmodel.CustName + "’的信息【ID:" + retCustID + "】"; if (logstr != "") { sblogstr.Append(logstr); listLogStr.Add(sblogstr); } #endregion } else { //编辑客户信息 BLL.CustBasicInfo.Instance.Update(tran, custmodel); retCustID = custmodel.CustID; } #endregion #region 插入电话 if (telPhoneMode != null) { telPhoneMode.CustID = retCustID; BLL.CustTel.Instance.Insert(tran, telPhoneMode); } if (telMobileMode != null) { telMobileMode.CustID = retCustID; BLL.CustTel.Instance.Insert(tran, telMobileMode); } #endregion #region 插入邮箱 if (emailMode != null) { emailMode.CustID = retCustID; BLL.CustEmail.Instance.Insert(tran, emailMode); } #endregion #region 插入咨询类型 int retDataID = 0; if (cNewCar != null) { cNewCar.CustID = retCustID; retDataID = BLL.ConsultOrderNewCar.Instance.Insert(tran, cNewCar); #region 记日志 sblogstr = new StringBuilder(); logstr = ""; logstr += "新加了无主订单新车联系咨询记录【ID:" + retDataID + "】"; if (logstr != "") { sblogstr.Append(logstr); listLogStr.Add(sblogstr); } #endregion } if (cReplaceCar != null) { cReplaceCar.CustID = retCustID; retDataID = BLL.ConsultOrderRelpaceCar.Instance.Insert(tran, cReplaceCar); #region 记日志 sblogstr = new StringBuilder(); logstr = ""; logstr += "新加了无主订单置换联系咨询记录【ID:" + retDataID + "】"; if (logstr != "") { sblogstr.Append(logstr); listLogStr.Add(sblogstr); } #endregion } #endregion #region 插入未购车或已购车记录 BuyCarInfo lxw if (buyCarInfo != null && buyCarInfo.RecID == -2) { buyCarInfo.CustID = retCustID; int recID = BLL.BuyCarInfo.Instance.Insert(tran, buyCarInfo); #region 记日志 sblogstr = new StringBuilder(); logstr = ""; logstr += "新加了未购车已购车BuyCarInfo表的记录【ID:" + recID + "】"; if (logstr != "") { sblogstr.Append(logstr); listLogStr.Add(sblogstr); } #endregion } if (buyCarInfo != null && buyCarInfo.RecID != -2) { BLL.BuyCarInfo.Instance.Update(tran, buyCarInfo); #region 记日志 sblogstr = new StringBuilder(); logstr = ""; logstr += "修改了未购车已购车BuyCarInfo表的记录【ID:" + buyCarInfo.RecID + "】"; if (logstr != "") { sblogstr.Append(logstr); listLogStr.Add(sblogstr); } #endregion } #endregion #region 插入客户联系记录 if (custHistInfo != null) { custHistInfo.CustID = retCustID; custHistInfo.ConsultDataID = retDataID; BLL.CustHistoryInfo.Instance.Insert(tran, custHistInfo); } #endregion #region 插入已购车或未购车信息 #endregion #region 保存用户操作日志 foreach (StringBuilder sbStr in listLogStr) { BLL.Util.InsertUserLog(tran, sbStr.ToString()); } #endregion } if (msg == "") { tran.Commit(); if (Action == "sub") { #region 调用易湃接口,传回数据 string errorMsg = ""; int retService = 0; short isSelectDMS = 0; #region 调用接口 BitAuto.ISDC.CC2012.WebService.NoDealerOrderHelper OrderHelper = new BitAuto.ISDC.CC2012.WebService.NoDealerOrderHelper(); if (Source == "1") //新车 { isSelectDMS = newModel.DMSMemberCode == "" ? (short)2 : (short)1; //1 选择了经销商 2 未选择经销商 retService = OrderHelper.SetNewCarOrder(newModel, isSelectDMS, NoDealerReason, ref errorMsg); } else if (Source == "2") //置换 { isSelectDMS = replaceModel.DMSMemberCode == "" ? (short)2 : (short)1; //1 选择了经销商 2 未选择经销商 retService = OrderHelper.SetReplacementOrder(replaceModel, isSelectDMS, NoDealerReason, ref errorMsg); } else if (Source == "3") { isSelectDMS = newModel.DMSMemberCode == "" ? (short)2 : (short)1; //1 选择了经销商 2 未选择经销商 retService = OrderHelper.SetTestDriveOrder(newModel, isSelectDMS, NoDealerReason, ref errorMsg); } #endregion #region 插入更新无主订单数据日志表 Entities.UpdateOrderData updateDateMode = new UpdateOrderData(); updateDateMode.TaskID = TaskID; if (Source == "1" || Source == "3") { updateDateMode.YPOrderID = newModel.YPOrderID; } else if (Source == "2") { updateDateMode.YPOrderID = replaceModel.YPOrderID; } updateDateMode.UpdateType = retService; updateDateMode.IsUpdate = retService; // 1 成功了,不用处理,-1 需要重新处理 if (retService == 1) { updateDateMode.UpdateDateTime = DateTime.Now; } updateDateMode.UpdateErrorMsg = errorMsg; updateDateMode.CreateTime = DateTime.Now; updateDateMode.CreateUserID = userID; updateDateMode.APIType = 1; BLL.UpdateOrderData.Instance.Insert(updateDateMode); #endregion if (retService == -1) { msg = "InterfaceErr|" + errorMsg; } #endregion } } else { tran.Rollback(); } } catch (Exception ex) { if (tran.Connection != null) { tran.Rollback(); } msg = ex.Message.ToString(); } finally { connection.Close(); } #endregion }
/// <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 }
//删除 public void deleteKnowledgeLib(out string msg) { msg = string.Empty; string[] KLIDs = RequestKLID.Split(','); if (KLIDs.Length == 0) { msg += "{'msg':'没有对应的ID值,操作失败'}"; return; } string klqids = string.Empty; //记录试题库中的主键信息;已 1,2,3|4,5,6|7,8,9 形式隔开 for (int j = 0; j < KLIDs.Length; j++) { //根据KLID找到试题库中的信息 QueryKLQuestion query = new QueryKLQuestion(); query.KLID = long.Parse(KLIDs[j]); int count; DataTable dt = BLL.KLQuestion.Instance.GetKLQuestion(query, "", 1, 10000, out count); for (int m = 0; m < dt.Rows.Count; m++) { klqids += dt.Rows[m]["KLQID"].ToString() + ","; } klqids = klqids.TrimEnd(',') + "|"; } klqids = klqids.TrimEnd('|'); #region 除 事务操作 string connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC"); SqlConnection connection = new SqlConnection(connectionstrings); connection.Open(); SqlTransaction tran = connection.BeginTransaction("SampleTransaction"); try { //1 将知识库信息状态修改为 4已删除 operateKnowledgeLib(4, tran, out msg); for (int i = 0; i < KLIDs.Length; i++) { //2 将KLQuestion知识库试题记录修改为 -1已删除 string[] klqid1 = klqids.Split('|'); for (int n = 0; n < klqid1.Length; n++) { string[] klqid2 = klqid1[n].Split(','); for (int p = 0; p < klqid2.Length; p++) { deleteKLQuestionByKLID(tran, klqid2[p]); } } //3 将KLUploadFile 知识库上传文件信息表记录 修改为 -1已删除 deleteKLUploadFileByKLID(tran, KLIDs[i]); //4 将KLFAQ知识库FAQ表记录修改为 -1已删除 deleteKLFAQByKLID(tran, KLIDs[i]); //5 插入一条记录到KLOptionLog知识库操作日志表 InsertKLOptionLog(tran, (int)Entities.EnumOptStatus.Delete, KLIDs[i]); } //事务提交 tran.Commit(); } catch (Exception ex) { tran.Rollback(); msg = "{'msg':'" + ex.Message.ToString() + "'}"; } finally { connection.Close(); } #endregion }
private void Submit(out string msg, int userID, out string returnTTCode) { msg = ""; returnTTCode = ""; string datainfoStr = DataStr; TemplateInfo tempInfoData = null; int templateStatus = -1;//模板状态 Entities.TPage tpageModel = new Entities.TPage(); Entities.TTable ttable = new Entities.TTable(); List <Entities.TField> editfieldList = new List <Entities.TField>(); List <Entities.TField> addfieldList = new List <Entities.TField>(); Entities.TField fieldModel = new Entities.TField(); List <Entities.TField> delFields = new List <Entities.TField>(); tempInfoData = (TemplateInfo)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(datainfoStr, typeof(TemplateInfo)); #region 验证数据 CheckMsg(tempInfoData, out msg); if (msg != "") { return; } #endregion #region 准备数据 if (tempInfoData.ttcode != "") { //编辑 #region 模板信息 tpageModel = BLL.TPage.Instance.GetTPageByTTCode(tempInfoData.ttcode); if (tpageModel != null) { //状态 templateStatus = BLL.TPage.Instance.getStatus(tpageModel.RecID.ToString(), tpageModel.Status.ToString()); if (templateStatus != 0) { msg += "模板当前状态下不允许编辑"; return; } tpageModel.TPName = tempInfoData.templateName; tpageModel.BGID = int.Parse(tempInfoData.BGID); tpageModel.SCID = int.Parse(tempInfoData.CID); tpageModel.TPContent = tempInfoData.templateDesc; tpageModel.IsShowBtn = int.Parse(tempInfoData.IsShowBtn); tpageModel.IsShowWorkOrderBtn = int.Parse(tempInfoData.IsShowWorkOrderBtn); tpageModel.IsShowSendMsgBtn = int.Parse(tempInfoData.IsShowSendMsgBtn); tpageModel.IsShowQiCheTong = int.Parse(tempInfoData.IsShowQiCheTong); tpageModel.IsShowSubmitOrder = int.Parse(tempInfoData.IsShowSubmitOrder); } else { msg += "没有找到相关模板信息"; return; } #endregion #region 自定义数据表 ttable = BLL.TTable.Instance.GetTTableByTTCode(tempInfoData.ttcode); if (ttable != null) { ttable.TTDesName = tempInfoData.templateName; } else { msg += "没有找到相关的自定义表信息"; return; } #endregion #region 编辑字段 editfieldList = BLL.TField.Instance.GetTFieldListByTTCode(tempInfoData.ttcode); List <FieldInfoData> updateFieldInfo = new List <FieldInfoData>(); #region 新增的 for (int i = tempInfoData.fieldListInfo.Length - 1; i >= 0; i--) { if (tempInfoData.fieldListInfo[i].RecID == "") { //新增 fieldModel = GetOneFieldMode(userID, tempInfoData.fieldListInfo[i], tpageModel.TTCode, ""); addfieldList.Add(fieldModel); } else { //编辑的 updateFieldInfo.Add(tempInfoData.fieldListInfo[i]); } } #endregion int existflog = 0; for (int i = editfieldList.Count - 1; i >= 0; i--) { existflog = 0; if (tempInfoData.fieldListInfo != null) { foreach (FieldInfoData field in updateFieldInfo) { if (field.RecID == editfieldList[i].RecID.ToString()) { //编辑 editfieldList[i].TFDesName = field.TFDesName; editfieldList[i].TFDes = field.TFDes; editfieldList[i].TFInportIsNull = int.Parse(field.TFInportIsNull); editfieldList[i].TFIsNull = int.Parse(field.TFIsNull); editfieldList[i].TFSortIndex = int.Parse(field.TFSortIndex); editfieldList[i].TFIsExportShow = int.Parse(field.TFIsExportShow); editfieldList[i].TFIsListShow = int.Parse(field.TFIsListShow); editfieldList[i].TFValue = field.TFValue; editfieldList[i].TFCssName = field.TFCssName; existflog = 1; } } // //在页面传来的对象中没有,是删除 if (existflog == 0) { //删除的 delFields.Add(editfieldList[i]); editfieldList.RemoveAt(i); } } } #endregion } else { //新增 #region 自定义数据表 int maxID = BLL.TTable.Instance.GetMaxID(); ttable.TTCode = "t" + maxID; ttable.TTDesName = tempInfoData.templateName; ttable.TTName = "Tempt" + maxID; ttable.Status = 0; ttable.CreateTime = DateTime.Now; ttable.CreateUserID = userID; #endregion #region 模板表 tpageModel.TPName = tempInfoData.templateName; tpageModel.BGID = int.Parse(tempInfoData.BGID); tpageModel.SCID = int.Parse(tempInfoData.CID); tpageModel.TPRef = ""; tpageModel.TTCode = ttable.TTCode; tpageModel.TPContent = tempInfoData.templateDesc; tpageModel.GenTempletPath = ""; tpageModel.Status = 0; tpageModel.Remark = ""; tpageModel.CreateTime = DateTime.Now; tpageModel.CreateUserID = userID; tpageModel.TTName = ttable.TTName; tpageModel.IsShowBtn = int.Parse(tempInfoData.IsShowBtn); tpageModel.IsShowWorkOrderBtn = int.Parse(tempInfoData.IsShowWorkOrderBtn); tpageModel.IsShowSendMsgBtn = int.Parse(tempInfoData.IsShowSendMsgBtn); tpageModel.IsShowQiCheTong = int.Parse(tempInfoData.IsShowQiCheTong); tpageModel.IsShowSubmitOrder = int.Parse(tempInfoData.IsShowSubmitOrder); tpageModel.IsUsed = -1; #endregion #region 字段 if (tempInfoData.fieldListInfo != null) { foreach (FieldInfoData item in tempInfoData.fieldListInfo) { string ttCode = ttable.TTCode; fieldModel = GetOneFieldMode(userID, item, ttCode, ""); addfieldList.Add(fieldModel); } } #endregion } #endregion #region 提交事务 string connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC"); SqlConnection connection = new SqlConnection(connectionstrings); connection.Open(); SqlTransaction tran = connection.BeginTransaction("SampleTransaction"); try { if (tempInfoData.ttcode == "") { //新增 BLL.TPage.Instance.Insert(tran, tpageModel); BLL.TTable.Instance.Insert(tran, ttable); //新增的字段 foreach (Entities.TField item in addfieldList) { BLL.TField.Instance.Insert(tran, item); } returnTTCode = tpageModel.TTCode; } else { //编辑 BLL.TPage.Instance.Update(tran, tpageModel); BLL.TTable.Instance.Update(tran, ttable); //编辑的字段 foreach (Entities.TField item in editfieldList) { BLL.TField.Instance.Update(tran, item); } //新增的字段 foreach (Entities.TField item in addfieldList) { BLL.TField.Instance.Insert(tran, item); #region 如果已经生成模板,添加物理表的字段(修改为:模板生成了,还可以修改,⊙﹏⊙b汗) if (templateStatus == 1) { try { List <string> addNames = GetRealFieldName(item); foreach (string name in addNames) { BLL.TField.Instance.AddColumn(ttable.TTName, name, item.TTypeID.ToString()); } } catch (Exception ex) { msg += "添加数据表字段失败!<br>"; } } #endregion } //删除的字段 foreach (Entities.TField item in delFields) { BLL.TField.Instance.Delete(item.RecID); #region 如果已经生成模板,删除物理表的字段 if (templateStatus == 1) { try { List <string> delNames = GetRealFieldName(item); foreach (string name in delNames) { BLL.TField.Instance.DelColumn(ttable.TTName, name); } } catch (Exception ex) { msg += "删除数据表字段失败!<br>"; } } #endregion } returnTTCode = tpageModel.TTCode; } tran.Commit(); } catch (Exception ex) { if (tran.Connection != null) { tran.Rollback(); } msg = ex.Message.ToString(); } finally { connection.Close(); } #endregion }
public void ProcessRequest(HttpContext context) { BitAuto.YanFa.SysRightManager.Common.UserInfo.Check(); context.Response.ContentType = "text/plain"; currentContext = context; int userID = BLL.Util.GetLoginUserID(); bool IsRight = BLL.Util.CheckRight(userID, "SYS024BUT5104"); if (IsRight && currentContext.Request.Form["isVal"] == "yes") { if ((RequestUsername != null && RequestUsername.Length > 0)) { int ret = 0; string url = string.Empty; //工号 //string agentNum = Page.Request.Form["AgentNum"] + ""; //if (string.IsNullOrEmpty(agentNum) == false // && BLL.CC_Employee_Agent.Instance.IsExist(agentNum, Convert.ToInt32(Session["userid"])) == false)//有工号 //{ // ret = -9;//工号错误 //} //else //{ //域账号 string username = RequestUsername.ToLower(); //string adminUserName = "******";//Add=2013-03-21 Masj 模拟登陆魏淑珍账号验证登陆权限 //this.RequestAdminUsername.ToLower(); string adminUserName = BLL.Util.GetLoginUserName();//Add=2014-07-07 Masj 模拟登陆账号为当前登录者的账号 if (username.StartsWith("tech\\")) { username = username.Substring(5, username.Length - 5); } //string password = Request.Form["pwd"]; string organizationService = ConfigurationManager.AppSettings["OrganizationService"]; IOrganizationService service = (IOrganizationService)Activator.GetObject(typeof(IOrganizationService), organizationService); LoginResult loginResult = service.Login(adminUserName, RequestPWD); if (loginResult == LoginResult.Success) { ret = BitAuto.YanFa.SysRightManager.Common.UserInfo.Login(username); if (ret > 0) { BitAuto.YanFa.SysRightManager.Common.UserInfo.passport(ret); string gourl = ConfigurationUtil.GetAppSettingValue("NotAccessMsgPagePath").Replace("~", "");//ConfigurationUtil.GetAppSettingValue("NotAccessMsgPagePath") if (!string.IsNullOrEmpty(RequestGoURL)) { gourl = RequestGoURL; } else { gourl = ConfigurationUtil.GetAppSettingValue("ExitAddress"); //DataTable dtParent = UserInfo.Instance.GetParentModuleInfoByUserID(Convert.ToInt32(currentContext.Session["userid"]), sysID); //if (dtParent != null) //{ // DataTable dtChild = UserInfo.Instance.GetChildModuleByUserId(Convert.ToInt32(currentContext.Session["userid"]), sysID, dtParent.Rows[0]["moduleid"].ToString()); // if (dtChild.Rows.Count > 0) // { // gourl = dtChild.Rows[0]["url"].ToString(); // } //} } ret = 1;//登陆成功 string content = string.Format("用户{1}(ID:{0})登录成功。", currentContext.Session["userid"], currentContext.Session["truename"]); BitAuto.YanFa.SysRightManager.Common.LogInfo.Instance.InsertLog(ConfigurationUtil.GetAppSettingValue("LoginLogModuleID"), (int)BitAuto.YanFa.SysRightManager.Common.LogInfo.ActionType.Login, content); url = gourl; } else { } } else if (loginResult == LoginResult.Inactive) { ret = -6;//帐户被禁用 } else if (loginResult == LoginResult.UserNotExist) { ret = -7;//用户不存在 } else if (loginResult == LoginResult.WrongPassword) { ret = -8;//密码错误 } //int msg = Bll.UserInfo.Login(Page.Request.Form["username"].Trim(), Page.Request.Form["pwd"].Trim()); context.Response.Write(ret.ToString() + "," + url); context.Response.End(); return; } } context.Response.Write("-1,"); context.Response.End(); }
private void ShowRoles() { DataTable dt = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.GetRoleInfoByUserIDAndSysID(int.Parse(UserID), ConfigurationUtil.GetAppSettingValue("ThisSysID")); if (dt != null) { foreach (DataRow dr in dt.Rows) { UserRolesIDs += dr["RoleID"].ToString() + ","; } if (UserRolesIDs != "") { UserRolesIDs = UserRolesIDs.Substring(0, UserRolesIDs.Length - 1); } } }
private void SaveInfo(out string errMsg) { errMsg = ""; #region 保存对权限的设置 BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.InsertUserRole(int.Parse(UserID), ConfigurationUtil.GetAppSettingValue("ThisSysID"), UserRolesID); #endregion #region 修改所在分组、工号 SaveEmpleeInfo(); #endregion #region 修改管辖分组 SaveManagerGroup(); #endregion }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (!Pwd.ToLower().Equals("3219jdhliweruy@hfkjhi@oghg")) { BitAuto.Utils.ScriptHelper.ShowAlertScript("您无此页面权限!"); Response.End(); } else { DataTable db = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.GetRoleInfoBySysID(ConfigurationUtil.GetAppSettingValue("ThisSysID")); Rpt_Role.DataSource = db; Rpt_Role.DataBind(); } } }
/// 新增或者修改分组 /// <summary> /// 新增或者修改分组 /// </summary> /// <param name="msg"></param> private void DisposeBusinessGroup(out string msg) { msg = string.Empty; try { Entities.BusinessGroup model = BLL.Util.BindQuery <Entities.BusinessGroup>(HttpContext.Current); if (model.BGID > 0) { //修改逻辑 Entities.BusinessGroup info = BLL.BusinessGroup.Instance.GetBusinessGroupInfoByBGID(model.BGID); if (info != null) { info.Name = model.Name; info.RegionID = model.RegionID; info.BusinessType = model.BusinessType; //业务包含cc,才有外显号码 if ((CommonFunction.ObjectToInteger(model.BusinessType) & (int)BusinessTypeEnum.CC) == (int)BusinessTypeEnum.CC) { info.CDID = model.CDID; } else { info.CDID = -2; } //修改组数据 BLL.BusinessGroup.Instance.Update(info); //业务包含im时 if ((CommonFunction.ObjectToInteger(model.BusinessType) & (int)BusinessTypeEnum.IM) == (int)BusinessTypeEnum.IM) { //清空业务线数据 BLL.BusinessGroupLineMapping.Instance.Delete(model.BGID); //插入业务线数据 InsertBusinessGroupLineMapping(model.BGID, model.LineIDs); } else { //清空业务线数据 BLL.BusinessGroupLineMapping.Instance.Delete(model.BGID); } msg = "{result:'yes',BGID:'" + model.BGID + "',AreaID:'" + AreaID + "',msg:'保存成功'}"; } else { msg = "{result:'no',BGID:'" + model.BGID + "',AreaID:'" + AreaID + "',msg:'没有找到对应分组信息'}"; } } else { //新增逻辑 model.CreateTime = DateTime.Now; model.Status = 0; //业务包含cc,才有外显号码 if ((CommonFunction.ObjectToInteger(model.BusinessType) & (int)BusinessTypeEnum.CC) != (int)BusinessTypeEnum.CC) { model.CDID = -2; } //插入组数据 int id = BLL.BusinessGroup.Instance.Insert(model); //业务包含im时 if ((CommonFunction.ObjectToInteger(model.BusinessType) & (int)BusinessTypeEnum.IM) == (int)BusinessTypeEnum.IM) { //插入业务线数据 InsertBusinessGroupLineMapping(id, model.LineIDs); } //创建分类 Entities.SurveyCategory categoryModel = new Entities.SurveyCategory(); categoryModel.BGID = id; categoryModel.Status = -3; categoryModel.CreateTime = DateTime.Now; categoryModel.CreateUserID = BLL.Util.GetLoginUserID(); categoryModel.Name = "工单分类"; categoryModel.TypeId = 2; int scId = BLL.SurveyCategory.Instance.Insert(categoryModel); //创建业务线url地址 string webBaseUrl = ConfigurationUtil.GetAppSettingValue("ExitAddress"); webBaseUrl = webBaseUrl + "/WorkOrder/WorkOrderView.aspx?OrderID={0}"; BLL.CallRecord_ORIG_Business.Instance.AddBusinessUrl(id, scId, webBaseUrl); msg = "{result:'yes',BGID:'" + id + "',AreaID:'" + AreaID + "',msg:'保存成功'}"; } } catch (Exception ex) { msg = "{result:'no',BGID:'',AreaID:'',msg:'" + ex.Message + "'}"; } }
private void VerifyData() { string sysId = ConfigurationUtil.GetAppSettingValue("ThisSysID"); int userId = BLL.Util.GetLoginUserID(); FirstTrialButton = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.CheckRight("SYS024BUT600102", sysId, userId); RecheckButton = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.CheckRight("SYS024BUT600103", sysId, userId); AppealButton = BitAuto.YanFa.SysRightManager.Common.UserInfo.Instance.CheckRight("SYS024BUT600106", sysId, userId); int rid = 0; if (int.TryParse(RequestQS_RID, out rid)) { Entities.QS_Result info = BLL.QS_Result.Instance.GetQS_Result(rid); if (info != null) { //由于易湃外呼业务签入cc系统,易湃不入库CallRecordInfo表,所以此处改成从CallRecord_ORIG_Business取录音创建坐席 modify by qizq 2014-4-17 Entities.CallRecord_ORIG_Business callRecordInfo = BLL.CallRecord_ORIG_Business.Instance.GetByCallID(Convert.ToInt64(info.CallID), tableEndName); //Entities.CallRecordInfo callRecordInfo = BLL.CallRecordInfo.Instance.GetCallRecordInfoByCallID(info.CallID); if (callRecordInfo != null) { //判断单据状态,如果不是待复审,不能复审 Entities.QS_RulesTable QS_RulesTableModel = BLL.QS_RulesTable.Instance.GetQS_RulesTable(info.QS_RTID); if (QS_RulesTableModel != null) { TableName = QS_RulesTableModel.Name; if (QS_RulesTableModel.ScoreType == 2) { TableName += "(致命项数" + QS_RulesTableModel.DeadItemNum + ",非致命项数" + QS_RulesTableModel.NoDeadItemNum + ")"; } } //如果具有申诉权限,并且当前人不是此录音的创建人员,关闭此页面 if (AppealButton && callRecordInfo.CreateUserID != BLL.Util.GetLoginUserID() & !RecheckButton & !AppealButton) { Response.Write(@"<script language='javascript'>alert('您没有权限查看此评分!');try { window.external.MethodScript('/browsercontrol/closepage'); } catch (e) { window.opener = null; window.open('', '_self'); window.close(); };</script>"); } //如果不是本人录音,申诉按钮不显示 if (AppealButton && callRecordInfo.CreateUserID != BLL.Util.GetLoginUserID()) { AppealButton = false; } this.ucCallRecordView.QS_RID = info.QS_RID; this.ucCallRecordView.CallID = info.CallID; this.ucCallRecordView.tableEndName = tableEndName; } Status = info.Status.ToString(); switch (Status) { case "20003": Title = "录音质检成绩初审"; this.UCScoreTableView.QS_RID = info.QS_RID; this.UCScoreTableView.QS_RTID = info.QS_RTID; break; case "20004": Title = "录音质检成绩复审"; this.ucTableDispose.CallID = info.CallID; this.ucTableDispose.QS_RID = info.QS_RID; this.ucTableDispose.QS_RTID = info.QS_RTID; break; default: Title = "录音质检成绩查看"; this.UCScoreTableView.QS_RID = info.QS_RID; this.UCScoreTableView.QS_RTID = info.QS_RTID; break; } } else { Response.Write(@"<script language='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'>alert('参数有误!');try { window.external.MethodScript('/browsercontrol/closepage'); } catch (e) { window.opener = null; window.open('', '_self',''); window.close(); };</script>"); } }
/// 挂断通用事件 /// <summary> /// 挂断通用事件 /// </summary> /// <param name="releasetype"></param> private void OnHangup(ReleaseType releasetype) { Loger.Log4Net.Info("[事件][OnHangup] 挂断"); //3种情况=呼入,呼出,未知 Calltype ctype = HollyContactHelper.Instance.GetCallDir(); //话后处理 if (ctype == Calltype.C2_呼出) { //合力bug:外呼假失败 HollyBUGForCallOut(); //呼出没有话后 Action <object> callback = new Action <object>(x => { //结束话后 HollyContactHelper.Instance.AfterCallEnd(); //呼出时计算话后信息 Loger.Log4Net.Info("[==BusinessProcess=][UpdateCallRecordAfterTime] 呼出时退出话后更新话后信息"); BusinessProcess.Instance.UpdateCallRecordAfterTime(); }); ToAfterCallCallBack(callback); } else { //呼入+自动外呼 存在话后时间 //话后有时间限制 AfterTime = CommonFunction.ObjectToInteger(ConfigurationUtil.GetAppSettingValue("AfterTime"), 60); SetlblAgentStatusName("话后 " + AfterTime); timer_after.Enabled = true; } if (BusinessProcess.CallRecordORIG != null) { //初始化话务数据 DateTime date = Common.GetCurrentTime(); //设置挂断时间 BusinessProcess.Instance.SetReleaseTime(date, releasetype); //数据入库 CallRecordHelper.Instance.InsertCallRecordNew(false); if (ctype != Calltype.C2_呼出) { //呼入+自动外呼时,计算话后信息 //注册退出话后的事件 Action <object> callback = new Action <object>(x => { Loger.Log4Net.Info("[==BusinessProcess=][UpdateCallRecordAfterTime] 呼入时退出话后更新话后信息"); BusinessProcess.Instance.UpdateCallRecordAfterTime(); }); //退出话后时触发 ExitAfterCallCallBack(callback); } //发送消息到客户端 if (BusinessProcess.OutBoundType != OutBoundTypeEnum.OT2_客户端呼出) { UserEventData ud = null; //呼入(普通呼入,转接,拦截) if (ctype == Calltype.C1_呼入 && HollyContactHelper.Instance.IsAutoCall == false) { ud = BusinessProcess.Instance.InitUserEventData(UserEvent.Released, Calltype.C1_呼入, date); } //呼出(呼出,自动外呼,未知) else { ud = BusinessProcess.Instance.InitUserEventData(UserEvent.Released, Calltype.C2_呼出, date); } SendToWeb(ud.ToString()); } //挂断是,数据还原初始值 BusinessProcess.OutBoundType = OutBoundTypeEnum.OT0_未知; } else { Loger.Log4Net.Info("[事件][OnHangup] 异常:BusinessProcess.CallRecordORIG 为空"); } }
public string GetIMUrl() { return(ConfigurationUtil.GetAppSettingValue("PersonalIMURL") + "/ConversationHistoryForCCDetail.aspx"); }
private void Submit(out string msg, int userID, out string returnRTID) { msg = ""; returnRTID = ""; #region 定义变量 string datainfoStr = DataStr; ScoreTableInfo tempInfoData; Entities.QS_RulesTable QsTable; Entities.QS_Category QsCategory; Entities.QS_Item QsItem; Entities.QS_Standard QsStandard; Entities.QS_Marking QsMarking; Entities.QS_DeadOrAppraisal Qsdead; List <Entities.QS_Category> QsCategoryList = new List <Entities.QS_Category>(); List <Entities.QS_Item> QsItemList = new List <Entities.QS_Item>(); List <Entities.QS_Standard> QsStandardList = new List <Entities.QS_Standard>(); List <Entities.QS_Marking> QsMarkingList = new List <Entities.QS_Marking>(); List <Entities.QS_DeadOrAppraisal> QsDeadList = new List <Entities.QS_DeadOrAppraisal>(); #endregion tempInfoData = (ScoreTableInfo)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(datainfoStr, typeof(ScoreTableInfo)); #region 验证数据 //判断是否是提交,提交才验证,add by qizq if (ActionType == "Submit") { CheckMsg(tempInfoData, out msg); if (msg != "") { return; } } // #endregion #region 准备数据 #region 评分表 QsTable = new Entities.QS_RulesTable(); QsTable.QS_RTID = int.Parse(tempInfoData.RTID); QsTable.Name = tempInfoData.Name; QsTable.ScoreType = int.Parse(tempInfoData.ScoreType); QsTable.Description = tempInfoData.Description; QsTable.DeadItemNum = int.Parse(tempInfoData.DeadItemNum); QsTable.NoDeadItemNum = int.Parse(tempInfoData.NoDeadItemNum); QsTable.HaveQAppraisal = int.Parse(tempInfoData.Appraisal); QsTable.LastModifyTime = DateTime.Now; QsTable.LastModifyUserID = userID.ToString(); QsTable.RegionID = tempInfoData.RegionID; if (QsTable.QS_RTID < 0) { if (BLL.QS_RulesTable.Instance.IsRuleTableNameExist(QsTable.Name, QsTable.ScoreType)) { msg = "评分表名称[" + QsTable.Name + "]已经存在,不能重复添加!"; return; } } //add by qizq 添加日志2013-5-8 StringBuilder sbStr = new StringBuilder(); if (ActionType == "Submit") { sbStr.Append("提交评分表 " + QsTable.Name); QsTable.Status = (int)Entities.QSRulesTableStatus.Audit; } else { sbStr.Append("保存评分表 " + QsTable.Name); QsTable.Status = (int)Entities.QSRulesTableStatus.Unfinished; } #endregion #region 评分分类 if (tempInfoData.Catage != null) { foreach (Catage catageInfo in tempInfoData.Catage) { QsCategory = new Entities.QS_Category(); QsCategory.QS_CID = int.Parse(catageInfo.CID); QsCategory.QS_RTID = int.Parse(tempInfoData.RTID);//评分表的值 QsCategory.Name = catageInfo.Name; QsCategory.Score = int.Parse(catageInfo.Score); QsCategory.Status = int.Parse(catageInfo.Status); QsCategory.ScoreType = int.Parse(tempInfoData.ScoreType); //评分表的值 QsCategory.LastModifyTime = DateTime.Now; QsCategory.LastModifyUserID = userID; QsCategoryList.Add(QsCategory); #region 质检项目 if (catageInfo.Item != null) { foreach (Item itemInfo in catageInfo.Item) { QsItem = new Entities.QS_Item(); QsItem.QS_IID = int.Parse(itemInfo.IID); QsItem.QS_CID = int.Parse(catageInfo.CID); QsItem.QS_RTID = int.Parse(tempInfoData.RTID); QsItem.ItemName = itemInfo.ItemName; QsItem.ScoreType = int.Parse(tempInfoData.ScoreType); QsItem.Score = decimal.Parse(itemInfo.Score); QsItem.Status = int.Parse(itemInfo.Status); QsItem.LastModifyTime = DateTime.Now; QsItem.LastModifyUserID = userID; QsItemList.Add(QsItem); #region 质检标准 if (itemInfo.Standard != null) { foreach (Standard standardInfo in itemInfo.Standard) { if (standardInfo.Score.Trim() != "" && standardInfo.SName.Trim() != "") //&& standardInfo.Status.Trim() == "0" { QsStandard = new Entities.QS_Standard(); QsStandard.QS_SID = int.Parse(standardInfo.SID); QsStandard.QS_IID = int.Parse(itemInfo.IID); QsStandard.QS_CID = int.Parse(catageInfo.CID); QsStandard.QS_RTID = int.Parse(tempInfoData.RTID); QsStandard.ScoringStandardName = standardInfo.SName; QsStandard.ScoreType = int.Parse(tempInfoData.ScoreType); QsStandard.Score = decimal.Parse(standardInfo.Score); QsStandard.IsIsDead = string.IsNullOrEmpty(standardInfo.IsIsDead) ? -2 : int.Parse(standardInfo.IsIsDead); QsStandard.Status = int.Parse(standardInfo.Status); QsStandard.LastModifyTime = DateTime.Now; QsStandard.LastModifyUserID = userID; QsStandard.QS_SExplanation = standardInfo.SExplanation; QsStandard.QS_SkillLevel = standardInfo.SkillLevel == null ? Constant.INT_INVALID_VALUE: int.Parse(standardInfo.SkillLevel); QsStandardList.Add(QsStandard); } #region 扣分项 if (standardInfo.Marking != null && tempInfoData.ScoreType.Trim() != "3") { foreach (Marking markInfo in standardInfo.Marking) { QsMarking = new Entities.QS_Marking(); QsMarking.QS_MID = int.Parse(markInfo.MID); QsMarking.QS_RTID = int.Parse(tempInfoData.RTID); QsMarking.QS_CID = int.Parse(catageInfo.CID); QsMarking.QS_IID = int.Parse(itemInfo.IID); QsMarking.QS_SID = int.Parse(standardInfo.SID); QsMarking.ScoreType = int.Parse(tempInfoData.ScoreType); QsMarking.MarkingItemName = markInfo.MName; QsMarking.Score = int.Parse(markInfo.Score); QsMarking.Status = int.Parse(markInfo.Status); QsMarkingList.Add(QsMarking); } } #endregion } } #endregion } } #endregion } } #endregion #region 致命项 if (tempInfoData.Dead != null) { foreach (Dead deadInfo in tempInfoData.Dead) { Qsdead = new Entities.QS_DeadOrAppraisal(); Qsdead.QS_DAID = int.Parse(deadInfo.DID); Qsdead.QS_RTID = int.Parse(tempInfoData.RTID); Qsdead.DeadItemName = deadInfo.DName; Qsdead.Status = int.Parse(deadInfo.Status); Qsdead.LastModifyTime = DateTime.Now; Qsdead.LastModifyUserID = userID; QsDeadList.Add(Qsdead); } } #endregion #endregion #region 提交到数据库 string connectionstrings = ConfigurationUtil.GetAppSettingValue("ConnectionStrings_CC"); SqlConnection connection = new SqlConnection(connectionstrings); connection.Open(); SqlTransaction tran = connection.BeginTransaction(IsolationLevel.ReadUncommitted); // SqlTransaction tran = connection.BeginTransaction("SampleTransaction"); try { #region 保存评分表 if (QsTable.QS_RTID < 0) { //新增 QsTable.CreateTime = DateTime.Now; QsTable.CreateUserID = userID; int retID = BLL.QS_RulesTable.Instance.Insert(tran, QsTable); returnRTID = retID.ToString(); #region 修改各个表的评分表ID foreach (Entities.QS_Category cItem in QsCategoryList) { if (cItem.QS_RTID == QsTable.QS_RTID) { cItem.QS_RTID = int.Parse(returnRTID); } } foreach (Entities.QS_Item iItem in QsItemList) { if (iItem.QS_RTID == QsTable.QS_RTID) { iItem.QS_RTID = int.Parse(returnRTID); } } foreach (Entities.QS_Standard sItem in QsStandardList) { if (sItem.QS_RTID == QsTable.QS_RTID) { sItem.QS_RTID = int.Parse(returnRTID); } } foreach (Entities.QS_Marking mItem in QsMarkingList) { if (mItem.QS_RTID == QsTable.QS_RTID) { mItem.QS_RTID = int.Parse(returnRTID); } } foreach (Entities.QS_DeadOrAppraisal dItem in QsDeadList) { if (dItem.QS_RTID == QsTable.QS_RTID) { dItem.QS_RTID = int.Parse(returnRTID); } } #endregion } else { //编辑 BLL.QS_RulesTable.Instance.Update(tran, QsTable); returnRTID = QsTable.QS_RTID.ToString(); } #endregion #region 保存分类 foreach (Entities.QS_Category cItem in QsCategoryList) { if (cItem.Status == -1) { //删除的 BLL.QS_Category.Instance.Delete(tran, cItem.QS_CID); continue; } if (cItem.QS_CID < 0) { //新增 cItem.CreateTime = DateTime.Now; cItem.CreateUserID = userID; int retCID = BLL.QS_Category.Instance.Insert(tran, cItem); #region 修改各个表的分类ID foreach (Entities.QS_Item iItem in QsItemList) { if (iItem.QS_CID == cItem.QS_CID) { iItem.QS_CID = retCID; } } foreach (Entities.QS_Standard sItem in QsStandardList) { if (sItem.QS_CID == cItem.QS_CID) { sItem.QS_CID = retCID; } } foreach (Entities.QS_Marking mItem in QsMarkingList) { if (mItem.QS_CID == cItem.QS_CID) { mItem.QS_CID = retCID; } } #endregion } else { //编辑 BLL.QS_Category.Instance.Update(tran, cItem); } } #endregion #region 保存项目 foreach (Entities.QS_Item iItem in QsItemList) { if (iItem.Status == -1) { //删除的 BLL.QS_Item.Instance.Delete(tran, iItem.QS_IID); continue; } if (iItem.QS_IID < 0) { //新增 iItem.CreateTime = DateTime.Now; iItem.CreateUserID = userID; int retIID = BLL.QS_Item.Instance.Insert(tran, iItem); #region 修改各个表的项目ID foreach (Entities.QS_Standard sItem in QsStandardList) { if (sItem.QS_IID == iItem.QS_IID) { sItem.QS_IID = retIID; } } foreach (Entities.QS_Marking mItem in QsMarkingList) { if (mItem.QS_IID == iItem.QS_IID) { mItem.QS_IID = retIID; } } #endregion } else { //编辑 BLL.QS_Item.Instance.Update(tran, iItem); } } #endregion #region 保存质检标准 foreach (Entities.QS_Standard sItem in QsStandardList) { if (sItem.Status == -1) { //删除的 BLL.QS_Standard.Instance.Delete(tran, sItem.QS_SID); continue; } if (sItem.QS_SID < 0 || (sItem.ScoreType == 3 && sItem.QS_SID <= 5)) { //新增 sItem.CreateTime = DateTime.Now; sItem.CreateUserID = userID; int retSID = BLL.QS_Standard.Instance.Insert(tran, sItem); #region 修改各个表的项目ID if (sItem.ScoreType != 3) { foreach (Entities.QS_Marking mItem in QsMarkingList) { if (mItem.QS_SID == sItem.QS_SID) { mItem.QS_SID = retSID; } } } #endregion } else { //编辑 BLL.QS_Standard.Instance.Update(tran, sItem); } } #endregion #region 保存评分扣分项 foreach (Entities.QS_Marking mItem in QsMarkingList) { if (mItem.Status == -1) { //删除的 BLL.QS_Marking.Instance.Delete(tran, mItem.QS_MID); continue; } if (mItem.QS_MID < 0) { //新增 mItem.CreateTime = DateTime.Now; mItem.CreateUserID = userID; BLL.QS_Marking.Instance.Insert(tran, mItem); } else { //编辑 BLL.QS_Marking.Instance.Update(tran, mItem); } } #endregion #region 保存致命项 foreach (Entities.QS_DeadOrAppraisal dItem in QsDeadList) { if (dItem.Status == -1) { //删除的 BLL.QS_DeadOrAppraisal.Instance.Delete(tran, dItem.QS_DAID); continue; } if (dItem.QS_DAID < 0) { //新增 dItem.CreateTime = DateTime.Now; dItem.CreateUserID = userID; BLL.QS_DeadOrAppraisal.Instance.Insert(tran, dItem); } else { //编辑 BLL.QS_DeadOrAppraisal.Instance.Update(tran, dItem); } } #endregion //add by qizq 保存日志 2013-5-8 BLL.Util.InsertUserLog(tran, sbStr.ToString()); tran.Commit(); } catch (Exception ex) { if (tran.Connection != null) { tran.Rollback(); } msg = ex.Message.ToString(); } finally { connection.Close(); } #endregion }