处理最终得分

master
xiaochanghai 2 months ago
parent 96ab288791
commit d63559299e
  1. 44
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs

@ -170,12 +170,29 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
if (entity.Score > paper.TotalScore)
return ServiceResult.OprateFailed($"调整后得分为【{score1}】,不可大于卷面总分【{Regex.Replace(paper.TotalScore.ToString(), @"\.(0+)$", "") + "/" + Regex.Replace(paper.TotalScore.ToString(), @"\.(0+)$", "")}】!");
#region 处理最终得分
var exam = await Db.Queryable<Ghre_Exam>().Where(x => x.Id == entity.ExamId).FirstAsync();
if (exam != null)
{
if (exam.OnlineScorePercentage != null && exam.OfflineScorePercentage != null)
if (exam.OnlineScorePercentage > 0 && exam.OfflineScorePercentage > 0)
{
decimal OnlineScorePercentage = exam.OnlineScorePercentage.Value / 100;
decimal OfflineScorePercentage = exam.OfflineScorePercentage.Value / 100;
entity.FinallyScore = (entity.Score + (entity.AdjustScore ?? 0)) * OnlineScorePercentage;
if (entity.ActualScore != null && entity.ActualScore > 0)
entity.FinallyScore += entity.ActualScore * OfflineScorePercentage;
}
}
#endregion
var paperId = entity.ExamPaperId;
var examPaper = await Db.Queryable<Ghre_ExamPaper>().Where(x => x.Id == paperId).FirstAsync();
if (examPaper != null)
entity.IsPass = examPaper.PassScore > (entity.Score + entity.AdjustScore) ? false : true;
await Update(entity, ["IsPass", "AdjustScore", "UpdateTime", "UpdateBy"]);
await Update(entity, ["IsPass", "AdjustScore", "FinallyScore", "UpdateTime", "UpdateBy"]);
return ServiceResult.OprateSuccess("修改成功!");
@ -195,8 +212,23 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
//string score1 = Regex.Replace(entity.Score.ToString(), @"\.(0+)$", "") + "/" + Regex.Replace(entity.Score.ToString(), @"\.(0+)$", "");
#region 处理最终得分
var exam = await Db.Queryable<Ghre_Exam>().Where(x => x.Id == entity.ExamId).FirstAsync();
if (exam != null)
{
if (exam.OnlineScorePercentage != null && exam.OfflineScorePercentage != null)
if (exam.OnlineScorePercentage > 0 && exam.OfflineScorePercentage > 0)
{
decimal OnlineScorePercentage = exam.OnlineScorePercentage.Value / 100;
decimal OfflineScorePercentage = exam.OfflineScorePercentage.Value / 100;
entity.FinallyScore = (entity.Score + (entity.AdjustScore ?? 0)) * OnlineScorePercentage;
if (entity.ActualScore != null && entity.ActualScore > 0)
entity.FinallyScore += entity.ActualScore * OfflineScorePercentage;
}
}
#endregion
await Update(entity, ["ActualScore", "UpdateTime", "UpdateBy"]);
await Update(entity, ["ActualScore", "FinallyScore", "UpdateTime", "UpdateBy"]);
return ServiceResult.OprateSuccess("修改成功!");
}
@ -1142,14 +1174,18 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
if (exam.OnlineScorePercentage != null && exam.OfflineScorePercentage != null)
if (exam.OnlineScorePercentage > 0 && exam.OfflineScorePercentage > 0)
{
//exam.scor
decimal OnlineScorePercentage = exam.OnlineScorePercentage.Value / 100;
decimal OfflineScorePercentage = exam.OfflineScorePercentage.Value / 100;
record.FinallyScore = (record.Score + (record.AdjustScore ?? 0)) * OnlineScorePercentage;
if (record.ActualScore != null && record.ActualScore > 0)
record.FinallyScore += record.ActualScore * OfflineScorePercentage;
}
#endregion
}
#endregion
record.UpdateTime = DateTime.Now;
await Update(record, new List<string> { "Status", "Score", "AdjustScore", "ActualEndTime", "ScoreStatus", "UpdateTime", "ExamDate", "AnswerCount" }, null, $"Id='{record.Id}'");
await Update(record, new List<string> { "Status", "Score", "FinallyScore", "AdjustScore", "ActualEndTime", "ScoreStatus", "UpdateTime", "ExamDate", "AnswerCount" }, null, $"Id='{record.Id}'");
if (exampaper.ScoreMethod == DIC_EXAM_PAPER_SCORE_METHOD.SYSTEM)
await Task.Factory.StartNew(async () => await DealPass(Db, studyRecordId));

Loading…
Cancel
Save