考试记录分数列调整 新增最终得分

master
xiaochanghai 5 months ago
parent fe3d0398dd
commit 7399b2aa8c
  1. 6
      Tiobon.Core.Api/Controllers/Ghre/Ghre_ExamRecordController.cs
  2. 10
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 2
      Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs
  4. 9
      Tiobon.Core.Model/Base/Ghre/Ghre_ExamRecord.Dto.Base.cs
  5. 9
      Tiobon.Core.Model/Models/Ghre/Ghre_ExamRecord.cs
  6. 2
      Tiobon.Core.Model/View/Ghre/Ghre_ExamRecord.Dto.View.cs
  7. 26
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs
  8. 10
      Tiobon.Core/Tiobon.Core.Model.xml

@ -44,10 +44,10 @@ public class Ghre_ExamRecordController : BaseController<IGhre_ExamRecordServices
{ {
return await _service.ModifyActualScore(examRecordId, edit); return await _service.ModifyActualScore(examRecordId, edit);
} }
[HttpPost("ModifyIsPass/{examRecordId}")] [HttpPost("ModifyFinallyIsPass/{examRecordId}")]
public async Task<ServiceResult> ModifyIsPass(string examRecordId, [FromBody] EditGhre_ExamRecordInput edit) public async Task<ServiceResult> ModifyFinallyIsPass(string examRecordId, [FromBody] EditGhre_ExamRecordInput edit)
{ {
return await _service.ModifyIsPass(examRecordId, edit); return await _service.ModifyFinallyIsPass(examRecordId, edit);
} }
//cc/ <summary> //cc/ <summary>

@ -4375,6 +4375,11 @@
实操分 实操分
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.FinallyIsPass">
<summary>
最终是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase">
<summary> <summary>
Ghre_ExamRecordAnswer (Dto.Base) Ghre_ExamRecordAnswer (Dto.Base)
@ -18041,6 +18046,11 @@
实操分 实操分
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.FinallyIsPass">
<summary>
最终是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer">
<summary> <summary>
Ghre_ExamRecordAnswer (Model) Ghre_ExamRecordAnswer (Model)

@ -29,7 +29,7 @@ public interface IGhre_ExamRecordServices : IBaseServices<Ghre_ExamRecord, Ghre_
Task<ServiceResult> ViewExamPaperCallBackAsync(long examRecordId); Task<ServiceResult> ViewExamPaperCallBackAsync(long examRecordId);
Task<ServiceResult> ModifyActualScore(string examRecordId, EditGhre_ExamRecordInput edit); Task<ServiceResult> ModifyActualScore(string examRecordId, EditGhre_ExamRecordInput edit);
Task<ServiceResult> ModifyIsPass(string examRecordId, EditGhre_ExamRecordInput edit); Task<ServiceResult> ModifyFinallyIsPass(string examRecordId, EditGhre_ExamRecordInput edit);
Task<ServiceResult> SubmitAttachment(long examRecordId, List<InsertGhre_AttachmentInput> attachments); Task<ServiceResult> SubmitAttachment(long examRecordId, List<InsertGhre_AttachmentInput> attachments);
} }

@ -6,9 +6,9 @@
* *
* Ver * Ver
* *
*V0.01 2024/12/23 14:36:50 SimonHsiao *V0.01 2025/1/13 16:14:43 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
* *
*   *  
* SimonHsiao * SimonHsiao
@ -215,4 +215,9 @@ public class Ghre_ExamRecordBase
/// </summary> /// </summary>
[Display(Name = "ActualScore"), Description("实操分"), Column(TypeName = "decimal(20,2)")] [Display(Name = "ActualScore"), Description("实操分"), Column(TypeName = "decimal(20,2)")]
public decimal? ActualScore { get; set; } public decimal? ActualScore { get; set; }
/// <summary>
/// 最终是否合格
/// </summary>
public bool? FinallyIsPass { get; set; }
} }

