sunpengfei
2025-08-14 e057ae677549a83cc8c502bfe4f835cf6991d653
FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Commands/TaskCheckReceiveCommandHandler.cs
@@ -41,13 +41,15 @@
            var task = await repTaskInfo.AsQueryable()
                .FirstOrDefaultAsync(it => it.Id == request.TaskInfoId, cancellationToken);
            if (task == null) throw Oops.Oh(EnumErrorCodeType.s404, "该任务");
            if (task.Status == EnumTaskStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s510, "该任务暂未安排人员");
            if (task.ReleaseStatus == EnumTaskReleaseStatus.Stopped) throw Oops.Oh(EnumErrorCodeType.s510, "该任务已结束");
            if (!(task.BeginTime <= now && now <= task.EndTime)) throw Oops.Oh(EnumErrorCodeType.s510, "该任务已结束");
            if (task.Status != EnumTaskStatus.Complete) throw Oops.Oh(EnumErrorCodeType.s510, "该任务暂未安排人员");
            if (task.ReleaseStatus != EnumTaskReleaseStatus.InProcess) throw Oops.Oh(EnumErrorCodeType.s510, "该任务已结束");
            if (!(task.BeginTime <= request.Date.Date && 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, "该报名信息");
            if (taskUser.ArrangeStatus == EnumTaskUserArrangeStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s510, "暂未安排该任务");
            if (taskUser.HireStatus != EnumTaskUserHireStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s510, "您未录用");
            if (taskUser.ArrangeStatus != EnumTaskUserArrangeStatus.Complete) throw Oops.Oh(EnumErrorCodeType.s510, "暂未安排该任务");
            task.CheckReceiveStatus = EnumTaskCheckReceiveStatus.WaitCheckReceive;
            task.LastSubmitTime = now;
            taskUser.CheckReceiveStatus = EnumTaskCheckReceiveStatus.WaitCheckReceive;
@@ -60,7 +62,7 @@
                submit = new TaskInfoUserSubmit
                {
                    TaskInfoUserId = taskUser.Id,
                    Date = now.Date,
                    Date = request.Date,
                    Files = request.Files.Select(it => new TaskInfoUserSubmitFile
                    {
                        File = it
@@ -106,13 +108,12 @@
            var taskUser = await repTaskInfoUser.AsQueryable()
                .FirstOrDefaultAsync(it => it.Id == submit.TaskInfoUserId, cancellationToken);
            if (taskUser == null) throw Oops.Oh(EnumErrorCodeType.s404, "该灵工信息");
            if (taskUser.ArrangeStatus == EnumTaskUserArrangeStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s510, "未安排该灵工");
            if (taskUser.HireStatus != EnumTaskUserHireStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s510, "未录用该灵工");
            if (taskUser.ArrangeStatus != EnumTaskUserArrangeStatus.Complete) throw Oops.Oh(EnumErrorCodeType.s510, "未安排该灵工");
            var task = await repTaskInfo.AsQueryable()
                .FirstOrDefaultAsync(it => it.Id == taskUser.TaskInfoId && it.EnterpriseId == logier.EnterpriseId, cancellationToken);
            if (task == null) throw Oops.Oh(EnumErrorCodeType.s404, "该任务");
            if (task.Status == EnumTaskStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s510, "该任务暂未安排人员");
            if (task.ReleaseStatus == EnumTaskReleaseStatus.Stopped) throw Oops.Oh(EnumErrorCodeType.s510, "该任务已结束");
            if (!(task.BeginTime <= now && now <= task.EndTime)) throw Oops.Oh(EnumErrorCodeType.s510, "该任务已结束");
            if (task.Status != EnumTaskStatus.Complete) throw Oops.Oh(EnumErrorCodeType.s510, "该任务暂未安排人员");
            if (request.CheckReceiveStatus != EnumTaskUserSubmitCheckReceiveStatus.Success
                && request.CheckReceiveStatus != EnumTaskUserSubmitCheckReceiveStatus.Fail)
                throw Oops.Oh(EnumErrorCodeType.s400, "请选择正确的验收状态");
@@ -134,7 +135,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;