/// 保存工单 /// <summary> /// 保存工单 /// </summary> /// <param name="msg"></param> /// <param name="data"></param> /// <returns></returns> private bool SaveWOrderInfo(out string msg, out string data) { msg = ""; data = "''"; try { int loginuserid = BLL.Util.GetLoginUserID(); LogForWebForCall("保存工单开始 JsonData=" + JsonData); //查询登录人信息 SysRightUserInfo sysinfo = BLL.EmployeeSuper.Instance.GetSysRightUserInfo(loginuserid); if (sysinfo == null) { msg = "查询不到登录人信息!"; return(false); } //数据解析 WOrderJsonData jsondata = WOrderJsonData.CreateWOrderJsonData(JsonData); if (jsondata != null) { //保存个人信息(个人表 CustBasicInfo,电话表 CustTel,经销商表 DealerInfo) BLL.WOrderInfo.Instance.SaveCustBasicInfo(jsondata, loginuserid); LogForWebForCall("保存个人信息:电话=" + jsondata.CustBaseInfo.Phone_Out + ";CBID=" + jsondata.CBID); //保存工单信息(工单主表 WOrderInfo,处理表 WOrderProcess,附件表 CommonAttachment) BLL.WOrderInfo.Instance.SaveWOrderInfo(jsondata, sysinfo); LogForWebForCall("保存工单信息:电话=" + jsondata.CustBaseInfo.Phone_Out + ";工单ID=" + jsondata.WOrderID); //异步操作-绑定(来去电表 CallRecordInfo,话务业务表 CallRecord_ORIG_Business,工单关联数据表 WOrderData,短信表 SMSSendHistory) BLL.WOrderInfo.Instance.SaveBindInfoASync(jsondata, loginuserid, sysinfo.TrueName); //异步操作-日志类信息(号码访问表 CustPhoneVisitBusiness,话务结果表 CallResult_ORIG_Task) BLL.WOrderInfo.Instance.SaveLogsInfoASync(jsondata, loginuserid, sysinfo.TrueName); //CRM+IM接口调用 InterfaceCallASync(jsondata, sysinfo); } else { msg = "参数错误,转换失败!"; return(false); } LogForWebForCall("END\r\n"); return(true); } catch (Exception ex) { BLL.WOrderInfo.ErrorToLog4("保存工单", ex); msg = ex.Message; return(false); } }
/// CRM添加访问记录 /// <summary> /// CRM添加访问记录 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool InserCRMVisitInfo(WOrderJsonData jsondata, SysRightUserInfo sysinfo) { try { BitAuto.YanFa.Crm2009.Entities.ReturnVisit model = new YanFa.Crm2009.Entities.ReturnVisit(); //必填 model.BeginDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //访问日期 if (DateTime.Now.Minute < 30) { model.begintime = DateTime.Now.ToString("yyyy-MM-dd HH:00:00"); //访问开始时间 model.endtime = DateTime.Now.ToString("yyyy-MM-dd HH:30:00"); //访问结束时间 } else { model.begintime = DateTime.Now.ToString("yyyy-MM-dd HH:30:00"); //访问开始时间 model.endtime = DateTime.Now.AddHours(1).ToString("yyyy-MM-dd HH:00:00"); //访问结束时间 } model.BusinessLine = sysinfo.BusinessLine; //所属业务 model.CustID = jsondata.CRMCustID_Out; // 客户编号,1094888497 model.RVType = 2; //访问方式 model.Remark = jsondata.WOrderInfo.Content_Out; //描述 model.VisitType = jsondata.WOrderInfo.VisitType_Out.ToString(); //访问分类 model.createUserID = sysinfo.UserID; //创建人 model.ContactInfoUserID = jsondata.Common.RelatedContactID; //联系人ID model.status = 0; //非必填 model.CreateuserDepart = sysinfo.DepartID; //部门,DP00522 model.createtime = DateTime.Now; //创建时间 model.MemberId = jsondata.CustBaseInfo.MemberCode_Out; // 会员id model.RVQuestionRemark = ""; //问题 model.RVQuestionStatus = 0; //问题是否解决 model.RVresult = ""; //访问结果 int res = BitAuto.YanFa.Crm2009.BLL.ReturnVisit.Instance.InsertReturnVisit(model); Loger.Log4Net.Error("CRM添加访问记录返回结果:" + res); return(res > 0 ? true : false); } catch (Exception ex) { Loger.Log4Net.Error("CRM添加访问记录异常:" + ex.Message.ToString()); } return(false); }
/// 接口调用 /// <summary> /// 接口调用 /// </summary> /// <param name="jsondata"></param> /// <param name="loginuserid"></param> public void InterfaceCall(WOrderJsonData jsondata, SysRightUserInfo sysinfo) { try { //同步CRM if (jsondata.WOrderInfo.IsSysCRM_Out == 1 && !string.IsNullOrEmpty(jsondata.CRMCustID_Out)) { //jsondata.Common.CRMCustID_Out crm的custid //jsondata.WOrderInfo.VisitType_Out 访问类型id //sysinfo 登录人信息,部门,姓名,id,员工编号等 InserCRMVisitInfo(jsondata, sysinfo); LogForWebForCall("CRM添加访问记录"); } //同步IM接口 //1—会话,2—留言 int imType = jsondata.Common.CallSource_Out == CallSourceEnum.C03_IM对话 ? 1 : 2; int csid = (int)jsondata.Common.RelatedCSID; string orderid = jsondata.WOrderID; if (jsondata.Common.ModuleSource_Out == ModuleSourceEnum.M05_IM个人) { BitAuto.ISDC.CC2012.WebService.IM.IMUtilsServiceHelper server = new WebService.IM.IMUtilsServiceHelper(); server.UpdateCCWorkOrderToIM(imType, csid, orderid); LogForWebForCall("M05_IM个人 回调接口"); } else if (jsondata.Common.ModuleSource_Out == ModuleSourceEnum.M06_IM经销商_新车) { BitAuto.ISDC.CC2012.WebService.IM.IMepUtilsServiceHelper server = new WebService.IM.IMepUtilsServiceHelper(); server.UpdateCCWorkOrderToIM(imType, csid, orderid); LogForWebForCall("M06_IM经销商_新车 回调接口"); } else if (jsondata.Common.ModuleSource_Out == ModuleSourceEnum.M07_IM经销商_二手车) { BitAuto.ISDC.CC2012.WebService.IM.IMtcUtilsServiceHelper server = new WebService.IM.IMtcUtilsServiceHelper(); server.UpdateCCWorkOrderToIM(imType, csid, orderid); LogForWebForCall("M07_IM经销商_二手车 回调接口"); } } catch (Exception ex) { WOrderInfo.ErrorToLog4("接口调用", ex); } }
public void InterfaceCallASync(WOrderJsonData jsondata, SysRightUserInfo sysinfo) { Action <WOrderJsonData, SysRightUserInfo> action = new Action <WOrderJsonData, SysRightUserInfo>(InterfaceCall); action.BeginInvoke(jsondata, sysinfo, null, null); }