From b097ca1db36a6d46d571b7e90faf2bab9e0c7fbc Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Tue, 24 Sep 2024 14:14:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E4=BB=A3=E7=A0=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRaCIS.Core.Application.xml | 13 +++++++ .../General/GeneralCalculateService.cs | 38 +++++++++++++++++++ .../General/ReadingCalculateService.cs | 5 +++ .../ReadingCalculate/IVUSCalculateService.cs | 11 +++--- .../Interface/IGeneralCalculateService.cs | 9 +++++ .../Interface/IReadingCalculateService.cs | 4 ++ 6 files changed, 75 insertions(+), 5 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 82319338a..b2eb320a5 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -2197,6 +2197,12 @@ + + + 从上传文件中获取Datatable + + + 添加计算错误日志 @@ -4780,6 +4786,13 @@ + + + 从上传文件中获取Datatable + + + + 自动计算 并修改值 diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs index 4af1b8d73..377660e19 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs @@ -2,7 +2,10 @@ using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infra.EFCore.Common; using MassTransit; +using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; +using MiniExcelLibs; +using System.Data; using System.Text; namespace IRaCIS.Core.Application.Service.ReadingCalculate @@ -46,6 +49,41 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate this._readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository; } + + /// + /// 从上传文件中获取Datatable + /// + /// + public async Task GetDataTableFromUpload(IFormFile file) + { + DataTable result = new DataTable(); + var fileFolder = "Upload\\"; + if (!Directory.Exists(fileFolder)) + { + Directory.CreateDirectory(fileFolder); + } + + var fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + + Path.GetExtension(file.FileName); + var filePath = Path.Combine(fileFolder, fileName); + try + { + using (var stream = new FileStream(filePath, FileMode.Create)) + { + file.CopyTo(stream); + stream.Position = 0; + result = stream.QueryAsDataTable(useHeaderRow: false); + } + } + catch (Exception) + { + File.Delete(filePath); + } + + File.Delete(filePath); + return result; + } + /// /// 添加计算错误日志 /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs index 03a0b8631..526b31a2d 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs @@ -2,7 +2,10 @@ using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infrastructure; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using MiniExcelLibs; +using System.Data; namespace IRaCIS.Core.Application.Service.ReadingCalculate { @@ -45,6 +48,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository; } + + /// /// 获取Service /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs index a1d6a4de1..86b407f42 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs @@ -1,4 +1,5 @@ -using IRaCIS.Core.Application.Service.Reading.Dto; +using DocumentFormat.OpenXml.Presentation; +using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infra.EFCore.Common; @@ -7,6 +8,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.IdentityModel.Tokens; +using MiniExcelLibs; namespace IRaCIS.Core.Application.Service.ReadingCalculate { @@ -576,7 +578,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var values = new { - SubjectID = taskinfo.BlindSubjectCode.IsNotNullOrEmpty()? taskinfo.Subject.Code: taskinfo.BlindSubjectCode, + SubjectID = taskinfo.BlindSubjectCode.IsNullOrEmpty()? taskinfo.Subject.Code: taskinfo.BlindSubjectCode, TaskBlindName = taskinfo.TaskBlindName, }; return await _visitTaskHelpeService.ExportTemplateAsync(new IRaCIS.Application.Contracts.ExportTemplateAsyncDto() @@ -595,10 +597,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate public async Task UploadIVUSTemplate() { var request = httpContext.HttpContext!.Request; - var File = request.Form.Files[0]; + var file = request.Form.Files[0]; Guid visitTaskId = Guid.Parse(request.Form["VisitTaskId"]); - - + var dataTable = _generalCalculateService.GetDataTableFromUpload(file); } /// diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IGeneralCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IGeneralCalculateService.cs index a4d78c656..f097ccd95 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IGeneralCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IGeneralCalculateService.cs @@ -1,5 +1,7 @@ using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Domain.Share; +using Microsoft.AspNetCore.Http; +using System.Data; namespace IRaCIS.Core.Application.Service { @@ -36,5 +38,12 @@ namespace IRaCIS.Core.Application.Service /// /// Task LogRecord(ReadingCalculateDto inDto, string lesionName, LesionType lesionType); + + /// + /// 从上传文件中获取Datatable + /// + /// + /// + Task GetDataTableFromUpload(IFormFile file); } } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs index 728046725..37449f651 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/Interface/IReadingCalculateService.cs @@ -1,5 +1,7 @@ using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.ViewModel; +using Microsoft.AspNetCore.Http; +using System.Data; namespace IRaCIS.Core.Application.Service { @@ -54,5 +56,7 @@ namespace IRaCIS.Core.Application.Service /// Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto); + + } }