|
|
|
@ -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)); |
|
|
|
|