Commit b73085c4 by 唐仲阳

流水库

parent 8d6658a9
...@@ -44,7 +44,7 @@ public AnalysisController(IMemoryCache cache, AnalysisQueries aQueries, HomeQuer ...@@ -44,7 +44,7 @@ public AnalysisController(IMemoryCache cache, AnalysisQueries aQueries, HomeQuer
public async Task ParseInquireAsync(Sys_cs sys_) public async Task ParseInquireAsync(Sys_cs sys_)
{ {
int id = _aQueries.JX_SCJXJL(sys_.hosid, sys_.zxr);//1.生成解析记录 int id = _aQueries.JX_SCJXJL(sys_.hosid, sys_.zxr);//1.生成解析记录
_aQueries.updateztZ(id, sys_.hosid, "等待执行"); _aQueries.updateztZ(id, sys_.hosid, "等待执行");
await semaphore.WaitAsync(); await semaphore.WaitAsync();
try try
......
...@@ -67,7 +67,7 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu ...@@ -67,7 +67,7 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu
icd_or_diseaseCondition = icd_or_diseaseCondition.Substring(2, icd_or_diseaseCondition.Length - 2); icd_or_diseaseCondition = icd_or_diseaseCondition.Substring(2, icd_or_diseaseCondition.Length - 2);
if (notdisease.Length > 0) if (notdisease.Length > 0)
icd_or_diseaseCondition = "(" + icd_or_diseaseCondition + ")" + notdisease; icd_or_diseaseCondition = "(" + icd_or_diseaseCondition + ")" + notdisease;
} }
//药品 //药品
...@@ -90,7 +90,6 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu ...@@ -90,7 +90,6 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu
drugs = drugs.Substring(2, drugs.Length - 2); drugs = drugs.Substring(2, drugs.Length - 2);
if (notdrugs.Length > 0) if (notdrugs.Length > 0)
drugs = "(" + drugs + ")" + notdrugs; drugs = "(" + drugs + ")" + notdrugs;
} }
//材料 //材料
if (sYS_Drugquery.materialName != null) if (sYS_Drugquery.materialName != null)
...@@ -103,7 +102,7 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu ...@@ -103,7 +102,7 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu
} }
else else
{ {
notmaterialName = notmaterialName + $"and item_name not like '%{materialname.Replace("!", "").Replace("!", "")}%'"; notmaterialName = notmaterialName + $"and unitprice>=450 and item_name not like '%{materialname.Replace("!", "").Replace("!", "")}%'";
} }
} }
} }
...@@ -112,7 +111,7 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu ...@@ -112,7 +111,7 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu
materialNames = materialNames.Substring(2, materialNames.Length - 2); materialNames = materialNames.Substring(2, materialNames.Length - 2);
if (notmaterialName.Length > 0) if (notmaterialName.Length > 0)
materialNames = "(" + materialNames + ")" + notmaterialName; materialNames = "(" + materialNames + ")" + notmaterialName;
} }
...@@ -159,20 +158,28 @@ private void asynsDrugquery(SYS_Drugquery sYS_Drugquery, string icd_or_diseaseCo ...@@ -159,20 +158,28 @@ private void asynsDrugquery(SYS_Drugquery sYS_Drugquery, string icd_or_diseaseCo
} }
else if (type == 2) else if (type == 2)
{ {
var tasks = new List<Task>(); try
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Drugquery(sYS_Drugquery.typefee, sYS_Drugquery.type1_2, drugs, sYS_Drugquery.drugName, num, 1, zxr))); {
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Drugquery(sYS_Drugquery.typefee, sYS_Drugquery.type1_2, drugs, sYS_Drugquery.drugName, num, 2, zxr))); var tasks = new List<Task>();
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Drugquery(sYS_Drugquery.typefee, sYS_Drugquery.type1_2, drugs, sYS_Drugquery.drugName, num, 3, zxr))); tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Drugquery(sYS_Drugquery.typefee, sYS_Drugquery.type1_2, drugs, sYS_Drugquery.drugName, num, 1, zxr)));
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Drugquery(sYS_Drugquery.typefee, sYS_Drugquery.type1_2, drugs, sYS_Drugquery.drugName, num, 4, zxr))); tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Drugquery(sYS_Drugquery.typefee, sYS_Drugquery.type1_2, drugs, sYS_Drugquery.drugName, num, 4, zxr)));
Task.WaitAll(tasks.ToArray()); tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Drugquery(sYS_Drugquery.typefee, sYS_Drugquery.type1_2, drugs, sYS_Drugquery.drugName, num, 3, zxr)));
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.Drugquery(sYS_Drugquery.typefee, sYS_Drugquery.type1_2, drugs, sYS_Drugquery.drugName, num,5, zxr)));
Task.WaitAll(tasks.ToArray());
}
catch (Exception ex)
{
throw;
}
} }
else if (type == 3) else if (type == 3)
{ {
var tasks = new List<Task>(); var tasks = new List<Task>();
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.材料query(sYS_Drugquery.type1_2, materialNames, sYS_Drugquery.materialName, num, 1, zxr))); tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.材料query(1,sYS_Drugquery.type1_2, materialNames, sYS_Drugquery.materialName, num, 1, zxr)));
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.材料query(sYS_Drugquery.type1_2, materialNames, sYS_Drugquery.materialName, num, 2, zxr))); tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.材料query(1,sYS_Drugquery.type1_2, materialNames, sYS_Drugquery.materialName, num, 2, zxr)));
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.材料query(sYS_Drugquery.type1_2, materialNames, sYS_Drugquery.materialName, num, 3, zxr))); tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.材料query(1, sYS_Drugquery.type1_2, materialNames, sYS_Drugquery.materialName, num, 3, zxr)));
tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.材料query(sYS_Drugquery.type1_2, materialNames, sYS_Drugquery.materialName, num, 4, zxr))); tasks.Add(Task.Factory.StartNew(() => _drugqueryQueries.材料query(1, sYS_Drugquery.type1_2, materialNames, sYS_Drugquery.materialName, num, 4, zxr)));
Task.WaitAll(tasks.ToArray()); Task.WaitAll(tasks.ToArray());
} }
else else
......
using Microsoft.AspNetCore.Authorization; using com.sun.org.glassfish.external.statistics;
using java.lang;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
...@@ -8,6 +10,8 @@ ...@@ -8,6 +10,8 @@
using QueryPlatform.Api.Infrastructure.Queries; using QueryPlatform.Api.Infrastructure.Queries;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Threading; using System.Threading;
...@@ -21,13 +25,16 @@ namespace QueryPlatform.Api.Controllers ...@@ -21,13 +25,16 @@ namespace QueryPlatform.Api.Controllers
public class HomeController : Controller public class HomeController : Controller
{ {
private readonly HomeQueries _homeQueries; private readonly HomeQueries _homeQueries;
private static System.Diagnostics.Process process;
private readonly IWebHostEnvironment _environment; private readonly IWebHostEnvironment _environment;
private readonly IHubContext<NotificationHub> _hubContext; private readonly IHubContext<NotificationHub> _hubContext;
public HomeController(HomeQueries homeQueries, IWebHostEnvironment environment, IHubContext<NotificationHub> hubContext) private readonly DirectoryTree _directoryTree;
public HomeController(HomeQueries homeQueries, IWebHostEnvironment environment, IHubContext<NotificationHub> hubContext, DirectoryTree directoryTree)
{ {
_homeQueries = homeQueries; _homeQueries = homeQueries;
_environment = environment; _environment = environment;
_hubContext = hubContext; _hubContext = hubContext;
_directoryTree = directoryTree;
} }
/// <summary> /// <summary>
/// 查询所有项目记录 /// 查询所有项目记录
...@@ -267,7 +274,7 @@ public IActionResult SendMail(string title, string content, string zxr = "") ...@@ -267,7 +274,7 @@ public IActionResult SendMail(string title, string content, string zxr = "")
{ {
export = _homeQueries.Excelex(ExportTableName, _environment.WebRootPath); ; export = _homeQueries.Excelex(ExportTableName, _environment.WebRootPath); ;
} }
catch (Exception e) catch (System.Exception e)
{ {
export = e.ToString(); export = e.ToString();
...@@ -304,24 +311,26 @@ public IActionResult AutomaticCursor() ...@@ -304,24 +311,26 @@ public IActionResult AutomaticCursor()
} }
#endregion #endregion
[HttpPost("Cursor")]
[HttpPost("ceshi")]
[AllowAnonymous] [AllowAnonymous]
public IActionResult ceshi() public List<string> Cursor([FromBody] CursorModel Sql)
{ {
return Ok(_homeQueries.ceshi()); return _homeQueries.Cursor(Sql);
} }
[HttpGet("wjj")]
[HttpPost("Cursor")]
[AllowAnonymous] [AllowAnonymous]
public List<string> Cursor([FromBody] CursorModel Sql) public IActionResult GetDirectoryTree(string rootPath = "D:\\工作文档\\文档\\精细化分析平台")
{ {
return _homeQueries.Cursor(Sql); try
{
var tree = _directoryTree.GetDirectoryTree(rootPath);
return Ok(tree);
}
catch (System.Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
} }
} }
} }
\ No newline at end of file
using Dapper; using Dapper;
using HtmlAgilityPack;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
...@@ -10,9 +11,15 @@ ...@@ -10,9 +11,15 @@
using QueryPlatform.Infra; using QueryPlatform.Infra;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq; using System.Linq;
using System.Net.Http;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using ZXing;
using ZXing.Common;
using ZXing.Rendering;
namespace QueryPlatform.Api.Controllers namespace QueryPlatform.Api.Controllers
{ {
...@@ -82,7 +89,7 @@ public async Task<(IEnumerable<dynamic>, IEnumerable<dynamic>, string, string, I ...@@ -82,7 +89,7 @@ public async Task<(IEnumerable<dynamic>, IEnumerable<dynamic>, string, string, I
[AllowAnonymous] [AllowAnonymous]
public async Task<string> DownloadFileAsync([FromBody] SYS_Cs sYS_Cs) public async Task<string> DownloadFileAsync([FromBody] SYS_Cs sYS_Cs)
{ {
var dz = await resourceQueries.ProjectReport1(sYS_Cs.id, sYS_Cs.MEDIC_AREA, sYS_Cs.item_name, sYS_Cs.GENERIC_NAME, sYS_Cs.PROJECT_NAME, sYS_Cs.icd, sYS_Cs.DISEASE_NAME, _webHostEnvironment.WebRootPath, 1); var dz = await resourceQueries.ProjectReport1(sYS_Cs.id, sYS_Cs.MEDIC_AREA, sYS_Cs.item_name, sYS_Cs.GENERIC_NAME, sYS_Cs.PROJECT_NAME, sYS_Cs.icd, sYS_Cs.DISEASE_NAME, _webHostEnvironment.WebRootPath, 1);
return dz.Item7; return dz.Item7;
} }
...@@ -155,13 +162,13 @@ public IEnumerable<dynamic> ShowLog(long indexs, string tableName) ...@@ -155,13 +162,13 @@ public IEnumerable<dynamic> ShowLog(long indexs, string tableName)
private static SemaphoreSlim semaphore = new SemaphoreSlim(1, 1); private static SemaphoreSlim semaphore = new SemaphoreSlim(1, 1);
[HttpPost("PullData")] [HttpPost("PullData")]
[AllowAnonymous] [AllowAnonymous]
public async Task PullDataAsync(long indexs, string DatabaseName, string tableName, string zxr) public async Task PullDataAsync(long indexs, string DatabaseName, string tableName, string zxr,int dbz=0)
{ {
resourceQueries.pullstate(indexs, tableName); resourceQueries.pullstate(indexs, tableName);
await semaphore.WaitAsync(); await semaphore.WaitAsync();
try try
{ {
resourceQueries.PullData(indexs, DatabaseName, tableName); resourceQueries.PullData(indexs, DatabaseName, tableName, dbz);
homeQueries.SendMail("流水库拉取提醒", @$"流水库:{DatabaseName}拉取结束,请查看日志。有没有需要特殊处理的医院", zxr); homeQueries.SendMail("流水库拉取提醒", @$"流水库:{DatabaseName}拉取结束,请查看日志。有没有需要特殊处理的医院", zxr);
} }
catch (Exception e) catch (Exception e)
...@@ -277,7 +284,14 @@ public IEnumerable<dynamic> lingchuanglujingjiancha(string name) ...@@ -277,7 +284,14 @@ public IEnumerable<dynamic> lingchuanglujingjiancha(string name)
var DemandQuery = homeQueries.lingchuanglujingjiancha(name); var DemandQuery = homeQueries.lingchuanglujingjiancha(name);
return DemandQuery; return DemandQuery;
} }
[HttpGet("ATC")]
[AllowAnonymous]
public async void ATC(string atccode = "", string url = "https://atcddd.fhi.no/atc_ddd_index/")
{
drugqueryQueries.ATC(atccode, url);
}
} }
} }
...@@ -32,6 +32,7 @@ protected override void Load(ContainerBuilder builder) ...@@ -32,6 +32,7 @@ protected override void Load(ContainerBuilder builder)
builder.Register(c => new DrugqueryQueries(Connection156, configConnectionString)).InstancePerLifetimeScope(); builder.Register(c => new DrugqueryQueries(Connection156, configConnectionString)).InstancePerLifetimeScope();
builder.Register(c => new HomeQueries(configConnectionString, Connection156)).InstancePerLifetimeScope(); builder.Register(c => new HomeQueries(configConnectionString, Connection156)).InstancePerLifetimeScope();
builder.Register(c => new AnalysisQueries(Connection156, configConnectionString)).InstancePerLifetimeScope(); builder.Register(c => new AnalysisQueries(Connection156, configConnectionString)).InstancePerLifetimeScope();
builder.Register(c => new DirectoryTree()).InstancePerLifetimeScope();
} }
} }
} }
......
using System;
using System.Collections.Generic;
using System.IO;
public class DirectoryTree
{
public class FileSystemItem
{
public string Name { get; set; }
public string Type { get; set; } // 对于文件,这是扩展名;对于文件夹,可以是"Folder"
public List<FileSystemItem> Children { get; set; } = new List<FileSystemItem>();
public FileSystemItem(string name, string type)
{
Name = name;
Type = type;
}
}
public FileSystemItem GetDirectoryTree(string rootPath)
{
var rootItem = new FileSystemItem(Path.GetFileName(rootPath), "Folder");
FillDirectoryTree(rootPath, rootItem);
return rootItem;
}
private void FillDirectoryTree(string path, FileSystemItem parent)
{
try
{
foreach (var dir in Directory.GetDirectories(path))
{
var dirInfo = new DirectoryInfo(dir);
var dirItem = new FileSystemItem(dirInfo.Name, "Folder");
parent.Children.Add(dirItem);
FillDirectoryTree(dir, dirItem); // 递归调用
}
foreach (var file in Directory.GetFiles(path))
{
var fileInfo = new FileInfo(file);
var fileItem = new FileSystemItem(fileInfo.Name, fileInfo.Extension.TrimStart('.'));
parent.Children.Add(fileItem);
}
}
catch (Exception ex)
{
// 处理异常,例如记录日志
Console.WriteLine($"Error accessing directory: {ex.Message}");
}
}
}
\ No newline at end of file
using Autofac.Extensions.DependencyInjection; using Autofac.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.ML;
using Microsoft.ML.Data;
using Serilog; using Serilog;
using System; using System;
using System.Diagnostics;
using System.Drawing;
using System.IO; using System.IO;
using System.Text;
using Ude;
using ZXing;
using ZXing.Common;
namespace QueryPlatform.Api namespace QueryPlatform.Api
{ {
...@@ -27,15 +36,82 @@ static Program() ...@@ -27,15 +36,82 @@ static Program()
public static IConfiguration Configuration { get; } public static IConfiguration Configuration { get; }
public static string BaseDirectory { get; } public static string BaseDirectory { get; }
// 检测编码格式
static Encoding DetectEncoding(Stream stream)
{
CharsetDetector detector = new CharsetDetector();
detector.Feed(stream);
detector.DataEnd();
string encodingName = detector.Charset;
return Encoding.GetEncoding(encodingName);
}
public static void Main(string[] args) public static void Main(string[] args)
{ {
//// 创建ML.NET环境
//var mlContext = new MLContext();
//// 准备数据
//var trainingData = LoadData();
//// 定义特征和标签的类型
//var dataView = mlContext.Data.LoadFromEnumerable<HouseData>(trainingData);
//// 定义模型管道
//var pipeline = mlContext.Transforms.Concatenate("Features", "Size")
// .Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Price"));
//// 训练模型
//Console.WriteLine(DateTime.Now);
//var model = pipeline.Fit(dataView);
//Console.WriteLine(DateTime.Now);
//// 使用模型进行预测
//var predictionEngine = mlContext.Model.CreatePredictionEngine<HouseData, PredictionResult>(model);
//var prediction = predictionEngine.Predict(new HouseData { Size = 2000 });
//// 打印预测结果
//Console.WriteLine($"Predicted price for a house with 2000 sqft: {prediction.Price}");
//Console.ReadLine();
Log.Logger = CreateSerilogLogger(); Log.Logger = CreateSerilogLogger();
Log.Information("Starting web host"); Log.Information("Starting web host");
CreateHostBuilder(args).Build().Run(); CreateHostBuilder(args).Build().Run();
} }
class HouseData
{
[LoadColumn(0)]
public float Size { get; set; }
[LoadColumn(1)]
public float Price { get; set; }
}
// 定义预测结果结构
class PredictionResult
{
public float Price { get; set; }
}
// 加载数据
private static HouseData[] LoadData()
{
// 实际情况中可能从文件或数据库加载数据
return new HouseData[]
{
new HouseData { Size = 1000, Price = 300000 },
new HouseData { Size = 1500, Price = 400000 },
new HouseData { Size = 2000, Price = 500000 },
new HouseData { Size = 2500, Price = 600000 },
new HouseData { Size = 3000, Price = 700000 },
};
}
public static IHostBuilder CreateHostBuilder(string[] args) public static IHostBuilder CreateHostBuilder(string[] args)
{ {
var urls = Configuration.GetValue("ListenUrls", "http://*:56900"); var urls = Configuration.GetValue("ListenUrls", "http://*:56900");
......
...@@ -63,6 +63,7 @@ ...@@ -63,6 +63,7 @@
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.7" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.7" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.7" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.7" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.8" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.8" />
<PackageReference Include="Microsoft.ML" Version="3.0.1" />
<PackageReference Include="Microsoft.Office.Interop.Word" Version="15.0.4797.1004" /> <PackageReference Include="Microsoft.Office.Interop.Word" Version="15.0.4797.1004" />
<PackageReference Include="Microsoft.VisualBasic" Version="10.3.0" /> <PackageReference Include="Microsoft.VisualBasic" Version="10.3.0" />
<PackageReference Include="MiniProfiler.AspNetCore.Mvc" Version="4.2.1" /> <PackageReference Include="MiniProfiler.AspNetCore.Mvc" Version="4.2.1" />
...@@ -82,8 +83,10 @@ ...@@ -82,8 +83,10 @@
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.5.1" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="5.5.1" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="5.6.3" /> <PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="5.6.3" />
<PackageReference Include="System.IO.Compression.ZipFile" Version="4.3.0" /> <PackageReference Include="System.IO.Compression.ZipFile" Version="4.3.0" />
<PackageReference Include="Ude.NET" Version="1.0.0" />
<PackageReference Include="Wkhtmltopdf.NetCore" Version="3.0.2" /> <PackageReference Include="Wkhtmltopdf.NetCore" Version="3.0.2" />
<PackageReference Include="Xamarin.Essentials" Version="1.7.3" /> <PackageReference Include="Xamarin.Essentials" Version="1.7.3" />
<PackageReference Include="ZXing.Net" Version="0.16.9" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
......
...@@ -442,12 +442,12 @@ ...@@ -442,12 +442,12 @@
创建流水库 创建流水库
</summary> </summary>
</member> </member>
<member name="M:QueryPlatform.Api.Infrastructure.Queries.ResourceQueries.PullData(System.Int64,System.String,System.String,System.String,System.String)"> <member name="M:QueryPlatform.Api.Infrastructure.Queries.ResourceQueries.PullData(System.Int64,System.String,System.String,System.String)">
<summary> <summary>
拉取病人表 拉取病人表
</summary> </summary>
</member> </member>
<member name="M:QueryPlatform.Api.Infrastructure.Queries.ResourceQueries.PullData(System.Int64,System.String,System.String)"> <member name="M:QueryPlatform.Api.Infrastructure.Queries.ResourceQueries.PullData(System.Int64,System.String,System.String,System.Int32)">
<summary> <summary>
多线程拉取病人表 多线程拉取病人表
</summary> </summary>
......
using Autofac.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.ML;
using Microsoft.ML.Data;
using Serilog;
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Text;
using Ude;
using ZXing;
using ZXing.Common;
namespace QueryPlatform.Api
{
public class Program
{
static Program()
{
string env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;
Configuration = new ConfigurationBuilder()
.SetBasePath(BaseDirectory)
.AddJsonFile($"appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env}.json", optional: true, reloadOnChange: true)
.AddJsonFile($"secret.json", optional: true, reloadOnChange: true)
.AddXmlFile($"overview.xml", true, true)
.AddEnvironmentVariables()
.Build();
}
public static IConfiguration Configuration { get; }
public static string BaseDirectory { get; }
// 检测编码格式
static Encoding DetectEncoding(Stream stream)
{
CharsetDetector detector = new CharsetDetector();
detector.Feed(stream);
detector.DataEnd();
string encodingName = detector.Charset;
return Encoding.GetEncoding(encodingName);
}
public static void Main(string[] args)
{
//// 创建ML.NET环境
//var mlContext = new MLContext();
//// 准备数据
//var trainingData = LoadData();
//// 定义特征和标签的类型
//var dataView = mlContext.Data.LoadFromEnumerable<HouseData>(trainingData);
//// 定义模型管道
//var pipeline = mlContext.Transforms.Concatenate("Features", "Size")
// .Append(mlContext.Regression.Trainers.Sdca(labelColumnName: "Price"));
//// 训练模型
//Console.WriteLine(DateTime.Now);
//var model = pipeline.Fit(dataView);
//Console.WriteLine(DateTime.Now);
//// 使用模型进行预测
//var predictionEngine = mlContext.Model.CreatePredictionEngine<HouseData, PredictionResult>(model);
//var prediction = predictionEngine.Predict(new HouseData { Size = 2000 });
//// 打印预测结果
//Console.WriteLine($"Predicted price for a house with 2000 sqft: {prediction.Price}");
//Console.ReadLine();
Log.Logger = CreateSerilogLogger();
Log.Information("Starting web host");
CreateHostBuilder(args).Build().Run();
}
class HouseData
{
[LoadColumn(0)]
public float Size { get; set; }
[LoadColumn(1)]
public float Price { get; set; }
}
// 定义预测结果结构
class PredictionResult
{
public float Price { get; set; }
}
// 加载数据
private static HouseData[] LoadData()
{
// 实际情况中可能从文件或数据库加载数据
return new HouseData[]
{
new HouseData { Size = 1000, Price = 300000 },
new HouseData { Size = 1500, Price = 400000 },
new HouseData { Size = 2000, Price = 500000 },
new HouseData { Size = 2500, Price = 600000 },
new HouseData { Size = 3000, Price = 700000 },
};
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
var urls = Configuration.GetValue("ListenUrls", "http://*:56900");
return Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseUrls(urls.Split(','))
.UseStartup<Startup>();
})
.ConfigureAppConfiguration((context, config) =>
{
config.AddConfiguration(Configuration);
})
.UseContentRoot(BaseDirectory)
.UseSerilog();
}
private static Serilog.ILogger CreateSerilogLogger()
{
var basePath = Path.Combine(BaseDirectory, "logs");
return new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
//.MinimumLevel.Verbose()
.Enrich.FromLogContext()
.WriteTo.Console()
.WriteTo.File($"{basePath}\\.log", rollingInterval: RollingInterval.Day, retainedFileCountLimit: null)
.CreateLogger();
}
}
}
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="RestSharpSigned" Version="105.2.3" />
</ItemGroup> </ItemGroup>
</Project> </Project>
...@@ -7,6 +7,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QueryPlatform.Api", "queryP ...@@ -7,6 +7,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QueryPlatform.Api", "queryP
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QueryPlatform.Infra", "queryPlaform.Infra\QueryPlatform.Infra.csproj", "{DEEDEA96-9A13-48D7-A9E6-E1A9E6F95656}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QueryPlatform.Infra", "queryPlaform.Infra\QueryPlatform.Infra.csproj", "{DEEDEA96-9A13-48D7-A9E6-E1A9E6F95656}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "解决方案项", "解决方案项", "{103D4545-7F9F-49D4-A159-C764D63EFDA5}"
ProjectSection(SolutionItems) = preProject
StringAgg.cs = StringAgg.cs
EndProjectSection
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment