开班详情页查询评估接口

master
xiaochanghai 1 month ago
parent d0e2b50c38
commit 74e18fba16
  1. 14
      Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs
  2. 35
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 7
      Tiobon.Core.Api/Tiobon.Core.xml
  4. 3
      Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs
  5. 83
      Tiobon.Core.Model/ViewModels/Extend/InsertGhre_SurveyExtend.cs
  6. 83
      Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs
  7. 2
      Tiobon.Core.Services/Ghre/Ghre_SurveyServices.cs
  8. 35
      Tiobon.Core/Tiobon.Core.Model.xml
  9. 7
      Tiobon.Core/Tiobon.Core.xml

@ -1,4 +1,6 @@
namespace Tiobon.Core.Api.Controllers;
using Tiobon.Core.Model.ViewModels.Extend;
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// 开班管理(Controller)
@ -230,4 +232,14 @@ public class Ghre_OpenClassController : BaseController<IGhre_OpenClassServices,
[HttpPost, Route("Email/{Id}")]
public async Task<ServiceResult> Email(long Id) => await _service.Email(Id);
#endregion
#region 统计
/// <summary>
/// 统计
/// </summary>
/// <param name="Id">开班ID</param>
/// <returns></returns>
[HttpPost, Route("QueryStatistic/{Id}")]
public async Task<ServiceResult<Ghre_OpenClassStatistic>> QueryStatistic(long Id) => await _service.QueryStatistic(Id);
#endregion
}

@ -42483,6 +42483,41 @@
问卷调查题目
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassStatistic.CourseScore">
<summary>
课程得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassStatistic.TeacherScore">
<summary>
讲师得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassStatistic.TotalScore">
<summary>
反馈统计得发
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassTotalGroup.New">
<summary>
今日新增
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassTotalGroup.Has">
<summary>
已填写
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassTotalGroup.Not">
<summary>
未填写
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassTotalGroup.All">
<summary>
全部
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeRecommendForm.RequestId">
<summary>
人力需求维护ID

@ -1298,6 +1298,13 @@
<param name="Id">开班ID</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_OpenClassController.QueryStatistic(System.Int64)">
<summary>
统计
</summary>
<param name="Id">开班ID</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassFeeController">
<summary>
开班费用(Controller)

@ -1,4 +1,5 @@
using Tiobon.Core.Model;
using Tiobon.Core.Model.ViewModels.Extend;
namespace Tiobon.Core.IServices;
@ -37,4 +38,6 @@ public interface IGhre_OpenClassServices : IBaseServices<Ghre_OpenClass, Ghre_Op
Task<ServiceResult> Attend(long Id, string type);
Task<ServiceResult> Email(long Id);
Task<ServiceResult<Ghre_OpenClassStatistic>> QueryStatistic(long id);
}

@ -189,7 +189,7 @@ public class Ghre_SurveyQuestionExtendBase
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 内置
/// </summary>
@ -359,4 +359,85 @@ public class Ghre_SurveyStatisticQuestionTable
public string Percent { get; set; }
public decimal? Percent1 { get; set; } = 0;
}
public class Ghre_OpenClassStatistic
{
/// <summary>
/// 课程得分
/// </summary>
public decimal? CourseScore { get; set; } = 0;
/// <summary>
/// 讲师得分
/// </summary>
public decimal? TeacherScore { get; set; } = 0;
/// <summary>
/// 反馈统计得发
/// </summary>
public int TotalScore { get; set; } = 0;
public Ghre_OpenClassGroup CourseGroup { get; set; } = new Ghre_OpenClassGroup();
public Ghre_OpenClassGroup TeacherGroup { get; set; } = new Ghre_OpenClassGroup();
public Ghre_OpenClassTotalGroup TotalGroup { get; set; } = new Ghre_OpenClassTotalGroup();
public List<Ghre_OpenClassStatisticRecord> Records { get; set; } = new List<Ghre_OpenClassStatisticRecord>();
}
public class Ghre_OpenClassStatisticRecord
{
public long Id { get; set; }
public string StaffNo { get; set; }
public string StaffName { get; set; }
public string DeptName { get; set; }
public string CourseName { get; set; }
public string ScoreStatus { get; set; }
public decimal Score { get; set; }
public string Source { get; set; }
}
public class Ghre_OpenClassGroup
{
public List<Ghre_OpenClassQuestion> Trainee { get; set; } = new List<Ghre_OpenClassQuestion>();
public List<Ghre_OpenClassQuestion> ParentTeacher { get; set; } = new List<Ghre_OpenClassQuestion>();
}
public class Ghre_OpenClassQuestion
{
public long Id { get; set; }
public string QuestionContent { get; set; }
public string QuestionType { get; set; }
public string FullName { get; set; }
public decimal? Score { get; set; }
}
public class Ghre_OpenClassTotalGroup
{
/// <summary>
/// 今日新增
/// </summary>
public int New { get; set; }
/// <summary>
/// 已填写
/// </summary>
public int Has { get; set; }
/// <summary>
/// 未填写
/// </summary>
public int Not { get; set; }
/// <summary>
/// 全部
/// </summary>
public int All { get; set; }
public Ghre_SurveyStatistic Trainee { get; set; }
public Ghre_SurveyStatistic ParentTeacher { get; set; }
}

