新增 预自动评分

master
xiaochanghai 12 months ago
parent 8c29658f1b
commit 43d46a5bd9
  1. 2632
      Model/Tiobon.Web.pdm
  2. 14
      Tiobon.Core.Api/Controllers/Ghre/Ghre_ExamRecordAnswerController.cs
  3. 235
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  4. 5
      Tiobon.Core.Api/Tiobon.Core.xml
  5. 49
      Tiobon.Core.Common/Helper/ExamHelper.cs
  6. 12
      Tiobon.Core.IServices/Ghre/IGhre_ExamRecordAnswerServices.cs
  7. 131
      Tiobon.Core.Model/Base/Ghre/Ghre_ExamRecordAnswer.Dto.Base.cs
  8. 17
      Tiobon.Core.Model/Base/Ghre/Ghre_ExamRecordDetail.Dto.Base.cs
  9. 27
      Tiobon.Core.Model/Edit/Ghre/Ghre_ExamRecordAnswer.Dto.EditInput.cs
  10. 2
      Tiobon.Core.Model/Edit/Ghre/Ghre_ExamRecordDetail.Dto.EditInput.cs
  11. 27
      Tiobon.Core.Model/Insert/Ghre/Ghre_ExamRecordAnswer.Dto.InsertInput.cs
  12. 2
      Tiobon.Core.Model/Insert/Ghre/Ghre_ExamRecordDetail.Dto.InsertInput.cs
  13. 133
      Tiobon.Core.Model/Models/Ghre/Ghre_ExamRecordAnswer.cs
  14. 15
      Tiobon.Core.Model/Models/Ghre/Ghre_ExamRecordDetail.cs
  15. 34
      Tiobon.Core.Model/View/Ghre/Ghre_ExamRecordAnswer.Dto.View.cs
  16. 20
      Tiobon.Core.Model/View/Ghre/Ghre_ExamRecordDetail.Dto.View.cs
  17. 1
      Tiobon.Core.Serilog/Sink/LogBatchingSink.cs
  18. 23
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordAnswerServices.cs
  19. 23
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs
  20. 7
      Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs
  21. 235
      Tiobon.Core/Tiobon.Core.Model.xml
  22. 5
      Tiobon.Core/Tiobon.Core.xml

File diff suppressed because it is too large Load Diff

@ -0,0 +1,14 @@
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// Ghre_ExamRecordAnswer(Controller)
/// </summary>
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
public class Ghre_ExamRecordAnswerController : BaseController<IGhre_ExamRecordAnswerServices, Ghre_ExamRecordAnswer, Ghre_ExamRecordAnswerDto, InsertGhre_ExamRecordAnswerInput, EditGhre_ExamRecordAnswerInput>
{
public Ghre_ExamRecordAnswerController(IGhre_ExamRecordAnswerServices service) : base(service)
{
}
}

