培训记录新增手动添加数据

master
xiaochanghai 10 months ago
parent c762a3cf1a
commit c51e7978b8
  1. 45
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  2. 20
      Tiobon.Core.Model/Edit/Ghre/Ghre_StudyRecord.Dto.EditInput.cs
  3. 20
      Tiobon.Core.Model/Insert/Ghre/Ghre_StudyRecord.Dto.InsertInput.cs
  4. 6
      Tiobon.Core.Model/View/Ghre/Ghre_StudyRecord.Dto.View.cs
  5. 2
      Tiobon.Core.Services/BASE/BaseServices.cs
  6. 107
      Tiobon.Core.Services/Ghre/Ghre_StudyRecordServices.cs
  7. 5
      Tiobon.Core.Services/Ghre/Ghre_StudyRuleServices.cs
  8. 45
      Tiobon.Core/Tiobon.Core.Model.xml

@ -5762,6 +5762,26 @@
培训记录 (Dto.EditInput) 培训记录 (Dto.EditInput)
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.EditGhre_StudyRecordInput.Score">
<summary>
得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.EditGhre_StudyRecordInput.AdjustScore">
<summary>
调整得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.EditGhre_StudyRecordInput.ExamDate">
<summary>
考试日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.EditGhre_StudyRecordInput.IsPass">
<summary>
是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_StudyRuleInput"> <member name="T:Tiobon.Core.Model.Models.EditGhre_StudyRuleInput">
<summary> <summary>
必选修规则 (Dto.EditInput) 必选修规则 (Dto.EditInput)
@ -5967,6 +5987,26 @@
培训记录 (Dto.InsertInput) 培训记录 (Dto.InsertInput)
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput.Score">
<summary>
得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput.AdjustScore">
<summary>
调整得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput.ExamDate">
<summary>
考试日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput.IsPass">
<summary>
是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_StudyRuleInput"> <member name="T:Tiobon.Core.Model.Models.InsertGhre_StudyRuleInput">
<summary> <summary>
必选修规则 (Dto.InsertInput) 必选修规则 (Dto.InsertInput)
@ -13322,6 +13362,11 @@
考试时长 考试时长
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDto.IsPass">
<summary>
是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_StudyRuleDto"> <member name="T:Tiobon.Core.Model.Models.Ghre_StudyRuleDto">
<summary> <summary>
必选修规则(Dto.View) 必选修规则(Dto.View)

@ -23,5 +23,25 @@ namespace Tiobon.Core.Model.Models
/// </summary> /// </summary>
public class EditGhre_StudyRecordInput : Ghre_StudyRecordBase public class EditGhre_StudyRecordInput : Ghre_StudyRecordBase
{ {
/// <summary>
/// 得分
/// </summary>
public decimal? Score { get; set; }
/// <summary>
/// 调整得分
/// </summary>
public decimal? AdjustScore { get; set; }
/// <summary>
/// 考试日期
/// </summary>
public DateTime? ExamDate { get; set; }
/// <summary>
/// 是否合格
/// </summary>
public bool? IsPass { get; set; }
} }
} }

@ -23,5 +23,25 @@ namespace Tiobon.Core.Model.Models
/// </summary> /// </summary>
public class InsertGhre_StudyRecordInput : Ghre_StudyRecordBase public class InsertGhre_StudyRecordInput : Ghre_StudyRecordBase
{ {
/// <summary>
/// 得分
/// </summary>
public decimal? Score { get; set; }
/// <summary>
/// 调整得分
/// </summary>
public decimal? AdjustScore { get; set; }
/// <summary>
/// 考试日期
/// </summary>
public DateTime? ExamDate { get; set; }
/// <summary>
/// 是否合格
/// </summary>
public bool? IsPass { get; set; }
} }
} }

@ -142,5 +142,9 @@ public class Ghre_StudyRecordDto : Ghre_StudyRecord
public string ExamDuration { get; set; } public string ExamDuration { get; set; }
public DateTime? ActualEndTime { get; set; } public DateTime? ActualEndTime { get; set; }
public DateTime? ActualBeginTime { get; set; } public DateTime? ActualBeginTime { get; set; }
/// <summary>
/// 是否合格
/// </summary>
public string IsPass { get; set; }
} }

