diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 693d1f6d8..25dd6245d 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1496,7 +1496,7 @@
-
+
项目定稿记录
@@ -1505,6 +1505,13 @@
+
+
+ 新增或者修改文档
+
+
+
+
授权文档
@@ -1512,6 +1519,13 @@
+
+
+ 删除文档
+
+
+
+
项目-一般文件记录
@@ -15877,6 +15891,21 @@
跨项目复制
+
+
+ 是否显示检查名称
+
+
+
+
+ 检查名称列表
+
+
+
+
+ 图像格式
+
+
临床信息传输 1:系统录入2:系统录入+PDF 0:无
diff --git a/IRaCIS.Core.Application/Service/Document/DTO/TrialFinalRecordViewModel.cs b/IRaCIS.Core.Application/Service/Document/DTO/TrialFinalRecordViewModel.cs
index 51e8e244a..7e4e89fc5 100644
--- a/IRaCIS.Core.Application/Service/Document/DTO/TrialFinalRecordViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Document/DTO/TrialFinalRecordViewModel.cs
@@ -31,22 +31,22 @@ public class AuthorizedTrialFinalRecordInDto
public class TrialFinalRecordAddOrEdit
{
public Guid? Id { get; set; }
-
-
- public bool IsAuthorizedView { get; set; }
-
- public string Name { get; set; }
-
-
+
+
+ public bool IsAuthorizedView { get; set; }
+
+ public string Name { get; set; }
+
+
+
public int State { get; set; }
-
+
public Guid TrialFileTypeId { get; set; }
-
+
public Guid TrialId { get; set; }
-
+
public string Version { get; set; }
-
///
diff --git a/IRaCIS.Core.Application/Service/Document/TrialFinalRecordService.cs b/IRaCIS.Core.Application/Service/Document/TrialFinalRecordService.cs
index 4ba715632..d73089bc5 100644
--- a/IRaCIS.Core.Application/Service/Document/TrialFinalRecordService.cs
+++ b/IRaCIS.Core.Application/Service/Document/TrialFinalRecordService.cs
@@ -22,6 +22,7 @@ namespace IRaCIS.Core.Application.Service;
///
[ApiExplorerSettings(GroupName = "FileRecord")]
public class TrialFinalRecordService(IRepository _trialFinalRecordRepository,
+ IRepository _trialFileRepository,
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ITrialFinalRecordService
{
@@ -35,6 +36,7 @@ public class TrialFinalRecordService(IRepository _trialFinalRe
.WhereIf(inDto.Name.IsNotNullOrEmpty(),x=>x.Name.Contains(inDto.Name))
.WhereIf(inDto.Version.IsNotNullOrEmpty(), x => x.Version.Contains(inDto.Version))
.WhereIf(inDto.IsAuthorizedView!=null, x => x.IsAuthorizedView==inDto.IsAuthorizedView)
+ // .Include(x=>x.PDFFileRecord).Include(x => x.WordFileRecord).Include(x => x.SignFileRecord).Include(x => x.HistoryFileRecord)
.ProjectTo(_mapper.ConfigurationProvider);
var pageList = await trialFinalRecordQueryable.ToPagedListAsync(inDto);
@@ -43,24 +45,51 @@ public class TrialFinalRecordService(IRepository _trialFinalRe
}
-
- public async Task AddOrUpdateTrialFinalRecord(TrialFinalRecordAddOrEdit addOrEditTrialFinalRecord)
+ ///
+ /// 新增或者修改文档
+ ///
+ ///
+ ///
+ public async Task AddOrUpdateTrialFinalRecord(TrialFinalRecordAddOrEdit inDto)
{
// 在此处拷贝automapper 映射
+ if (inDto.PDFFileRecord != null) inDto.PDFFileRecord.TrialFileTypeId = inDto.TrialFileTypeId;
+ if (inDto.WordFileRecord != null) inDto.WordFileRecord.TrialFileTypeId = inDto.TrialFileTypeId;
+ if (inDto.SignFileRecord != null) inDto.SignFileRecord.TrialFileTypeId = inDto.TrialFileTypeId;
+ if (inDto.HistoryFileRecord != null) inDto.HistoryFileRecord.TrialFileTypeId = inDto.TrialFileTypeId;
+
+
var verifyExp = new EntityVerifyExp()
{
- VerifyExp = u => u.Name == addOrEditTrialFinalRecord.Name,
+ VerifyExp = u => u.Name == inDto.Name,
// "当前类型启用的文件类型名称重复"
VerifyMsg = _localizer["TrialFileType_NameRepeat"],
};
+ if (inDto.Id != null)
+ {
+ var trialFinalRecord = await _trialFinalRecordRepository.Where(x => x.Id == inDto.Id.Value).FirstNotNullAsync();
- var entity = await _trialFinalRecordRepository.InsertOrUpdateAsync(addOrEditTrialFinalRecord, true);
+ List ids= new List() {
+ trialFinalRecord.WordFileRecordId,
+ trialFinalRecord.PDFFileRecordId,
+ trialFinalRecord.SignFileRecordId,
+ trialFinalRecord.HistoryFileRecordId
- return ResponseOutput.Ok(entity.Id.ToString());
+ };
+
+ var fileIds = ids.Where(x => x != null).Select(x => (Guid)x).ToList();
+ await _trialFileRepository.BatchDeleteNoTrackingAsync(x => fileIds.Contains(x.Id));
+ }
+ var entity = await _trialFinalRecordRepository.InsertOrUpdateAsync(inDto, true);
+
+
+
+
+ return ResponseOutput.Ok(entity.Id.ToString());
}
@@ -76,7 +105,11 @@ public class TrialFinalRecordService(IRepository _trialFinalRe
return ResponseOutput.Ok();
}
-
+ ///
+ /// 删除文档
+ ///
+ ///
+ ///
[HttpDelete("{trialFinalRecordId:guid}")]
public async Task DeleteTrialFinalRecord(Guid trialFinalRecordId)
{
diff --git a/IRaCIS.Core.Application/Service/Document/_MapConfig.cs b/IRaCIS.Core.Application/Service/Document/_MapConfig.cs
index 28e4a6cb0..7eb653d81 100644
--- a/IRaCIS.Core.Application/Service/Document/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Document/_MapConfig.cs
@@ -3,6 +3,7 @@ using AutoMapper.EquivalencyExpression;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.ViewModel;
+using IRaCIS.Core.Infrastructure.Extention;
namespace IRaCIS.Core.Application.Service
{
@@ -107,7 +108,11 @@ namespace IRaCIS.Core.Application.Service
CreateMap().ReverseMap();
CreateMap();
- CreateMap().ReverseMap();
+ CreateMap();
+ //.ForMember(d => d.HistoryFileRecord.TrialFileTypeId, c => c.MapFrom(t => t.TrialFileTypeId))
+ //.ForMember(d => d.SignFileRecord.TrialFileTypeId, c => c.MapFrom(t => t.TrialFileTypeId))
+ //.ForMember(d => d.WordFileRecord.TrialFileTypeId, c => c.MapFrom(t => t.TrialFileTypeId))
+ //.ForMember(d => d.PDFFileRecord.TrialFileTypeId, c => c.MapFrom(t => t.TrialFileTypeId));
CreateMap();
CreateMap().ReverseMap();
diff --git a/IRaCIS.Core.Domain/FileRecord/TrialRecord.cs b/IRaCIS.Core.Domain/FileRecord/TrialRecord.cs
index 0b7c81063..e20da041d 100644
--- a/IRaCIS.Core.Domain/FileRecord/TrialRecord.cs
+++ b/IRaCIS.Core.Domain/FileRecord/TrialRecord.cs
@@ -152,6 +152,13 @@ public class TrialTrianingRecord : BaseFullAuditEntity
public class TrialFile : BaseFullAuditEntity
{
+ ///
+ /// TrialFinalRecord
+ ///
+ [JsonIgnore]
+ [ForeignKey("TrialFileTypeId")]
+ public TrialFileType TrialFileType { get; set; }
+
[Comment("关联项目文件类型")]
public Guid TrialFileTypeId { get; set; }
diff --git a/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialFileConfigration.cs b/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialFileConfigration.cs
new file mode 100644
index 000000000..171ad2dae
--- /dev/null
+++ b/IRaCIS.Core.Infra.EFCore/EntityConfigration/TrialFileConfigration.cs
@@ -0,0 +1,30 @@
+using IRaCIS.Core.Domain.Models;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+
+
+namespace IRaCIS.Core.Infra.EFCore.EntityConfigration
+{
+ //public class TrialFileConfigration : IEntityTypeConfiguration
+ //{
+
+
+ // public void Configure(EntityTypeBuilder builder)
+ // {
+ // // builder.HasOne(r => r.WordFileRecord)
+ // //.WithOne(t => t.WordFileRecord)
+ // //.HasForeignKey(t => t.WordFileRecordId)
+ // //.OnDelete(DeleteBehavior.Cascade);
+ // // builder.HasOne(r => r.PDFFileRecord).WithOne().HasForeignKey(f => f.TrialFileTypeId);
+
+ // // builder.HasOne(r => r.WordFileRecord).WithOne().HasForeignKey(f => f.TrialFileTypeId);
+
+ // // builder.HasOne(r => r.SignFileRecord).WithOne().HasForeignKey(f => f.TrialFileTypeId);
+
+ // // builder.HasOne(r => r.HistoryFileRecord).WithOne().HasForeignKey(f => f.TrialFileTypeId);
+
+ // }
+ //}
+
+
+}