合并
continuous-integration/drone/push Build is running

This commit is contained in:
he
2025-02-24 13:44:57 +08:00
8 changed files with 156 additions and 44 deletions
@@ -7,15 +7,17 @@
using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Reflection.Metadata;
namespace IRaCIS.Core.Application.ViewModel;
public class TrialFileTypeView : TrialFileTypeAddOrEdit
{
public DateTime CreateTime { get; set; }
public DateTime UpdateTime { get; set; }
}
public class CopySystemFileTypeToTrialInDto
@@ -23,54 +25,79 @@ public class CopySystemFileTypeToTrialInDto
public Guid TrialId { get; set; }
}
public class TrialFileTypeSelectView
{
public Guid Id { get; set; }
public string Name { get; set; }
public bool IsEnable { get; set; }
public bool IsSelfDefine { get; set; }
public ArchiveType ArchiveTypeEnum { get; set; }
}
public class TrialFileTypeAddOrEdit
{
public Guid? Id { get; set; }
public ArchiveType ArchiveTypeEnum { get; set; }
public DateOnly FirstFinalDate { get; set; }
public bool IsConfirmRecord { get; set; }
public bool IsEnable { get; set; }
public bool IsSelfDefine { get; set; }
public string Name { get; set; }
public string NameCN { get; set; }
public SubIdentification SubIdentificationEnum { get; set; }
public Guid? SysFileTypeId { get; set; }
public Guid TrialId { get; set; }
}
}
public class TrialFileTypeQuery : PageInput
{
public ArchiveType? ArchiveTypeEnum { get; set; }
public DateOnly? FirstFinalDate { get; set; }
public bool? IsConfirmRecord { get; set; }
public bool? IsEnable { get; set; }
public bool? IsSelfDefine { get; set; }
public string? Name { get; set; }
public string? NameCN { get; set; }
public SubIdentification? SubIdentificationEnum { get; set; }
public Guid? SysFileTypeId { get; set; }
public Guid? TrialId { get; set; }
}
[NotDefault]
public Guid TrialId { get; set; }
}
public class TrialFileTypeSelectQuery
{
[NotDefault]
public Guid TrialId { get; set; }
public bool? IsEnable { get; set; }
public bool? IsSelfDefine { get; set; }
public ArchiveType? ArchiveTypeEnum { get; set; }
}
@@ -22,7 +22,7 @@ namespace IRaCIS.Core.Application.Service;
/// <param name="_localizer"></param>
[ApiExplorerSettings(GroupName = "FileRecord")]
public class SysFileTypeService(IRepository<SysFileType> _sysFileTypeRepository,
public class SysFileTypeService(IRepository<SysFileType> _sysFileTypeRepository, IRepository<TrialFileType> _trialFileTypeRepository,
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ISysFileTypeService
{
@@ -32,7 +32,13 @@ public class SysFileTypeService(IRepository<SysFileType> _sysFileTypeRepository,
{
var sysFileTypeQueryable = _sysFileTypeRepository
.ProjectTo<SysFileTypeView>(_mapper.ConfigurationProvider);
.WhereIf(inQuery.ArchiveTypeEnum != null, t => t.ArchiveTypeEnum == inQuery.ArchiveTypeEnum)
.WhereIf(inQuery.IsConfirmRecord != null, t => t.IsConfirmRecord == inQuery.IsConfirmRecord)
.WhereIf(inQuery.SubIdentification != null, t => t.SubIdentification == inQuery.SubIdentification)
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)
.WhereIf(inQuery.Name.IsNotNullOrEmpty(), t => t.Name.Contains(inQuery.Name))
.WhereIf(inQuery.NameCN.IsNotNullOrEmpty(), t => t.NameCN.Contains(inQuery.NameCN))
.ProjectTo<SysFileTypeView>(_mapper.ConfigurationProvider);
var pageList = await sysFileTypeQueryable.ToPagedListAsync(inQuery);
@@ -43,8 +49,23 @@ public class SysFileTypeService(IRepository<SysFileType> _sysFileTypeRepository,
public async Task<IResponseOutput> AddOrUpdateSysFileType(SysFileTypeAddOrEdit addOrEditSysFileType)
{
var verifyExp = new EntityVerifyExp<SysFileType>()
{
VerifyExp = u => u.IsEnable == addOrEditSysFileType.IsEnable && (u.Name == addOrEditSysFileType.Name || u.NameCN == addOrEditSysFileType.NameCN),
var entity = await _sysFileTypeRepository.InsertOrUpdateAsync(addOrEditSysFileType, true);
// "当前类型启用的文件类型名称重复"
VerifyMsg = _localizer["SysFileType_NameRepeat"],
IsVerify = addOrEditSysFileType.IsEnable == false
};
var entity = await _sysFileTypeRepository.InsertOrUpdateAsync(addOrEditSysFileType, true, verifyExp);
//启用的才进行更新
if (addOrEditSysFileType.Id != null && addOrEditSysFileType.IsEnable)
{
await _trialFileTypeRepository.BatchUpdateNoTrackingAsync(t => t.SysFileTypeId == addOrEditSysFileType.Id, u => new TrialFileType() { Name = addOrEditSysFileType.Name, NameCN = addOrEditSysFileType.NameCN, });
}
return ResponseOutput.Ok(entity.Id.ToString());
@@ -32,22 +32,65 @@ public class TrialFileTypeService(IRepository<TrialFileType> _trialFileTypeRepos
{
var trialFileTypeQueryable = _trialFileTypeRepository
.ProjectTo<TrialFileTypeView>(_mapper.ConfigurationProvider);
.Where(t => t.TrialId == inQuery.TrialId)
.WhereIf(inQuery.ArchiveTypeEnum != null, t => t.ArchiveTypeEnum == inQuery.ArchiveTypeEnum)
.WhereIf(inQuery.IsConfirmRecord != null, t => t.IsConfirmRecord == inQuery.IsConfirmRecord)
.WhereIf(inQuery.SubIdentification != null, t => t.SubIdentification == inQuery.SubIdentification)
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)
.WhereIf(inQuery.Name.IsNotNullOrEmpty(), t => t.Name.Contains(inQuery.Name))
.WhereIf(inQuery.NameCN.IsNotNullOrEmpty(), t => t.NameCN.Contains(inQuery.NameCN))
.WhereIf(inQuery.IsSelfDefine != null, t => t.IsSelfDefine == inQuery.IsSelfDefine)
.ProjectTo<TrialFileTypeView>(_mapper.ConfigurationProvider);
var pageList = await trialFileTypeQueryable.ToPagedListAsync(inQuery);
return pageList;
}
/// <summary>
/// 获取项目文件类型下拉框
/// </summary>
/// <param name="inQuery"></param>
/// <returns></returns>
public async Task<List<TrialFileTypeSelectView>> GetTrialFileTypeSelectList(TrialFileTypeSelectQuery inQuery)
{
var list = _trialFileTypeRepository
.Where(t => t.TrialId == inQuery.TrialId)
.WhereIf(inQuery.ArchiveTypeEnum != null, t => t.ArchiveTypeEnum == inQuery.ArchiveTypeEnum)
.WhereIf(inQuery.IsSelfDefine != null, t => t.IsSelfDefine == inQuery.IsSelfDefine)
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)
.Select(t => new TrialFileTypeSelectView()
{
Id = t.Id,
IsEnable = t.IsEnable,
Name = _userInfo.IsEn_Us ? t.Name : t.NameCN,
IsSelfDefine = t.IsSelfDefine,
ArchiveTypeEnum = t.ArchiveTypeEnum,
}).ToList();
return list;
}
public async Task<IResponseOutput> AddOrUpdateTrialFileType(TrialFileTypeAddOrEdit addOrEditTrialFileType)
{
// 在此处拷贝automapper 映射
var verifyExp = new EntityVerifyExp<TrialFileType>()
{
VerifyExp = u => u.IsEnable == addOrEditTrialFileType.IsEnable && (u.Name == addOrEditTrialFileType.Name || u.NameCN == addOrEditTrialFileType.NameCN),
// "当前类型启用的文件类型名称重复"
VerifyMsg = _localizer["TrialFileType_NameRepeat"],
IsVerify = addOrEditTrialFileType.IsEnable == false
};
var entity = await _trialFileTypeRepository.InsertOrUpdateAsync(addOrEditTrialFileType, true, verifyExp);
var entity = await _trialFileTypeRepository.InsertOrUpdateAsync(addOrEditTrialFileType, true);
return ResponseOutput.Ok(entity.Id.ToString());