Uat_Study
he 2022-04-19 18:14:28 +08:00
parent 2d63fbb9c6
commit a5e0e0266e
1 changed files with 43 additions and 30 deletions

View File

@ -47,6 +47,7 @@ namespace IRaCIS.Core.Infra.EFCore
{ {
var entity = _mapper.Map<TEntity>(from); var entity = _mapper.Map<TEntity>(from);
if (entity.Id == Guid.Empty) if (entity.Id == Guid.Empty)
{ {
return await InsertFromDTOAsync(from, autoSave, verify); return await InsertFromDTOAsync(from, autoSave, verify);
@ -217,7 +218,7 @@ namespace IRaCIS.Core.Infra.EFCore
{ {
#region 项目名称 #region 项目名称
var trialdata = await _dbContext.Trial.FirstOrDefaultAsync(x => x.Id == Data.TrialId); var trialdata = await _dbContext.Trial.Select(x=>new { x.Id, x.ResearchProgramNo, x.ExperimentName, }).FirstOrDefaultAsync(x => x.Id == Data.TrialId);
Data.ResearchProgramNo = trialdata?.ResearchProgramNo; Data.ResearchProgramNo = trialdata?.ResearchProgramNo;
if (IsNullOrEmpty(Data.TrialName)) if (IsNullOrEmpty(Data.TrialName))
{ {
@ -230,10 +231,11 @@ namespace IRaCIS.Core.Infra.EFCore
Data.SiteCode = (await _dbContext.TrialSite.IgnoreQueryFilters().FirstOrDefaultAsync(x => x.TrialId == Data.TrialId && x.SiteId == Data.SiteId))?.TrialSiteCode; Data.SiteCode = (await _dbContext.TrialSite.IgnoreQueryFilters().FirstOrDefaultAsync(x => x.TrialId == Data.TrialId && x.SiteId == Data.SiteId))?.TrialSiteCode;
var sitedata = await _dbContext.Site.FirstOrDefaultAsync(x => x.Id == Data.SiteId);
if (IsNullOrEmpty(Data.SiteName))
if (IsNullOrEmpty(Data.SiteName)&& Data.SiteId!=null)
{ {
var sitedata = await _dbContext.Site.Where(x => x.Id == Data.SiteId).Select(x=>new { x.SiteName}).FirstOrDefaultAsync();
Data.SiteName = sitedata?.SiteName; Data.SiteName = sitedata?.SiteName;
} }
#endregion #endregion
@ -241,47 +243,58 @@ namespace IRaCIS.Core.Infra.EFCore
#region 受试者 #region 受试者
if (IsNullOrEmpty(Data.SubjectCode)) if (IsNullOrEmpty(Data.SubjectCode) && Data.SubjectId != null)
{ {
Data.SubjectCode = (await _dbContext.Subject.FirstOrDefaultAsync(x => x.Id == Data.SubjectId))?.Code; Data.SubjectCode = (await _dbContext.Subject.Where(x => x.Id == Data.SubjectId).Select(x=>new {x.Code }).FirstOrDefaultAsync())?.Code;
} }
#endregion #endregion
#region 访视 #region 访视
if (IsNullOrEmpty(Data.SubjectVisitName)) if (IsNullOrEmpty(Data.SubjectVisitName))
{ {
Data.SubjectVisitName = (await _dbContext.SubjectVisit.FirstOrDefaultAsync(x => x.Id == Data.SubjectVisitId))?.VisitName; Data.SubjectVisitName = (await _dbContext.SubjectVisit.Where(x => x.Id == Data.SubjectVisitId).Select(x=>new { x.VisitName}).FirstOrDefaultAsync())?.VisitName;
} }
#endregion #endregion
#region 创建者 #region 创建者
if (IsNullOrEmpty(Data.CreateUserName) || IsNullOrEmpty(Data.RoleName))
if (IsNullOrEmpty(Data.CreateUserName))
{ {
var userdata = await _dbContext.Users.AsQueryable().Where(x => x.Id == Data.CreateUserId).GroupJoin(_dbContext.UserType.AsQueryable(), a => a.UserTypeId, b => b.Id, (a, b) => new Data.CreateUserName = _userInfo.RealName;
{
UserName = a.FirstName + a.LastName,
Role = b
}).SelectMany(a => a.Role, (m, n) => new
{
UserName = m.UserName,
RoleName = n.UserTypeShortName
}).FirstOrDefaultAsync();
if (userdata != null)
{
if (IsNullOrEmpty(Data.CreateUserName))
{
Data.CreateUserName = userdata?.UserName;
}
if (IsNullOrEmpty(Data.RoleName))
{
Data.RoleName = userdata?.RoleName;
}
}
} }
if (IsNullOrEmpty(Data.RoleName))
{
Data.RoleName = _userInfo.UserTypeShortName;
}
//if (IsNullOrEmpty(Data.CreateUserName) || IsNullOrEmpty(Data.RoleName))
//{
// var userdata = await _dbContext.Users.AsQueryable().Where(x => x.Id == Data.CreateUserId).GroupJoin(_dbContext.UserType.AsQueryable(), a => a.UserTypeId, b => b.Id, (a, b) => new
// {
// UserName = a.FirstName + a.LastName,
// Role = b
// }).SelectMany(a => a.Role, (m, n) => new
// {
// UserName = m.UserName,
// RoleName = n.UserTypeShortName
// }).FirstOrDefaultAsync();
// if (userdata != null)
// {
// if (IsNullOrEmpty(Data.CreateUserName))
// {
// Data.CreateUserName = userdata?.UserName;
// }
// if (IsNullOrEmpty(Data.RoleName))
// {
// Data.RoleName = userdata?.RoleName;
// }
// }
//}
#endregion #endregion
#region 取操作类型 #region 取操作类型