コード例 #1
0
ファイル: Class1.cs プロジェクト: caocf/workspace-kepler
        /// <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;
        }
コード例 #2
0
        /// <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 "";
        }