@ -12,6 +12,7 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas
private readonly IGhre_StaffGroupServices _ghre_StaffGroupServices;
private readonly IGhre_OpenClassScheduleServices _ghre_OpenClassScheduleServices;
private readonly IGhre_OpenClassFeedbackServices _ghre_OpenClassFeedbackServices;
private readonly IGhre_SurveyServices _ghre_SurveyServices;
private readonly IBaseRepository<Ghre_OpenClass> _dal;
public Ghre_OpenClassServices(ICaching caching,
IBaseRepository<Ghre_OpenClass> dal,
@ -19,6 +20,7 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas
IGhre_OpenClassFeeServices ghre_OpenClassFeeServices,
IGhre_StaffGroupServices ghre_StaffGroupServices,
IGhre_OpenClassFeedbackServices ghre_OpenClassFeedbackServices,
IGhre_SurveyServices ghre_SurveyServices,
IGhre_OpenClassScheduleServices ghre_OpenClassScheduleServices)
{
this._dal = dal;
@ -29,6 +31,7 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas
_ghre_OpenClassScheduleServices = ghre_OpenClassScheduleServices;
_ghre_StaffGroupServices = ghre_StaffGroupServices;
_ghre_OpenClassFeedbackServices = ghre_OpenClassFeedbackServices;
_ghre_SurveyServices = ghre_SurveyServices;
}
public override async Task<ServicePageResult<Ghre_OpenClassDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
@ -857,12 +860,84 @@ WHERE A.OpenClassId = '{Id}' AND A.IsEnable = 1";
/// </summary>
/// <param name="Id">开班ID</param>
/// <returns></returns>
public async Task<ServiceResult<Ghre_SurveyStatistic>> QueryStatistic(long id)
public async Task<ServiceResult<Ghre_OpenClassStatistic>> QueryStatistic(long id)
{
var data = new Ghre_SurveyStatistic();
var data = new Ghre_OpenClassStatistic();
var entity = await base.QueryById(id);
var surveyRecords = await Db.Queryable<Ghre_SurveyRecord>().Where(x => x.OpenClassId == id).ToListAsync();
var surveyIds = surveyRecords.Select(x => x.SurveyId).Distinct().ToList();
var recordOptions = await Db.Queryable<Ghre_SurveyRecordOption>()
.Where(x => surveyIds.Contains(x.SurveyId))
.ToListAsync();
data.CourseScore = surveyRecords.Sum(x => x.Score);
data.TeacherScore = surveyRecords.Sum(x => x.Score);
var questions = await Db.Queryable<Ghre_SurveyQuestion>()
.OrderBy(x => x.SortNo)
.Where(x => x.SurveyId == entity.FeedbackId)
.Select(x => new Ghre_OpenClassQuestion()
{
Id = x.Id,
QuestionContent = x.QuestionContent,
QuestionType = x.QuestionType,
Score = 0
}).ToListAsync();
var parentQuestions = await Db.Queryable<Ghre_SurveyQuestion>()
.OrderBy(x => x.SortNo)
.Where(x => x.SurveyId == entity.ParentFeedbackId)
.Select(x => new Ghre_OpenClassQuestion()
{
Id = x.Id,
QuestionContent = x.QuestionContent,
QuestionType = x.QuestionType,
Score = 0
}).ToListAsync();
questions.ForEach(async x =>
{
x.QuestionType = await GetParaLabel("SurveyQuestionType", x.QuestionType);
x.Score = recordOptions.Where(o => o.SurveyQuestionId == x.Id).Sum(x => x.Score);
});
parentQuestions.ForEach(async x =>
{
x.QuestionType = await GetParaLabel("SurveyQuestionType", x.QuestionType);
x.Score = recordOptions.Where(o => o.SurveyQuestionId == x.Id).Sum(x => x.Score);
});
return ServiceResult<Ghre_SurveyStatistic>.OprateSuccess("查询成功!", data);
data.CourseGroup.Trainee = questions;
data.CourseGroup.ParentTeacher = parentQuestions;
data.TeacherGroup.Trainee = questions;
data.TeacherGroup.ParentTeacher = parentQuestions;
data.TotalGroup.Trainee = (await _ghre_SurveyServices.QueryStatistic(entity.FeedbackId.Value)).Data;
data.TotalGroup.ParentTeacher = (await _ghre_SurveyServices.QueryStatistic(entity.ParentFeedbackId.Value)).Data;
string sql = @$"SELECT A.Id,
B.StaffNo,
B.StaffName,
C.DeptName,
D.CourseName,
'' ScoreStatus,
0 Score,
CASE A.Source
WHEN 'ParentTeacher' THEN ''
WHEN 'Trainee' THEN ''
END AS Source
FROM Ghre_OpenClassFeedback A
LEFT JOIN Ghra_Staff B ON A.StaffId = B.StaffID
LEFT JOIN Ghro_Dept C ON C.DeptID = B.DeptID
LEFT JOIN Ghre_Course D ON A.CourseId = D.Id
WHERE A.SurveyId = {entity.FeedbackId} OR A.SurveyId = {entity.ParentFeedbackId}";
data.Records = DbAccess.QueryList<Ghre_OpenClassStatisticRecord>(sql);
return ServiceResult<Ghre_OpenClassStatistic>.OprateSuccess("查询成功!", data);
}
#endregion
}

