Commit 047504a5 authored by liudong1993's avatar liudong1993

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

parents 7fdfd31d 18f5da20
...@@ -94,7 +94,7 @@ namespace Edu.Common ...@@ -94,7 +94,7 @@ namespace Edu.Common
} }
/// <summary> /// <summary>
/// 获取时间格式 /// 获取时间格式[MM-dd]
/// </summary> /// </summary>
/// <param name="time"></param> /// <param name="time"></param>
/// <returns></returns> /// <returns></returns>
......
...@@ -128,5 +128,10 @@ namespace Edu.Model.Entity.Bonus ...@@ -128,5 +128,10 @@ namespace Edu.Model.Entity.Bonus
/// 当月人头奖励配置数据Json格式 /// 当月人头奖励配置数据Json格式
/// </summary> /// </summary>
public string HisBonusData { get; set; } public string HisBonusData { get; set; }
/// <summary>
/// 线索条数
/// </summary>
public int ClueNum { get; set; }
} }
} }
...@@ -113,5 +113,15 @@ namespace Edu.Model.ViewModel.Customer ...@@ -113,5 +113,15 @@ namespace Edu.Model.ViewModel.Customer
/// 同行数量 /// 同行数量
/// </summary> /// </summary>
public int CustomerCount { get; set; } public int CustomerCount { get; set; }
/// <summary>
/// 开始日期
/// </summary>
public string StartDate { get; set; }
/// <summary>
/// 结束日期
/// </summary>
public string EndDate { get; set; }
} }
} }
...@@ -19,5 +19,15 @@ namespace Edu.Model.ViewModel.Customer ...@@ -19,5 +19,15 @@ namespace Edu.Model.ViewModel.Customer
/// 约访次数 /// 约访次数
/// </summary> /// </summary>
public int AppointmentCount { get; set; } public int AppointmentCount { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public string StartDate { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public string EndDate { get; set; }
} }
} }
...@@ -26,10 +26,20 @@ namespace Edu.Model.ViewModel.Customer ...@@ -26,10 +26,20 @@ namespace Edu.Model.ViewModel.Customer
public string ReceptionPersionTel { get; set; } public string ReceptionPersionTel { get; set; }
/// <summary> /// <summary>
/// 查询日期 /// 单个日期查询
/// </summary> /// </summary>
public string QueryDate { get; set; } public string QueryDate { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public string StartDate { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public string EndDate { get; set; }
/// <summary> /// <summary>
/// 学员名称 /// 学员名称
/// </summary> /// </summary>
......
...@@ -259,5 +259,10 @@ namespace Edu.Model.ViewModel.User ...@@ -259,5 +259,10 @@ namespace Edu.Model.ViewModel.User
/// 线索条数 /// 线索条数
/// </summary> /// </summary>
public int ClueCount { get; set; } public int ClueCount { get; set; }
/// <summary>
/// 创建人编号
/// </summary>
public List<int> CreateIds { get; set; }
} }
} }
\ No newline at end of file
...@@ -381,6 +381,7 @@ namespace Edu.Module.Course ...@@ -381,6 +381,7 @@ namespace Edu.Module.Course
UpdateTime = DateTime.Now, UpdateTime = DateTime.Now,
DeductionMoney = DeductionMoney, DeductionMoney = DeductionMoney,
OpenBonus = curNum > 0 ? item.OpenBonus : 0, OpenBonus = curNum > 0 ? item.OpenBonus : 0,
ClueNum= stuModel?.ClueCount??0,
ClueNumSalary = stuModel?.ClueCount > 5 ? item.ClueNumSalary : 0 ClueNumSalary = stuModel?.ClueCount > 5 ? item.ClueNumSalary : 0
}; };
pModel.IsReach = pModel.CurOrderMoney > item.MonthGoalMoney ? 1 : 0; pModel.IsReach = pModel.CurOrderMoney > item.MonthGoalMoney ? 1 : 0;
...@@ -608,22 +609,36 @@ namespace Edu.Module.Course ...@@ -608,22 +609,36 @@ namespace Edu.Module.Course
} }
else else
{ {
DateTime d1 = new DateTime(Year, Month, 1);
string startDate = Common.ConvertHelper.FormatDate(d1);
DateTime endTime = d1.AddMonths(1).AddDays(-1);
string endDate = Common.ConvertHelper.FormatDate(endTime);
var list = personnel_BonusRepository.GetPersonnelBonusListRepository(new RB_Personnel_Bonus_Extend() var list = personnel_BonusRepository.GetPersonnelBonusListRepository(new RB_Personnel_Bonus_Extend()
{ {
EmployeeId = user.Id, EmployeeId = user.Id,
YearNum = Year, YearNum = Year,
MonthNum = Month MonthNum = Month
}, isGetDetail: true); }, isGetDetail: true);
monthData.BonusMoney = list?.Sum(qitem => qitem.CurRewardMoney + qitem.ClueNumSalary + qitem.OpenBonus - qitem.BeforeMoney) ?? 0; monthData.TotalBonusMoney = list?.Sum(qitem => qitem.CurRewardMoney + qitem.ClueNumSalary + qitem.OpenBonus) ?? 0;
monthData.CurRewardMoney = list?.Sum(qitem => qitem.CurRewardMoney) ?? 0;
monthData.OpenBonus = list?.Sum(qitem => qitem.OpenBonus) ?? 0;
monthData.ClueNumSalary = list?.Sum(qitem => qitem.ClueNumSalary) ?? 0;
monthData.GuestNum = list?.Sum(qitem => qitem.CurGuestNum) ?? 0; monthData.GuestNum = list?.Sum(qitem => qitem.CurGuestNum) ?? 0;
monthData.OrderCount = list?.Sum(qitem => qitem?.DeductionList?.Count) ?? 0; monthData.OrderCount = 0;
monthData.ReachCount = list?.FirstOrDefault()?.IsReach ?? 0; monthData.ClueCount = list?.Sum(qitem=>qitem.ClueNum)??0;
foreach (var subItem in list)
{
monthData.OrderCount += subItem?.DetailList?.Count()??0;
}
monthData.ReachCount = list?.Where(qitem => qitem.IsReach > 0)?.Count() ?? 0;
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
//历史人头提成方案 //历史人头提成方案
var hisModel = JsonHelper.DeserializeObject<CurrentMonthBonusData>(list?.FirstOrDefault()?.HisBonusData); var hisModel = JsonHelper.DeserializeObject<CurrentMonthBonusData>(list?.FirstOrDefault()?.HisBonusData);
GetNextGoal(monthData.GuestNum, hisModel, out int CurrentStep, out string NextGoal, out decimal NextBonus); GetNextGoal(monthData.GuestNum, hisModel, out int CurrentStep,out decimal StartNum,out decimal EndNum, out string NextGoal, out decimal NextBonus);
monthData.CurrentStep = CurrentStep; monthData.CurrentStep = CurrentStep;
monthData.StartNum = StartNum;
monthData.EndNum = EndNum;
monthData.NextGoal = NextGoal; monthData.NextGoal = NextGoal;
monthData.NextBonus = NextBonus; monthData.NextBonus = NextBonus;
} }
...@@ -632,7 +647,7 @@ namespace Edu.Module.Course ...@@ -632,7 +647,7 @@ namespace Edu.Module.Course
} }
/// <summary> /// <summary>
/// 获取当月数据 /// 计算当月人头奖励数据
/// </summary> /// </summary>
/// <param name="user"></param> /// <param name="user"></param>
private EmpStaticItem GetCurrentMonthData(UserInfo user) private EmpStaticItem GetCurrentMonthData(UserInfo user)
...@@ -669,11 +684,17 @@ namespace Edu.Module.Course ...@@ -669,11 +684,17 @@ namespace Edu.Module.Course
var stuModel = studentRepository.GetStudentStaticRepository(saleId.ToString(), startDate, endDate)?.FirstOrDefault(); var stuModel = studentRepository.GetStudentStaticRepository(saleId.ToString(), startDate, endDate)?.FirstOrDefault();
decimal ClueNumSalary = stuModel?.ClueCount > 5 ? item.ClueNumSalary : 0; decimal ClueNumSalary = stuModel?.ClueCount > 5 ? item.ClueNumSalary : 0;
GetCurrentGoal(monthData.GuestNum, item, out int CurrentStep, out string NextGoal, out decimal awardAmount); GetCurrentGoal(monthData.GuestNum, item, out int CurrentStep,out decimal StartNum,out decimal EndNum, out string NextGoal, out decimal awardAmount);
monthData.CurrentStep = CurrentStep; monthData.CurrentStep = CurrentStep;
monthData.StartNum = StartNum;
monthData.EndNum = EndNum;
monthData.NextGoal = NextGoal; monthData.NextGoal = NextGoal;
monthData.NextBonus = awardAmount; monthData.NextBonus = awardAmount;
monthData.BonusMoney = (CurRewardMoney + OpenBonus + ClueNumSalary); monthData.CurRewardMoney = CurRewardMoney;
monthData.OpenBonus = OpenBonus;
monthData.ClueNumSalary = ClueNumSalary;
monthData.TotalBonusMoney = (CurRewardMoney + OpenBonus + ClueNumSalary);
monthData.ClueCount = stuModel?.ClueCount ?? 0;
break; break;
} }
} }
...@@ -700,18 +721,26 @@ namespace Edu.Module.Course ...@@ -700,18 +721,26 @@ namespace Edu.Module.Course
}, isGetDetail: true); }, isGetDetail: true);
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
{ {
yearData.BonusMoney = list?.Sum(qitem => qitem.CurRewardMoney + qitem.ClueNumSalary + qitem.OpenBonus - qitem.BeforeMoney) ?? 0; yearData.TotalBonusMoney = list?.Sum(qitem => qitem.CurRewardMoney + qitem.ClueNumSalary + qitem.OpenBonus) ?? 0;
yearData.CurRewardMoney= list?.Sum(qitem => qitem.CurRewardMoney) ?? 0;
yearData.ClueNumSalary = list?.Sum(qitem => qitem.ClueNumSalary)??0;
yearData.OpenBonus = list?.Sum(qitem => qitem.OpenBonus) ?? 0;
yearData.GuestNum = list?.Sum(qitem => qitem.CurGuestNum) ?? 0; yearData.GuestNum = list?.Sum(qitem => qitem.CurGuestNum) ?? 0;
yearData.OrderCount = list?.Sum(qitem => qitem?.DeductionList?.Count) ?? 0; yearData.OrderCount = list?.Sum(qitem => qitem?.DetailList?.Count) ?? 0;
yearData.ReachCount = list?.Where(qitem => qitem.IsReach == 1)?.Count() ?? 0; yearData.ReachCount = list?.Where(qitem => qitem.IsReach == 1)?.Count() ?? 0;
yearData.ClueCount = list?.Sum(qitem => qitem.ClueNum) ?? 0;
} }
if (Year == CurrentYear) if (Year == CurrentYear)
{ {
var monData = GetCurrentMonthData(user); var monData = GetCurrentMonthData(user);
yearData.BonusMoney += monData?.BonusMoney ?? 0; yearData.TotalBonusMoney += monData?.TotalBonusMoney ?? 0;
yearData.GuestNum+= monData?.GuestNum ?? 0; yearData.ClueNumSalary += monData?.ClueNumSalary ?? 0;
yearData.OpenBonus += monData?.OpenBonus ?? 0;
yearData.CurRewardMoney += monData?.CurRewardMoney ?? 0;
yearData.GuestNum += monData?.GuestNum ?? 0;
yearData.OrderCount += monData?.OrderCount ?? 0; yearData.OrderCount += monData?.OrderCount ?? 0;
yearData.ReachCount += monData?.ReachCount ?? 0; yearData.ReachCount += monData?.ReachCount ?? 0;
yearData.ClueCount += monData?.ClueCount ?? 0;
} }
return yearData; return yearData;
} }
...@@ -724,11 +753,13 @@ namespace Edu.Module.Course ...@@ -724,11 +753,13 @@ namespace Edu.Module.Course
/// <param name="CurrentStep"></param> /// <param name="CurrentStep"></param>
/// <param name="NextGoal"></param> /// <param name="NextGoal"></param>
/// <param name="awardAmount"></param> /// <param name="awardAmount"></param>
public void GetNextGoal(int GuestNum, CurrentMonthBonusData hisData,out int CurrentStep,out string NextGoal, out decimal awardAmount) public void GetNextGoal(int GuestNum, CurrentMonthBonusData hisData, out int CurrentStep,out decimal StartNum,out decimal EndNum, out string NextGoal, out decimal awardAmount)
{ {
awardAmount = 0; awardAmount = 0;
NextGoal = ""; NextGoal = "";
CurrentStep = 1; CurrentStep = 1;
StartNum = 0;
EndNum = 0;
if (hisData != null && hisData.DetailList != null && hisData.DetailList.Count > 0) if (hisData != null && hisData.DetailList != null && hisData.DetailList.Count > 0)
{ {
var firstStep = hisData.DetailList[0]; var firstStep = hisData.DetailList[0];
...@@ -737,6 +768,8 @@ namespace Edu.Module.Course ...@@ -737,6 +768,8 @@ namespace Edu.Module.Course
CurrentStep = 1; CurrentStep = 1;
NextGoal = string.Format("距{0}档还差{1}个", 1, firstStep.StartNum - GuestNum); NextGoal = string.Format("距{0}档还差{1}个", 1, firstStep.StartNum - GuestNum);
awardAmount = firstStep.Money; awardAmount = firstStep.Money;
StartNum = firstStep.StartNum;
EndNum = firstStep.EndNum;
} }
else else
{ {
...@@ -745,15 +778,18 @@ namespace Edu.Module.Course ...@@ -745,15 +778,18 @@ namespace Edu.Module.Course
var tempNum = hisData.DetailList[i]; var tempNum = hisData.DetailList[i];
if (tempNum.StartNum <= GuestNum && GuestNum <= tempNum.EndNum) if (tempNum.StartNum <= GuestNum && GuestNum <= tempNum.EndNum)
{ {
StartNum = tempNum.StartNum;
EndNum = tempNum.EndNum;
if ((i + 1) < hisData.DetailList.Count) if ((i + 1) < hisData.DetailList.Count)
{ {
CurrentStep = (i + 1); CurrentStep = (i + 1);
awardAmount = hisData.DetailList[i + 1].Money; awardAmount = hisData.DetailList[i + 1].Money;
NextGoal = string.Format("距{0}档还差{1}个", (i+1+1), hisData.DetailList[i + 1].StartNum - GuestNum);
NextGoal = string.Format("距{0}档还差{1}个", (i + 1 + 1), hisData.DetailList[i + 1].StartNum - GuestNum);
} }
else else
{ {
CurrentStep = (i+1); CurrentStep = (i + 1);
awardAmount = tempNum.Money; awardAmount = tempNum.Money;
NextGoal = string.Format("已完成当月目标!"); NextGoal = string.Format("已完成当月目标!");
} }
...@@ -771,11 +807,13 @@ namespace Edu.Module.Course ...@@ -771,11 +807,13 @@ namespace Edu.Module.Course
/// <param name="CurrentStep"></param> /// <param name="CurrentStep"></param>
/// <param name="NextGoal"></param> /// <param name="NextGoal"></param>
/// <param name="awardAmount"></param> /// <param name="awardAmount"></param>
public void GetCurrentGoal(int GuestNum, RB_Bonus_PlanExtend hisData, out int CurrentStep, out string NextGoal, out decimal awardAmount) public void GetCurrentGoal(int GuestNum, RB_Bonus_PlanExtend hisData, out int CurrentStep,out decimal StartNum,out decimal EndNum, out string NextGoal, out decimal awardAmount)
{ {
awardAmount = 0; awardAmount = 0;
NextGoal = ""; NextGoal = "";
CurrentStep = 1; CurrentStep = 1;
StartNum = 0;
EndNum = 0;
if (hisData != null && hisData.DetailList != null && hisData.DetailList.Count > 0) if (hisData != null && hisData.DetailList != null && hisData.DetailList.Count > 0)
{ {
var firstStep = hisData.DetailList[0]; var firstStep = hisData.DetailList[0];
...@@ -784,6 +822,8 @@ namespace Edu.Module.Course ...@@ -784,6 +822,8 @@ namespace Edu.Module.Course
CurrentStep = 1; CurrentStep = 1;
NextGoal = string.Format("距{0}档还差{1}个", 1, firstStep.StartNum - GuestNum); NextGoal = string.Format("距{0}档还差{1}个", 1, firstStep.StartNum - GuestNum);
awardAmount = firstStep.Money; awardAmount = firstStep.Money;
StartNum = firstStep.StartNum;
EndNum = firstStep.EndNum;
} }
else else
{ {
...@@ -792,6 +832,8 @@ namespace Edu.Module.Course ...@@ -792,6 +832,8 @@ namespace Edu.Module.Course
var tempNum = hisData.DetailList[i]; var tempNum = hisData.DetailList[i];
if (tempNum.StartNum <= GuestNum && GuestNum <= tempNum.EndNum) if (tempNum.StartNum <= GuestNum && GuestNum <= tempNum.EndNum)
{ {
StartNum = tempNum.StartNum;
EndNum = tempNum.EndNum;
if ((i + 1) < hisData.DetailList.Count) if ((i + 1) < hisData.DetailList.Count)
{ {
CurrentStep = (i + 1); CurrentStep = (i + 1);
...@@ -819,7 +861,22 @@ namespace Edu.Module.Course ...@@ -819,7 +861,22 @@ namespace Edu.Module.Course
/// <summary> /// <summary>
/// 奖金 /// 奖金
/// </summary> /// </summary>
public decimal BonusMoney { get; set; } public decimal TotalBonusMoney { get; set; }
/// <summary>
/// 开单奖励
/// </summary>
public decimal OpenBonus { get; set; }
/// <summary>
/// 线索奖励
/// </summary>
public decimal ClueNumSalary { get; set; }
/// <summary>
/// 人头奖励
/// </summary>
public decimal CurRewardMoney { get; set; }
/// <summary> /// <summary>
/// 开单数量 /// 开单数量
...@@ -831,6 +888,16 @@ namespace Edu.Module.Course ...@@ -831,6 +888,16 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
public int GuestNum { get; set; } public int GuestNum { get; set; }
/// <summary>
/// 开始人数
/// </summary>
public decimal StartNum { get; set; }
/// <summary>
/// 结束人数
/// </summary>
public decimal EndNum { get; set; }
/// <summary> /// <summary>
/// 是否达到月度业绩目标 /// 是否达到月度业绩目标
/// </summary> /// </summary>
...@@ -841,6 +908,11 @@ namespace Edu.Module.Course ...@@ -841,6 +908,11 @@ namespace Edu.Module.Course
/// </summary> /// </summary>
public int CurrentStep { get; set; } public int CurrentStep { get; set; }
/// <summary>
/// 线索条数
/// </summary>
public int ClueCount { get; set; }
/// <summary> /// <summary>
/// 下一个目标字符串 /// 下一个目标字符串
/// </summary> /// </summary>
......
...@@ -9366,6 +9366,83 @@ and {ruleModel.Time} >='{dmodel.RuleSTime.Value:yyyy-MM-dd}' and {ruleModel.Time ...@@ -9366,6 +9366,83 @@ and {ruleModel.Time} >='{dmodel.RuleSTime.Value:yyyy-MM-dd}' and {ruleModel.Time
return allList; return allList;
} }
/// <summary>
/// 我的直属下级
/// </summary>
/// <param name="Group_Id"></param>
/// <param name="Id"></param>
/// <param name="DeptId"></param>
/// <returns></returns>
public List<object> GetOKRPersonalDimensionListModule(int Group_Id, int Id, int DeptId = 0)
{
List<int> UserIdList = new List<int>();
List<object> allList = new List<object>();
#region 我的直属下级
var emList = accountRepository.GetEmployeeListRepository(new Model.ViewModel.User.Employee_ViewModel() { Group_Id = Group_Id, IsLeave = 1, DirectSupervisor = Id, Dept_Id = DeptId });
if (emList.Any())
{
foreach (var item in emList)
{
UserIdList.Add(item.Id);
}
}
//如果是部门主管 需要将部门下除自己其他人加入
//查询部门负责人 负责的所有部门
var xjdlist = departmentRepository.GetDepartmentListRepository(new Model.ViewModel.User.RB_Department_ViewModel() { DeptId = DeptId, Group_Id = Group_Id, ManagerIds = Id.ToString() });
if (xjdlist.Any())
{
//查询该部门下所有人
var em1List = accountRepository.GetEmployeeListRepository(new Model.ViewModel.User.Employee_ViewModel() { Group_Id = Group_Id, IsLeave = 1, QDeptIds = string.Join(",", xjdlist.Select(x => x.DeptId)) });
em1List = em1List.Where(x => !UserIdList.Contains(x.Id) && x.DirectSupervisor == 0).ToList();//排序 已存在的直接关系
if (em1List.Any())
{
//查询全部负责人
string AllManagerIds = departmentRepository.GetAllDepartmentManagerIds(Group_Id);
List<int> AllDeptManageId = new List<int>();
if (!string.IsNullOrEmpty(AllManagerIds))
{
AllDeptManageId = JsonHelper.DeserializeObject<List<int>>("[" + AllManagerIds + "]");
}
//对 em1List 排除负责人
foreach (var item in em1List.Where(x => !AllDeptManageId.Contains(x.Id)))
{
allList.Add(new
{
Id = item.Id,
EmployeeName = item.EmployeeName,
UserIcon = item.UserIcon,
Dept_Id = item.Dept_Id,
Type = 2
});
UserIdList.Add(item.Id);
}
}
//上级部门下所有子部门的负责人
var d2list = departmentRepository.GetDepartmentListRepository(new Model.ViewModel.User.RB_Department_ViewModel() { Group_Id = Group_Id, QParentIds = string.Join(",", xjdlist.Select(x => x.DeptId)) });
string ManagerIds = string.Join(",", d2list.Where(x => !string.IsNullOrEmpty(x.ManagerIds)).Select(x => x.ManagerIds));
if (!string.IsNullOrEmpty(ManagerIds))
{
em1List = accountRepository.GetEmployeeListRepository(new Model.ViewModel.User.Employee_ViewModel() { Group_Id = Group_Id, IsLeave = 1, QIds = ManagerIds });
em1List = em1List.Where(x => !UserIdList.Contains(x.Id) && x.Id != Id && x.DirectSupervisor == 0).ToList();//排序 已存在的直接关系
foreach (var item in em1List)
{
allList.Add(new
{
Id = item.Id,
EmployeeName = item.EmployeeName,
UserIcon = item.UserIcon,
Dept_Id = item.Dept_Id,
Type = 2
});
UserIdList.Add(item.Id);
}
}
}
#endregion
return allList;
}
/// <summary> /// <summary>
/// 获取我所有下级 /// 获取我所有下级
......
...@@ -659,32 +659,57 @@ namespace Edu.Module.User ...@@ -659,32 +659,57 @@ namespace Edu.Module.User
/// <returns></returns> /// <returns></returns>
public object GetStudentTodayStaticModule(int createBy) public object GetStudentTodayStaticModule(int createBy)
{ {
DateTime startTime = DateTime.Now.AddMonths(-1);
string startDate = Common.ConvertHelper.FormatDate(startTime);
var today = Common.ConvertHelper.FormatDate(DateTime.Now); var today = Common.ConvertHelper.FormatDate(DateTime.Now);
//今日新增名单 //今日新增名单
int todayAdd = studentRepository.GetStudentStaticRepository(createBy.ToString(), today, today)?.FirstOrDefault()?.ClueCount ?? 0; var addList = studentRepository.GetStudentStaticRepository(createBy.ToString(), startDate, today);
//今日到访 int days = (DateTime.Now - startTime).Days;
int todayVisit = student_VisitRepository.GetStudentVisitStaticRepository(new RB_Student_Visit_Extend() { CreateBy = createBy, QueryDate = today })?.Count() ?? 0; List<object> dayList = new List<object>();
//今日预约
int appointmentCount = student_AppointmentRepository.GetStudentVisitStaticRepository(new RB_Student_Appointment_Extend() //今日新增名单
int todayAdd = addList?.FirstOrDefault(qitem=>Common.ConvertHelper.FormatDate(qitem.CreateTime)== today)?.ClueCount ?? 0;
//到访名单
var visitList = student_VisitRepository.GetStudentVisitStaticRepository(new RB_Student_Visit_Extend()
{ {
CreateBy = createBy, CreateBy = createBy,
QueryDate = today StartDate = startDate,
})?.FirstOrDefault()?.AppointmentCount ?? 0; EndDate= today
});
//今日到访
int todayVisit = visitList?.FirstOrDefault(qitem => Common.ConvertHelper.FormatDate(qitem.CreateTime) == today)?.VisitCount ?? 0;
//今日新增同行 //预约列表
var customerCount = customerRepository.GetCustomerStaticRepository(new RB_Customer_Extend() var appointmentList = student_AppointmentRepository.GetStudentVisitStaticRepository(new RB_Student_Appointment_Extend()
{ {
CreateBy = createBy, CreateBy = createBy,
QDate = today StartDate = startDate,
})?.FirstOrDefault()?.CustomerCount ?? 0; EndDate = today,
});
//今日预约
int appointmentCount = appointmentList?.FirstOrDefault(qitem => Common.ConvertHelper.FormatDate(qitem.CreateTime) == today)?.AppointmentCount ?? 0;
//今日试听 //新增同行列表
var trialLessonCount = visitor_ReserveRepository.GetVisitorReserveStaticRepository(new Model.ViewModel.Reserve.RB_Visitor_Reserve_Extend() var customerList = customerRepository.GetCustomerStaticRepository(new RB_Customer_Extend()
{ {
CreateBy = createBy, CreateBy = createBy,
QDate = today StartDate = startDate,
})?.FirstOrDefault()?.TrialLessonCount ?? 0; EndDate = today
});
//今日新增同行
var customerCount = customerList?.FirstOrDefault(qitem => Common.ConvertHelper.FormatDate(qitem.CreateTime) == today)?.CustomerCount ?? 0;
//试听列表
var trialLessonList = visitor_ReserveRepository.GetVisitorReserveStaticRepository(new Model.ViewModel.Reserve.RB_Visitor_Reserve_Extend()
{
CreateBy = createBy,
StartClassDate = startDate,
EndClassDate=today
});
//今日试听
var trialLessonCount = trialLessonList?.FirstOrDefault(qitem => Common.ConvertHelper.FormatDate(qitem.CreateTime) == today)?.TrialLessonCount ?? 0;
//未沟通人数 //未沟通人数
var notCommunicateCount = studentRepository.GetStudentListRepository(new RB_Student_ViewModel() var notCommunicateCount = studentRepository.GetStudentListRepository(new RB_Student_ViewModel()
{ {
...@@ -692,8 +717,24 @@ namespace Edu.Module.User ...@@ -692,8 +717,24 @@ namespace Edu.Module.User
StuStage = 1 StuStage = 1
})?.Count(); })?.Count();
for (int i = 1; i <= days; i++)
{
var newDate = startTime.AddDays(i);
dayList.Add(new
{
x = Common.ConvertHelper.FormatMonthDay(newDate),
y = addList?.FirstOrDefault(qitem => Common.ConvertHelper.FormatDate(qitem.CreateTime) == Common.ConvertHelper.FormatDate(newDate))?.ClueCount ?? 0,
AddCount = addList?.FirstOrDefault(qitem => Common.ConvertHelper.FormatDate(qitem.CreateTime) == Common.ConvertHelper.FormatDate(newDate))?.ClueCount ?? 0,
VisitCount = visitList?.FirstOrDefault(qitem => Common.ConvertHelper.FormatDate(qitem.CreateTime) == Common.ConvertHelper.FormatDate(newDate))?.VisitCount ?? 0,
appointmentCount = appointmentList?.FirstOrDefault(qitem => Common.ConvertHelper.FormatDate(qitem.CreateTime) == Common.ConvertHelper.FormatDate(newDate))?.AppointmentCount ?? 0,
customerCount = customerList?.FirstOrDefault(qitem => Common.ConvertHelper.FormatDate(qitem.CreateTime) == Common.ConvertHelper.FormatDate(newDate))?.CustomerCount ?? 0,
trialLessonCount=trialLessonList?.FirstOrDefault(qitem => Common.ConvertHelper.FormatDate(qitem.CreateTime) == Common.ConvertHelper.FormatDate(newDate))?.TrialLessonCount ?? 0,
});
}
object obj = new object obj = new
{ {
dayList,
todayAdd, todayAdd,
todayVisit, todayVisit,
appointmentCount, appointmentCount,
......
...@@ -192,7 +192,7 @@ WHERE o.OrderState in(1,2) and o.Group_Id ={group_Id} and o.CustomerId in({custo ...@@ -192,7 +192,7 @@ WHERE o.OrderState in(1,2) and o.Group_Id ={group_Id} and o.CustomerId in({custo
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.CreateBy,COUNT(1) AS CustomerCount SELECT A.CreateBy,DATE_FORMAT(A.CreateTime,'%Y-%m-%d') AS CreateTime,COUNT(1) AS CustomerCount
FROM RB_Customer AS A FROM RB_Customer AS A
WHERE 1=1 WHERE 1=1
"); ");
...@@ -212,8 +212,17 @@ WHERE 1=1 ...@@ -212,8 +212,17 @@ WHERE 1=1
//指定日期新增同行数量 //指定日期新增同行数量
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{1}','%y/%m/%d') ", nameof(RB_Customer_Extend.CreateTime), query.QDate); builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{1}','%y/%m/%d') ", nameof(RB_Customer_Extend.CreateTime), query.QDate);
} }
if (!string.IsNullOrEmpty(query.StartDate))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Customer_Extend.CreateTime), query.StartDate);
}
if (!string.IsNullOrEmpty(query.EndDate))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Customer_Extend.CreateTime), query.EndDate);
}
} }
builder.AppendFormat(@" GROUP BY A.CreateBy "); builder.AppendFormat(@" GROUP BY A.CreateBy,DATE_FORMAT(A.CreateTime,'%Y/%m/%d') ");
builder.AppendFormat(@" ORDER BY A.CreateBy,DATE_FORMAT(A.CreateTime,'%Y/%m/%d') ");
return Get<RB_Customer_Extend>(builder.ToString()).ToList(); return Get<RB_Customer_Extend>(builder.ToString()).ToList();
} }
} }
......
...@@ -56,7 +56,7 @@ WHERE 1=1 ...@@ -56,7 +56,7 @@ WHERE 1=1
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.CreateBy,Count(1) AS AppointmentCount SELECT A.CreateBy,DATE_FORMAT(A.CreateTime,'%Y-%m-%d') AS CreateTime,Count(1) AS AppointmentCount
FROM RB_Student_Appointment AS A INNER JOIN rb_student AS B ON A.StuId=B.StuId FROM RB_Student_Appointment AS A INNER JOIN rb_student AS B ON A.StuId=B.StuId
WHERE 1=1 WHERE 1=1
"); ");
...@@ -71,7 +71,6 @@ WHERE 1=1 ...@@ -71,7 +71,6 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Appointment_Extend.StuId), query.StuId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Appointment_Extend.StuId), query.StuId);
} }
if (query.CreateBy > 0) if (query.CreateBy > 0)
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Appointment_Extend.CreateBy), query.CreateBy); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Appointment_Extend.CreateBy), query.CreateBy);
...@@ -81,8 +80,16 @@ WHERE 1=1 ...@@ -81,8 +80,16 @@ WHERE 1=1
//指定日期的约访统计 //指定日期的约访统计
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{1}','%y/%m/%d') ", nameof(RB_Student_Visit_Extend.CreateTime), Common.ConvertHelper.FormatDate(query.QueryDate)); builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{1}','%y/%m/%d') ", nameof(RB_Student_Visit_Extend.CreateTime), Common.ConvertHelper.FormatDate(query.QueryDate));
} }
if (!string.IsNullOrEmpty(query.StartDate))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Student_Visit_Extend.CreateTime), Common.ConvertHelper.FormatDate(query.StartDate));
}
if (!string.IsNullOrEmpty(query.EndDate))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Student_Visit_Extend.CreateTime), Common.ConvertHelper.FormatDate(query.EndDate));
}
} }
builder.AppendFormat(" GROUP BY A.CreateBy "); builder.AppendFormat(" GROUP BY A.CreateBy,DATE_FORMAT(A.CreateTime,'%Y/%m/%d') ");
return Get<RB_Student_Appointment_Extend>(builder.ToString()).ToList(); return Get<RB_Student_Appointment_Extend>(builder.ToString()).ToList();
} }
} }
......
...@@ -89,7 +89,7 @@ WHERE 1=1 ...@@ -89,7 +89,7 @@ WHERE 1=1
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.StuId,Count(1) AS VisitCount SELECT A.CreateBy,DATE_FORMAT(A.CreateTime,'%Y-%m-%d') AS CreateTime ,Count(1) AS VisitCount
FROM RB_Student_Visit AS A INNER JOIN rb_student AS B ON A.StuId=B.StuId FROM RB_Student_Visit AS A INNER JOIN rb_student AS B ON A.StuId=B.StuId
WHERE 1=1 WHERE 1=1
"); ");
...@@ -112,13 +112,17 @@ WHERE 1=1 ...@@ -112,13 +112,17 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Visit_Extend.CreateBy), query.CreateBy); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Visit_Extend.CreateBy), query.CreateBy);
} }
if (!string.IsNullOrEmpty(query.QueryDate)) if (!string.IsNullOrEmpty(query.StartDate))
{ {
//今日到访 builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Student_Visit_Extend.CreateTime), Common.ConvertHelper.FormatDate(query.StartDate));
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{1}','%y/%m/%d') ", nameof(RB_Student_Visit_Extend.CreateTime), Common.ConvertHelper.FormatDate(query.QueryDate)); }
if (!string.IsNullOrEmpty(query.EndDate))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Student_Visit_Extend.CreateTime), Common.ConvertHelper.FormatDate(query.EndDate));
} }
} }
builder.AppendFormat(" GROUP BY A.StuId "); builder.AppendFormat(" GROUP BY A.CreateBy,DATE_FORMAT(A.CreateTime,'%Y/%m/%d') ");
builder.AppendFormat(" ORDER BY A.CreateBy, DATE_FORMAT(A.CreateTime, '%Y/%m/%d') ");
return Get<RB_Student_Visit_Extend>(builder.ToString()).ToList(); return Get<RB_Student_Visit_Extend>(builder.ToString()).ToList();
} }
} }
......
...@@ -264,7 +264,7 @@ WHERE 1=1 ...@@ -264,7 +264,7 @@ WHERE 1=1
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.CreateBy,COUNT(1) AS TrialLessonCount SELECT A.CreateBy,COUNT(1) AS TrialLessonCount,DATE_FORMAT(A.CreateTime,'%Y-%m-%d') AS CreateTime
FROM RB_Visitor_Reserve AS A FROM RB_Visitor_Reserve AS A
WHERE 1=1 WHERE 1=1
"); ");
...@@ -284,8 +284,17 @@ WHERE 1=1 ...@@ -284,8 +284,17 @@ WHERE 1=1
//指定日期的试听课数量 //指定日期的试听课数量
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{1}','%y/%m/%d') ", nameof(RB_Visitor_Reserve_Extend.CreateTime), query.QDate); builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{1}','%y/%m/%d') ", nameof(RB_Visitor_Reserve_Extend.CreateTime), query.QDate);
} }
if (!string.IsNullOrEmpty(query.StartClassDate))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Visitor_Reserve_Extend.CreateTime), query.StartClassDate);
}
if (!string.IsNullOrEmpty(query.EndClassDate))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Visitor_Reserve_Extend.CreateTime), query.EndClassDate);
}
} }
builder.AppendFormat(@" GROUP BY A.CreateBy "); builder.AppendFormat(@" GROUP BY A.CreateBy,DATE_FORMAT(A.CreateTime,'%Y/%m/%d') ");
builder.AppendFormat(@" ORDER BY A.CreateBy,DATE_FORMAT(A.CreateTime,'%Y/%m/%d') ");
return Get<RB_Visitor_Reserve_Extend>(builder.ToString()).ToList(); return Get<RB_Visitor_Reserve_Extend>(builder.ToString()).ToList();
} }
} }
......
...@@ -274,6 +274,14 @@ WHERE 1=1 ...@@ -274,6 +274,14 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND t.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId={0} AND `Status`=0) ", query.CreateBy); builder.AppendFormat(" AND t.StuId IN (SELECT StuId FROM rb_student_assist WHERE AssistId={0} AND `Status`=0) ", query.CreateBy);
} }
if (query.BelongType == 4 && query.CreateIds != null && query.CreateIds.Count > 0)
{
string createIds = string.Join(",", query.CreateIds);
if (!string.IsNullOrEmpty(createIds))
{
builder.AppendFormat(" AND t.{0} IN({1}) ", nameof(RB_Student_ViewModel.CreateBy), createIds);
}
}
} }
else else
{ {
...@@ -746,11 +754,24 @@ WHERE 1=1 ...@@ -746,11 +754,24 @@ WHERE 1=1
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT CreateBy,Count(1) AS ClueCount SELECT CreateBy,DATE_FORMAT(CreateTime,'%Y-%m-%d') AS CreateTime,Count(1) AS ClueCount
FROM RB_Student FROM RB_Student
WHERE Status=0 AND CreateBy IN({0}) and CreateTime>='{1}' and CreateTime<='{2} 23:59:59' WHERE Status=0
", createByIds, startDate, endDate); ");
builder.AppendFormat(" GROUP BY CreateBy "); if (!string.IsNullOrEmpty(createByIds))
{
builder.AppendFormat(" AND CreateBy IN({0}) ", createByIds);
}
if (!string.IsNullOrEmpty(startDate))
{
builder.AppendFormat(" AND CreateTime>='{0}' ", startDate);
}
if (!string.IsNullOrEmpty(endDate))
{
builder.AppendFormat(" AND CreateTime<='{0} 23:59:59' ", endDate);
}
builder.AppendFormat(" GROUP BY CreateBy,DATE_FORMAT(CreateTime,'%Y/%m/%d') ");
builder.AppendFormat(" ORDER BY CreateBy,DATE_FORMAT(CreateTime,'%Y/%m/%d') ");
var list = Get<RB_Student_ViewModel>(builder.ToString()).ToList(); var list = Get<RB_Student_ViewModel>(builder.ToString()).ToList();
return list; return list;
} }
......
...@@ -2355,6 +2355,17 @@ namespace Edu.WebApi.Controllers.OKR ...@@ -2355,6 +2355,17 @@ namespace Edu.WebApi.Controllers.OKR
} }
#endregion #endregion
/// <summary>
/// 获取当前人员下级列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetPersonalDimension()
{
var userInfo = base.UserInfo;
var allList = okrPeriodModule.GetOKRPersonalDimensionListModule(userInfo.Group_Id, userInfo.Id, userInfo.DeptId);
return ApiResult.Success(data: allList);
}
#region 管理端数据看板 作废 #region 管理端数据看板 作废
......
...@@ -682,6 +682,12 @@ namespace Edu.WebApi.Controllers.User ...@@ -682,6 +682,12 @@ namespace Edu.WebApi.Controllers.User
query.CreateBy = base.UserInfo.Id; query.CreateBy = base.UserInfo.Id;
} }
string CreateIds = base.ParmJObj.GetStringValue("CreateIds");
if (!string.IsNullOrEmpty(CreateIds))
{
query.CreateIds = Common.Plugin.JsonHelper.DeserializeObject<List<int>>(CreateIds);
}
int PlanId = base.ParmJObj.GetInt("PlanId"); int PlanId = base.ParmJObj.GetInt("PlanId");
if (PlanId > 0) if (PlanId > 0)
{ {
......
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