From 1739dcfa7aac73080ac252176df2dac9d138a538 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 14 八月 2025 10:01:40 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Commands/TaskCheckReceiveCommandHandler.cs | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 47 insertions(+), 1 deletions(-) diff --git a/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Commands/TaskCheckReceiveCommandHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Commands/TaskCheckReceiveCommandHandler.cs index 6e849f1..71488d2 100644 --- a/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Commands/TaskCheckReceiveCommandHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Commands/TaskCheckReceiveCommandHandler.cs @@ -20,7 +20,8 @@ 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; @@ -47,7 +48,9 @@ .FirstOrDefaultAsync(it => it.TaskInfoId == task.Id && it.EnterpriseEmployee.UserId == logier.Id, cancellationToken); if (taskUser == null) throw Oops.Oh(EnumErrorCodeType.s404, "璇ユ姤鍚嶄俊鎭�"); if (taskUser.ArrangeStatus == EnumTaskUserArrangeStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s510, "鏆傛湭瀹夋帓璇ヤ换鍔�"); + task.CheckReceiveStatus = EnumTaskCheckReceiveStatus.WaitCheckReceive; task.LastSubmitTime = now; + taskUser.CheckReceiveStatus = EnumTaskCheckReceiveStatus.WaitCheckReceive; taskUser.LastSubmitTime = now; var submit = await repTaskInfoUserSubmit.AsQueryable() .Include(it => it.Files) @@ -152,5 +155,48 @@ 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, + }) + .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"); + return url; + } } } -- Gitblit v1.9.1