新增ESS端提交问卷信息接口

master
xiaochanghai 3 months ago
parent 73e50c0576
commit 67916ce2f7
  1. 12
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  2. 13
      Tiobon.Core.Model/ViewModels/Extend/InsertGhre_SurveyExtend.cs
  3. 101
      Tiobon.Core.Services/Ghre/Ghre_SurveyServices.cs

@ -36088,19 +36088,19 @@
问卷调查选项 问卷调查选项
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyOptionExtend"> <member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyQuestionExtend.Value">
<summary> <summary>
问卷调查选项 选项
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyOptionExtend.Value"> <member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyQuestionExtend.Value1">
<summary> <summary>
选项 选项列表
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyOptionExtend.Value1"> <member name="T:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyOptionExtend">
<summary> <summary>
选项列表 问卷调查选项
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeRecommendForm.RequestId"> <member name="P:Tiobon.Core.Model.ViewModels.Extend.ResumeRecommendForm.RequestId">

@ -285,13 +285,7 @@ public class Ghre_SurveyQuestionExtend : Ghre_SurveyQuestionExtendBase
/// 问卷调查选项 /// 问卷调查选项
/// </summary> /// </summary>
public List<Ghre_SurveyOptionExtend> Options { get; set; } public List<Ghre_SurveyOptionExtend> Options { get; set; }
}
/// <summary>
/// 问卷调查选项
/// </summary>
public class Ghre_SurveyOptionExtend : InsertGhre_SurveyOptionExtend
{
/// <summary> /// <summary>
/// 选项 /// 选项
/// </summary> /// </summary>
@ -301,4 +295,11 @@ public class Ghre_SurveyOptionExtend : InsertGhre_SurveyOptionExtend
/// 选项列表 /// 选项列表
/// </summary> /// </summary>
public List<string> Value1 { get; set; } public List<string> Value1 { get; set; }
}
/// <summary>
/// 问卷调查选项
/// </summary>
public class Ghre_SurveyOptionExtend : InsertGhre_SurveyOptionExtend
{
} }

@ -1,4 +1,7 @@
namespace Tiobon.Core.Services; using MathNet.Numerics.Distributions;
using Tiobon.Core.Common;
namespace Tiobon.Core.Services;
/// <summary> /// <summary>
/// 问卷调查 (服务) /// 问卷调查 (服务)
@ -220,23 +223,97 @@ public class Ghre_SurveyServices : BaseServices<Ghre_Survey, Ghre_SurveyDto, Ins
public async Task<ServiceResult> SubmitESSData(long id, Ghre_SurveyExtend input) public async Task<ServiceResult> SubmitESSData(long id, Ghre_SurveyExtend input)
{ {
var entity = await base.QueryById(id); var entity = await base.QueryById(id);
var data = Mapper.Map(entity).ToANew<Ghre_SurveyExtend>();
data.BeginEndTime.Add(data.BeginTime); await Db.Updateable<Ghre_SurveyRecord>()
data.BeginEndTime.Add(data.EndTime); .SetColumns(it => new Ghre_SurveyRecord() { IsEnable = 0 })
if (entity.StaffId.IsNotEmptyOrNull()) .Where(x => x.StaffId == App.User.StaffId && x.SurveyId == id && x.IsEnable == 1)
data.StaffIds = JsonHelper.JsonToObj<List<int>>(entity.StaffId); .ExecuteCommandAsync();
if (entity.DeptId.IsNotEmptyOrNull())
data.DeptIds = JsonHelper.JsonToObj<List<int>>(entity.DeptId);
var questions = await Db.Queryable<Ghre_SurveyQuestion>().OrderBy(x => x.SortNo).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(); 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_SurveyQuestionExtend>>(); //var recordId = SnowFlakeSingle.Instance.NextId();
data.Questions.ForEach(x => var record = new Ghre_SurveyRecord()
{ {
x.Options = Mapper.Map(options.Where(o => o.SurveyQuestionId == x.Id)).ToANew<List<Ghre_SurveyOptionExtend>>(); //Id = recordId,
}); SurveyId = id,
StaffId = App.User.StaffId,
Score = 0,
AdjustScore = 0,
SubmitDate = DateTime.Now,
IsView = false
};
var recordDetails = new List<Ghre_SurveyRecordDetail>();
var recordId = await Db.Insertable(record).ExecuteReturnSnowflakeIdAsync();
for (int i = 0; i < input.Questions.Count; i++)
{
var question = input.Questions[i];
var recordDetailId = await Db.Insertable(new Ghre_SurveyRecordDetail()
{
SurveyId = id,
SurveyRecordId = recordId,
SurveyQuestionId = question.Id,
StaffId = App.User.StaffId,
Score = 0
}).ExecuteReturnSnowflakeIdAsync();
var recordOptions = new List<Ghre_SurveyRecordOption>();
switch (question.QuestionType)
{
case "Multiple":
case "MultipleScore":
for (int j = 0; j < question.Value1.Count; j++)
{
var option1 = new Ghre_SurveyRecordOption()
{
SurveyId = id,
SurveyRecordId = recordId,
SurveyRecordDetailId = recordDetailId,
SurveyQuestionId = question.Id,
//SurveyQuestionOptionId = x.Id,
StaffId = App.User.StaffId,
Score = 0
};
option1.SurveyQuestionOptionId = question.Options.Where(x => x.OptionNo == question.Value1[j]).FirstOrDefault()?.Id;
option1.OptionContent = question.Value1[j];
await Db.Insertable(option1).ExecuteReturnSnowflakeIdAsync();
}
break;
case "Single":
case "ShortAnswer":
case "SingleScore":
case "Rate":
case "Scale":
var option = new Ghre_SurveyRecordOption()
{
SurveyId = id,
SurveyRecordId = recordId,
SurveyRecordDetailId = recordDetailId,
SurveyQuestionId = question.Id,
//SurveyQuestionOptionId = x.Id,
StaffId = App.User.StaffId,
Score = 0
};
option.SurveyQuestionOptionId = question.Options.Where(x => x.OptionNo == question.Value).FirstOrDefault()?.Id;
option.OptionContent = question.Value;
await Db.Insertable(option).ExecuteReturnSnowflakeIdAsync();
break;
default:
break;
}
}
return ServiceResult.OprateSuccess("提交成功!"); return ServiceResult.OprateSuccess("提交成功!");
} }

Loading…
Cancel
Save