@ -205,6 +205,7 @@ public class BaseServices<TEntity, TEntityDto, TInsertDto, TEditDto> : IBaseServ
editable, editable,
rowNum, rowNum,
colNum, colNum,
dataType,
elementType, elementType,
dbo.FS_GetdataSourceBySet dbo.FS_GetdataSourceBySet
(dataSource, APIDataSourceType, Ghrs_PageSettingEdit.APIDataSourceID) (dataSource, APIDataSourceType, Ghrs_PageSettingEdit.APIDataSourceID)
@ -228,6 +229,7 @@ public class BaseServices<TEntity, TEntityDto, TInsertDto, TEditDto> : IBaseServ
new JProperty("editable",!string.IsNullOrWhiteSpace(dt.Rows[i]["editable"].ToString())? Convert.ToBoolean(dt.Rows[i]["editable"]):null), new JProperty("editable",!string.IsNullOrWhiteSpace(dt.Rows[i]["editable"].ToString())? Convert.ToBoolean(dt.Rows[i]["editable"]):null),
new JProperty("rowNum",!string.IsNullOrWhiteSpace(dt.Rows[i]["rowNum"].ToString())? Convert.ToInt32(dt.Rows[i]["rowNum"]):null), new JProperty("rowNum",!string.IsNullOrWhiteSpace(dt.Rows[i]["rowNum"].ToString())? Convert.ToInt32(dt.Rows[i]["rowNum"]):null),
new JProperty("colNum",!string.IsNullOrWhiteSpace(dt.Rows[i]["colNum"].ToString())? Convert.ToInt32(dt.Rows[i]["colNum"]):null), new JProperty("colNum",!string.IsNullOrWhiteSpace(dt.Rows[i]["colNum"].ToString())? Convert.ToInt32(dt.Rows[i]["colNum"]):null),
new JProperty("dataType", dt.Rows[i]["dataType"].ToString()),
new JProperty("elementType", dt.Rows[i]["elementType"].ToString()), new JProperty("elementType", dt.Rows[i]["elementType"].ToString()),
new JProperty("dataSource", dt.Rows[i]["dataSource"].ToString()), new JProperty("dataSource", dt.Rows[i]["dataSource"].ToString()),
new JProperty("defaultHidden", dt.Rows[i]["defaultHidden"].ToString()), new JProperty("defaultHidden", dt.Rows[i]["defaultHidden"].ToString()),

