入项记录上传与修改
continuous-integration/drone/push Build is passing Details

Test_IRC_Net8
he 2025-03-13 15:43:53 +08:00
parent 08f1998e61
commit b9bc1f6da0
3 changed files with 67 additions and 5 deletions

View File

@ -32,6 +32,23 @@ public class TrialFileTypeData
public List<TrialFileTypeView> TrialFileTypeList { get; set; }
}
public class GetTrialFileTypeFileInDto
{
public Guid TrialFileTypeId { get; set; }
}
public class UploadTrialFileTypeFileInDto
{
public Guid TrialFileTypeId { get; set; }
/// <summary>
/// 文件
/// </summary>
public TrialFileDto? FileRecord { get; set; }
}
public class SetAuthorizedViewInDto
{
public Guid Id { get; set; }

View File

@ -24,6 +24,8 @@ namespace IRaCIS.Core.Application.Service;
/// <param name="_localizer"></param>
[ApiExplorerSettings(GroupName = "FileRecord")]
public class TrialFileTypeService(IRepository<TrialFileType> _trialFileTypeRepository,
IRepository<TrialFile> _trialFileRepository,
IRepository<SysFileType> _sysFileTypeRepository,
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ITrialFileTypeService
{
@ -83,7 +85,7 @@ public class TrialFileTypeService(IRepository<TrialFileType> _trialFileTypeRepos
if (await _trialFileTypeRepository.AnyAsync(u =>u.TrialId==addOrEditTrialFileType.TrialId&& u.Id != addOrEditTrialFileType.Id && u.IsEnable == addOrEditTrialFileType.IsEnable && (u.Name == addOrEditTrialFileType.Name || u.NameCN == addOrEditTrialFileType.NameCN)))
if (await _trialFileTypeRepository.AnyAsync(u => u.TrialId == addOrEditTrialFileType.TrialId && u.Id != addOrEditTrialFileType.Id && u.IsEnable == addOrEditTrialFileType.IsEnable && (u.Name == addOrEditTrialFileType.Name || u.NameCN == addOrEditTrialFileType.NameCN)))
{
throw new BusinessValidationFailedException(_localizer["TrialFileType_NameRepeat"]);
}
@ -139,9 +141,9 @@ public class TrialFileTypeService(IRepository<TrialFileType> _trialFileTypeRepos
{
TrialId = inDto.TrialId
});
var trialFileTypeList = await _trialFileTypeRepository.Where(x=>x.TrialId==inDto.TrialId)
var trialFileTypeList = await _trialFileTypeRepository.Where(x => x.TrialId == inDto.TrialId)
.WhereIf(inDto.IsEnable, x => x.IsEnable)
.OrderBy(x=>x.ShowOrder)
.OrderBy(x => x.ShowOrder)
.ProjectTo<TrialFileTypeView>(_mapper.ConfigurationProvider)
.ToListAsync();
@ -151,7 +153,7 @@ public class TrialFileTypeService(IRepository<TrialFileType> _trialFileTypeRepos
result.Add(new TrialFileTypeData()
{
ArchiveTypeEnum = type,
TrialFileTypeList = trialFileTypeList.Where(x => x.ArchiveTypeEnum == type).OrderByDescending(x=>x.SysFileTypeId==null).ThenBy(x=>x.ShowOrder).ToList()
TrialFileTypeList = trialFileTypeList.Where(x => x.ArchiveTypeEnum == type).OrderByDescending(x => x.SysFileTypeId == null).ThenBy(x => x.ShowOrder).ToList()
});
}
@ -172,6 +174,48 @@ public class TrialFileTypeService(IRepository<TrialFileType> _trialFileTypeRepos
return ResponseOutput.Ok();
}
/// <summary>
/// 上传同意入项记录
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResponseOutput> UploadTrialFileTypeFile(UploadTrialFileTypeFileInDto inDto)
{
var trialFileType = await _trialFileTypeRepository.Where(x => x.Id == inDto.TrialFileTypeId).FirstNotNullAsync();
if (trialFileType.FileRecordId != null)
{
await _trialFileRepository.BatchDeleteNoTrackingAsync(x => x.Id == trialFileType.FileRecordId);
}
inDto.FileRecord.TrialFileTypeId = inDto.TrialFileTypeId;
var entity = await _trialFileRepository.InsertFromDTOAsync(inDto.FileRecord, true);
await _trialFileTypeRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.TrialFileTypeId, x => new TrialFileType()
{
FileRecordId = entity.Id
});
return ResponseOutput.Ok();
}
/// <summary>
/// 获取入项记录
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<TrialFileDto> GetTrialFileTypeFile(GetTrialFileTypeFileInDto inDto)
{
var trialFileType = await _trialFileTypeRepository.Where(x => x.Id == inDto.TrialFileTypeId).FirstNotNullAsync();
if (trialFileType.FileRecordId == null)
{
return new TrialFileDto() { } ;
}
var file = await _trialFileRepository.Where(x => x.Id == trialFileType.FileRecordId).ProjectTo<TrialFileDto>(_mapper.ConfigurationProvider).FirstNotNullAsync();
return file;
}
}

View File

@ -145,6 +145,7 @@ public class TrialFileType : BaseFullAuditEntity
public int ShowOrder { get; set; }
[Comment("文件Id")]
public Guid? FileRecordId { get; set; }
}