开班统计数据接口开发

查询开班提交记录接口开发
master
xiaochanghai 3 months ago
parent 93b63d4862
commit ab9f6d9459
  1. 12
      Tiobon.Core.Api/Controllers/Ghre/Ghre_SurveyController.cs
  2. 25
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 8
      Tiobon.Core.Api/Tiobon.Core.xml
  4. 2
      Tiobon.Core.IServices/Ghre/IGhre_SurveyServices.cs
  5. 46
      Tiobon.Core.Model/ViewModels/Extend/InsertGhre_SurveyExtend.cs
  6. 58
      Tiobon.Core.Services/Ghre/Ghre_SurveyServices.cs
  7. 25
      Tiobon.Core/Tiobon.Core.Model.xml
  8. 8
      Tiobon.Core/Tiobon.Core.xml

@ -96,10 +96,20 @@ public class Ghre_SurveyController : BaseController<IGhre_SurveyServices, Ghre_S
/// 发布
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("Publish/{id}")]
public async Task<ServiceResult> Publish(long id) => await _service.Publish(id);
#endregion
#region 统计
/// <summary>
/// 统计
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost("QueryStatistic/{id}")]
public async Task<ServiceResult<Ghre_SurveyStatistic>> QueryStatistic(long id) => await _service.QueryStatistic(id);
#endregion
}

@ -37008,6 +37008,31 @@
问卷调查选项
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyStatistic.New">
<summary>
今日新增
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyStatistic.Has">
<summary>
已填写
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyStatistic.All">
<summary>
未填写
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyStatistic.Questions">
<summary>
问卷调查题目
</summary>
</member>
<member name="T:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyStatisticQuestion">
<summary>
问卷调查题目
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeRecommendForm.RequestId">
<summary>
人力需求维护ID

@ -1432,7 +1432,13 @@
发布
</summary>
<param name="id"></param>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_SurveyController.QueryStatistic(System.Int64)">
<summary>
统计
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_SurveyOptionController">

@ -21,4 +21,6 @@ public interface IGhre_SurveyServices : IBaseServices<Ghre_Survey, Ghre_SurveyDt
Task<ServiceResult> SubmitESSData(long id, Ghre_SurveyExtend input);
Task<ServiceResult> Publish(long id);
Task<ServiceResult<Ghre_SurveyStatistic>> QueryStatistic(long id);
}

@ -303,3 +303,49 @@ public class Ghre_SurveyQuestionExtend : Ghre_SurveyQuestionExtendBase
public class Ghre_SurveyOptionExtend : InsertGhre_SurveyOptionExtend
{
}
public class Ghre_SurveyStatistic
{
/// <summary>
/// 今日新增
/// </summary>
public int New { get; set; }
/// <summary>
/// 已填写
/// </summary>
public int Has { get; set; }
/// <summary>
/// 未填写
/// </summary>
public int All { get; set; }
/// <summary>
/// 问卷调查题目
/// </summary>
public List<Ghre_SurveyStatisticQuestion> Questions { get; set; }
}
/// <summary>
/// 问卷调查题目
/// </summary>
public class Ghre_SurveyStatisticQuestion : Ghre_SurveyQuestionExtendBase
{
public List<Ghre_SurveyStatisticQuestionTable> Table { get; set; }
}
public class Ghre_SurveyStatisticQuestionTable
{
public long Id { get; set; }
public string OptionNo { get; set; }
public string OptionContent { get; set; }
public decimal Count { get; set; }
public string Percent { get; set; }
public decimal? Percent1 { get; set; } = 0;
}

@ -1,4 +1,7 @@
namespace Tiobon.Core.Services;
using AgileObjects.AgileMapper.Extensions;
using Microsoft.IdentityModel.Tokens;
namespace Tiobon.Core.Services;
/// <summary>
/// 问卷调查 (服务)
@ -398,8 +401,6 @@ public class Ghre_SurveyServices : BaseServices<Ghre_Survey, Ghre_SurveyDto, Ins
return ServiceResult.OprateSuccess("提交成功!");
}
public async Task<ServiceResult> Publish(long id)
{
var entity = await base.QueryById(id);
@ -457,4 +458,55 @@ public class Ghre_SurveyServices : BaseServices<Ghre_Survey, Ghre_SurveyDto, Ins
return ServiceResult.OprateSuccess("发布成功!");
}
public async Task<ServiceResult<Ghre_SurveyStatistic>> QueryStatistic(long id)
{
var data = new Ghre_SurveyStatistic();
var entity = await base.QueryById(id);
var deptIds = new List<int>();
var staffIds = new List<int>();
if (entity.DeptId.IsNotEmptyOrNull())
deptIds = JsonHelper.JsonToObj<List<int>>(entity.DeptId);
if (entity.StaffId.IsNotEmptyOrNull())
staffIds = JsonHelper.JsonToObj<List<int>>(entity.StaffId);
var staffIds1 = await Db.Queryable<Ghra_Staff>().Where(x => x.DeptID != null && deptIds.Contains(x.DeptID.Value)).Select(x => x.StaffID).ToListAsync();
staffIds.AddRange(staffIds1);
staffIds = staffIds.Distinct().ToList();
data.All = staffIds.Count;
data.Has = await Db.Queryable<Ghre_SurveyRecord>().Where(x => x.SurveyId == id).CountAsync();
data.New = await Db.Queryable<Ghre_SurveyRecord>().Where(x => x.SurveyId == id && x.SubmitDate.Value.Date == DateTime.Now.Date).CountAsync();
var recordOptions = await Db.Queryable<Ghre_SurveyRecordOption>().Where(x => x.SurveyId == id).ToListAsync();
var questions = await Db.Queryable<Ghre_SurveyQuestion>().OrderBy(x => x.SortNo).Where(x => x.SurveyId == id).ToListAsync();
var options = await Db.Queryable<Ghre_SurveyOption>().OrderBy(x => x.SortNo).Where(x => x.SurveyId == id).ToListAsync();
data.Questions = Mapper.Map(questions).ToANew<List<Ghre_SurveyStatisticQuestion>>();
data.Questions.ForEach(x =>
{
x.Table = Mapper.Map(options.Where(o => o.SurveyQuestionId == x.Id)).ToANew<List<Ghre_SurveyStatisticQuestionTable>>();
decimal total = recordOptions.Where(a => a.SurveyQuestionId == x.Id).Count();
x.Table.ForEach(o =>
{
o.Count = recordOptions.Where(a => a.SurveyQuestionOptionId == o.Id).Count();
if (o.Count > 0 && total > 0)
{
o.Percent1 = o.Count / total;
o.Percent1 = o.Percent1 * 100;
o.Percent = $"{o.Percent1.RemoveZero()}%";
}else
o.Percent = $"0%";
});
});
return ServiceResult<Ghre_SurveyStatistic>.OprateSuccess("查询成功!", data);
}
}

@ -37008,6 +37008,31 @@
问卷调查选项
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyStatistic.New">
<summary>
今日新增
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyStatistic.Has">
<summary>
已填写
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyStatistic.All">
<summary>
未填写
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyStatistic.Questions">
<summary>
问卷调查题目
</summary>
</member>
<member name="T:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyStatisticQuestion">
<summary>
问卷调查题目
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeRecommendForm.RequestId">
<summary>
人力需求维护ID

@ -1432,7 +1432,13 @@
发布
</summary>
<param name="id"></param>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_SurveyController.QueryStatistic(System.Int64)">
<summary>
统计
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_SurveyOptionController">

Loading…
Cancel
Save