Commit b73085c4 by 唐仲阳

流水库

parent 8d6658a9
......@@ -44,7 +44,7 @@ public AnalysisController(IMemoryCache cache, AnalysisQueries aQueries, HomeQuer
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, "等待执行");
await semaphore.WaitAsync();
try
......
......@@ -67,7 +67,7 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu
icd_or_diseaseCondition = icd_or_diseaseCondition.Substring(2, icd_or_diseaseCondition.Length - 2);
if (notdisease.Length > 0)
icd_or_diseaseCondition = "(" + icd_or_diseaseCondition + ")" + notdisease;
}
//药品
......@@ -90,7 +90,6 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu
drugs = drugs.Substring(2, drugs.Length - 2);
if (notdrugs.Length > 0)
drugs = "(" + drugs + ")" + notdrugs;
}
//材料
if (sYS_Drugquery.materialName != null)
......@@ -103,7 +102,7 @@ public DrugqueryController(DrugqueryQueries drugqueryQueries, HomeQueries homeQu
}
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
materialNames = materialNames.Substring(2, materialNames.Length - 2);
if (notmaterialName.Length > 0)
materialNames = "(" + materialNames + ")" + notmaterialName;
}
......@@ -159,20 +158,28 @@ private void asynsDrugquery(SYS_Drugquery sYS_Drugquery, string icd_or_diseaseCo
}
else if (type == 2)
{
var tasks = new List<Task>();
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)));
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, 4, zxr)));
Task.WaitAll(tasks.ToArray());
try
{
var tasks = new List<Task>();
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, 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)
{
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(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(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, 1, 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(1, 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, 4, zxr)));
Task.WaitAll(tasks.ToArray());
}
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.Http;
using Microsoft.AspNetCore.Mvc;
......@@ -8,6 +10,8 @@
using QueryPlatform.Api.Infrastructure.Queries;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading;
......@@ -21,13 +25,16 @@ namespace QueryPlatform.Api.Controllers
public class HomeController : Controller
{
private readonly HomeQueries _homeQueries;
private static System.Diagnostics.Process process;
private readonly IWebHostEnvironment _environment;
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;
_environment = environment;
_hubContext = hubContext;
_directoryTree = directoryTree;
}
/// <summary>
/// 查询所有项目记录
......@@ -267,7 +274,7 @@ public IActionResult SendMail(string title, string content, string zxr = "")
{
export = _homeQueries.Excelex(ExportTableName, _environment.WebRootPath); ;
}
catch (Exception e)
catch (System.Exception e)
{
export = e.ToString();
......@@ -304,24 +311,26 @@ public IActionResult AutomaticCursor()
}
#endregion
[HttpPost("ceshi")]
[HttpPost("Cursor")]
[AllowAnonymous]
public IActionResult ceshi()
public List<string> Cursor([FromBody] CursorModel Sql)
{
return Ok(_homeQueries.ceshi());
return _homeQueries.Cursor(Sql);
}
[HttpPost("Cursor")]
[HttpGet("wjj")]
[AllowAnonymous]
public List<string> Cursor([FromBody] CursorModel Sql)
{
return _homeQueries.Cursor(Sql);
public IActionResult GetDirectoryTree(string rootPath = "D:\\工作文档\\文档\\精细化分析平台")
{
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 HtmlAgilityPack;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
......@@ -10,9 +11,15 @@
using QueryPlatform.Infra;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using ZXing;
using ZXing.Common;
using ZXing.Rendering;
namespace QueryPlatform.Api.Controllers
{
......@@ -82,7 +89,7 @@ public async Task<(IEnumerable<dynamic>, IEnumerable<dynamic>, string, string, I
[AllowAnonymous]
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;
}
......@@ -155,13 +162,13 @@ public IEnumerable<dynamic> ShowLog(long indexs, string tableName)
private static SemaphoreSlim semaphore = new SemaphoreSlim(1, 1);
[HttpPost("PullData")]
[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);
await semaphore.WaitAsync();
try
{
resourceQueries.PullData(indexs, DatabaseName, tableName);
resourceQueries.PullData(indexs, DatabaseName, tableName, dbz);
homeQueries.SendMail("流水库拉取提醒", @$"流水库:{DatabaseName}拉取结束,请查看日志。有没有需要特殊处理的医院", zxr);
}
catch (Exception e)
......@@ -277,7 +284,14 @@ public IEnumerable<dynamic> lingchuanglujingjiancha(string name)
var DemandQuery = homeQueries.lingchuanglujingjiancha(name);
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)
builder.Register(c => new DrugqueryQueries(Connection156, configConnectionString)).InstancePerLifetimeScope();
builder.Register(c => new HomeQueries(configConnectionString, Connection156)).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 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
{
......@@ -27,15 +36,82 @@ static Program()
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");
......
......@@ -63,6 +63,7 @@
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" 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.ML" Version="3.0.1" />
<PackageReference Include="Microsoft.Office.Interop.Word" Version="15.0.4797.1004" />
<PackageReference Include="Microsoft.VisualBasic" Version="10.3.0" />
<PackageReference Include="MiniProfiler.AspNetCore.Mvc" Version="4.2.1" />
......@@ -82,8 +83,10 @@
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.5.1" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="5.6.3" />
<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="Xamarin.Essentials" Version="1.7.3" />
<PackageReference Include="ZXing.Net" Version="0.16.9" />
</ItemGroup>
<ItemGroup>
......
......@@ -442,12 +442,12 @@
创建流水库
</summary>
</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>
</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>
......
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 @@
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="RestSharpSigned" Version="105.2.3" />
</ItemGroup>
</Project>
......@@ -7,6 +7,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QueryPlatform.Api", "queryP
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QueryPlatform.Infra", "queryPlaform.Infra\QueryPlatform.Infra.csproj", "{DEEDEA96-9A13-48D7-A9E6-E1A9E6F95656}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "解决方案项", "解决方案项", "{103D4545-7F9F-49D4-A159-C764D63EFDA5}"
ProjectSection(SolutionItems) = preProject
StringAgg.cs = StringAgg.cs
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
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