Commit 4d2b0f78 authored by 黄奎's avatar 黄奎

页面修改

parent e270a49c
......@@ -39,5 +39,6 @@ namespace Edu.Common.Enum.User
/// </summary>
[EnumField("其他")]
Other = 5,
}
}
......@@ -415,5 +415,20 @@ namespace Edu.Model.ViewModel.User
/// 开发题库
/// </summary>
public string OpenBankLevel { get; set; }
/// <summary>
/// 毕业时间
/// </summary>
public DateTime? GraduationTime { get; set; }
/// <summary>
/// 开始上课时间
/// </summary>
public DateTime? BeginClassDate { get; set; }
/// <summary>
/// 班主任
/// </summary>
public int HeadTeacherId { get; set; }
}
}
\ No newline at end of file
......@@ -25,4 +25,25 @@ namespace Edu.Model.ViewModel.User
/// </summary>
public int DeptId { get; set; }
}
/// <summary>
/// 老师跟踪信息
/// </summary>
public class TeacherFollow
{
/// <summary>
/// 教师编号
/// </summary>
public int TeacherId { get; set; }
/// <summary>
/// 跟踪学员条数
/// </summary>
public decimal FollowCount { get; set; }
/// <summary>
/// 完成次数
/// </summary>
public decimal FinishTimes { get; set; }
}
}
......@@ -89,7 +89,6 @@ namespace Edu.Module.User
/// <returns></returns>
public object GetStudentFollowUpPageModule(int pageIndex, int pageSize, out long count, RB_Student_ViewModel demodel)
{
object Robj = new object();
var slist = student_OrderGuestRepository.GetStudentFollowUpPageRepository(pageIndex, pageSize, out count, demodel);
if (slist.Any())
......@@ -280,6 +279,8 @@ namespace Edu.Module.User
item.AdvisorStatus,
item.AdvisorStatusName,
item.AdvisorList,
BeginClassDate = Common.ConvertHelper.FormatDate(item.BeginClassDate),
GraduationTime = Common.ConvertHelper.FormatDate(item.GraduationTime),
};
RList.Add(StuObj);
}
......
......@@ -48,6 +48,8 @@ namespace Edu.Module.User
/// </summary>
private readonly Rb_dictvalueRepository dictvalueRepository = new Rb_dictvalueRepository();
#region 基础配置
/// <summary>
......@@ -373,9 +375,7 @@ namespace Edu.Module.User
public object GetTeacherAssessmentDetailModule(int Id)
{
object result = new object();
var extModel = teacher_AssessmentRepository.GetEntity<RB_Teacher_Assessment_Extend>(Id);
var detailsList = teacher_Assessment_DetailsRepository.GetTeacherAssessmentDetailsListRepository(new RB_Teacher_Assessment_Details_Extend()
{
TeacherAssessmentId = (extModel?.Id ?? 0),
......@@ -554,6 +554,7 @@ namespace Edu.Module.User
};
bool flag = teacher_AssessmentRepository.Update(fileds, new WhereHelper(nameof(RB_Teacher_Assessment_Extend.Id), model.Id));
return flag;
}
#endregion
}
......
......@@ -306,6 +306,8 @@ namespace Edu.Module.User
ScoreGap = (item.ScoreGap - firstModel.ScoreGap) / firstModel.ScoreGap * 100;
}
subObj = new
{
Id = 0,
......@@ -349,12 +351,14 @@ namespace Edu.Module.User
AvgScore = Math.Round(AvgScore, 2) + "%",
ScoreGap = Math.Round(ScoreGap, 2) + "%",
ActivityNum = Math.Round(ActivityNum, 2) + "%",
};
}
firstModel = item;
firstModel.TotalScore = (firstModel.StudentCount + firstModel.AttendClassHourScore + firstModel.OnLineInteractiveScore + firstModel.RenewScore
+ firstModel.UpgradeScore + firstModel.TransScore + firstModel.TrialSpeakScore - firstModel.TruancyScore - firstModel.WithdrawsScore - firstModel.ComplaintScore
- firstModel.TeacherBeLateScore + firstModel.N2ClassHoursScore + firstModel.N1ClassHoursScore + firstModel.MiniAppPractiseScore + firstModel.MiniAppTimeScore
- firstModel.TeacherBeLateScore + firstModel.N5ClassHoursScore*1+firstModel.N4ClassHoursScore*2+firstModel.N3ClassHoursScore*3+
firstModel.N2ClassHoursScore*4 + firstModel.N1ClassHoursScore*5 + firstModel.MiniAppPractiseScore + firstModel.MiniAppTimeScore
+ firstModel.ActivityNum
);
firstModel.AvgScore = Math.Round(firstModel.TotalScore / teacherCount, 2);
......@@ -364,7 +368,8 @@ namespace Edu.Module.User
item.TotalScore = (item.StudentCount + item.AttendClassHourScore + item.OnLineInteractiveScore + item.RenewScore
+ item.UpgradeScore + item.TransScore + item.TrialSpeakScore - item.TruancyScore - item.WithdrawsScore - item.ComplaintScore
- item.TeacherBeLateScore + item.N2ClassHoursScore + item.N1ClassHoursScore + item.MiniAppPractiseScore + item.MiniAppTimeScore
- item.TeacherBeLateScore + item.N5ClassHoursScore * 1 + item.N4ClassHoursScore * 2 + item.N3ClassHoursScore * 3
+ item.N2ClassHoursScore * 4 + item.N1ClassHoursScore * 5 + item.MiniAppPractiseScore + item.MiniAppTimeScore
+ item.ActivityNum
);
item.AvgScore = Math.Round(item.TotalScore / teacherCount, 2);
......@@ -489,26 +494,57 @@ namespace Edu.Module.User
}
teacherList = teacherList.Where(qitem => qitem.AccountId != 5 && qitem.AccountId != 10 && qitem.AccountId != 15 && qitem.AccountId != 20).ToList();
List<object> dataList = new List<object>();
string qDate = "";
if (query.YearStr > 0)
{
qDate += query.YearStr + "-";
}
else
{
qDate += DateTime.Now.Year + "-";
}
if (query.MonthStr > 0)
{
qDate += query.MonthStr;
}
else
{
qDate += DateTime.Now.Month;
}
qDate += "-01";
//跟踪列表
var followList = teacher_StaticRepository.GetTeacherFollowByProcRepository(qDate);
var list = teacher_StaticRepository.GetTeacherStaticMonthExtListRepository(query);
if (list != null && list.Count > 0)
{
foreach (var item in list)
{
var tempFollow = followList.Where(qitem => qitem.TeacherId == item.TeacherId)?.FirstOrDefault();
item.TotalScore = (item.StudentCount + item.AttendClassHourScore + item.OnLineInteractiveScore + item.RenewScore
+ item.UpgradeScore + item.TransScore + item.TrialSpeakScore - item.TruancyScore - item.WithdrawsScore - item.ComplaintScore
- item.TeacherBeLateScore + item.MiniAppPractiseScore + item.MiniAppTimeScore
+ item.N5ClassHoursScore * 1 + item.N4ClassHoursScore * 2 + item.N3ClassHoursScore * 3 + item.N2ClassHoursScore * 4 + item.N1ClassHoursScore * 5
+ item.ActivityNum +(tempFollow?.FinishTimes ?? 0)
);
}
foreach (var item in list)
{
var tempFollow = followList.Where(qitem => qitem.TeacherId == item.TeacherId)?.FirstOrDefault();
int teacherCount = 1;
var teacherModel = teacherList.FirstOrDefault(qitem => qitem.AccountId == item.TeacherId);
string DateStr = "";
var tempDataList = new List<RB_Teacher_Static_Extend>();
if (teacherModel != null)
{
DateStr= teacherModel.AccountName;
string teacherIds = string.Join(",", teacherList.Where(qitem => qitem.Dept_Id == teacherModel.Dept_Id).Select(qitem => qitem.AccountId));
teacherCount = list.Where(qitem => qitem.TotalScore>0 && teacherIds.Contains(item.TeacherId.ToString())).Count();
tempDataList = list.Where(qitem => teacherIds.Contains(item.TeacherId.ToString()))?.ToList();
}
item.TotalScore = (item.StudentCount + item.AttendClassHourScore + item.OnLineInteractiveScore + item.RenewScore
+ item.UpgradeScore + item.TransScore + item.TrialSpeakScore - item.TruancyScore - item.WithdrawsScore - item.ComplaintScore
- item.TeacherBeLateScore + item.N2ClassHoursScore + item.N1ClassHoursScore + item.MiniAppPractiseScore + item.MiniAppTimeScore
+ item.ActivityNum
);
item.AvgScore = Math.Round(item.TotalScore / teacherCount, 2);
item.AvgScore = Math.Round((tempDataList?.Sum(qitem=>qitem.TotalScore)??0) / teacherCount, 2);
item.ScoreGap = item.TotalScore - item.AvgScore;
dataList.Add(new
{
......@@ -555,6 +591,8 @@ namespace Edu.Module.User
item.AvgScore,
item.ScoreGap,
item.ActivityNum,
FinishTimes= tempFollow?.FinishTimes??0,
FollowCount = tempFollow?.FollowCount ?? 0,
});
}
var tempList = list?.Where(qitem => !string.IsNullOrEmpty(Common.ConvertHelper.FormatDate(qitem.Date)))?.ToList();
......@@ -603,6 +641,8 @@ namespace Edu.Module.User
AvgScore = tempList?.Sum(qitem => qitem.AvgScore),
ScoreGap = tempList?.Sum(qitem => qitem.ScoreGap),
ActivityNum = tempList?.Sum(qitem => qitem.ActivityNum),
FinishTimes = followList?.Sum(qitem => qitem.FinishTimes),
FollowCount = followList?.Sum(qitem => qitem.FollowCount),
});
}
return dataList;
......@@ -2728,7 +2768,7 @@ namespace Edu.Module.User
Group_Id = user.Group_Id,
IsLeave = 1
})?.Where(qitem => qitem.AccountId != 5 && qitem.AccountId != 10 && qitem.AccountId != 15 && qitem.AccountId != 20).ToList();
int teacherCount = teacherList?.Count() ?? 1;
int teacherCount = 1;
List<WechatCheck_ViewModel> checkList = new List<WechatCheck_ViewModel>();
List<WechatCheck_ViewModel> messageList = new List<WechatCheck_ViewModel>();
if (isInit)
......@@ -2756,6 +2796,7 @@ namespace Edu.Module.User
var procModelList = teacher_StaticRepository.GetTeacherStaticByProcRepository(Common.ConvertHelper.FormatDate(newDate));
foreach (var item in teacherList)
{
teacherCount = teacherList.Where(qitem => qitem.Dept_Id == item.Dept_Id)?.Count() ?? 1;
var procModel = procModelList.Where(qitem => qitem.TeacherId == item.AccountId).FirstOrDefault();
var newModel = new RB_Teacher_Static_Extend()
{
......@@ -2804,10 +2845,10 @@ namespace Edu.Module.User
newModel.TeacherBeLateScore = newModel.TeacherBeLate;
newModel.TotalScore = (newModel.StudentCount + newModel.AttendClassHourScore + newModel.OnLineInteractiveScore + newModel.RenewScore
+ newModel.UpgradeScore + newModel.TransScore + newModel.TrialSpeakScore - newModel.TruancyScore - newModel.WithdrawsScore - newModel.ComplaintScore
- newModel.TeacherBeLateScore + newModel.N2ClassHoursScore + newModel.N1ClassHoursScore + newModel.MiniAppPractiseScore + newModel.MiniAppTimeScore
+ newModel.ActivityNum
- newModel.TeacherBeLateScore + newModel.MiniAppPractiseScore + newModel.MiniAppTimeScore
+ newModel.ActivityNum + newModel.N5ClassHoursScore * 1 + newModel.N4ClassHoursScore * 2 + newModel.N3ClassHoursScore * 3 + newModel.N2ClassHoursScore * 4 + newModel.N1ClassHoursScore * 5
);
newModel.AvgScore = Math.Round(newModel.TotalScore / teacherCount, 2);
newModel.AvgScore = Math.Round(newModel.TotalScore / teacherCount, 2);
newModel.ScoreGap = newModel.TotalScore - newModel.AvgScore;
......@@ -2867,6 +2908,7 @@ namespace Edu.Module.User
AvgScore = lastMonthLastTimeList?.Sum(qitem => qitem.AvgScore) ?? 0,
ScoreGap = lastMonthLastTimeList?.Sum(qitem => qitem.ScoreGap) ?? 0,
ActivityNum = lastMonthLastTimeList?.Sum(qitem => qitem.ActivityNum) ?? 0,
YearStr = newDate.Year,
MonthStr = newDate.Month,
TeacherId = item.AccountId,
......@@ -3136,10 +3178,10 @@ namespace Edu.Module.User
newModel2.TeacherBeLate = checkList?.Where(qitem => qitem.ExceptionCount > 0)?.Count() ?? 0;
newModel2.TeacherBeLateScore = newModel2.TeacherBeLate;
newModel2.TotalScore = (newModel2.StudentCount + newModel2.AttendClassHourScore + newModel2.OnLineInteractiveScore + newModel2.RenewScore
+ newModel2.UpgradeScore + newModel2.TransScore + newModel2.TrialSpeakScore - newModel2.TruancyScore - newModel2.WithdrawsScore - newModel2.ComplaintScore
- newModel2.TeacherBeLateScore + newModel2.N2ClassHoursScore + newModel2.N1ClassHoursScore + newModel2.MiniAppPractiseScore + newModel2.MiniAppTimeScore
+ newModel2.ActivityNum
);
+ newModel2.UpgradeScore + newModel2.TransScore + newModel2.TrialSpeakScore - newModel2.TruancyScore - newModel2.WithdrawsScore - newModel2.ComplaintScore
- newModel2.TeacherBeLateScore + newModel2.MiniAppPractiseScore + newModel2.MiniAppTimeScore
+ newModel2.ActivityNum + newModel2.N5ClassHoursScore * 1 + newModel2.N4ClassHoursScore * 2 + newModel2.N3ClassHoursScore * 3 + newModel2.N2ClassHoursScore * 4 + newModel2.N1ClassHoursScore * 5
);
newModel2.AvgScore = Math.Round(newModel2.TotalScore / teacherCount, 2);
newModel2.ScoreGap = newModel2.TotalScore - newModel2.AvgScore;
......
......@@ -456,6 +456,10 @@ where sog.Status =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and IFNULL(o
{
where += $@" AND s.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId ={demodel.ConsultantId} AND `Status`=0)";
}
if (demodel.HeadTeacherId > 0)
{
where += $@" AND s.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId ={demodel.HeadTeacherId} AND `Status`=0 AND AssistType=4)";
}
if (demodel.CourseId > 0)
{
where += $" and o.CourseId ={demodel.CourseId}";
......@@ -515,17 +519,18 @@ where sog.Status =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and IFNULL(o
string sql = $@"
SELECT s.StuId,s.StuName,s.StuTel,s.FirstEnrollDate,s.StuRealMobile,s.StuPurpose,s.QQ,DATE_FORMAT(ec.CreateTime,'%Y-%m-%d') as followUpTime
,c.CourseId,c.CourseName,s.JapanBaseInfo,s.StuBirth,org.GuestState as StuGuestState,s.StuChannel,s.CreateType,s.StuSourceId,s.CreateBy
,s.AdvisorStatus,s.AdvisorWinRate,s.AdvisorExpectDate,IFNULL(B.Name,'') AS AdvisorStatusName
,c.CourseId,c.CourseName,s.JapanBaseInfo,s.StuBirth,org.GuestState as StuGuestState,s.StuChannel,s.CreateType,s.StuSourceId,s.CreateBy
,s.AdvisorStatus,s.AdvisorWinRate,s.AdvisorExpectDate,IFNULL(B.Name,'') AS AdvisorStatusName,org.GraduationTime,clcheck.ClassDate AS BeginClassDate
FROM rb_student s
INNER JOIN rb_student_orderguest og on og.Student_Id = s.StuId
INNER JOIN (SELECT og.Student_Id,MAX(og.Id) as Id FROM rb_student_orderguest og INNER JOIN rb_order o on og.OrderId = o.OrderId WHERE o.OrderState <>3 GROUP BY og.Student_Id) stu on og.Id = stu.Id and og.Student_Id = s.StuId
INNER JOIN rb_order_guest org on org.Id = og.GuestId
INNER JOIN rb_order o on og.OrderId = o.OrderId
inner join rb_class cl on cl.ClassId = o.ClassId
INNER JOIN rb_class cl on cl.ClassId = o.ClassId
INNER JOIN rb_course c on o.CourseId = c.CourseId
LEFT JOIN rb_education_contract ec on ec.GuestId = og.GuestId
LEFT JOIN rb_student_advisorconfig AS b ON s.AdvisorStatus=B.Id
LEFT JOIN (SELECT OrderGuestId,MIN(ClassDate) AS ClassDate FROM rb_class_check WHERE Status=0 AND CheckStatus=0 GROUP BY OrderGuestId) AS clcheck ON org.Id=clcheck.OrderGuestId
";
if (!string.IsNullOrEmpty(demodel.SFTime) && !string.IsNullOrEmpty(demodel.EFTime)) {
//增加跟进链表
......
......@@ -221,6 +221,18 @@ WHERE 1=1 AND A.Date<>'0001-01-01 00:00:00'
return list;
}
/// <summary>
/// 根据存储过程统计教师跟踪信息
/// </summary>
/// <param name="DateStr"></param>
/// <returns></returns>
public List<TeacherFollow> GetTeacherFollowByProcRepository(string DateStr)
{
string sql = string.Format("call proc_teacher_follow('{0}') ", DateStr);
var list = Get<TeacherFollow>(sql).ToList();
return list;
}
/// <summary>
/// 清除数据
/// </summary>
......
......@@ -66,6 +66,7 @@ namespace Edu.WebApi.Controllers.User
StuType = base.ParmJObj.GetInt("StuType"),
WeChatNo = base.ParmJObj.GetStringValue("WeChatNo"),
StuPurpose = base.ParmJObj.GetInt("StuPurpose"),
HeadTeacherId=base.ParmJObj.GetInt("HeadTeacherId"),
};
string schoolId = base.ParmJObj.GetStringValue("School_Id");
if (schoolId != "-1")
......@@ -129,6 +130,7 @@ namespace Edu.WebApi.Controllers.User
StuType = base.ParmJObj.GetInt("StuType"),
WeChatNo = base.ParmJObj.GetStringValue("WeChatNo"),
StuPurpose = base.ParmJObj.GetInt("StuPurpose"),
HeadTeacherId = base.ParmJObj.GetInt("HeadTeacherId"),
};
string schoolId = base.ParmJObj.GetStringValue("School_Id");
if (schoolId != "-1")
......
......@@ -190,6 +190,7 @@ namespace Edu.WebApi.Controllers.User
{
new ExcelColumn("老师"){ CellWidth=15},
new ExcelColumn("学生人数"){ CellWidth=15},
new ExcelColumn("班主任学生互动"){ CellWidth=15},
new ExcelColumn("上课时数"){ CellWidth=15},
new ExcelColumn("线上与学生互动数"){ CellWidth=10},
new ExcelColumn("续约(含留学)"){ CellWidth=15},
......@@ -222,6 +223,7 @@ namespace Edu.WebApi.Controllers.User
new ExcelColumn(dObj.GetStringValue("DateStr"))
};
columns.Add(new ExcelColumn(dObj.GetStringValue("StudentCount")));
columns.Add(new ExcelColumn(dObj.GetStringValue("FinishTimes") + "/" + dObj.GetStringValue("FollowCount")));
columns.Add(new ExcelColumn(dObj.GetStringValue("AttendClassHourScore")));
columns.Add(new ExcelColumn(dObj.GetStringValue("OnLineInteractiveScore")));
columns.Add(new ExcelColumn(dObj.GetStringValue("RenewScore")));
......
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