@ -6,9 +6,9 @@
* *
* Ver * Ver
* *
*V0.01 2024/12/23 14:36:50 SimonHsiao *V0.01 2025/1/13 16:14:43 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
* *
*   *  
* SimonHsiao * SimonHsiao
@ -216,4 +216,9 @@ public class Ghre_ExamRecord : BasePoco
/// </summary> /// </summary>
[Display(Name = "ActualScore"), Description("实操分"), Column(TypeName = "decimal(20,2)")] [Display(Name = "ActualScore"), Description("实操分"), Column(TypeName = "decimal(20,2)")]
public decimal? ActualScore { get; set; } public decimal? ActualScore { get; set; }
/// <summary>
/// 最终是否合格
/// </summary>
public bool? FinallyIsPass { get; set; }
} }

@ -31,7 +31,9 @@ public class Ghre_ExamRecordDto : Ghre_ExamRecord
/// 修改信息 /// 修改信息
/// </summary> /// </summary>
public string UpdateDataInfo { get; set; } public string UpdateDataInfo { get; set; }
public string IsPassLabel { get; set; } public string IsPassLabel { get; set; }
public string FinallyIsPassLabel { get; set; }
public string StaffNo { get; set; } public string StaffNo { get; set; }
public string StaffName { get; set; } public string StaffName { get; set; }

