我的学习跳转去考试(包含自动评卷、答案提交)

master
xiaochanghai 11 months ago
parent 677fe32b51
commit d4e6188ff6
  1. 12
      Tiobon.Core.Api/Controllers/Ghre/Ghre_ExamRecordController.cs
  2. 90
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 7
      Tiobon.Core.Api/Tiobon.Core.xml
  4. 2
      Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs
  5. 7
      Tiobon.Core.Model/Base/Ghre/Ghre_ExamRecord.Dto.Base.cs
  6. 7
      Tiobon.Core.Model/Models/Ghre/Ghre_ExamRecord.cs
  7. 86
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs
  8. 90
      Tiobon.Core/Tiobon.Core.Model.xml
  9. 7
      Tiobon.Core/Tiobon.Core.xml

@ -56,4 +56,16 @@ public class Ghre_ExamRecordController : BaseController<IGhre_ExamRecordServices
{
return await _service.CommentAsync(extend, examRecordId);
}
/// <summary>
/// 获取考试信息
/// </summary>
/// <param name="id">学习记录ID/考试记录ID</param>
/// <returns></returns>
[HttpPost("QueryExam/{id}")]
public async Task<ServiceResult<QueryExam>> QueryExamAsync( long id)
{
return await _service.QueryExamAsync(id);
}
}

@ -2640,6 +2640,11 @@
试卷ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.StudyRecordId">
<summary>
培训记录ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.StaffId">
<summary>
员工ID
@ -8001,6 +8006,11 @@
试卷ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.StudyRecordId">
<summary>
培训记录ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.StaffId">
<summary>
员工ID
@ -13020,6 +13030,86 @@
学分
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.CourseName">
<summary>
课程名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ExamName">
<summary>
考试名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ExamBeginDate">
<summary>
考试开始时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ExamEndDate">
<summary>
考试结束时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ExamStatus">
<summary>
Wait 等待考试, Examing 考试中, End 考试结束
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.RemainingSecond">
<summary>
剩余时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.StaffPhoto">
<summary>
头像
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.StaffName">
<summary>
员工姓名
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.StaffNo">
<summary>
工号
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.DeptName">
<summary>
部门
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.DeptNo">
<summary>
部门编号
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.TotalScore">
<summary>
最终得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.UsageTime">
<summary>
实际考试时长
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.CanRetake">
<summary>
可重考
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ScoreOut">
<summary>
出分中
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ScoreOutTime">
<summary>
出分时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Ghre_StudyRecordESS.StaffId">
<summary>
员工ID

@ -841,6 +841,13 @@
<param name="examRecordId"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_ExamRecordController.QueryExamAsync(System.Int64)">
<summary>
获取考试信息
</summary>
<param name="id">学习记录ID/考试记录ID</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordDetailController">
<summary>
Ghre_ExamRecordDetail(Controller)

@ -17,5 +17,7 @@ namespace Tiobon.Core.IServices
Task<ServiceResult<Ghre_ExamRecordExtend>> ExtendAsync(long examRecordId);
Task<ServiceResult> CommentAsync(Ghre_ExamRecordExtend extend, long examRecordId);
Task<ServiceResult<QueryExam>> QueryExamAsync(long id);
}
}

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2024/7/18 13:11:42 SimonHsiao
*V0.01 2024/7/24 13:42:13 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
@ -32,6 +32,11 @@ namespace Tiobon.Core.Model.Models
/// </summary>
public long? ExamId { get; set; }
/// <summary>
/// 培训记录ID
/// </summary>
public long? StudyRecordId { get; set; }
/// <summary>
/// 员工ID
/// </summary>

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2024/7/18 13:11:42 SimonHsiao
*V0.01 2024/7/24 13:42:13 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
@ -34,6 +34,11 @@ namespace Tiobon.Core.Model.Models
/// </summary>
public long? ExamId { get; set; }
/// <summary>
/// 培训记录ID
/// </summary>
public long? StudyRecordId { get; set; }
/// <summary>
/// 员工ID
/// </summary>

