清理签名文档的表
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
7153d810aa
commit
c8091d3215
|
@ -13239,35 +13239,6 @@
|
|||
<param name="_readingConsistentClinicalDataRepository"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.TestService.OldTrialDeleteUser(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialIdentityUser},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialUserRole})">
|
||||
<summary>
|
||||
项目退出历史数据维护
|
||||
</summary>
|
||||
<param name="_trialIdentityUserRepository"></param>
|
||||
<param name="_trialUserRoleReposiotry"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.TestService.UserMutiAccount(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.IdentityUser},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserPassWordLog})">
|
||||
<summary>
|
||||
用户多账号,初次维护数据
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.TestService.UserTrialUser(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialIdentityUser},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialUserRole})">
|
||||
<summary>
|
||||
项目用户 维护数据
|
||||
</summary>
|
||||
<param name="_trialIdentityUserRepository"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.TestService.ExternalTrialUser(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialSiteUserSurvey},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.TrialExternalUser},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.UserRole})">
|
||||
<summary>
|
||||
外部人员 中心调研人员维护
|
||||
</summary>
|
||||
<param name="_trialIdentityUserRepository"></param>
|
||||
<param name="_trialUserRoleReposiotry"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.TestService.ModifyClinicalDataTable">
|
||||
<summary>
|
||||
维护临床数据 --一定要在同步表前同步数据才行
|
||||
|
|
|
@ -154,212 +154,10 @@ namespace IRaCIS.Core.Application.Service
|
|||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 项目退出历史数据维护
|
||||
/// </summary>
|
||||
/// <param name="_trialIdentityUserRepository"></param>
|
||||
/// <param name="_trialUserRoleReposiotry"></param>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
public async Task<IResponseOutput> OldTrialDeleteUser([FromServices] IRepository<TrialIdentityUser> _trialIdentityUserRepository, [FromServices] IRepository<TrialUserRole> _trialUserRoleReposiotry)
|
||||
{
|
||||
_userInfo.IsNotNeedInspection = true;
|
||||
|
||||
|
||||
if (_trialUserRoleReposiotry.Any(t => t.TrialUserId == Guid.Empty))
|
||||
{
|
||||
var list = _trialUserRoleReposiotry.Where(t => t.IsDeleted == true && t.TrialUserId == Guid.Empty, false, true).Select(t => new { t.TrialId, t.UserRole.IdentityUserId, t.UserId, t.JoinTime, t.RemoveTime, t.DeletedTime, t.DeleteUserId, t.CreateUserId }).ToList();
|
||||
|
||||
|
||||
foreach (var item in list.GroupBy(t => new { t.IdentityUserId, t.TrialId }))
|
||||
{
|
||||
|
||||
var id = NewId.NextSequentialGuid();
|
||||
|
||||
var userRoleList = item.ToList();
|
||||
|
||||
var userIdList = item.Select(t => t.UserId).ToList();
|
||||
|
||||
var first = userRoleList.OrderByDescending(t => t.RemoveTime).FirstOrDefault();
|
||||
|
||||
|
||||
//判断在项目中是否存在
|
||||
|
||||
var find = _trialIdentityUserRepository.Where(t => t.IdentityUserId == first.IdentityUserId && t.TrialId == first.TrialId).FirstOrDefault();
|
||||
|
||||
if (find == null)
|
||||
{
|
||||
await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser()
|
||||
{
|
||||
Id = id,
|
||||
IdentityUserId = item.Key.IdentityUserId,
|
||||
TrialId = item.Key.TrialId,
|
||||
RemoveTime = first.RemoveTime,
|
||||
IsDeleted = true,
|
||||
DeletedTime = first.DeletedTime,
|
||||
DeleteUserId = first.DeleteUserId,
|
||||
|
||||
});
|
||||
|
||||
|
||||
await _trialUserRoleReposiotry.BatchUpdateNoTrackingAsync(t => t.TrialId == item.Key.TrialId && userIdList.Contains(t.UserId), u => new TrialUserRole() { TrialUserId = id, UpdateTime = (DateTime)first.DeletedTime });
|
||||
}
|
||||
else
|
||||
{
|
||||
await _trialUserRoleReposiotry.BatchUpdateNoTrackingAsync(t => t.TrialId == item.Key.TrialId && userIdList.Contains(t.UserId), u => new TrialUserRole() { TrialUserId = find.Id, UpdateTime = (DateTime)first.DeletedTime });
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
await _trialIdentityUserRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户多账号,初次维护数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
public async Task<IResponseOutput> UserMutiAccount([FromServices] IRepository<IdentityUser> _identityUserRepository, [FromServices] IRepository<UserPassWordLog> _userPasswordLogRepository)
|
||||
{
|
||||
|
||||
if ((await _identityUserRepository.FirstOrDefaultAsync()) == null)
|
||||
{
|
||||
var userList = _userRoleRepository.Where().ToList();
|
||||
|
||||
foreach (var item in userList.GroupBy(t => t.EMail.Trim().ToLower()))
|
||||
{
|
||||
var emailUserIdList = item.Select(t => t.Id).ToList();
|
||||
|
||||
var identityUserId = NewId.NextSequentialGuid();
|
||||
|
||||
var selectUser = item.OrderBy(t => t.CreateTime).FirstOrDefault();
|
||||
|
||||
var identityUser = _mapper.Map<IdentityUser>(selectUser);
|
||||
|
||||
if (identityUser.IsFirstAdd)
|
||||
{
|
||||
identityUser.UserName = "";
|
||||
}
|
||||
|
||||
identityUser.Id = identityUserId;
|
||||
|
||||
await _identityUserRepository.AddAsync(identityUser);
|
||||
|
||||
await _userRoleRepository.BatchUpdateNoTrackingAsync(t => emailUserIdList.Contains(t.Id), u => new UserRole() { IdentityUserId = identityUserId });
|
||||
|
||||
if (emailUserIdList.Count == 1)
|
||||
{
|
||||
var userRoleId = emailUserIdList.First();
|
||||
|
||||
await _userPasswordLogRepository.BatchUpdateNoTrackingAsync(t => t.UserId == userRoleId, u => new UserPassWordLog() { IdentityUserId = identityUserId });
|
||||
}
|
||||
}
|
||||
|
||||
await _identityUserRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
// UPDATE[User]
|
||||
//SET
|
||||
// UserName = IdentityUser.UserName,
|
||||
// FirstName = IdentityUser.FirstName,
|
||||
//LastName = IdentityUser.LastName,
|
||||
// EMail = IdentityUser.EMail
|
||||
//FROM[User]
|
||||
//INNER JOIN IdentityUser
|
||||
//ON[User].IdentityUserId = IdentityUser.Id
|
||||
|
||||
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 项目用户 维护数据
|
||||
/// </summary>
|
||||
/// <param name="_trialIdentityUserRepository"></param>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
public async Task<IResponseOutput> UserTrialUser([FromServices] IRepository<TrialIdentityUser> _trialIdentityUserRepository, [FromServices] IRepository<TrialUserRole> _trialUserRoleReposiotry)
|
||||
{
|
||||
_userInfo.IsNotNeedInspection = true;
|
||||
|
||||
|
||||
if ((await _trialIdentityUserRepository.FirstOrDefaultAsync()) == null)
|
||||
{
|
||||
var list = _trialUserRoleReposiotry.Where().Select(t => new { t.TrialId, t.UserRole.IdentityUserId, t.UserId, t.JoinTime, t.RemoveTime }).ToList();
|
||||
|
||||
|
||||
foreach (var item in list.GroupBy(t => new { t.IdentityUserId, t.TrialId }))
|
||||
{
|
||||
|
||||
var id = NewId.NextSequentialGuid();
|
||||
|
||||
var userRoleList = item.ToList();
|
||||
|
||||
var userIdList = item.Select(t => t.UserId).ToList();
|
||||
|
||||
var first = userRoleList.First();
|
||||
|
||||
var haveJoin = userRoleList.Any(t => t.JoinTime != null);
|
||||
|
||||
if (haveJoin)
|
||||
{
|
||||
await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser() { Id = id, IdentityUserId = item.Key.IdentityUserId, TrialId = item.Key.TrialId, JoinTime = userRoleList.Min(t => t.JoinTime) });
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser() { Id = id, IdentityUserId = item.Key.IdentityUserId, TrialId = item.Key.TrialId, RemoveTime = userRoleList.Max(t => t.RemoveTime) });
|
||||
}
|
||||
|
||||
await _trialUserRoleReposiotry.BatchUpdateNoTrackingAsync(t => t.TrialId == item.Key.TrialId && userIdList.Contains(t.UserId), u => new TrialUserRole() { TrialUserId = id });
|
||||
|
||||
}
|
||||
|
||||
await _trialIdentityUserRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 外部人员 中心调研人员维护
|
||||
/// </summary>
|
||||
/// <param name="_trialIdentityUserRepository"></param>
|
||||
/// <param name="_trialUserRoleReposiotry"></param>
|
||||
/// <returns></returns>
|
||||
[AllowAnonymous]
|
||||
[UnitOfWork]
|
||||
public async Task<IResponseOutput> ExternalTrialUser(
|
||||
[FromServices] IRepository<TrialSiteUserSurvey> _trialSiteUserSurveyRepository,
|
||||
[FromServices] IRepository<TrialExternalUser> _trialExternalUserReposiotry,
|
||||
[FromServices] IRepository<UserRole> _userRoleRepository)
|
||||
{
|
||||
var list = _userRoleRepository.Select(t => new { t.Id, t.IdentityUserId }).ToList();
|
||||
|
||||
foreach (var item in list.GroupBy(t => t.IdentityUserId))
|
||||
{
|
||||
var userRoleIdList = item.Select(t => t.Id).ToList();
|
||||
|
||||
var identityUserId = item.Key;
|
||||
|
||||
await _trialSiteUserSurveyRepository.BatchUpdateNoTrackingAsync(t => userRoleIdList.Contains(t.SystemUserId.Value), u => new TrialSiteUserSurvey() { SystemUserId = identityUserId });
|
||||
|
||||
await _trialExternalUserReposiotry.BatchUpdateNoTrackingAsync(t => userRoleIdList.Contains(t.SystemUserId), u => new TrialExternalUser() { SystemUserId = identityUserId });
|
||||
|
||||
}
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
|
||||
[LowerCamelCaseJson]
|
||||
|
|
|
@ -1,30 +1,5 @@
|
|||
namespace IRaCIS.Core.Domain.Models;
|
||||
|
||||
[Comment("后台 - 系统文档签署记录")]
|
||||
[Table("SystemDocConfirmedUser")]
|
||||
public class SystemDocConfirmedUser : BaseAddDeleteAuditEntity
|
||||
|
||||
{
|
||||
#region 导航属性
|
||||
[JsonIgnore]
|
||||
public SystemDocument SystemDocument { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
[ForeignKey("ConfirmUserId")]
|
||||
public UserRole ConfirmUser { get; set; }
|
||||
#endregion
|
||||
public Guid SystemDocumentId { get; set; }
|
||||
|
||||
public DateTime? ConfirmTime { get; set; }
|
||||
public Guid ConfirmUserId { get; set; }
|
||||
|
||||
public DateTime? SignFirstViewTime { get; set; }
|
||||
|
||||
[StringLength(1000)]
|
||||
public string SignText { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
[Comment("后台 - 系统文档签署记录")]
|
||||
|
|
|
@ -1,26 +1,5 @@
|
|||
namespace IRaCIS.Core.Domain.Models;
|
||||
|
||||
[Comment("项目 - 项目文档签署记录")]
|
||||
[Table("TrialDocConfirmedUser")]
|
||||
public class TrialDocConfirmedUser : BaseAddDeleteAuditEntity
|
||||
{
|
||||
#region 导航属性
|
||||
|
||||
[JsonIgnore]
|
||||
[ForeignKey("ConfirmUserId")]
|
||||
public UserRole User { get; set; }
|
||||
[JsonIgnore]
|
||||
public TrialDocument TrialDocument { get; set; }
|
||||
#endregion
|
||||
public Guid TrialDocumentId { get; set; }
|
||||
public DateTime? ConfirmTime { get; set; }
|
||||
public Guid ConfirmUserId { get; set; }
|
||||
public DateTime? SignFirstViewTime { get; set; }
|
||||
|
||||
[StringLength(1000)]
|
||||
public string SignText { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
|
||||
public class TrialDocConfirmedIdentityUser : BaseAddDeleteAuditEntity
|
||||
{
|
||||
|
|
|
@ -27,11 +27,6 @@ public class TrialUserRole : BaseFullDeleteAuditEntity
|
|||
|
||||
public Guid TrialUserId { get; set; }
|
||||
|
||||
#region 下个版本删除
|
||||
public DateTime? RemoveTime { get; set; }
|
||||
|
||||
public DateTime? JoinTime { get; set; }
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -852,11 +852,11 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
|
||||
|
||||
// 系统文件签署 父层级未记录稽查(系统文档初始数据)
|
||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(SystemDocConfirmedUser)))
|
||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(SystemDocConfirmedIdentityUser)))
|
||||
{
|
||||
var type = GetEntityAuditOpt(item);
|
||||
|
||||
var entity = item.Entity as SystemDocConfirmedUser;
|
||||
var entity = item.Entity as SystemDocConfirmedIdentityUser;
|
||||
|
||||
var extraIdentification = string.Empty;
|
||||
|
||||
|
@ -875,7 +875,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
|
||||
|
||||
var systemDocument = await _dbContext.SystemDocument.Where(x => x.Id == entity.SystemDocumentId).FirstOrDefaultAsync();
|
||||
await InsertInspection<SystemDocConfirmedUser>(entity, type, x => new InspectionConvertDTO()
|
||||
await InsertInspection<SystemDocConfirmedIdentityUser>(entity, type, x => new InspectionConvertDTO()
|
||||
{
|
||||
GeneralId = x.Id,
|
||||
ExtraIndentification = extraIdentification,
|
||||
|
@ -3850,10 +3850,10 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
var entityTypeName = entityObj.GetType().Name;
|
||||
|
||||
//文档签署这块,不区分系统和项目的 需要处理为同一个标识
|
||||
if (typeof(T) == typeof(TrialDocConfirmedUser) || typeof(T) == typeof(SystemDocConfirmedUser))
|
||||
{
|
||||
entityTypeName = "New/" + "UserSigned";
|
||||
}
|
||||
//if (typeof(T) == typeof(TrialDocConfirmedUser) || typeof(T) == typeof(SystemDocConfirmedUser))
|
||||
//{
|
||||
// entityTypeName = "New/" + "UserSigned";
|
||||
//}
|
||||
|
||||
//默认规则
|
||||
if (IsDistinctionInterface)
|
||||
|
|
|
@ -639,8 +639,6 @@ public class IRaCISDBContext : DbContext
|
|||
|
||||
public virtual DbSet<TrialDocConfirmedIdentityUser> TrialDocConfirmedIdentityUser { get; set; }
|
||||
|
||||
//public virtual DbSet<TrialDocConfirmedUser> TrialDocConfirmedUser { get; set; }
|
||||
//public virtual DbSet<SystemDocConfirmedUser> SystemDocConfirmedUser { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue