sunpengfei
2025-08-14 57a7538deedd5201f69c431e8d11553b0e14ab81
FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Commands/TaskCheckReceiveCommandHandler.cs
@@ -43,7 +43,10 @@
            if (task == null) throw Oops.Oh(EnumErrorCodeType.s404, "该任务");
            if (task.Status != EnumTaskStatus.Complete) throw Oops.Oh(EnumErrorCodeType.s510, "该任务暂未安排人员");
            if (task.ReleaseStatus != EnumTaskReleaseStatus.InProcess) throw Oops.Oh(EnumErrorCodeType.s510, "该任务已结束");
            if (!(task.BeginTime <= now && now <= task.EndTime)) throw Oops.Oh(EnumErrorCodeType.s510, "该任务已结束");
            if (task.BeginTime > request.Date.Date)
                throw Oops.Oh(EnumErrorCodeType.s510, "该任务未开始");
            if (request.Date.Date > task.EndTime)
                throw Oops.Oh(EnumErrorCodeType.s510, "该任务已结束");
            var taskUser = await repTaskInfoUser.AsQueryable()
                .FirstOrDefaultAsync(it => it.TaskInfoId == task.Id && it.EnterpriseEmployee.UserId == logier.Id, cancellationToken);
            if (taskUser == null) throw Oops.Oh(EnumErrorCodeType.s404, "该报名信息");
@@ -61,7 +64,7 @@
                submit = new TaskInfoUserSubmit
                {
                    TaskInfoUserId = taskUser.Id,
                    Date = now.Date,
                    Date = request.Date,
                    Files = request.Files.Select(it => new TaskInfoUserSubmitFile
                    {
                        File = it
@@ -113,8 +116,6 @@
                .FirstOrDefaultAsync(it => it.Id == taskUser.TaskInfoId && it.EnterpriseId == logier.EnterpriseId, cancellationToken);
            if (task == null) throw Oops.Oh(EnumErrorCodeType.s404, "该任务");
            if (task.Status != EnumTaskStatus.Complete) throw Oops.Oh(EnumErrorCodeType.s510, "该任务暂未安排人员");
            if (task.ReleaseStatus != EnumTaskReleaseStatus.InProcess) throw Oops.Oh(EnumErrorCodeType.s510, "该任务已结束");
            if (!(task.BeginTime <= now && now <= task.EndTime)) throw Oops.Oh(EnumErrorCodeType.s510, "该任务已结束");
            if (request.CheckReceiveStatus != EnumTaskUserSubmitCheckReceiveStatus.Success
                && request.CheckReceiveStatus != EnumTaskUserSubmitCheckReceiveStatus.Fail)
                throw Oops.Oh(EnumErrorCodeType.s400, "请选择正确的验收状态");
@@ -136,7 +137,7 @@
                    || it.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Fail))
                .Select(it => it.Date)
                .ToListAsync();
            taskUserSubmitDates.Add(now.Date);
            taskUserSubmitDates.Add(submit.Date);
            if (dates.All(taskUserSubmitDates.Contains))
            {
                taskUser.CheckReceiveStatus = EnumTaskCheckReceiveStatus.Completed;
@@ -166,18 +167,18 @@
        /// <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);
            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);