diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index aaacd0f7d..0d1c6e36a 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -1480,6 +1480,13 @@ + + + 修改授权状态 + + + + 项目定稿记录 @@ -14176,11 +14183,41 @@ TrialEmailNoticeConfigAddOrEdit 列表查询参数模型 + + + 是否授权 + + + + + 是否授权 + + 显示顺序 + + + 定稿PDF + + + + + 定稿Word + + + + + 签名页 + + + + + 历史记录 + + SystemAnonymizationView 列表视图模型 diff --git a/IRaCIS.Core.Application/Service/Document/DTO/TrialFileTypeViewModel.cs b/IRaCIS.Core.Application/Service/Document/DTO/TrialFileTypeViewModel.cs index 96df40538..399200c29 100644 --- a/IRaCIS.Core.Application/Service/Document/DTO/TrialFileTypeViewModel.cs +++ b/IRaCIS.Core.Application/Service/Document/DTO/TrialFileTypeViewModel.cs @@ -32,12 +32,21 @@ public class TrialFileTypeData public List TrialFileTypeList { get; set; } } +public class SetAuthorizedViewInDto +{ + public Guid Id { get; set; } + + public bool IsAuthorizedView { get; set; } +} public class GetTrialFileTypeDataInDto { public Guid TrialId { get; set; } - public bool IsCheck { get; set; } = false; + /// + /// 是否授权 + /// + public bool IsAuthorizedView { get; set; } = false; } public class CopySystemFileTypeToTrialInDto { @@ -82,6 +91,11 @@ public class TrialFileTypeAddOrEdit public Guid TrialId { get; set; } + /// + /// 是否授权 + /// + public bool IsAuthorizedView { get; set; } + /// /// 显示顺序 /// diff --git a/IRaCIS.Core.Application/Service/Document/DTO/TrialFinalRecordViewModel.cs b/IRaCIS.Core.Application/Service/Document/DTO/TrialFinalRecordViewModel.cs index a3eb2f885..442e610ae 100644 --- a/IRaCIS.Core.Application/Service/Document/DTO/TrialFinalRecordViewModel.cs +++ b/IRaCIS.Core.Application/Service/Document/DTO/TrialFinalRecordViewModel.cs @@ -7,6 +7,7 @@ using System; using IRaCIS.Core.Domain.Share; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; namespace IRaCIS.Core.Application.ViewModel; public class TrialFinalRecordView : TrialFinalRecordAddOrEdit @@ -23,15 +24,15 @@ public class TrialFinalRecordAddOrEdit { public Guid? Id { get; set; } - public Guid HistoryFileRecordId { get; set; } + public Guid? HistoryFileRecordId { get; set; } public bool IsAuthorizedView { get; set; } public string Name { get; set; } - public Guid PDFFileRecordId { get; set; } + public Guid? PDFFileRecordId { get; set; } - public Guid SignFileRecordId { get; set; } + public Guid? SignFileRecordId { get; set; } public int State { get; set; } @@ -41,8 +42,28 @@ public class TrialFinalRecordAddOrEdit public string Version { get; set; } - public Guid WordFileRecordId { get; set; } - } + public Guid? WordFileRecordId { get; set; } + + /// + /// 定稿PDF + /// + public TrialFile PDFFileRecord { get; set; } + + /// + /// 定稿Word + /// + public TrialFile WordFileRecord { get; set; } + + /// + /// 签名页 + /// + public TrialFile SignFileRecord { get; set; } + + /// + /// 历史记录 + /// + public TrialFile HistoryFileRecord { get; set; } +} public class TrialFinalRecordQuery : PageInput { @@ -51,10 +72,7 @@ public class TrialFinalRecordQuery : PageInput public bool? IsAuthorizedView { get; set; } public string? Name { get; set; } - - public Guid? PDFFileRecordId { get; set; } - - public Guid? SignFileRecordId { get; set; } + public int? State { get; set; } diff --git a/IRaCIS.Core.Application/Service/Document/TrialFileTypeService.cs b/IRaCIS.Core.Application/Service/Document/TrialFileTypeService.cs index 76ee14301..b774466b5 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialFileTypeService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialFileTypeService.cs @@ -138,7 +138,7 @@ public class TrialFileTypeService(IRepository _trialFileTypeRepos TrialId = inDto.TrialId }); var trialFileTypeList = await _trialFileTypeRepository.Where(x=>x.TrialId==inDto.TrialId) - .WhereIf(inDto.IsCheck, x => x.IsEnable) + .WhereIf(inDto.IsAuthorizedView, x => x.IsAuthorizedView) .OrderBy(x=>x.ShowOrder) .ProjectTo(_mapper.ConfigurationProvider) .ToListAsync(); @@ -153,6 +153,18 @@ public class TrialFileTypeService(IRepository _trialFileTypeRepos } + /// + /// 修改授权状态 + /// + /// + /// + [HttpPost] + public async Task SetAuthorizedView(SetAuthorizedViewInDto inDto) + { + await _trialFileTypeRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.Id, x => new TrialFileType() { IsAuthorizedView = inDto.IsAuthorizedView }, true); + return ResponseOutput.Ok(); + } + } diff --git a/IRaCIS.Core.Application/Service/Document/TrialFinalRecordService.cs b/IRaCIS.Core.Application/Service/Document/TrialFinalRecordService.cs index 62a68d88f..10151548c 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialFinalRecordService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialFinalRecordService.cs @@ -27,13 +27,16 @@ public class TrialFinalRecordService(IRepository _trialFinalRe [HttpPost] - public async Task> GetTrialFinalRecordList(TrialFinalRecordQuery inQuery) + public async Task> GetTrialFinalRecordList(TrialFinalRecordQuery inDto) { var trialFinalRecordQueryable = _trialFinalRecordRepository - .ProjectTo(_mapper.ConfigurationProvider); + .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) + .ProjectTo(_mapper.ConfigurationProvider); - var pageList = await trialFinalRecordQueryable.ToPagedListAsync(inQuery); + var pageList = await trialFinalRecordQueryable.ToPagedListAsync(inDto); return pageList; } diff --git a/IRaCIS.Core.Domain/FileRecord/FileType.cs b/IRaCIS.Core.Domain/FileRecord/FileType.cs index cc31f7e8c..ae48dbd2c 100644 --- a/IRaCIS.Core.Domain/FileRecord/FileType.cs +++ b/IRaCIS.Core.Domain/FileRecord/FileType.cs @@ -127,6 +127,8 @@ public class TrialFileType : BaseFullAuditEntity [Comment("是否确认收入项")] public bool IsConfirmRecord { get; set; } + [Comment("是否授权查看")] + public bool IsAuthorizedView { get; set; } [Comment("首次定稿日期")] public DateOnly FirstFinalDate { get; set; } diff --git a/IRaCIS.Core.Domain/FileRecord/TrialRecord.cs b/IRaCIS.Core.Domain/FileRecord/TrialRecord.cs index 5afd74db1..b82ef7db8 100644 --- a/IRaCIS.Core.Domain/FileRecord/TrialRecord.cs +++ b/IRaCIS.Core.Domain/FileRecord/TrialRecord.cs @@ -12,6 +12,37 @@ namespace IRaCIS.Core.Domain.Models; [Table("TrialFinalRecord")] public class TrialFinalRecord : BaseFullAuditEntity { + + #region 文件 + /// + /// 定稿PDF + /// + [ForeignKey("PDFFileRecordId")] + public TrialFile PDFFileRecord { get; set; } + + /// + /// 定稿Word + /// + [ForeignKey("WordFileRecordId")] + public TrialFile WordFileRecord { get; set; } + + /// + /// 签名页 + /// + [ForeignKey("SignFileRecordId")] + public TrialFile SignFileRecord { get; set; } + + /// + /// 历史记录 + /// + [ForeignKey("HistoryFileRecordId")] + public TrialFile HistoryFileRecord { get; set; } + #endregion + + + + + public Guid TrialId { get; set; } [Comment("关联项目文件类型")] @@ -32,16 +63,16 @@ public class TrialFinalRecord : BaseFullAuditEntity [Comment("定稿PDF")] - public Guid PDFFileRecordId { get; set; } + public Guid? PDFFileRecordId { get; set; } [Comment("定稿Word")] - public Guid WordFileRecordId { get; set; } + public Guid? WordFileRecordId { get; set; } [Comment("签名页")] - public Guid SignFileRecordId { get; set; } + public Guid? SignFileRecordId { get; set; } [Comment("历史记录")] - public Guid HistoryFileRecordId { get; set; } + public Guid? HistoryFileRecordId { get; set; } }