学习时长记录新增每个附件必须打开

master
xiaochanghai 5 months ago
parent c6fef3ed6e
commit 800fd383dd
  1. 4
      Tiobon.Core.Common/DB/Aop/SqlsugarAop.cs
  2. 40
      Tiobon.Core.Services/Ghre/Ghre_StudyRecordServices.cs
  3. 225
      Tiobon.Core/Tiobon.Core.Model.xml
  4. 8
      Tiobon.Core/Tiobon.Core.xml

@ -92,7 +92,9 @@ public static class SqlSugarAop
case DataFilterType.InsertByObject:
var dyCreateBy = getType.GetProperty("CreateBy");
var dyCreateTime = getType.GetProperty("CreateTime");
BasePoco ent = entityInfo.EntityValue as BasePoco;
if (ent.Id == 0)
ent.Id = SnowFlakeSingle.Instance.NextId();
if (App.User?.ID > 0 && dyCreateBy != null && dyCreateBy.GetValue(entityInfo.EntityValue) == null)
{
try

@ -1334,16 +1334,39 @@ WHERE A.Id = '{id}'";
var sql = $"UPDATE Ghre_StudyRecord SET StudyDuration = ISNULL(StudyDuration, 0)+{duration} WHERE Id='{studyRecordId}' AND StaffId='{staffId}'";
await Db.Ado.ExecuteCommandAsync(sql);
await Task.Factory.StartNew(async () => await GenerateStaffStudyRecord(Db, studyRecordId));
await Task.Factory.StartNew(async () => await GenerateStaffStudyRecord(Db, studyRecordId, duration.Value, attachmentId));
return ServiceResult.OprateSuccess("记录成功!");
}
public async Task<bool> GenerateStaffStudyRecord(ISqlSugarClient Db, long studyRecordId)
public async Task<bool> GenerateStaffStudyRecord(ISqlSugarClient Db, long studyRecordId, decimal duration, long attachmentId)
{
var record = await Db.Queryable<Ghre_StudyRecord>().FirstAsync(x => x.Id == studyRecordId);
var attachment = await Db.Queryable<Ghre_CourseWareAttachment>().FirstAsync(x => x.Id == attachmentId);
var courseWareIds = new List<long?>();
if (record.CourseId.IsNullOrEmpty())
courseWareIds = await Db.Queryable<Ghre_Course>().Where(x => x.CourseSceneId == record.CourseSceneId).Select(x => x.CourseWareId).ToListAsync();
else
courseWareIds = await Db.Queryable<Ghre_Course>().Where(x => x.Id == record.CourseId).Select(x => x.CourseWareId).ToListAsync();
#region 记录学习明细
var detail = new Ghre_StudyRecordDetail()
{
StudyRecordId = studyRecordId,
StaffId = record.StaffId,
CourseWareId = attachment.CourseWareId,
CourseWareAttachmentId = attachmentId,
StudyDuration = duration
};
await Db.Insertable(detail).ExecuteCommandAsync();
#endregion
decimal studyProgress = 0;
var sql = $@"SELECT ISNULL (A.Hours, 0) * 60 + A.Minutes Minutes
@ -1357,13 +1380,22 @@ WHERE A.Id = '{id}'";
if (mins > 0)
{
var duration = record.StudyDuration ?? 0;
duration = record.StudyDuration ?? 0;
studyProgress = (duration / mins) * 100;
if (studyProgress > 100)
studyProgress = 100;
}
#region 判断所以附件 是否都被打开
#region 判断所有附件 是否都被打开
if (studyProgress == 100)
{
var detailWareAttachmentCount = await Db.Queryable<Ghre_StudyRecordDetail>().Where(x => x.StudyRecordId == studyRecordId).Select(x => x.CourseWareAttachmentId).Distinct().CountAsync();
var wareAttachmentCount = await Db.Queryable<Ghre_CourseWareAttachment>().Where(x => courseWareIds.Contains(x.CourseWareId)).CountAsync();
if (wareAttachmentCount != detailWareAttachmentCount)
studyProgress = 99;
}
#endregion

@ -5675,6 +5675,106 @@
员工培训ID
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase">
<summary>
培训记录明细 (Dto.Base)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.StudyRecordId">
<summary>
学习记录ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.StaffId">
<summary>
员工ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.CourseWareId">
<summary>
课件ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.CourseWareAttachmentId">
<summary>
附件ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.StudyDuration">
<summary>
学习时长
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_StudyRuleBase">
<summary>
必选修规则 (Dto.Base)
@ -12787,6 +12887,11 @@
是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_StudyRecordDetailInput">
<summary>
培训记录明细 (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_StudyRuleInput">
<summary>
必选修规则 (Dto.EditInput)
@ -13252,6 +13357,11 @@
是否合格
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_StudyRecordDetailInput">
<summary>
培训记录明细 (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_StudyRuleInput">
<summary>
必选修规则 (Dto.InsertInput)
@ -19351,6 +19461,106 @@
员工培训ID
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail">
<summary>
培训记录明细 (Model)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.StudyRecordId">
<summary>
学习记录ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.StaffId">
<summary>
员工ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.CourseWareId">
<summary>
课件ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.CourseWareAttachmentId">
<summary>
附件ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.StudyDuration">
<summary>
学习时长
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_StudyRule">
<summary>
必选修规则 (Model)
@ -27957,6 +28167,21 @@
考试状态
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailDto">
<summary>
培训记录明细(Dto.View1)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailDto.CreateDataInfo">
<summary>
创建信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailDto.UpdateDataInfo">
<summary>
修改信息
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_StudyRuleDto">
<summary>
必选修规则(Dto.View)

@ -1184,12 +1184,13 @@
<param name="id"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_StudyRecordController.RecordDuration(Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput,System.Int64)">
<member name="M:Tiobon.Core.Api.Controllers.Ghre_StudyRecordController.RecordDuration(Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput,System.Int64,System.Int64)">
<summary>
记录学习时长
</summary>
<param name="insert"></param>
<param name="id"></param>
<param name="attachmentId"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_StudyRecordController.QueryTeacherClassAnalysis(Tiobon.Core.Common.QueryBody)">
@ -1199,6 +1200,11 @@
<param name="body"></param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_StudyRecordDetailController">
<summary>
培训记录明细(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_StudyRuleController">
<summary>
必选修规则(Controller)

Loading…
Cancel
Save