using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net.Http; using System.Threading.Tasks; using System.Windows.Forms; using SuperMap.RealEstate.ServiceModel; using HWSB = SuperMap.RealEstate.HighWay.Storage.Business; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using HZQR.Common; namespace DataBaseProcessing { static class Program { /// /// 应用程序的主入口点。 /// //[STAThread] //static void Main() //{ // Application.EnableVisualStyles(); // Application.SetCompatibleTextRenderingDefault(false); // Application.Run(new MainForm()); //} //static async Task Main() //{ // Transaction transaction = new Transaction(); // string SQLString = "WHERE PROVINCE_CODE = 3544 AND STATISTIC_TYPE = 1000 AND STATISTICS_TYPE = 1000 AND SPREGIONTYPE_ID <> 89"; // DataTable dtServerpart = new HWSB.SERVERPART(transaction).FillDataTable(SQLString); // // 假设有多个服务区,一起计算 // var serviceAreas = dtServerpart.AsEnumerable().Select(o => o["SERVERPART_ID"].ToString()).ToList(); // 服务区ID列表 // var dates = new List // { // DateTime.Now.AddMonths(-1), // //DateTime.Now.AddDays(-2), // //DateTime.Now.AddDays(-3) // }; // // 进行多个服务区的数据汇总并分析 // await TestForm.AnalyzeMultipleServiceAreas(serviceAreas, dates); // transaction.Release(); // transaction.Dispose(); //} // 主函数,程序的入口 //public static void Main(string[] args) //{ // // 模拟通过API传递的月份参数,例如"September" // string month = "September"; // // 调用API获取车辆数和总营收数据(在真实场景中,这部分可以由HTTP请求实现) // var data = TestForm.FetchDataForMonth("202401", "202409", "419"); // // 将API获取到的数据进行处理并计算单车价值 // TestForm.CalculateSingleVehicleValue(data); //} //static void Main() //{ // Transaction transaction = new Transaction(); // try // { // List SERVERPARTList = new HWSB.SERVERPART(transaction).FillCollection( // "WHERE PROVINCE_CODE = 3544 AND STATISTICS_TYPE = 1000 AND STATISTIC_TYPE = 1000 AND SPREGIONTYPE_ID NOT IN (89) " + // "ORDER BY SPREGIONTYPE_INDEX,SPREGIONTYPE_ID,SERVERPART_INDEX,SERVERPART_CODE"); // string ServerpartId = string.Join(",", SERVERPARTList.Select(o => o.KeyID)); // int StatisticsMonth = 202412; // string month = StatisticsMonth % 100 + "月"; // 月份 // // 模拟传入的参数:月份、总营收、各省份车辆数 // string selectedSQL; // string SQLString = string.Format(@"SELECT SERVERPART_ID,SUM(REVENUE_AMOUNT) AS REVENUE_AMOUNT // FROM PLATFORM_DASHBOARD.T_REVENUEMONTHLY // WHERE SERVERPART_ID IN ({0}) AND STATISTICS_MONTH = {1} // GROUP BY SERVERPART_ID", ServerpartId, StatisticsMonth); // DataTable dtRevenue = new HWSB.SERVERPART(transaction).ExecuteDataTable(SQLString); // SQLString = string.Format(@"SELECT // SERVERPART_ID,PROVINCE_NAME,VEHICLE_TYPE,SUM(VEHICLE_COUNT) AS VEHICLE_COUNT // FROM HIGHWAY_SELLDATA.T_BAYONETOWMONTHLY_AH // WHERE SERVERPART_ID IN ({0}) AND STATISTICS_MONTH = {1} // GROUP BY SERVERPART_ID,PROVINCE_NAME,VEHICLE_TYPE", ServerpartId, StatisticsMonth); // DataTable dtBayonet = new HWSB.SERVERPART(transaction).ExecuteDataTable(SQLString); // foreach (HWSB.SERVERPART _SERVERPART in SERVERPARTList) // { // LogUtil.WriteLog($"开始模拟{ _SERVERPART.SERVERPART_NAME }【{ _SERVERPART.SPREGIONTYPE_NAME }】"); // selectedSQL = "SERVERPART_ID = " + _SERVERPART.KeyID; // // 总营收(替换为实际数据) // double totalRevenue = dtRevenue.Compute("sum(REVENUE_AMOUNT)", selectedSQL).TryParseToDouble().Round(2); // if (totalRevenue <= 0) continue; // // 总车辆数(替换为实际数据) // int totalVehicleCount = dtBayonet.Compute("sum(VEHICLE_COUNT)", selectedSQL).TryParseToInt(); // // 各省份车辆数(实际应用中从API或输入获取) // Dictionary> provinceVehicleCounts = // new Dictionary>(); // //{ // // { "安徽省", new Dictionary {{"Small",99732},{"Medium",0},{"Large",17632}} }, // // { "江苏省", new Dictionary {{"Small",45699},{"Medium",0},{ "Large",9118}} }, // // { "河南省", new Dictionary {{"Small",23808},{"Medium",0},{ "Large",5422}} }, // // { "浙江省", new Dictionary {{"Small",19334},{"Medium",0},{"Large",2137}} }, // // { "湖北省", new Dictionary {{"Small",9689},{"Medium",0},{"Large",2277}} }, // // { "上海市", new Dictionary {{"Small",7076},{"Medium",0},{"Large",2731}} }, // // { "山东省", new Dictionary {{"Small",3889},{"Medium",0},{"Large",3768}} }, // // { "河北省", new Dictionary {{"Small",1375},{"Medium",0},{"Large",1465}} }, // // { "江西省", new Dictionary {{"Small",612},{"Medium",0},{"Large",1607}} }, // // { "广东省", new Dictionary {{"Small",1863},{"Medium",0},{"Large",190}} }, // // { "湖南省", new Dictionary {{"Small",997},{"Medium",0},{"Large",175}} }, // // { "山西省", new Dictionary {{"Small",414},{"Medium",0},{"Large",754}} }, // // { "辽宁省", new Dictionary {{"Small",432},{"Medium",0},{"Large",587}} }, // // { "福建省", new Dictionary {{"Small",582},{"Medium",0},{"Large",272}} }, // // { "北京市", new Dictionary {{"Small",590},{"Medium",0},{"Large",153}} }, // // { "其他省份", new Dictionary {{"Small",38453},{"Medium",0},{"Large",12864}} } // //}; // var summaryList = from t in dtBayonet.Select(selectedSQL).AsEnumerable() // group t by new // { // t0 = t.Field("PROVINCE_NAME"), // } into m // select new // { // PROVINCE_NAME = m.Key.t0, // VEHICLE_COUNT = m.Sum(o => o["VEHICLE_COUNT"].TryParseToInt()), // }; // foreach (var BayonetObj in summaryList.ToList().OrderByDescending(o => o.VEHICLE_COUNT)) // { // switch (BayonetObj.PROVINCE_NAME) // { // case "安徽省": // case "江苏省": // case "山东省": // case "河南省": // case "浙江省": // case "河北省": // case "江西省": // case "湖北省": // case "广东省": // case "上海市": // case "福建省": // case "湖南省": // case "辽宁省": // case "山西省": // case "北京市": // selectedSQL = "SERVERPART_ID = " + _SERVERPART.KeyID + " and PROVINCE_NAME = '" + // BayonetObj.PROVINCE_NAME + "' and VEHICLE_TYPE "; // //各个车型的数据汇总 // Dictionary vehicleTypeCounts = new Dictionary(); // vehicleTypeCounts.Add("Small", dtBayonet.Compute("sum(VEHICLE_COUNT)", // selectedSQL + " = '小型车'").TryParseToInt()); // vehicleTypeCounts.Add("Medium", dtBayonet.Compute("sum(VEHICLE_COUNT)", // selectedSQL + " = '中型车'").TryParseToInt()); // vehicleTypeCounts.Add("Large", dtBayonet.Compute("sum(VEHICLE_COUNT)", // selectedSQL + " like '大%'").TryParseToInt()); // provinceVehicleCounts.Add(BayonetObj.PROVINCE_NAME, vehicleTypeCounts); // break; // } // } // int curTotalCount = provinceVehicleCounts.Sum(o => o.Value.Sum(s => s.Value)); // if (totalVehicleCount != curTotalCount) // { // selectedSQL = "SERVERPART_ID = " + _SERVERPART.KeyID + " and VEHICLE_TYPE "; // //各个车型的数据汇总 // Dictionary vehicleTypeCounts = new Dictionary(); // vehicleTypeCounts.Add("Small", dtBayonet.Compute("sum(VEHICLE_COUNT)", // selectedSQL + " = '小型车'").TryParseToInt() - provinceVehicleCounts.Sum(o => o.Value["Small"])); // vehicleTypeCounts.Add("Medium", dtBayonet.Compute("sum(VEHICLE_COUNT)", // selectedSQL + " = '中型车'").TryParseToInt() - provinceVehicleCounts.Sum(o => o.Value["Medium"])); // vehicleTypeCounts.Add("Large", dtBayonet.Compute("sum(VEHICLE_COUNT)", // selectedSQL + " like '大%'").TryParseToInt() - provinceVehicleCounts.Sum(o => o.Value["Large"])); // provinceVehicleCounts.Add("其他省份", vehicleTypeCounts); // } // // 调用计算流程 // List resultList = new List(); // TestForm.CalculateVehicleValues(month, totalRevenue, totalVehicleCount, provinceVehicleCounts, ref resultList); // foreach (Model.VEHICLEAMOUNTModel vehicleamountModel in resultList) // { // SQLString = string.Format($@"INSERT INTO PLATFORM_DASHBOARD.T_VEHICLEAMOUNT ( // VEHICLEAMOUNT_ID,STATISTICS_MONTH,SERVERPART_ID,SERVERPART_NAME,PROVINCE_NAME, // VEHICLE_TYPE,VEHICLE_COUNT,PERCAPITA_INCOME,CONSUMPTION_COEFFICIENT,VEHICLE_AMOUNT, // ADJUST_COUNT,VEHICLE_ADJAMOUNT,REVENUE_ADJAMOUNT,REVENUE_ACTAMOUNT,VEHICLE_TOTALCOUNT) // VALUES (PLATFORM_DASHBOARD.SEQ_VEHICLEAMOUNT.NEXTVAL, // { StatisticsMonth },{ _SERVERPART.KeyID },'{ _SERVERPART.SERVERPART_NAME }', // '{ vehicleamountModel.PROVINCE_NAME }','{ vehicleamountModel.VEHICLE_TYPE }', // { (vehicleamountModel.VEHICLE_COUNT == null ? "NULL" : vehicleamountModel.VEHICLE_COUNT + "") }, // { (vehicleamountModel.PERCAPITA_INCOME == null ? "NULL" : vehicleamountModel.PERCAPITA_INCOME + "") }, // { (vehicleamountModel.CONSUMPTION_COEFFICIENT == null ? "NULL" : vehicleamountModel.CONSUMPTION_COEFFICIENT + "") }, // { (vehicleamountModel.VEHICLE_AMOUNT == null ? "NULL" : vehicleamountModel.VEHICLE_AMOUNT + "") }, // { (vehicleamountModel.ADJUST_COUNT == null ? "NULL" : vehicleamountModel.ADJUST_COUNT + "") }, // { (vehicleamountModel.VEHICLE_ADJAMOUNT == null ? "NULL" : vehicleamountModel.VEHICLE_ADJAMOUNT + "") }, // { (vehicleamountModel.REVENUE_ADJAMOUNT == null ? "NULL" : vehicleamountModel.REVENUE_ADJAMOUNT.Value.Round(2) + "") }, // { (vehicleamountModel.REVENUE_ACTAMOUNT == null ? "NULL" : vehicleamountModel.REVENUE_ACTAMOUNT + "") }, // { (vehicleamountModel.VEHICLE_TOTALCOUNT == null ? "NULL" : vehicleamountModel.VEHICLE_TOTALCOUNT + "") })"); // _SERVERPART.ExecuteNonQuery(SQLString, null); // } // //break; // } // transaction.Commit(); // } // catch (Exception ex) // { // LogUtil.WriteLog(ex); // } // finally // { // transaction.Release(); // transaction.Dispose(); // } //} public static void Main(string[] args) { // 异步获取 Token var token = GetPNTokenAsync().Result; Console.WriteLine("Token: " + token); } public static async Task GetPNTokenAsync() { string Access_Token = ""; try { string url = "http://test.api.pinuoc.com/access-token"; using (var client = new HttpClient()) { // 设置超时时间为 300 秒(可以根据需要调整) client.Timeout = TimeSpan.FromSeconds(300); // 设置超时为 300 秒 // 构造表单数据 var formData = new MultipartFormDataContent { { new StringContent("1000070"), "appid" }, { new StringContent("rdrel"), "appsecret" }, { new StringContent("KMCYYG70"), "mchid" } }; try { // 发送同步的 POST 请求 HttpResponseMessage response = await client.PostAsync(url, formData); response.EnsureSuccessStatusCode(); // 确保响应成功 // 读取并输出响应内容 string result = await response.Content.ReadAsStringAsync(); // 解析响应数据 JObject keyValuePairs = JObject.Parse(result); if (keyValuePairs["code"].ToString() == "200") { Access_Token = keyValuePairs["data"]["token"].ToString(); Console.WriteLine("Access Token: " + Access_Token); } else { Console.WriteLine("Failed to retrieve token. Response: " + result); } } catch (TimeoutException e) { // 捕获超时异常 Console.WriteLine("Request Timeout: " + e.Message); // 记录超时异常详细信息 LogUtil.WriteLog($"Timeout occurred: {e.Message}"); } catch (HttpRequestException e) { // 捕获 HTTP 请求异常 Console.WriteLine("HTTP Request Error: " + e.Message); // 记录 HTTP 请求异常详细信息 LogUtil.WriteLog($"HttpRequestException occurred: {e.Message}"); } catch (Exception e) { // 捕获其他类型的异常 Console.WriteLine("Error: " + e.Message); // 记录其他异常详细信息 LogUtil.WriteLog($"Exception occurred: {e.Message}"); } } } catch (Exception ex) { // 捕获外部异常 Console.WriteLine("An error occurred: " + ex.Message); // 记录外部异常详细信息 LogUtil.WriteLog($"An error occurred: {ex.Message}"); } return Access_Token; } } }