@ -428,6 +428,7 @@ public class Ghre_SurveyServices : BaseServices<Ghre_Survey, Ghre_SurveyDto, Ins
var questionOption1 = question.Options.Where(x => x.OptionNo == question.Value1[j]).FirstOrDefault();
option1.SurveyQuestionOptionId = questionOption1?.Id;
option1.Score = questionOption1?.Score;
option1.OptionContent = question.Value1[j];
if (questionOption1.IsOther == true)
@ -455,6 +456,7 @@ public class Ghre_SurveyServices : BaseServices<Ghre_Survey, Ghre_SurveyDto, Ins
var questionOption = question.Options.Where(x => x.OptionNo == question.Value).FirstOrDefault();
option.SurveyQuestionOptionId = questionOption?.Id;
option.Score = questionOption?.Score;
option.OptionContent = question.Value;
if (questionOption.IsOther == true)
option.Reverse1 = questionOption.OtherContent;

@ -42483,6 +42483,41 @@
问卷调查题目
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassStatistic.CourseScore">
<summary>
课程得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassStatistic.TeacherScore">
<summary>
讲师得分
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassStatistic.TotalScore">
<summary>
反馈统计得发
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassTotalGroup.New">
<summary>
今日新增
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassTotalGroup.Has">
<summary>
已填写
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassTotalGroup.Not">
<summary>
未填写
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_OpenClassTotalGroup.All">
<summary>
全部
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeRecommendForm.RequestId">
<summary>
人力需求维护ID

@ -1298,6 +1298,13 @@
<param name="Id">开班ID</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_OpenClassController.QueryStatistic(System.Int64)">
<summary>
统计
</summary>
<param name="Id">开班ID</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassFeeController">
<summary>
开班费用(Controller)

Loading…
Cancel
Save