/// 保存工单
        /// <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);
        }