优化 考试归档逻辑

master
xiaochanghai 10 months ago
parent 0e7a1072ae
commit c5109feaa8
  1. 26
      Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs

@ -1204,14 +1204,32 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
if (await _ghre_ExamRecordServices.AnyAsync(x => 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<Ghre_StudyRecord>().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<Ghre_StudyRecord>().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<Ghre_StudyRecord>().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)

Loading…
Cancel
Save