@ -2420,6 +2420,101 @@
预留字段12 预留字段12
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase">
<summary>
Ghre_ExamRecordAnswer (Dto.Base)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.ExamRecordDetailId">
<summary>
答题记录明细ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.QuestionAnswerId">
<summary>
题目答案ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.AnswerContent">
<summary>
答案内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.TaxisNo">
<summary>
排序号
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase">
<summary> <summary>
Ghre_ExamRecordDetail (Dto.Base) Ghre_ExamRecordDetail (Dto.Base)
@ -2450,16 +2545,6 @@
员工ID 员工ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase.QuestionAnswerId">
<summary>
题目答案ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase.AnswerContent">
<summary>
答案内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase.Score"> <member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase.Score">
<summary> <summary>
得分 得分
@ -4112,6 +4197,11 @@
考试记录 (Dto.EditInput) 考试记录 (Dto.EditInput)
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_ExamRecordAnswerInput">
<summary>
Ghre_ExamRecordAnswer (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_ExamRecordDetailInput"> <member name="T:Tiobon.Core.Model.Models.EditGhre_ExamRecordDetailInput">
<summary> <summary>
Ghre_ExamRecordDetail (Dto.EditInput) Ghre_ExamRecordDetail (Dto.EditInput)
@ -4257,6 +4347,11 @@
考试记录 (Dto.InsertInput) 考试记录 (Dto.InsertInput)
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamRecordAnswerInput">
<summary>
Ghre_ExamRecordAnswer (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamRecordDetailInput"> <member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamRecordDetailInput">
<summary> <summary>
Ghre_ExamRecordDetail (Dto.InsertInput) Ghre_ExamRecordDetail (Dto.InsertInput)
@ -6916,6 +7011,101 @@
预留字段12 预留字段12
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer">
<summary>
Ghre_ExamRecordAnswer (Model)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.ExamRecordDetailId">
<summary>
答题记录明细ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.QuestionAnswerId">
<summary>
题目答案ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.AnswerContent">
<summary>
答案内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.TaxisNo">
<summary>
排序号
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail">
<summary> <summary>
Ghre_ExamRecordDetail (Model) Ghre_ExamRecordDetail (Model)
@ -6946,16 +7136,6 @@
员工ID 员工ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail.QuestionAnswerId">
<summary>
题目答案ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail.AnswerContent">
<summary>
答案内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail.Score"> <member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail.Score">
<summary> <summary>
得分 得分
@ -9602,6 +9782,21 @@
修改信息 修改信息
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerDto">
<summary>
Ghre_ExamRecordAnswer(Dto.View)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerDto.CreateDataInfo">
<summary>
创建信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerDto.UpdateDataInfo">
<summary>
修改信息
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailDto"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailDto">
<summary> <summary>
Ghre_ExamRecordDetail(Dto.View) Ghre_ExamRecordDetail(Dto.View)

@ -771,6 +771,11 @@
试卷题目(Controller) 试卷题目(Controller)
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordAnswerController">
<summary>
Ghre_ExamRecordAnswer(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordController"> <member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordController">
<summary> <summary>
考试记录(Controller) 考试记录(Controller)

@ -5,35 +5,29 @@ namespace Tiobon.Core.Common.Helper;
public class ExamHelper public class ExamHelper
{ {
public static async Task SystemMarkAsync(ISqlSugarClient Db, Ghre_ExamRecord record, List<Ghre_ExamRecordDetail> details) public static async Task SystemMarkAsync(ISqlSugarClient Db, Ghre_ExamRecord record, List<Ghre_ExamRecordDetail> details, List<Ghre_ExamRecordAnswer> recordAnswers)
{ {
var questionIds = details.Where(x => x.QuestionId != null).Select(m => m.QuestionId).Distinct().ToList(); var questionIds = details.Where(x => x.QuestionId != null).Select(m => m.QuestionId).Distinct().ToList();
var exampaperQuestions = await Db.Queryable<Ghre_ExamPaperQuestion>().Where(x => x.ExamPaperId == record.ExamPaperId).ToListAsync(); var exampaperQuestions = await Db.Queryable<Ghre_ExamPaperQuestion>().Where(x => x.ExamPaperId == record.ExamPaperId).ToListAsync();
var questions = await Db.Queryable<Ghre_Question>().Where(x => questionIds.Contains(x.Id)).ToListAsync(); var questions = await Db.Queryable<Ghre_Question>().Where(x => questionIds.Contains(x.Id)).ToListAsync();
var answers = await Db.Queryable<Ghre_QuestionAnswer>().Where(x => x.QuestionId != null && questionIds.Contains(x.QuestionId.Value) && x.IsCorrect == true).ToListAsync(); var answers = await Db.Queryable<Ghre_QuestionAnswer>()
.Where(x => x.QuestionId != null && questionIds.Contains(x.QuestionId.Value) && x.IsCorrect == true)
.ToListAsync();
decimal? score = 0; decimal? score = 0;
var detailGroups = details.GroupBy(m => m.QuestionId) details.ForEach(detail =>
.Select(m => new
{
m.FirstOrDefault()?.QuestionId,
List = m.OrderBy(x => x.TaxisNo).ToList()
})
.ToList();
detailGroups.ForEach(group =>
{ {
var question = questions.FirstOrDefault(x => x.Id == group.QuestionId); var question = questions.FirstOrDefault(x => x.Id == detail.QuestionId);
var detail = details.Where(x => x.QuestionId == group.QuestionId).First();
detail.IsCorrect = false; detail.IsCorrect = false;
detail.Score = 0; detail.Score = 0;
var exampaperQuestion = exampaperQuestions.FirstOrDefault(x => x.QuestionId == detail.QuestionId);
switch (question.QuestionType) switch (question.QuestionType)
{ {
case "Completion": case "Completion":
var completionAnswers = answers.OrderBy(x => x.TaxisNo).Where(x => x.QuestionId == group.QuestionId).ToList(); var completionAnswers = answers.OrderBy(x => x.TaxisNo).Where(x => x.QuestionId == detail.QuestionId).ToList();
var contents = group.List.Select(x => x.AnswerContent).ToList(); var contents = recordAnswers.Where(x => x.ExamRecordDetailId == detail.Id).Select(x => x.AnswerContent).ToList();
var count = completionAnswers.Count; var count = completionAnswers.Count;
if (contents.Count == count) if (contents.Count == count)
{ {
@ -43,18 +37,17 @@ public class ExamHelper
if (count == 0) if (count == 0)
{ {
var exampaperQuestion = exampaperQuestions.FirstOrDefault(x => x.QuestionId == group.QuestionId); score += exampaperQuestion?.Score;
score += exampaperQuestion.Score; detail.Score = exampaperQuestion?.Score;
detail.Score = exampaperQuestion.Score;
detail.IsCorrect = true; detail.IsCorrect = true;
} }
} }
break; break;
case "ShortAnswer": case "ShortAnswer":
if (!string.IsNullOrWhiteSpace(group.List.First().AnswerContent)) if (recordAnswers.Where(x => x.ExamRecordDetailId == detail.Id).Any())
{ {
var completionAnswers1 = answers.OrderBy(x => x.TaxisNo).Where(x => x.QuestionId == group.QuestionId).ToList(); var completionAnswers1 = answers.OrderBy(x => x.TaxisNo).Where(x => x.QuestionId == detail.QuestionId).ToList();
var content = group.List.First().AnswerContent; var content = recordAnswers.Where(x => x.ExamRecordDetailId == detail.Id).First().AnswerContent;
var count1 = completionAnswers1.Count; var count1 = completionAnswers1.Count;
for (int i = 0; i < completionAnswers1.Count; i++) for (int i = 0; i < completionAnswers1.Count; i++)
@ -63,22 +56,20 @@ public class ExamHelper
if (count1 == 0) if (count1 == 0)
{ {
var exampaperQuestion = exampaperQuestions.FirstOrDefault(x => x.QuestionId == group.QuestionId); score += exampaperQuestion?.Score;
score += exampaperQuestion.Score; detail.Score = exampaperQuestion?.Score;
detail.Score = exampaperQuestion.Score;
detail.IsCorrect = true; detail.IsCorrect = true;
} }
} }
break; break;
default: default:
var questionAnswerIds = group.List.Where(x => x.QuestionId != null).Select(m => m.QuestionAnswerId).ToList(); var questionAnswerIds = recordAnswers.Where(x => x.ExamRecordDetailId == detail.Id && x.QuestionAnswerId != null).Select(m => m.QuestionAnswerId).ToList();
if (questionAnswerIds.Count == answers.Where(x => questionAnswerIds.Contains(x.Id)).Count()) if (questionAnswerIds.Count == answers.Where(x => x.QuestionId == detail.QuestionId).Count())
{ {
var exampaperQuestion = exampaperQuestions.FirstOrDefault(x => x.QuestionId == group.QuestionId); score += exampaperQuestion?.Score;
score += exampaperQuestion.Score; detail.Score = exampaperQuestion?.Score;
detail.Score = exampaperQuestion.Score;
detail.IsCorrect = true; detail.IsCorrect = true;
} }
break; break;

@ -0,0 +1,12 @@
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model.Models;
namespace Tiobon.Core.IServices
{
/// <summary>
/// Ghre_ExamRecordAnswer(自定义服务接口)
/// </summary>
public interface IGhre_ExamRecordAnswerServices :IBaseServices<Ghre_ExamRecordAnswer, Ghre_ExamRecordAnswerDto, InsertGhre_ExamRecordAnswerInput, EditGhre_ExamRecordAnswerInput>
{
}
}

@ -0,0 +1,131 @@
/* ,
* Ghre_ExamRecordAnswer.cs
*
* N / A
* Ghre_ExamRecordAnswer
*
* Ver
*
*V0.01 2024/7/9 13:45:26 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// Ghre_ExamRecordAnswer (Dto.Base)
/// </summary>
public class Ghre_ExamRecordAnswerBase
{
/// <summary>
/// 答题记录明细ID
/// </summary>
public long? ExamRecordDetailId { get; set; }
/// <summary>
/// 题目答案ID
/// </summary>
public long? QuestionAnswerId { get; set; }
/// <summary>
/// 答案内容
/// </summary>
[Display(Name = "AnswerContent"), Description("答案内容"), MaxLength(2000, ErrorMessage = "答案内容 不能超过 2000 个字符")]
public string AnswerContent { get; set; }
/// <summary>
/// 排序号
/// </summary>
public int? TaxisNo { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}
}

@ -6,14 +6,14 @@
* *
* Ver * Ver
* *
*V0.01 2024/5/31 17:42:51 SimonHsiao *V0.01 2024/7/9 13:45:10 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* *
*   *  
* SimonHsiao * SimonHsiao
* *
*/ */
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
@ -52,17 +52,6 @@ namespace Tiobon.Core.Model.Models
/// </summary> /// </summary>
public long? StaffId { get; set; } public long? StaffId { get; set; }
/// <summary>
/// 题目答案ID
/// </summary>
public long? QuestionAnswerId { get; set; }
/// <summary>
/// 答案内容
/// </summary>
[Display(Name = "AnswerContent"), Description("答案内容"), MaxLength(256, ErrorMessage = "答案内容 不能超过 256 个字符")]
public string AnswerContent { get; set; }
/// <summary> /// <summary>
/// 得分 /// 得分
/// </summary> /// </summary>
@ -83,7 +72,7 @@ namespace Tiobon.Core.Model.Models
/// <summary> /// <summary>
/// 排序号 /// 排序号
/// </summary> /// </summary>
public bool? TaxisNo { get; set; } public int? TaxisNo { get; set; }
/// <summary> /// <summary>
/// 备注 /// 备注

@ -0,0 +1,27 @@
/* ,
* Ghre_ExamRecordAnswer.cs
*
* N / A
* Ghre_ExamRecordAnswer
*
* Ver
*
*V0.01 2024/7/9 13:45:26 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// Ghre_ExamRecordAnswer (Dto.EditInput)
/// </summary>
public class EditGhre_ExamRecordAnswerInput : Ghre_ExamRecordAnswerBase
{
}
}

@ -6,7 +6,7 @@
* *
* Ver * Ver
* *
*V0.01 2024/5/31 17:42:51 SimonHsiao *V0.01 2024/7/9 13:45:10 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* *

@ -0,0 +1,27 @@
/* ,
* Ghre_ExamRecordAnswer.cs
*
* N / A
* Ghre_ExamRecordAnswer
*
* Ver
*
*V0.01 2024/7/9 13:45:26 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// Ghre_ExamRecordAnswer (Dto.InsertInput)
/// </summary>
public class InsertGhre_ExamRecordAnswerInput : Ghre_ExamRecordAnswerBase
{
}
}

@ -6,7 +6,7 @@
* *
* Ver * Ver
* *
*V0.01 2024/5/31 17:42:51 SimonHsiao *V0.01 2024/7/9 13:45:10 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* *

@ -0,0 +1,133 @@
/* ,
* Ghre_ExamRecordAnswer.cs
*
* N / A
* Ghre_ExamRecordAnswer
*
* Ver
*
*V0.01 2024/7/9 13:45:26 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using SqlSugar;
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// Ghre_ExamRecordAnswer (Model)
/// </summary>
[SugarTable("Ghre_ExamRecordAnswer", "Ghre_ExamRecordAnswer"), Entity(TableCnName = "Ghre_ExamRecordAnswer", TableName = "Ghre_ExamRecordAnswer")]
public class Ghre_ExamRecordAnswer : BasePoco
{
/// <summary>
/// 答题记录明细ID
/// </summary>
public long? ExamRecordDetailId { get; set; }
/// <summary>
/// 题目答案ID
/// </summary>
public long? QuestionAnswerId { get; set; }
/// <summary>
/// 答案内容
/// </summary>
[Display(Name = "AnswerContent"), Description("答案内容"), MaxLength(2000, ErrorMessage = "答案内容 不能超过 2000 个字符")]
public string AnswerContent { get; set; }
/// <summary>
/// 排序号
/// </summary>
public int? TaxisNo { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}
}

@ -6,7 +6,7 @@
* *
* Ver * Ver
* *
*V0.01 2024/5/31 17:42:51 SimonHsiao *V0.01 2024/7/9 13:45:10 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* *
@ -54,17 +54,6 @@ namespace Tiobon.Core.Model.Models
/// </summary> /// </summary>
public long? StaffId { get; set; } public long? StaffId { get; set; }
/// <summary>
/// 题目答案ID
/// </summary>
public long? QuestionAnswerId { get; set; }
/// <summary>
/// 答案内容
/// </summary>
[Display(Name = "AnswerContent"), Description("答案内容"), MaxLength(256, ErrorMessage = "答案内容 不能超过 256 个字符")]
public string AnswerContent { get; set; }
/// <summary> /// <summary>
/// 得分 /// 得分
/// </summary> /// </summary>
@ -85,7 +74,7 @@ namespace Tiobon.Core.Model.Models
/// <summary> /// <summary>
/// 排序号 /// 排序号
/// </summary> /// </summary>
public bool? TaxisNo { get; set; } public int? TaxisNo { get; set; }
/// <summary> /// <summary>
/// 备注 /// 备注

@ -0,0 +1,34 @@
/* ,
* Ghre_ExamRecordAnswer.cs
*
* N / A
* Ghre_ExamRecordAnswer
*
* Ver
*
*V0.01 2024/7/9 13:45:26 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// Ghre_ExamRecordAnswer(Dto.View)
/// </summary>
public class Ghre_ExamRecordAnswerDto : Ghre_ExamRecordAnswer
{
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
}

@ -6,14 +6,14 @@
* *
* Ver * Ver
* *
*V0.01 2024/5/31 17:42:51 SimonHsiao *V0.01 2024/7/9 13:45:10 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* *
*   *  
* SimonHsiao * SimonHsiao
* *
*/ */
namespace Tiobon.Core.Model.Models; namespace Tiobon.Core.Model.Models;
@ -22,13 +22,13 @@ namespace Tiobon.Core.Model.Models;
/// </summary> /// </summary>
public class Ghre_ExamRecordDetailDto : Ghre_ExamRecordDetail public class Ghre_ExamRecordDetailDto : Ghre_ExamRecordDetail
{ {
/// <summary> /// <summary>
/// 创建信息 /// 创建信息
/// </summary> /// </summary>
public string CreateDataInfo { get; set; } public string CreateDataInfo { get; set; }
/// <summary> /// <summary>
/// 修改信息 /// 修改信息
/// </summary> /// </summary>
public string UpdateDataInfo { get; set; } public string UpdateDataInfo { get; set; }
} }

@ -19,6 +19,7 @@ public class LogBatchingSink : IBatchedLogEventSink
} }
public Task OnEmptyBatchAsync() public Task OnEmptyBatchAsync()
{ {
return Task.CompletedTask; return Task.CompletedTask;
} }

@ -0,0 +1,23 @@

using Tiobon.Core.IServices;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Services.BASE;
using Tiobon.Core.IRepository.Base;
using Tiobon.Core.Common.Caches;
namespace Tiobon.Core.Services
{
/// <summary>
/// Ghre_ExamRecordAnswer (服务)
/// </summary>
public class Ghre_ExamRecordAnswerServices : BaseServices<Ghre_ExamRecordAnswer, Ghre_ExamRecordAnswerDto, InsertGhre_ExamRecordAnswerInput, EditGhre_ExamRecordAnswerInput>, IGhre_ExamRecordAnswerServices
{
private readonly IBaseRepository<Ghre_ExamRecordAnswer> _dal;
public Ghre_ExamRecordAnswerServices(ICaching caching, IBaseRepository<Ghre_ExamRecordAnswer> dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
}
}
}

@ -162,9 +162,14 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
var extend = new Ghre_ExamRecordExtend(); var extend = new Ghre_ExamRecordExtend();
var record = await QuerySingle(x => x.Id == examRecordId); var record = await QuerySingle(x => x.Id == examRecordId);
var details = await Db.Queryable<Ghre_ExamRecordDetail>().OrderBy(x => x.TaxisNo).Where(x => x.ExamRecordId == record.Id).ToListAsync(); var details = await Db.Queryable<Ghre_ExamRecordDetail>().Where(x => x.ExamRecordId == record.Id).ToListAsync();
await ExamHelper.SystemMarkAsync(Db, record, details); var detailIds = details.Select(x => x.Id).ToList();
var recordAnswers = await Db.Queryable<Ghre_ExamRecordAnswer>()
.OrderBy(x => x.TaxisNo)
.Where(x => x.ExamRecordDetailId != null && detailIds.Contains(x.ExamRecordDetailId.Value))
.ToListAsync();
await ExamHelper.SystemMarkAsync(Db, record, details, recordAnswers);
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);
var baseData = new DefaultGhre_ExamPaperBaseData(); var baseData = new DefaultGhre_ExamPaperBaseData();
@ -186,7 +191,7 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
extend.styleInfo.paperStyle = exampaper.Style; extend.styleInfo.paperStyle = exampaper.Style;
extend.styleInfo.coverBackGround = exampaper.CoverBackGround; extend.styleInfo.coverBackGround = exampaper.CoverBackGround;
var questions = await Db.Queryable<Ghre_ExamPaperQuestion>().Where(x => x.ExamPaperId == exampaper.Id).OrderBy(x => x.TaxisNo).ToListAsync(); var questions = await Db.Queryable<Ghre_ExamPaperQuestion>().Where(x => x.ExamPaperId == exampaper.Id).ToListAsync();
var previews = questions.Where(x => x.QuestionId != null).Select(x => new DefaultGhre_ExamPaperPreview() var previews = questions.Where(x => x.QuestionId != null).Select(x => new DefaultGhre_ExamPaperPreview()
{ {
Id = x.Id, Id = x.Id,
@ -226,28 +231,30 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
x.detail = detail; x.detail = detail;
var recordDetail = details.FirstOrDefault(m => m.ExamPaperQuestionId == x.Id);
switch (x.QuestionType) switch (x.QuestionType)
{ {
case "Completion": case "Completion":
case "ShortAnswer": case "ShortAnswer":
var answerIds1 = recordAnswers.Where(m => m.ExamRecordDetailId == recordDetail?.Id && m.QuestionAnswerId == null).Select(m => m.AnswerContent).ToList();
var answerIds1 = details.Where(m => m.QuestionId == x.QuestionId && m.QuestionAnswerId == null).Select(m => m.AnswerContent).ToList();
answerIds1.ForEach(m => answerIds1.ForEach(m =>
{ {
x.value1.Add(m); x.value1.Add(m);
}); });
x.value = x.value1.First(); if (x.value1.Any())
x.value = x.value1.First();
break; break;
default: default:
var answerIds = details.Where(m => m.QuestionId == x.QuestionId && m.QuestionAnswerId != null).Select(m => m.QuestionAnswerId).ToList(); var answerIds = recordAnswers.Where(m => m.ExamRecordDetailId == recordDetail?.Id && m.QuestionAnswerId != null).Select(m => m.QuestionAnswerId).ToList();
answers1.Where(m => answerIds.Contains(m.Id)).ForEach(m => answers1.Where(m => answerIds.Contains(m.Id)).ForEach(m =>
{ {
x.value1.Add(m.QuestionNo); x.value1.Add(m.QuestionNo);
}); });
x.value = x.value1.First(); if (x.value1.Any())
x.value = x.value1.First();
break; break;
} }

@ -1382,7 +1382,12 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
if (examPaper != null) if (examPaper != null)
{ {
var details = await Db.Queryable<Ghre_ExamRecordDetail>().Where(x => x.ExamRecordId == record.Id).ToListAsync(); var details = await Db.Queryable<Ghre_ExamRecordDetail>().Where(x => x.ExamRecordId == record.Id).ToListAsync();
await ExamHelper.SystemMarkAsync(Db, record, details); var detailIds = details.Select(x => x.Id).ToList();
var recordAnswers = await Db.Queryable<Ghre_ExamRecordAnswer>()
.OrderBy(x => x.TaxisNo)
.Where(x => x.ExamRecordDetailId != null && detailIds.Contains(x.ExamRecordDetailId.Value))
.ToListAsync();
await ExamHelper.SystemMarkAsync(Db, record, details, recordAnswers);
await Db.Updateable(details).UpdateColumns(it => new { it.Score }).ExecuteCommandAsync(); await Db.Updateable(details).UpdateColumns(it => new { it.Score }).ExecuteCommandAsync();
await Db.Updateable(record).UpdateColumns(it => new { it.Score }).ExecuteCommandAsync(); await Db.Updateable(record).UpdateColumns(it => new { it.Score }).ExecuteCommandAsync();

@ -2420,6 +2420,101 @@
预留字段12 预留字段12
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase">
<summary>
Ghre_ExamRecordAnswer (Dto.Base)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.ExamRecordDetailId">
<summary>
答题记录明细ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.QuestionAnswerId">
<summary>
题目答案ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.AnswerContent">
<summary>
答案内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.TaxisNo">
<summary>
排序号
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerBase.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase">
<summary> <summary>
Ghre_ExamRecordDetail (Dto.Base) Ghre_ExamRecordDetail (Dto.Base)
@ -2450,16 +2545,6 @@
员工ID 员工ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase.QuestionAnswerId">
<summary>
题目答案ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase.AnswerContent">
<summary>
答案内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase.Score"> <member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailBase.Score">
<summary> <summary>
得分 得分
@ -4112,6 +4197,11 @@
考试记录 (Dto.EditInput) 考试记录 (Dto.EditInput)
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_ExamRecordAnswerInput">
<summary>
Ghre_ExamRecordAnswer (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_ExamRecordDetailInput"> <member name="T:Tiobon.Core.Model.Models.EditGhre_ExamRecordDetailInput">
<summary> <summary>
Ghre_ExamRecordDetail (Dto.EditInput) Ghre_ExamRecordDetail (Dto.EditInput)
@ -4257,6 +4347,11 @@
考试记录 (Dto.InsertInput) 考试记录 (Dto.InsertInput)
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamRecordAnswerInput">
<summary>
Ghre_ExamRecordAnswer (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamRecordDetailInput"> <member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamRecordDetailInput">
<summary> <summary>
Ghre_ExamRecordDetail (Dto.InsertInput) Ghre_ExamRecordDetail (Dto.InsertInput)
@ -6916,6 +7011,101 @@
预留字段12 预留字段12
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer">
<summary>
Ghre_ExamRecordAnswer (Model)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.ExamRecordDetailId">
<summary>
答题记录明细ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.QuestionAnswerId">
<summary>
题目答案ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.AnswerContent">
<summary>
答案内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.TaxisNo">
<summary>
排序号
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswer.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail">
<summary> <summary>
Ghre_ExamRecordDetail (Model) Ghre_ExamRecordDetail (Model)
@ -6946,16 +7136,6 @@
员工ID 员工ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail.QuestionAnswerId">
<summary>
题目答案ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail.AnswerContent">
<summary>
答案内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail.Score"> <member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDetail.Score">
<summary> <summary>
得分 得分
@ -9602,6 +9782,21 @@
修改信息 修改信息
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerDto">
<summary>
Ghre_ExamRecordAnswer(Dto.View)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerDto.CreateDataInfo">
<summary>
创建信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordAnswerDto.UpdateDataInfo">
<summary>
修改信息
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailDto"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDetailDto">
<summary> <summary>
Ghre_ExamRecordDetail(Dto.View) Ghre_ExamRecordDetail(Dto.View)

@ -771,6 +771,11 @@
试卷题目(Controller) 试卷题目(Controller)
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordAnswerController">
<summary>
Ghre_ExamRecordAnswer(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordController"> <member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordController">
<summary> <summary>
考试记录(Controller) 考试记录(Controller)

Loading…
Cancel
Save