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