Commit b9d4b561 authored by liudong1993's avatar liudong1993

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents f4a0ece5 6e952f44
using Edu.Common.Plugin;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Common.Enum.User
{
/// <summary>
/// 打分类型
/// </summary>
public enum CheckTypeEnum
{
/// <summary>
/// 教学主管
/// </summary>
[EnumField("教学主管")]
JiaoXueManager = 1,
/// <summary>
/// 教务主管
/// </summary>
[EnumField("教务主管")]
JiaoWuManager = 2,
}
}
using System; using Edu.Common.Enum.User;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using VT.FW.DB; using VT.FW.DB;
...@@ -40,7 +41,7 @@ namespace Edu.Model.Entity.DataStatistics ...@@ -40,7 +41,7 @@ namespace Edu.Model.Entity.DataStatistics
/// <summary> /// <summary>
/// 考核类型(1-教学主管,2-教务主管) /// 考核类型(1-教学主管,2-教务主管)
/// </summary> /// </summary>
public int CheckType { get; set; } public CheckTypeEnum CheckType { get; set; }
/// <summary> /// <summary>
/// 得分 /// 得分
...@@ -52,5 +53,10 @@ namespace Edu.Model.Entity.DataStatistics ...@@ -52,5 +53,10 @@ namespace Edu.Model.Entity.DataStatistics
/// </summary> /// </summary>
public DateTime CreateTime { get; set; } public DateTime CreateTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
} }
} }
...@@ -393,7 +393,7 @@ namespace Edu.Module.Course ...@@ -393,7 +393,7 @@ namespace Edu.Module.Course
CurGuestNum = curNum, CurGuestNum = curNum,
CurOrderMoney = curOrderMoney, CurOrderMoney = curOrderMoney,
Group_Id = GroupId, Group_Id = GroupId,
CurRewardMoney = GetStepAwardAmount(item, curNum),
CreateBy = 1, CreateBy = 1,
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
UpdateBy = 1, UpdateBy = 1,
...@@ -405,6 +405,9 @@ namespace Edu.Module.Course ...@@ -405,6 +405,9 @@ namespace Edu.Module.Course
//ClueNumSalary = ClueCount > 5 ? item.ClueNumSalary : 0, //ClueNumSalary = ClueCount > 5 ? item.ClueNumSalary : 0,
IsIssue = 0 IsIssue = 0
}; };
//HK 2022-04-14去掉
//pModel.CurRewardMoney = GetStepAwardAmount(item, curNum);
pModel.CurRewardMoney = 0;
pModel.IsReach = pModel.CurOrderMoney > item.MonthGoalMoney ? 1 : 0; pModel.IsReach = pModel.CurOrderMoney > item.MonthGoalMoney ? 1 : 0;
//历史提成数据 //历史提成数据
......
using Edu.Common.Enum; using Edu.AOP.CustomerAttribute;
using Edu.Common.Enum;
using Edu.Common.Enum.User;
using Edu.Model.CacheModel;
using Edu.Model.ViewModel.DataStatistics; using Edu.Model.ViewModel.DataStatistics;
using Edu.Model.ViewModel.User; using Edu.Model.ViewModel.User;
using Edu.Repository.DataStatistics; using Edu.Repository.DataStatistics;
...@@ -39,6 +42,11 @@ namespace Edu.Module.User ...@@ -39,6 +42,11 @@ namespace Edu.Module.User
/// </summary> /// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository(); private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
/// <summary>
/// 字典仓储层对象
/// </summary>
private readonly Rb_dictvalueRepository dictvalueRepository = new Rb_dictvalueRepository();
#region 基础配置 #region 基础配置
/// <summary> /// <summary>
...@@ -236,14 +244,44 @@ namespace Edu.Module.User ...@@ -236,14 +244,44 @@ namespace Edu.Module.User
return list; return list;
} }
/// <summary>
/// 获取字典
/// </summary>
/// <param name="group_Id"></param>
/// <param name="key"></param>
/// <returns></returns>
public List<RB_Dictvalue_Extend> GetDictValueListModule(int group_Id, string key)
{
return dictvalueRepository.GetList(new RB_Dictvalue_Extend() { RB_Group_id = group_Id, DictKey = key });
}
/// <summary> /// <summary>
/// 获取老师考核数据 /// 获取老师考核数据
/// </summary> /// </summary>
/// <param name="TeacherAccountId"></param> /// <param name="TeacherAccountId"></param>
/// <param name="YearStr"></param>
/// <param name="MonthStr"></param>
/// <param name="UserInfo"></param>
/// <returns></returns> /// <returns></returns>
public object GetTeacherAssessmentModule(int TeacherAccountId, int YearStr = 2022, int MonthStr = 4) public object GetTeacherAssessmentModule(int TeacherAccountId, int YearStr , int MonthStr, UserInfo userInfo)
{ {
object result = new object(); object result = new object();
CheckTypeEnum CheckType = 0;
//获取字典配置的教学主管和教务主管
var dicModel = GetDictValueListModule(userInfo.Group_Id, "TEACHER_ASSESSMENT").FirstOrDefault();
if (dicModel != null)
{
//教学主管
if (dicModel.Code.Equals(userInfo.Id.ToString()))
{
CheckType = CheckTypeEnum.JiaoXueManager;
}
//教务主管
if (dicModel.Content.Equals(userInfo.Id.ToString()))
{
CheckType = CheckTypeEnum.JiaoWuManager;
}
}
var extModel = teacher_AssessmentRepository.GetTeacherAssessmentEntityRepository(new RB_Teacher_Assessment_Extend() var extModel = teacher_AssessmentRepository.GetTeacherAssessmentEntityRepository(new RB_Teacher_Assessment_Extend()
{ {
YearStr = YearStr, YearStr = YearStr,
...@@ -252,7 +290,9 @@ namespace Edu.Module.User ...@@ -252,7 +290,9 @@ namespace Edu.Module.User
}); });
var detailsList = teacher_Assessment_DetailsRepository.GetTeacherAssessmentDetailsListRepository(new RB_Teacher_Assessment_Details_Extend() var detailsList = teacher_Assessment_DetailsRepository.GetTeacherAssessmentDetailsListRepository(new RB_Teacher_Assessment_Details_Extend()
{ {
TeacherAssessmentId = (extModel?.Id ?? 0) TeacherAssessmentId = (extModel?.Id ?? 0),
CreateBy = userInfo.Id,
CheckType = CheckType
}); });
var typeList = GetAssessmentTypeListModule(new RB_Assessment_Type_Extend() { }); var typeList = GetAssessmentTypeListModule(new RB_Assessment_Type_Extend() { });
List<object> list = new List<object>(); List<object> list = new List<object>();
...@@ -261,31 +301,39 @@ namespace Edu.Module.User ...@@ -261,31 +301,39 @@ namespace Edu.Module.User
List<object> subList = new List<object>(); List<object> subList = new List<object>();
foreach (var subItem in item.SubtypeList) foreach (var subItem in item.SubtypeList)
{ {
var tempDetail = detailsList.Where(qitem => qitem.AssessmentTypeId == item.Id && qitem.AssessmentSubTypeId == subItem.Id && qitem.CheckType == CheckType)?.FirstOrDefault();
List<object> optionList = new List<object>(); List<object> optionList = new List<object>();
foreach (var tItem in subItem.OptionList) foreach (var tItem in subItem.OptionList)
{ {
bool IsCheck = false;
if ((tempDetail?.CheckId ?? 0) == tItem.LevelId)
{
IsCheck = true;
}
optionList.Add(new optionList.Add(new
{ {
tItem.LevelId, tItem.LevelId,
tItem.LevelTitle, tItem.LevelTitle,
tItem.LevelDesc, tItem.LevelDesc,
tItem.IsCheck, IsCheck,
tItem.LevelScore, tItem.LevelScore,
}); });
} }
var sObj = new var sObj = new
{ {
CheckId = 0, Id=tempDetail?.Id??0,
CheckScore = 0, CheckId = tempDetail?.CheckId??0,
subItem.AssessmentTypeId, CheckScore = tempDetail?.CheckScore??0,
AssessmentSubtypeId = subItem.Id,
subItem.SubTypeName, subItem.SubTypeName,
OptionList= optionList, OptionList = optionList,
}; };
subList.Add(sObj); subList.Add(sObj);
} }
var obj = new var obj = new
{ {
item.TypeName, item.TypeName,
AssessmentTypeId = item.Id,
SubtypeList = subList SubtypeList = subList
}; };
list.Add(obj); list.Add(obj);
...@@ -309,7 +357,8 @@ namespace Edu.Module.User ...@@ -309,7 +357,8 @@ namespace Edu.Module.User
Other = extModel?.Other ?? "", Other = extModel?.Other ?? "",
TeacherSignDate = Common.ConvertHelper.FormatTime(extModel?.TeacherSignDate), TeacherSignDate = Common.ConvertHelper.FormatTime(extModel?.TeacherSignDate),
AuditStatus = extModel?.AuditStatus ?? 0, AuditStatus = extModel?.AuditStatus ?? 0,
DetailsList = list DetailsList = list,
CheckType,
}; };
return result; return result;
} }
...@@ -317,10 +366,54 @@ namespace Edu.Module.User ...@@ -317,10 +366,54 @@ namespace Edu.Module.User
/// <summary> /// <summary>
/// 保存老师业绩考核 /// 保存老师业绩考核
/// </summary> /// </summary>
/// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
public bool SaveTeacherAssessmentModule() [TransactionCallHandler]
public virtual bool SaveTeacherAssessmentModule(RB_Teacher_Assessment_Extend model)
{ {
bool flag = false; bool flag = false;
if (model.Id > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Teacher_Assessment_Extend.TeacherScore),model.TeacherScore },
{nameof(RB_Teacher_Assessment_Extend.JiaoWuScore),model.JiaoWuScore },
{nameof(RB_Teacher_Assessment_Extend.TotalScore),model.TotalScore },
};
flag = teacher_AssessmentRepository.Update(fileds, new WhereHelper(nameof(RB_Teacher_Assessment_Extend.Id), model.Id));
}
else
{
var newId = teacher_AssessmentRepository.Insert(model);
model.Id = newId;
flag = newId > 0;
}
if (flag && model.DetailsList != null && model.DetailsList.Count > 0)
{
foreach (var item in model.DetailsList)
{
item.TeacherAssessmentId = model.Id;
if (flag)
{
if (item.Id > 0)
{
Dictionary<string, object> subFileds = new Dictionary<string, object>()
{
{nameof(RB_Teacher_Assessment_Details_Extend.CheckId),item.CheckId},
{nameof(RB_Teacher_Assessment_Details_Extend.CheckScore),item.CheckScore},
{nameof(RB_Teacher_Assessment_Details_Extend.CheckType),item.CheckType},
};
flag = teacher_Assessment_DetailsRepository.Update(subFileds, new WhereHelper(nameof(RB_Teacher_Assessment_Details_Extend.Id), item.Id));
}
else
{
var newDetailId = teacher_Assessment_DetailsRepository.Insert(item);
item.Id = newDetailId;
flag = newDetailId > 0;
}
}
}
}
return flag; return flag;
} }
#endregion #endregion
......
...@@ -35,6 +35,14 @@ WHERE 1=1 ...@@ -35,6 +35,14 @@ WHERE 1=1
{ {
builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Teacher_Assessment_Details_Extend.TeacherAssessmentId), query.QTeacherAssessmentIds); builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Teacher_Assessment_Details_Extend.TeacherAssessmentId), query.QTeacherAssessmentIds);
} }
if (query.CreateBy > 0)
{
builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Teacher_Assessment_Details_Extend.CreateBy), query.CreateBy);
}
if (query.CheckType > 0)
{
builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Teacher_Assessment_Details_Extend.CheckType), (int)query.CheckType);
}
} }
return Get<RB_Teacher_Assessment_Details_Extend>(builder.ToString()).ToList(); return Get<RB_Teacher_Assessment_Details_Extend>(builder.ToString()).ToList();
} }
......
using Edu.Cache.User; using Edu.Cache.User;
using Edu.Common.API; using Edu.Common.API;
using Edu.Common.Enum.User;
using Edu.Common.Plugin; using Edu.Common.Plugin;
using Edu.Model.ViewModel.DataStatistics; using Edu.Model.ViewModel.DataStatistics;
using Edu.Module.User; using Edu.Module.User;
...@@ -24,7 +25,7 @@ namespace Edu.WebApi.Controllers.DataService ...@@ -24,7 +25,7 @@ namespace Edu.WebApi.Controllers.DataService
/// <summary> /// <summary>
/// 老师考评类型配置处理类对象 /// 老师考评类型配置处理类对象
/// </summary> /// </summary>
private readonly TeacherAssessmentModule teacherAssessmentModule = new TeacherAssessmentModule(); private readonly TeacherAssessmentModule teacherAssessmentModule = AOP.AOPHelper.CreateAOPObject<TeacherAssessmentModule>();
#region 基础配置 #region 基础配置
...@@ -85,7 +86,7 @@ namespace Edu.WebApi.Controllers.DataService ...@@ -85,7 +86,7 @@ namespace Edu.WebApi.Controllers.DataService
JObject sObj = JObject.Parse(subItem.ToString()); JObject sObj = JObject.Parse(subItem.ToString());
subModel.OptionList.Add(new SubtypeItem() subModel.OptionList.Add(new SubtypeItem()
{ {
LevelId= LevelId, LevelId = LevelId,
LevelTitle = sObj.GetStringValue("LevelTitle"), LevelTitle = sObj.GetStringValue("LevelTitle"),
LevelDesc = sObj.GetStringValue("LevelDesc"), LevelDesc = sObj.GetStringValue("LevelDesc"),
LevelScore = sObj.GetDecimal("LevelScore"), LevelScore = sObj.GetDecimal("LevelScore"),
...@@ -199,10 +200,17 @@ namespace Edu.WebApi.Controllers.DataService ...@@ -199,10 +200,17 @@ namespace Edu.WebApi.Controllers.DataService
public ApiResult GetTeacherAssessmentInfo() public ApiResult GetTeacherAssessmentInfo()
{ {
int TeacherAccountId = base.ParmJObj.GetInt("TeacherAccountId"); int TeacherAccountId = base.ParmJObj.GetInt("TeacherAccountId");
var obj = teacherAssessmentModule.GetTeacherAssessmentModule(TeacherAccountId); int YearStr = base.ParmJObj.GetInt("YearStr");
int MonthStr = base.ParmJObj.GetInt("MonthStr");
var obj = teacherAssessmentModule.GetTeacherAssessmentModule(TeacherAccountId, YearStr, MonthStr, base.UserInfo);
return ApiResult.Success(data: obj); return ApiResult.Success(data: obj);
} }
public ApiResult GetTeacherAssessmentDetail()
{
return ApiResult.Failed();
}
/// <summary> /// <summary>
/// 保存教师考核信息 /// 保存教师考核信息
/// </summary> /// </summary>
...@@ -210,11 +218,80 @@ namespace Edu.WebApi.Controllers.DataService ...@@ -210,11 +218,80 @@ namespace Edu.WebApi.Controllers.DataService
[HttpPost] [HttpPost]
public ApiResult SaveTeacherAssessmentInfo() public ApiResult SaveTeacherAssessmentInfo()
{ {
var flag = teacherAssessmentModule.SaveTeacherAssessmentModule(); var model = new RB_Teacher_Assessment_Extend()
return flag ? ApiResult.Success() : ApiResult.Failed(); {
} Id = base.ParmJObj.GetInt("Id"),
YearStr = base.ParmJObj.GetInt("YearStr"),
MonthStr = base.ParmJObj.GetInt("MonthStr"),
TeacherAccountId = base.ParmJObj.GetInt("TeacherAccountId"),
TeacherScore = base.ParmJObj.GetDecimal("TeacherScore"),
JiaoWuScore = base.ParmJObj.GetDecimal("JiaoWuScore"),
};
if (model.YearStr <= 0 || model.MonthStr <= 0)
{
return ApiResult.Failed(message: "请选择时间!");
}
if (model.TeacherAccountId <= 0)
{
return ApiResult.Failed(message: "请选择老师!");
}
CheckTypeEnum CheckType = (CheckTypeEnum)base.ParmJObj.GetInt("CheckType");
model.DetailsList = new List<RB_Teacher_Assessment_Details_Extend>();
var detailsLists = base.ParmJObj.GetStringValue("DetailsList");
if (!string.IsNullOrEmpty(detailsLists))
{
JArray dArray = JArray.Parse(detailsLists);
if (dArray != null && dArray.Count > 0)
{
foreach (var item in dArray)
{
JObject sObj = JObject.Parse(item.ToString());
string subtypeListStr = sObj.GetStringValue("SubtypeList");
if (!string.IsNullOrEmpty(subtypeListStr))
{
JArray subArray = JArray.Parse(subtypeListStr);
if (subArray != null && subArray.Count > 0)
{
foreach (var subItem in subArray)
{
JObject tObj = JObject.Parse(subItem.ToString());
var dModel = new RB_Teacher_Assessment_Details_Extend()
{
Id = sObj.GetInt("Id"),
AssessmentTypeId = sObj.GetInt("AssessmentTypeId"),
AssessmentSubTypeId = tObj.GetInt("AssessmentSubtypeId"),
CheckId = tObj.GetInt("CheckId"),
CheckScore = tObj.GetDecimal("CheckScore"),
CheckType = CheckType,
CreateTime = DateTime.Now,
CreateBy = base.UserInfo.Id,
};
model.DetailsList.Add(dModel);
}
}
}
}
}
}
if (CheckType == CheckTypeEnum.JiaoXueManager)
{
model.TeacherScore = model.DetailsList.Where(qitem => qitem.CheckType == CheckTypeEnum.JiaoXueManager).Sum(qitem => qitem.CheckScore);
}
else if (CheckType == CheckTypeEnum.JiaoWuManager)
{
model.JiaoWuScore = model.DetailsList.Where(qitem => qitem.CheckType == CheckTypeEnum.JiaoWuManager).Sum(qitem => qitem.CheckScore);
}
//总分=(教學主管考核*30%+教务主管考核*70%)
model.TotalScore = model.TeacherScore * Convert.ToDecimal(0.3) + model.JiaoWuScore * Convert.ToDecimal(0.7);
model.Group_Id = base.UserInfo.Group_Id;
model.School_Id = base.UserInfo.School_Id;
model.CreateBy = base.UserInfo.Id;
model.CreateTime = DateTime.Now;
var flag = teacherAssessmentModule.SaveTeacherAssessmentModule(model);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
#endregion #endregion
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment