diff --git a/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs index 75530aa8..c7c5da62 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs @@ -1404,6 +1404,7 @@ public class Ghre_CourseServices : BaseServices(filter.pageNum, totalCount, filter.pageSize, data); diff --git a/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs b/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs index 1e565296..8a03c809 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs @@ -1,4 +1,5 @@ using MongoDB.Driver.Linq; +using System.Drawing.Drawing2D; using static Tiobon.Core.Model.Consts; namespace Tiobon.Core.Services; @@ -345,6 +346,7 @@ public class Ghre_ExamServices : BaseServices x.field != "ExamModeLabel").ToList(); var SearchFormFields = Mapper.Map(TableColumns).ToANew>(); SearchFormFields.ForEach(x => { @@ -462,6 +464,10 @@ public class Ghre_ExamServices : BaseServices(sql); - data.ForEach(x => + data.ForEach(async x => { if (x.DataSource.IsNull()) x.DataSource = DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED; @@ -1143,8 +1149,12 @@ public class Ghre_ExamServices : BaseServices>.OprateSuccess("查询成功!", data); } @@ -1195,6 +1205,17 @@ public class Ghre_ExamServices : BaseServices x.DataSource == Consts.DIC_EXAM_STAFF_SOURCE.STUDY_RULE_REQUIRED) + .Select(x => new InsertGhre_ExamStaffInput() + { + ExamId = id, + StaffId = x.StaffID, + Source = x.DataSource ?? Consts.DIC_EXAM_STAFF_SOURCE.STUDY_RULE_REQUIRED + }).ToList(); + + await _ghre_ExamStaffServices.Add(insertStaffs); + await Db.Updateable().SetColumns(it => it.LinkTimes == it.LinkTimes + 1).Where(it => it.Id == insert.ExamPaperId).ExecuteCommandAsync(); return ServiceResult.OprateSuccess("添加成功!", id); @@ -1209,13 +1230,27 @@ public class Ghre_ExamServices : BaseServices(); await base.Update(id, insert); - await _ghre_ExamStaffServices.Delete(x => x.ExamId == id && (x.Source == Consts.DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED || x.Source == null)); - var insertStaffs = pageData.staffTableData.Where(x => x.DataSource == Consts.DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED).Select(x => new InsertGhre_ExamStaffInput() - { - ExamId = id, - StaffId = x.StaffID, - Source = x.DataSource ?? Consts.DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED - }).ToList(); + await _ghre_ExamStaffServices.Delete(x => x.ExamId == id && (x.Source == DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED || x.Source == null)); + var staffIds = await Db.Queryable().Where(x => x.ExamId == id && x.Source == DIC_EXAM_STAFF_SOURCE.STUDY_RULE_REQUIRED).Select(x => x.StaffId).ToListAsync(); + + var insertStaffs = pageData.staffTableData.Where(x => x.DataSource == DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED) + .Select(x => new InsertGhre_ExamStaffInput() + { + ExamId = id, + StaffId = x.StaffID, + Source = x.DataSource ?? DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED + }).ToList(); + + await _ghre_ExamStaffServices.Add(insertStaffs); + + insertStaffs = pageData.staffTableData + .Where(x => !staffIds.Contains(x.StaffID) && x.DataSource == DIC_EXAM_STAFF_SOURCE.STUDY_RULE_REQUIRED) + .Select(x => new InsertGhre_ExamStaffInput() + { + ExamId = id, + StaffId = x.StaffID, + Source = x.DataSource ?? DIC_EXAM_STAFF_SOURCE.STUDY_RULE_REQUIRED + }).ToList(); await _ghre_ExamStaffServices.Add(insertStaffs); @@ -1735,15 +1770,30 @@ public class Ghre_ExamServices : BaseServices(sql); - data.ForEach(x => + data.ForEach(async x => { if (x.DataSource.IsNull()) { x.DataSource = Consts.DIC_EXAM_STAFF_SOURCE.STUDY_RULE_REQUIRED; x.DataSourceLabel = "必修规则"; } + + //if (!await _ghre_ExamStaffServices.AnyAsync(o => o.ExamId == examId && o.StaffId == x.StaffID)) + //{ + // var insertStaffs = new InsertGhre_ExamStaffInput() + // { + // ExamId = examId, + // StaffId = x.StaffID, + // Source = x.DataSource + // }; + // await _ghre_ExamStaffServices.Add(insertStaffs); + //} + }); + + + return ServiceResult>.OprateSuccess("查询成功!", data); }