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.Text;
using VT.FW.DB;
......@@ -40,7 +41,7 @@ namespace Edu.Model.Entity.DataStatistics
/// <summary>
/// 考核类型(1-教学主管,2-教务主管)
/// </summary>
public int CheckType { get; set; }
public CheckTypeEnum CheckType { get; set; }
/// <summary>
/// 得分
......@@ -52,5 +53,10 @@ namespace Edu.Model.Entity.DataStatistics
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
}
}
......@@ -393,7 +393,7 @@ namespace Edu.Module.Course
CurGuestNum = curNum,
CurOrderMoney = curOrderMoney,
Group_Id = GroupId,
CurRewardMoney = GetStepAwardAmount(item, curNum),
CreateBy = 1,
CreateTime = DateTime.Now,
UpdateBy = 1,
......@@ -405,6 +405,9 @@ namespace Edu.Module.Course
//ClueNumSalary = ClueCount > 5 ? item.ClueNumSalary : 0,
IsIssue = 0
};
//HK 2022-04-14去掉
//pModel.CurRewardMoney = GetStepAwardAmount(item, curNum);
pModel.CurRewardMoney = 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.User;
using Edu.Repository.DataStatistics;
......@@ -39,6 +42,11 @@ namespace Edu.Module.User
/// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
/// <summary>
/// 字典仓储层对象
/// </summary>
private readonly Rb_dictvalueRepository dictvalueRepository = new Rb_dictvalueRepository();
#region 基础配置
/// <summary>
......@@ -236,14 +244,44 @@ namespace Edu.Module.User
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>
/// <param name="TeacherAccountId"></param>
/// <param name="YearStr"></param>
/// <param name="MonthStr"></param>
/// <param name="UserInfo"></param>
/// <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();
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()
{
YearStr = YearStr,
......@@ -252,7 +290,9 @@ namespace Edu.Module.User
});
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() { });
List<object> list = new List<object>();
......@@ -261,31 +301,39 @@ namespace Edu.Module.User
List<object> subList = new List<object>();
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>();
foreach (var tItem in subItem.OptionList)
{
bool IsCheck = false;
if ((tempDetail?.CheckId ?? 0) == tItem.LevelId)
{
IsCheck = true;
}
optionList.Add(new
{
tItem.LevelId,
tItem.LevelTitle,
tItem.LevelDesc,
tItem.IsCheck,
IsCheck,
tItem.LevelScore,
});
}
var sObj = new
{
CheckId = 0,
CheckScore = 0,
subItem.AssessmentTypeId,
Id=tempDetail?.Id??0,
CheckId = tempDetail?.CheckId??0,
CheckScore = tempDetail?.CheckScore??0,
AssessmentSubtypeId = subItem.Id,
subItem.SubTypeName,
OptionList= optionList,
OptionList = optionList,
};
subList.Add(sObj);
}
var obj = new
{
item.TypeName,
AssessmentTypeId = item.Id,
SubtypeList = subList
};
list.Add(obj);
......@@ -309,7 +357,8 @@ namespace Edu.Module.User
Other = extModel?.Other ?? "",
TeacherSignDate = Common.ConvertHelper.FormatTime(extModel?.TeacherSignDate),
AuditStatus = extModel?.AuditStatus ?? 0,
DetailsList = list
DetailsList = list,
CheckType,
};
return result;
}
......@@ -317,10 +366,54 @@ namespace Edu.Module.User
/// <summary>
/// 保存老师业绩考核
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SaveTeacherAssessmentModule()
[TransactionCallHandler]
public virtual bool SaveTeacherAssessmentModule(RB_Teacher_Assessment_Extend model)
{
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;
}
#endregion
......
......@@ -35,6 +35,14 @@ WHERE 1=1
{
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();
}
......
using Edu.Cache.User;
using Edu.Common.API;
using Edu.Common.Enum.User;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.DataStatistics;
using Edu.Module.User;
......@@ -24,7 +25,7 @@ namespace Edu.WebApi.Controllers.DataService
/// <summary>
/// 老师考评类型配置处理类对象
/// </summary>
private readonly TeacherAssessmentModule teacherAssessmentModule = new TeacherAssessmentModule();
private readonly TeacherAssessmentModule teacherAssessmentModule = AOP.AOPHelper.CreateAOPObject<TeacherAssessmentModule>();
#region 基础配置
......@@ -85,7 +86,7 @@ namespace Edu.WebApi.Controllers.DataService
JObject sObj = JObject.Parse(subItem.ToString());
subModel.OptionList.Add(new SubtypeItem()
{
LevelId= LevelId,
LevelId = LevelId,
LevelTitle = sObj.GetStringValue("LevelTitle"),
LevelDesc = sObj.GetStringValue("LevelDesc"),
LevelScore = sObj.GetDecimal("LevelScore"),
......@@ -199,10 +200,17 @@ namespace Edu.WebApi.Controllers.DataService
public ApiResult GetTeacherAssessmentInfo()
{
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);
}
public ApiResult GetTeacherAssessmentDetail()
{
return ApiResult.Failed();
}
/// <summary>
/// 保存教师考核信息
/// </summary>
......@@ -210,11 +218,80 @@ namespace Edu.WebApi.Controllers.DataService
[HttpPost]
public ApiResult SaveTeacherAssessmentInfo()
{
var flag = teacherAssessmentModule.SaveTeacherAssessmentModule();
return flag ? ApiResult.Success() : ApiResult.Failed();
}
var model = new RB_Teacher_Assessment_Extend()
{
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
}
}
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