@ -11,6 +11,7 @@ using System.Text.RegularExpressions;
using System.Net;
using Tiobon.Core.Common.Helper;
using AgileObjects.AgileMapper.Extensions;
using Tiobon.Core.Common.DB.Dapper.Extensions;
namespace Tiobon.Core.Services;
@ -354,36 +355,85 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
body.pageSize = 10000;
long examRecordId = 0;
if (await Db.Queryable<Ghre_Exam>().AnyAsync(x => x.Id == id))
//if (await Db.Queryable<Ghre_Exam>().AnyAsync(x => x.Id == id))
//{
// var examRecord = await Db.Queryable<Ghre_ExamRecord>().FirstAsync(x => x.ExamId == id);
// if (examRecord != null)
// examRecordId = examRecord.Id;
// else
// {
// var insrt = new InsertGhre_ExamRecordInput()
// {
// };
// examRecordId = await base.Add(insrt);
// }
//}
if (await Db.Queryable<Ghre_StudyRecord>().AnyAsync(x => x.Id == id))
{
var examRecord = await Db.Queryable<Ghre_ExamRecord>().FirstAsync(x => x.ExamId == id);
var examRecord = await Db.Queryable<Ghre_ExamRecord>().FirstAsync(x => x.StudyRecordId == id);
if (examRecord != null)
examRecordId = examRecord.Id;
else
{
var studyRecord = await Db.Queryable<Ghre_StudyRecord>().FirstAsync(x => x.Id == id);
string sql = @$"SELECT A.StaffId,
A.Source,
A.ExamId,
B.Id,
B.LinkType,
B.CourseId,
B.CourseSceneId,
B.ExamPaperId,
B.CoverUrl,
B.ExamNo,
B.ExamName,
B.DateType,
B.BeginTime,
B.EndTime,
B.AfterHowLong,
B.ExamMode,
B.ExamPlace,
B.IsLinkOpenClass,
B.OpenClassId,
B.Status
FROM Ghre_ExamStaff A
JOIN Ghre_Exam B
ON A.ExamId = B.Id
AND B.Status = 'Released'
AND A.IsEnable = B.IsEnable
AND B.CourseId = '{studyRecord.CourseId}'
WHERE A.IsEnable = 1
AND ( B.DateType = 'AfterHowLong'
OR ( B.DateType = 'ExamDate'
AND B.BeginTime >= GETDATE ()
AND B.EndTime <= GETDATE ()))
AND A.StaffId = {studyRecord.StaffId}";
var exam = await Db.Ado.SqlQuerySingleAsync<Ghre_Exam>(sql);
if (exam is null)
return ServiceResult<QueryExam>.OprateFailed("该门课程勿需考试!");
var insrt = new InsertGhre_ExamRecordInput()
{
ExamId = exam.Id,
StudyRecordId = studyRecord.Id,
StaffId = studyRecord.StaffId,
CourseSnapId = studyRecord.CourseSnapId,
ExamPaperId = exam.ExamPaperId,
ExamDate = DateTime.Now.Date,
RetakeTimes = 0,
Status = "Wait",
ScoreStatus = "NoScore"
};
examRecordId = await base.Add(insrt);
}
}
if (await Db.Queryable<Ghre_StudyRecord>().AnyAsync(x => x.Id == id))
{
var studyRecord = await Db.Queryable<Ghre_StudyRecord>().FirstAsync(x => x.Id == id);
//if (examRecord != null)
// examRecordId = examRecord.Id;
//else
//{
// var insrt = new InsertGhre_ExamRecordInput()
// {
// };
// examRecordId = await base.Add(insrt);
//}
}
if (examRecordId == 0) examRecordId = id;
var records = await QueryFilterPage(body, $"Id='{examRecordId}'");

@ -2640,6 +2640,11 @@
试卷ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.StudyRecordId">
<summary>
培训记录ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.StaffId">
<summary>
员工ID
@ -8001,6 +8006,11 @@
试卷ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.StudyRecordId">
<summary>
培训记录ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.StaffId">
<summary>
员工ID
@ -13020,6 +13030,86 @@
学分
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.CourseName">
<summary>
课程名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ExamName">
<summary>
考试名称
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ExamBeginDate">
<summary>
考试开始时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ExamEndDate">
<summary>
考试结束时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ExamStatus">
<summary>
Wait 等待考试, Examing 考试中, End 考试结束
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.RemainingSecond">
<summary>
剩余时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.StaffPhoto">
<summary>
头像
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.StaffName">
<summary>
员工姓名
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.StaffNo">
<summary>
工号
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.DeptName">
<summary>
部门
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.DeptNo">
<summary>
部门编号
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.TotalScore">
<summary>
最终得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.UsageTime">
<summary>
实际考试时长
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.CanRetake">
<summary>
可重考
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ScoreOut">
<summary>
出分中
</summary>
</member>
<member name="P:Tiobon.Core.Model.QueryExam.ScoreOutTime">
<summary>
出分时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Ghre_StudyRecordESS.StaffId">
<summary>
员工ID

@ -841,6 +841,13 @@
<param name="examRecordId"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_ExamRecordController.QueryExamAsync(System.Int64)">
<summary>
获取考试信息
</summary>
<param name="id">学习记录ID/考试记录ID</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordDetailController">
<summary>
Ghre_ExamRecordDetail(Controller)

Loading…
Cancel
Save