| | |
| | | IRepository<TaskInfoUserSubmit> repTaskInfoUserSubmit |
| | | ) : |
| | | IRequestHandler<SubmitCheckReceiveTaskCommand, Guid>, |
| | | IRequestHandler<CheckReceiveTaskCommand, Guid> |
| | | IRequestHandler<CheckReceiveTaskCommand, Guid>, |
| | | IRequestHandler<ExportTaskCheckReceiveTaskUsersCommand, string> |
| | | { |
| | | private readonly IRepository<TaskInfo> repTaskInfo = repTaskInfo; |
| | | private readonly IRepository<TaskInfoUser> repTaskInfoUser = repTaskInfoUser; |
| | |
| | | await repTaskInfoUserSubmit.UpdateAsync(submit); |
| | | return submit.Id; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导出验收记录 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<string> Handle(ExportTaskCheckReceiveTaskUsersCommand request, CancellationToken cancellationToken) |
| | | { |
| | | var models = await repTaskInfoUserSubmit.AsQueryable().AsNoTracking() |
| | | .Where(it => it.TaskInfoUser.TaskInfoId == request.Id) |
| | | .Select(it => new ExportTaskCheckReceiveTaskUsersCommandModel |
| | | { |
| | | UserId = it.TaskInfoUser.EnterpriseEmployee.UserId!.Value, |
| | | Name = it.TaskInfoUser.EnterpriseEmployee.User.Name, |
| | | Identity = it.TaskInfoUser.EnterpriseEmployee.User.Identity, |
| | | ContactPhoneNumber = it.TaskInfoUser.EnterpriseEmployee.User.ContactPhoneNumber, |
| | | CheckReceiveStatus = it.CheckReceiveStatus, |
| | | CheckReceiveTime = it.CheckReceiveTime, |
| | | Bank = "123", |
| | | Code = "456" |
| | | }) |
| | | .ToListAsync(cancellationToken); |
| | | if (models.IsNotNull()) |
| | | { |
| | | var userIds = models.DistinctSelect(it => it.UserId); |
| | | var bankCards = await repTaskInfoUserSubmit.Change<UserBankCard>().AsQueryable().AsNoTracking() |
| | | .Where(it => userIds.Contains(it.UserId)) |
| | | .Select(it => new |
| | | { |
| | | it.UserId, |
| | | it.Bank, |
| | | it.Code |
| | | }) |
| | | .ToListAsync(cancellationToken); |
| | | foreach (var model in models) |
| | | { |
| | | var bankCard = bankCards.FirstOrDefault(it => it.UserId == model.UserId); |
| | | model.Bank = bankCard?.Bank; |
| | | model.Code = bankCard?.Code; |
| | | } |
| | | } |
| | | |
| | | var url = await models.ExportExcelToOSS("TaskCheckReceive/Export", "验收记录.xlsx"); |
| | | url = AliyunOSSUtils.GetUrl(url); |
| | | return url; |
| | | } |
| | | } |
| | | } |