@ -11,7 +11,8 @@ using Newtonsoft.Json;
using Tiobon.Core.Common.Helper; using Tiobon.Core.Common.Helper;
using SqlSugar; using SqlSugar;
using static Tiobon.Core.Model.Consts; using static Tiobon.Core.Model.Consts;
using Microsoft.IdentityModel.Tokens; using Tiobon.Core.Common.DB.Dapper.Extensions;
using MongoDB.Driver.Linq;
namespace Tiobon.Core.Services namespace Tiobon.Core.Services
{ {
@ -97,6 +98,110 @@ namespace Tiobon.Core.Services
} }
public override async Task<long> Add(InsertGhre_StudyRecordInput entity)
{
if (await Db.Queryable<Ghre_StudyRecord>()
.WhereIF(!entity.CourseId.IsNullOrEmpty(), x => x.CourseId == entity.CourseId)
.WhereIF(!entity.CourseSceneId.IsNullOrEmpty(), x => x.CourseSceneId == entity.CourseSceneId)
.AnyAsync(x => x.StaffId == entity.StaffId))
throw new Exception("该用户存在相同学习记录!");
if (entity.BeginTime != null && entity.EndTime != null)
{
if (entity.EndTime < entity.BeginTime)
throw new Exception("学习结束时间需大于学习开始时间!");
if (entity.EndTime > DateTime.Now)
throw new Exception("学习结束时间需小于当前时间!");
TimeSpan timeDifference = entity.EndTime.Value - entity.BeginTime.Value;
entity.StudyDuration = (decimal)timeDifference.TotalMinutes;
}
var snap = await Db.Queryable<Ghre_CourseSnap>().FirstAsync(x => x.CourseId == entity.CourseId);
entity.CourseSnapId = snap?.Id;
entity.CourseType = "ManualInsert";
var result = await base.Add(entity);
var examRecord = new Ghre_ExamRecord()
{
StudyRecordId = result,
StaffId = entity.StaffId,
CourseSnapId = snap?.Id,
Score = entity.Score,
AdjustScore = entity.AdjustScore,
ExamDate = entity.ExamDate,
IsPass = entity.IsPass,
};
await Db.Insertable(examRecord).ExecuteCommandAsync();
return result;
}
public override async Task<bool> Update(long Id, EditGhre_StudyRecordInput editModel)
{
if (await Db.Queryable<Ghre_StudyRecord>()
.WhereIF(!editModel.CourseId.IsNullOrEmpty(), x => x.CourseId == editModel.CourseId)
.WhereIF(!editModel.CourseSceneId.IsNullOrEmpty(), x => x.CourseSceneId == editModel.CourseSceneId)
.AnyAsync(x => x.StaffId == editModel.StaffId && x.Id != Id))
throw new Exception("该用户存在相同学习记录!");
if (editModel.BeginTime != null && editModel.EndTime != null)
{
if (editModel.EndTime < editModel.BeginTime)
throw new Exception("学习结束时间需大于学习开始时间!");
if (editModel.EndTime > DateTime.Now)
throw new Exception("学习结束时间需小于当前时间!");
TimeSpan timeDifference = editModel.EndTime.Value - editModel.BeginTime.Value;
editModel.StudyDuration = (decimal)timeDifference.TotalMinutes;
}
var snap = await Db.Queryable<Ghre_CourseSnap>().FirstAsync(x => x.CourseId == editModel.CourseId);
editModel.CourseSnapId = snap?.Id;
editModel.CourseType = "ManualInsert";
var result = await base.Update(Id, editModel);
var snapId = snap?.Id;
await Db.Updateable<Ghre_ExamRecord>()
.SetColumns(it => new Ghre_ExamRecord()
{
StaffId = editModel.StaffId,
CourseSnapId = snapId,
Score = editModel.Score,
AdjustScore = editModel.AdjustScore,
ExamDate = editModel.ExamDate,
IsPass = editModel.IsPass
})
.Where(it => it.StudyRecordId == Id)
.ExecuteCommandAsync();
return result;
}
public override async Task<ServiceFormResult<Ghre_StudyRecordDto>> QueryForm(QueryForm body)
{
var result = await base.QueryForm(body);
var DT_TableDataT1 = result.result.DT_TableDataT1;
for (int i = 0; i < DT_TableDataT1.Count; i++)
{
var record = await Db.Queryable<Ghre_ExamRecord>().FirstAsync(x => x.StudyRecordId == DT_TableDataT1[i].Id);
if (record != null)
{
DT_TableDataT1[i].Score = record.Score;
DT_TableDataT1[i].AdjustScore = record.AdjustScore;
if (record.ExamDate != null)
DT_TableDataT1[i].ExamDate = record.ExamDate.Value.ToString();
if (record.IsPass != null)
DT_TableDataT1[i].IsPass = record.IsPass == true ? "true" : "false";
}
}
result.result.DT_TableDataT1 = DT_TableDataT1;
return result;
}
#region 获取ESS查询条件 #region 获取ESS查询条件
public async Task<ServiceResult<CoursePublicSearch>> QueryESSSearchFields(QueryBody body) public async Task<ServiceResult<CoursePublicSearch>> QueryESSSearchFields(QueryBody body)
{ {

@ -7,15 +7,10 @@ using Tiobon.Core.Common.Caches;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using Tiobon.Core.Common; using Tiobon.Core.Common;
using Tiobon.Core.Model; using Tiobon.Core.Model;
using Newtonsoft.Json;
using Tiobon.Core.Common.Helper; using Tiobon.Core.Common.Helper;
using Org.BouncyCastle.Crypto;
using SqlSugar; using SqlSugar;
using MathNet.Numerics.Distributions;
using MongoDB.Driver.Linq; using MongoDB.Driver.Linq;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using System.Data; using System.Data;
using System.Collections.Generic;
namespace Tiobon.Core.Services; namespace Tiobon.Core.Services;

@ -5762,6 +5762,26 @@
培训记录 (Dto.EditInput) 培训记录 (Dto.EditInput)
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.EditGhre_StudyRecordInput.Score">
<summary>
得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.EditGhre_StudyRecordInput.AdjustScore">
<summary>
调整得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.EditGhre_StudyRecordInput.ExamDate">
<summary>
考试日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.EditGhre_StudyRecordInput.IsPass">
<summary>
是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_StudyRuleInput"> <member name="T:Tiobon.Core.Model.Models.EditGhre_StudyRuleInput">
<summary> <summary>
必选修规则 (Dto.EditInput) 必选修规则 (Dto.EditInput)
@ -5967,6 +5987,26 @@
培训记录 (Dto.InsertInput) 培训记录 (Dto.InsertInput)
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput.Score">
<summary>
得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput.AdjustScore">
<summary>
调整得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput.ExamDate">
<summary>
考试日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput.IsPass">
<summary>
是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_StudyRuleInput"> <member name="T:Tiobon.Core.Model.Models.InsertGhre_StudyRuleInput">
<summary> <summary>
必选修规则 (Dto.InsertInput) 必选修规则 (Dto.InsertInput)
@ -13322,6 +13362,11 @@
考试时长 考试时长
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDto.IsPass">
<summary>
是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_StudyRuleDto"> <member name="T:Tiobon.Core.Model.Models.Ghre_StudyRuleDto">
<summary> <summary>
必选修规则(Dto.View) 必选修规则(Dto.View)

Loading…
Cancel
Save