sunpengfei
2025-08-14 9ead841625fd9cfd9dcc4098f97277dacf064882
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,31 @@
            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
                {
                    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);
            var url = await models.ExportExcelToOSS("TaskCheckReceive/Export", "验收记录.xlsx");
            url = AliyunOSSUtils.GetUrl(url);
            return url;
        }
    }
}