/// <summary> 车型信息同步 /// </summary> /// <returns>返回同步车型条数,如为-1,同步失败</returns> public static int LoadBusModel() { ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate; QueryBusModel.clientInfo clientInfo = new QueryBusModel.clientInfo(); clientInfo.clientID = GlobalStaticObj_Servier.Instance.ClientID; clientInfo.serviceID = "busModelQuery"; QueryBusModel.busModelQueryService serv = new QueryBusModel.busModelQueryService(); QueryBusModel.Result result = serv.busModelQuery(GlobalStaticObj_Servier.Instance.ClientID, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), "QUERY", clientInfo); if (result.state == "F") { return -1; } QueryBusModel.busModel[] busModelArr = result.Details; if (busModelArr.Length == 0) { return 0; } string nowTicks = Common.LocalDateTimeToUtcLong(DateTime.Now).ToString(); List<SysSQLString> list = new List<SysSQLString>(); foreach (QueryBusModel.busModel item in busModelArr) { SysSQLString sysSQLString = new SysSQLString(); sysSQLString.cmdType = CommandType.Text; sysSQLString.Param = new Dictionary<string, string>(); StringBuilder strSql = new StringBuilder(); bool isContactExist = DBHelper.IsExist("判断车型信息是否存在", "tb_vehicle_models", "vm_code='" + item.vm_code + "'"); if (isContactExist) { #region 更新语句 strSql.Append(" update tb_vehicle_models set "); strSql.Append(" out_price = @out_price , "); strSql.Append(" out_special_price = @out_special_price , "); strSql.Append(" data_sources = @data_sources , "); strSql.Append(" vm_class = @vm_class , "); strSql.Append(" v_sale_type = @v_sale_type , "); strSql.Append(" report_price = @report_price , "); strSql.Append(" repair_price = @repair_price , "); strSql.Append(" begin_date = @begin_date , "); strSql.Append(" end_date = @end_date , "); strSql.Append(" status = @status , "); strSql.Append(" update_by = @update_by , "); strSql.Append(" update_time = @update_time "); strSql.Append(" where vm_code=@vm_code; "); #endregion } else { #region 插入语句 strSql.Append(" insert into tb_vehicle_models("); strSql.Append("vm_id,vm_code,out_price,out_special_price,data_sources,vm_class,v_sale_type,report_price,repair_price,begin_date,end_date,status,enable_flag,create_by,create_time,update_by,update_time"); strSql.Append(") values ("); strSql.Append("@vm_id,@vm_code,@out_price,@out_special_price,@data_sources,@vm_class,@v_sale_type,@report_price,@repair_price,@begin_date,@end_date,@status,@enable_flag,@create_by,@create_time,@update_by,@update_time"); strSql.Append("); "); #endregion sysSQLString.Param.Add("vm_id", Guid.NewGuid().ToString()); sysSQLString.Param.Add("create_by", GlobalStaticObj_Servier.Instance.UserID); sysSQLString.Param.Add("create_time", nowTicks); } #region sysSQLString.sqlString = strSql.ToString(); sysSQLString.Param.Add("vm_code", item.vm_code); sysSQLString.Param.Add("out_price", item.out_price); sysSQLString.Param.Add("out_special_price", item.out_special_price); sysSQLString.Param.Add("vm_class", item.vm_type); sysSQLString.Param.Add("v_sale_type", item.v_sale_type); sysSQLString.Param.Add("report_price", item.report_price); sysSQLString.Param.Add("repair_price", item.repair_price); sysSQLString.Param.Add("begin_date", item.begin_date); sysSQLString.Param.Add("end_date", item.end_date); sysSQLString.Param.Add("status", item.status.ToString()); sysSQLString.Param.Add("enable_flag", ((int)DataSources.EnumEnableFlag.USING).ToString()); sysSQLString.Param.Add("data_sources", ((int)DataSources.EnumDataSources.YUTONG).ToString()); sysSQLString.Param.Add("update_by", GlobalStaticObj_Servier.Instance.UserID); sysSQLString.Param.Add("update_time", nowTicks); #endregion list.Add(sysSQLString); } bool flag = DBHelper.BatchExeSQLStringMultiByTrans("宇通:同步车型", list); if (!flag) { return -1; } return busModelArr.Length; }
/// <summary> 车型信息同步 /// </summary> /// <returns>返回同步车型条数,如为-1,同步失败</returns> public static string LoadBusModel() { //如果没有接入码或者sap代码,则不调用接口 if (string.IsNullOrEmpty(GlobalStaticObj_YT.ClientID) || string.IsNullOrEmpty(GlobalStaticObj_YT.SAPCode)) { return ""; } ServicePointManager.ServerCertificateValidationCallback = WebServUtil.ValidateServerCertificate; QueryBusModel.clientInfo clientInfo = new QueryBusModel.clientInfo(); clientInfo.clientID = GlobalStaticObj_YT.ClientID; clientInfo.serviceID = "busModelQuery"; QueryBusModel.busModelQueryService serv = new QueryBusModel.busModelQueryService(); string stationCode = Secret.Encrypt3DES_UTF8(GlobalStaticObj_YT.SAPCode, GlobalStaticObj_YT.KeySecurity_YT); string dateStr = Secret.Encrypt3DES_UTF8(GlobalStaticObj_Server.Instance.CurrentDateTime.ToString("yyyy-MM-dd HH:mm:ss"), GlobalStaticObj_YT.KeySecurity_YT); string requestType = Secret.Encrypt3DES_UTF8("QUERY", GlobalStaticObj_YT.KeySecurity_YT); clientInfo = WebServUtil.EncModel<QueryBusModel.clientInfo>(clientInfo); DateTime dtStart = GlobalStaticObj_Server.Instance.CurrentDateTime;//开始时间 QueryBusModel.Result result = new QueryBusModel.Result(); string message = string.Empty; try { result = serv.busModelQuery(stationCode, dateStr, requestType, clientInfo); } catch (InvalidOperationException ioe) { //Utility.Log.Log.writeLineToLog(ioe, "车型信息同步"); GlobalStaticObj_Server.YTInterfaceLogService.WriteLog("车型信息同步", ioe); message = ioe.Message; return "车型信息同步超时!"; } catch (Exception ex) { //Utility.Log.Log.writeLineToLog(ex, "车型信息同步"); GlobalStaticObj_Server.YTInterfaceLogService.WriteLog("车型信息同步", ex); message = ex.Message; return "车型信息同步出错!"; } string state = Secret.Decrypt3DES_UTF8(result.state, GlobalStaticObj_YT.KeySecurity_YT); if (state == "F") { string errMsg = Secret.Decrypt3DES_UTF8(result.errorMsg, GlobalStaticObj_YT.KeySecurity_YT); //Utility.Log.Log.writeLineToLog("【车型信息同步】" + errMsg, "接口"); GlobalStaticObj_Server.YTInterfaceLogService.WriteLog("车型信息同步", errMsg); return "车型信息接口调用失败"; } QueryBusModel.busModel[] busModelArr = result.Details; //if (busModelArr.Length == 0) //{ // return "车型信息接口没有返回数据"; //} int updateCount = 0; busModelArr = WebServUtil.DesList<QueryBusModel.busModel>(busModelArr); long nowTicks = Common.LocalDateTimeToUtcLong(GlobalStaticObj_Server.Instance.CurrentDateTime); List<SysSQLString> list = new List<SysSQLString>(); DataTable dtModels = DBHelper.GetTable("判断车型信息是否存在", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "tb_vehicle_models", "vm_id,models_crm_id ", "", "", ""); YuTongDic ytDic = new YuTongDic(); DataTable dtTbModels = new DataTable(); List<DataRow> listTbModels = new List<DataRow>(); dtTbModels.Columns.Add("vm_id", typeof(string)); dtTbModels.Columns.Add("models_crm_id", typeof(string)); dtTbModels.Columns.Add("vm_name", typeof(string)); dtTbModels.Columns.Add("out_price", typeof(decimal)); dtTbModels.Columns.Add("out_special_price", typeof(decimal)); dtTbModels.Columns.Add("data_source", typeof(string)); dtTbModels.Columns.Add("vm_class", typeof(string)); dtTbModels.Columns.Add("v_sale_type", typeof(string)); dtTbModels.Columns.Add("report_price", typeof(decimal)); dtTbModels.Columns.Add("repair_price", typeof(decimal)); dtTbModels.Columns.Add("begin_date", typeof(string)); dtTbModels.Columns.Add("end_date", typeof(string)); dtTbModels.Columns.Add("status", typeof(string)); dtTbModels.Columns.Add("enable_flag", typeof(string)); dtTbModels.Columns.Add("create_by", typeof(string)); dtTbModels.Columns.Add("create_time", typeof(long)); //StringBuilder sbDelete = new StringBuilder();//删除ID foreach (QueryBusModel.busModel item in busModelArr) { if (string.IsNullOrEmpty(item.vm_code)) { continue; } SysSQLString sysSQLString = new SysSQLString(); sysSQLString.cmdType = CommandType.Text; sysSQLString.Param = new Dictionary<string, string>(); StringBuilder strSql = new StringBuilder(); //bool isContactExist = DBHelper.IsExist("判断车型信息是否存在", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "tb_vehicle_models", "vm_code='" + item.vm_code + "'"); string vm_id = string.Empty; DataRow[] drsModels = dtModels.Select("models_crm_id='" + item.vm_code + "'"); if (drsModels.Count() > 0) { vm_id = drsModels[0]["vm_id"].ToString(); //sbDelete.AppendFormat("'{0}',", vm_id); } string vm_type = ytDic.GetLocalDicID("vm_class", item.vm_type); if (string.IsNullOrEmpty(vm_id)) { vm_id = Guid.NewGuid().ToString(); DataRow drModel = dtTbModels.NewRow(); drModel["vm_id"] = vm_id; drModel["models_crm_id"] = item.vm_code; drModel["vm_name"] = item.remark; if (!string.IsNullOrEmpty(item.out_price)) { drModel["out_price"] = Convert.ToDecimal(item.out_price); } if (!string.IsNullOrEmpty(item.out_special_price)) { drModel["out_special_price"] = Convert.ToDecimal(item.out_special_price); } drModel["data_source"] = ((int)DataSources.EnumDataSources.YUTONG).ToString(); drModel["vm_class"] = vm_type; drModel["v_sale_type"] = item.v_sale_type; if (!string.IsNullOrEmpty(item.report_price)) { drModel["report_price"] = Convert.ToDecimal(item.report_price); } if (!string.IsNullOrEmpty(item.repair_price)) { drModel["repair_price"] = Convert.ToDecimal(item.repair_price); } drModel["begin_date"] = item.begin_date; drModel["end_date"] = item.end_date; drModel["status"] = item.status == "0" ? "1" : "0"; drModel["enable_flag"] = ((int)DataSources.EnumEnableFlag.USING).ToString(); drModel["create_by"] = GlobalStaticObj_Server.Instance.UserID; drModel["create_time"] = nowTicks; listTbModels.Add(drModel); } else { strSql.Append(" update tb_vehicle_models set "); //strSql.Append("vm_name=@vm_name,"); strSql.AppendFormat("vm_name='{0}',", item.remark.Replace("'", "''")); if (!string.IsNullOrEmpty(item.out_price)) { strSql.AppendFormat("out_price={0},", item.out_price); } if (!string.IsNullOrEmpty(item.out_special_price)) { strSql.AppendFormat("out_special_price={0},", item.out_special_price); } strSql.AppendFormat("data_source='{0}',", (int)DataSources.EnumDataSources.YUTONG); strSql.AppendFormat("vm_class='{0}',", vm_type); strSql.AppendFormat("v_sale_type='{0}',", item.v_sale_type); if (!string.IsNullOrEmpty(item.report_price)) { strSql.AppendFormat("report_price={0},", item.report_price); } if (!string.IsNullOrEmpty(item.repair_price)) { strSql.AppendFormat("repair_price={0},", item.repair_price); } strSql.AppendFormat("begin_date='{0}',", item.begin_date); strSql.AppendFormat("end_date='{0}',", item.end_date); strSql.AppendFormat("status='{0}',", item.status == "0" ? "1" : "0"); strSql.AppendFormat("update_by='{0}',", GlobalStaticObj_Server.Instance.UserID); strSql.AppendFormat("update_time={0}", nowTicks); strSql.AppendFormat(" where vm_id='{0}'", vm_id); sysSQLString.sqlString = strSql.ToString(); //sysSQLString.Param.Add("vm_name", item.remark); list.Add(sysSQLString); } } bool flag = true; //if (sbDelete.Length > 0) //{ // flag = DBHelper.BatchDeleteDataByWhere("", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "tb_vehicle_models", " vm_id in (" + sbDelete.ToString().TrimEnd(',') + ")"); // if (!flag) // { // return ""; // } //} if (listTbModels.Count > 0) { flag = DBHelper.SqlBulkByTransNoLogNoBackUp("", GlobalStaticObj_Server.Instance.MainAccCode, "tb_vehicle_models", listTbModels); if (!flag) { GlobalStaticObj_Server.YTInterfaceLogService.WriteLog("车型信息同步", "车型新增失败"); return "车型新增失败"; } } if (list.Count > 0) { flag = DBHelper.BatchExeSQLStrMultiByTransNoLogNoBackup("", GlobalStaticObj_Server.Instance.MainAccCode, list); if (!flag) { GlobalStaticObj_Server.YTInterfaceLogService.WriteLog("车型信息同步", "车型更新失败"); return "车型更新失败"; } } updateCount += busModelArr.Count(); DateTime dtEnd = GlobalStaticObj_Server.Instance.CurrentDateTime;//结束时间 int totalCount = int.Parse(DBHelper.GetSingleValue("", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.Instance.MainAccCode, "select count(1) from tb_vehicle_models where data_source='2'")); WebServUtil.WriteInterficeSync(DataSources.EnumInterfaceType.BusModel, DataSources.EnumExternalSys.YTCRM, totalCount, updateCount, GlobalStaticObj_Server.Instance.CurrentDateTime); WebServUtil.WriteInterficeSyncLog(DataSources.EnumInterfaceType.BusModel, DataSources.EnumExternalSys.YTCRM, DataSources.EnumSyncDirection.DownLoad, "tb_vehicle_models", dtStart, dtEnd, updateCount, message); return ""; }