diff --git a/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs b/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs index 500d85ec..67134a27 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs @@ -1204,14 +1204,32 @@ public class Ghre_ExamServices : BaseServices x.ExamId == id && x.Status == DIC_EXAM_RECORD_STATUS.EXAMING)) return ServiceResult.OprateFailed("已有学员参与考试,不可取消发布!"); } + //--如果考试时间是区间,那过了这个区间后,员工学完也考不了。那么,只要是过了考试时间,后台可以手动归档。 + //--如果考试时间是学完多久,需要等1)员工考完;2)员工没考完但过了学习时间,才能归档。 if (entity.Status == DIC_EXAM_STATUS.RELEASED && status == DIC_EXAM_STATUS.DISABLED) { - if (await Db.Queryable().AnyAsync(x => x.ExamId == id && x.StudyStatus != DIC_STUDY_RECORD_STUDY_STATUS.NO_JOIN)) - return ServiceResult.OprateFailed("已有学员正在学习,不可归档!"); + if (entity.DateType == DicExamDateType.EXAM_DATE) + { + if (entity.BeginTime.Value.Date <= DateTime.Now.Date && entity.EndTime.Value.Date >= DateTime.Now.Date) + { + if (await Db.Queryable().AnyAsync(x => x.ExamId == id && x.StudyStatus != DIC_STUDY_RECORD_STUDY_STATUS.NO_JOIN)) + return ServiceResult.OprateFailed("已有学员正在学习,不可归档!"); + + if (await _ghre_ExamRecordServices.AnyAsync(x => x.ExamId == id && x.Status == DIC_EXAM_RECORD_STATUS.EXAMING)) + return ServiceResult.OprateFailed("已有学员参与考试,不可归档!"); + } + } + else + { + + if (await Db.Queryable().AnyAsync(x => x.ExamId == id && x.StudyStatus != DIC_STUDY_RECORD_STUDY_STATUS.NO_JOIN)) + return ServiceResult.OprateFailed("已有学员正在学习,不可归档!"); + + if (await _ghre_ExamRecordServices.AnyAsync(x => x.ExamId == id && x.Status == DIC_EXAM_RECORD_STATUS.EXAMING)) + return ServiceResult.OprateFailed("已有学员参与考试,不可归档!"); + } - if (await _ghre_ExamRecordServices.AnyAsync(x => x.ExamId == id && x.Status == DIC_EXAM_RECORD_STATUS.EXAMING)) - return ServiceResult.OprateFailed("已有学员参与考试,不可归档!"); } if (entity.Status == DIC_EXAM_STATUS.DISABLED && status == DIC_EXAM_STATUS.RELEASED)