工作台,增加我的已签署系统、项目文件

IRC_NewDev
hang 2024-03-11 15:36:43 +08:00
parent cc8151caf8
commit 21cc610095
3 changed files with 72 additions and 9 deletions

View File

@ -101,6 +101,8 @@ namespace IRaCIS.Core.Application.Contracts
public string Name { get; set; } = string.Empty; public string Name { get; set; } = string.Empty;
public bool IsSigned { get; set; }
} }
@ -113,6 +115,21 @@ namespace IRaCIS.Core.Application.Contracts
public string SortField { get; set; } = ""; public string SortField { get; set; } = "";
} }
public class TrialDocQuery : PageInput
{
public Guid? TrialId { get; set; }
public Guid? FileTypeId { get; set; }
public string TrialCode { get; set;} = string.Empty;
public string Name { get; set; } = string.Empty;
public bool IsSigned { get; set; }
}
public class TrialUserDocUnionQuery: PageInput public class TrialUserDocUnionQuery: PageInput
{ {
[NotDefault] [NotDefault]

View File

@ -183,7 +183,9 @@ namespace IRaCIS.Core.Application.Services
UserTypeShortName = user.UserTypeRole.UserTypeShortName UserTypeShortName = user.UserTypeRole.UserTypeShortName
}; };
return await query.Where(t=>t.ConfirmTime==null).ToPagedListAsync(querySystemDocument.PageIndex, querySystemDocument.PageSize, querySystemDocument.SortField, querySystemDocument.Asc); return await query.WhereIf(querySystemDocument.IsSigned==true,t=>t.ConfirmTime!=null)
.WhereIf(querySystemDocument.IsSigned == false, t => t.ConfirmTime == null)
.ToPagedListAsync(querySystemDocument.PageIndex, querySystemDocument.PageSize, querySystemDocument.SortField, querySystemDocument.Asc);

View File

@ -67,6 +67,50 @@ namespace IRaCIS.Core.Application.Services
} }
public async Task<PageOutput<UnionDocumentWithConfirmInfoView>> GetTrialSignDocumentList(TrialDocQuery querySystemDocument)
{
var trialDocQueryable = from trialDoc in _trialDocumentRepository.AsQueryable(true).Where(t => t.TrialId == querySystemDocument.TrialId)
.Where(t => t.NeedConfirmedUserTypeList.Any(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId))
.Where(t => t.IsDeleted == false || (t.IsDeleted == true && t.TrialDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.Id)))
join trialUser in _repository.Where<TrialUser>(t => t.TrialId == querySystemDocument.TrialId && t.UserId == _userInfo.Id) on trialDoc.TrialId equals trialUser.TrialId
join confirm in _repository.Where<TrialDocConfirmedUser>(t => t.TrialDocument.TrialId == querySystemDocument.TrialId) on
new { trialUser.UserId, TrialDocumentId = trialDoc.Id } equals new { UserId = confirm.ConfirmUserId, confirm.TrialDocumentId } into cc
from confirm in cc.DefaultIfEmpty()
select new UnionDocumentWithConfirmInfoView()
{
Id = trialDoc.Id,
IsSystemDoc = false,
CreateTime = trialDoc.CreateTime,
FullFilePath = trialDoc.Path,
IsDeleted = trialDoc.IsDeleted,
Name = trialDoc.Name,
Path = trialDoc.Path,
FileTypeId = trialDoc.FileTypeId,
FileType = _userInfo.IsEn_Us ? trialDoc.FileType.Value : trialDoc.FileType.ValueCN,
UpdateTime = trialDoc.UpdateTime,
SignViewMinimumMinutes = trialDoc.SignViewMinimumMinutes,
//IsConfirmed = confirm.ConfirmTime != null,
ConfirmUserId = confirm.ConfirmUserId,
ConfirmTime = confirm.ConfirmTime,
RealName = trialUser.User.FullName,
UserName = trialUser.User.UserName,
UserTypeId = trialUser.User.UserTypeId,
UserTypeShortName = trialUser.User.UserTypeRole.UserTypeShortName
};
trialDocQueryable = trialDocQueryable.WhereIf(!string.IsNullOrEmpty(querySystemDocument.Name), t => t.Name.Contains(querySystemDocument.Name))
.WhereIf(querySystemDocument.FileTypeId != null, t => t.FileTypeId == querySystemDocument.FileTypeId)
.WhereIf(querySystemDocument.IsSigned == true, t => t.ConfirmTime != null)
.WhereIf(querySystemDocument.IsSigned == false, t => t.ConfirmTime == null);
return await trialDocQueryable.ToPagedListAsync(querySystemDocument.PageIndex, querySystemDocument.PageSize, querySystemDocument.SortField, querySystemDocument.Asc);
}
/// <summary> /// <summary>
/// 获取下一个未签名的文件 /// 获取下一个未签名的文件
/// </summary> /// </summary>