@ -99,6 +99,13 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
if (ids.Count > 0) if (ids.Count > 0)
attachments = await Db.Queryable<Ghre_Attachment>().Where(x => ids.Contains(x.TableName)).ToListAsync(); attachments = await Db.Queryable<Ghre_Attachment>().Where(x => ids.Contains(x.TableName)).ToListAsync();
attachments.ForEach(x =>
{
x.PhysicsPath = "/Advanced" + x.PhysicsPath;
x.RelativePath = "/Advanced" + x.RelativePath;
x.ThumbnailPath = "/Advanced" + x.ThumbnailPath;
x.FileURL = "/Advanced" + x.FileURL;
});
entitys.ForEach(async x => entitys.ForEach(async x =>
{ {
x.ScoreMethodLabel = await GetParaLabel("ScoreMethod", x.ScoreMethod); x.ScoreMethodLabel = await GetParaLabel("ScoreMethod", x.ScoreMethod);
@ -107,6 +114,8 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
//x.StudyStatusLabel = await GetParaLabel("TrainingStudyStatus", x.StudyStatus); //x.StudyStatusLabel = await GetParaLabel("TrainingStudyStatus", x.StudyStatus);
if (x.IsPass != null) if (x.IsPass != null)
x.IsPassLabel = x.IsPass == true ? "合格" : "不合格"; x.IsPassLabel = x.IsPass == true ? "合格" : "不合格";
if (x.FinallyIsPass != null)
x.FinallyIsPassLabel = x.FinallyIsPass == true ? "合格" : "不合格";
x.Attachments = attachments.Where(o => o.TableName == x.Id.ToString()).ToList(); x.Attachments = attachments.Where(o => o.TableName == x.Id.ToString()).ToList();
//x.InStatusLabel = x.InStatus == "1" ? "在职" : null; //x.InStatusLabel = x.InStatus == "1" ? "在职" : null;
//x.InStatusLabel = x.InStatus == "2" ? "离职" : null; //x.InStatusLabel = x.InStatus == "2" ? "离职" : null;
@ -188,22 +197,22 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
return ServiceResult.OprateSuccess("修改成功!"); return ServiceResult.OprateSuccess("修改成功!");
} }
public async Task<ServiceResult> ModifyIsPass(string examRecordId, EditGhre_ExamRecordInput edit) public async Task<ServiceResult> ModifyFinallyIsPass(string examRecordId, EditGhre_ExamRecordInput edit)
{ {
var entity = await QuerySingle(examRecordId); var entity = await QuerySingle(examRecordId);
if (entity != null && entity.ExamId != null) if (entity != null && entity.ExamId != null)
if (await Db.Queryable<Ghre_Exam>().Where(x => x.Id == entity.ExamId.Value && x.Status == "Disabled").AnyAsync()) if (await Db.Queryable<Ghre_Exam>().Where(x => x.Id == entity.ExamId.Value && x.Status == "Disabled").AnyAsync())
return ServiceResult.OprateFailed($"该考试已归档,不可进行调整!"); return ServiceResult.OprateFailed($"该考试已归档,不可进行调整!");
if (entity.ActualScore is null && entity.AdjustScore is null) //if (entity.ActualScore is null && entity.AdjustScore is null)
return ServiceResult.OprateFailed($"请先变更调整分或实操分!"); // return ServiceResult.OprateFailed($"请先变更调整分或实操分!");
entity.IsPass = edit.IsPass ?? false; entity.FinallyIsPass = edit.FinallyIsPass ?? false;
//string score1 = Regex.Replace(entity.Score.ToString(), @"\.(0+)$", "") + "/" + Regex.Replace(entity.Score.ToString(), @"\.(0+)$", ""); //string score1 = Regex.Replace(entity.Score.ToString(), @"\.(0+)$", "") + "/" + Regex.Replace(entity.Score.ToString(), @"\.(0+)$", "");
await Update(entity, ["IsPass", "UpdateTime", "UpdateBy"]); await Update(entity, ["FinallyIsPass", "UpdateTime", "UpdateBy"]);
return ServiceResult.OprateSuccess("修改成功!"); return ServiceResult.OprateSuccess("修改成功!");
} }
@ -968,7 +977,8 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
var examPaper = await Db.Queryable<Ghre_ExamPaper>().FirstAsync(x => x.Id == record.ExamPaperId); var examPaper = await Db.Queryable<Ghre_ExamPaper>().FirstAsync(x => x.Id == record.ExamPaperId);
record.IsPass = examPaper.PassScore > (record.Score + record.AdjustScore) ? false : true; record.IsPass = examPaper.PassScore > (record.Score + record.AdjustScore) ? false : true;
await Db.Updateable(record).UpdateColumns(it => new { it.IsPass }, true)//true表示追加AOP赋值列 record.FinallyIsPass = record.IsPass;
await Db.Updateable(record).UpdateColumns(it => new { it.IsPass, it.FinallyIsPass }, true)//true表示追加AOP赋值列
.ExecuteCommandAsync(); .ExecuteCommandAsync();
await Db.Deleteable<Ghre_CreditPoint>().Where(x => x.ExamId == studyRecord.ExamId).ExecuteCommandAsync(); await Db.Deleteable<Ghre_CreditPoint>().Where(x => x.ExamId == studyRecord.ExamId).ExecuteCommandAsync();
@ -1272,14 +1282,14 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
#region 提交附件 #region 提交附件
public async Task<ServiceResult> SubmitAttachment(long examRecordId, List<InsertGhre_AttachmentInput> attachments) public async Task<ServiceResult> SubmitAttachment(long examRecordId, List<InsertGhre_AttachmentInput> attachments)
{ {
var paths = attachments.Select(x => x.PhysicsPath).Distinct().ToList(); var path = attachments.Select(x => x.RelativePath.Replace("/Advanced", null)).Distinct().ToList();
await Db.Updateable<Ghre_Attachment>() await Db.Updateable<Ghre_Attachment>()
.SetColumns(it => new Ghre_Attachment() { TableName = null }) .SetColumns(it => new Ghre_Attachment() { TableName = null })
.Where(it => it.TableName == examRecordId.ObjToString()) .Where(it => it.TableName == examRecordId.ObjToString())
.ExecuteCommandAsync(); .ExecuteCommandAsync();
await Db.Updateable<Ghre_Attachment>() await Db.Updateable<Ghre_Attachment>()
.SetColumns(it => new Ghre_Attachment() { TableName = examRecordId.ObjToString() }) .SetColumns(it => new Ghre_Attachment() { TableName = examRecordId.ObjToString() })
.Where(it => paths.Contains(it.PhysicsPath)) .Where(it => path.Contains(it.RelativePath))
.ExecuteCommandAsync(); .ExecuteCommandAsync();
return ServiceResult.OprateSuccess("保存成功!"); return ServiceResult.OprateSuccess("保存成功!");
} }

@ -4375,6 +4375,11 @@
实操分 实操分
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.FinallyIsPass">
<summary>
最终是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase">
<summary> <summary>
Ghre_ExamRecordAnswer (Dto.Base) Ghre_ExamRecordAnswer (Dto.Base)
@ -18041,6 +18046,11 @@
实操分 实操分
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.FinallyIsPass">
<summary>
最终是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer">
<summary> <summary>
Ghre_ExamRecordAnswer (Model) Ghre_ExamRecordAnswer (Model)

Loading…
Cancel
Save