Commit 8d8aee29 authored by liudong1993's avatar liudong1993

营收报表调整

parent fefa7172
......@@ -190,5 +190,20 @@ namespace Edu.Model.Entity.Finance
/// </summary>
public string ClassNo { get; set; }
/// <summary>
/// 班级总课时
/// </summary>
public int HoursNum { get; set; }
/// <summary>
/// 班级已上课时
/// </summary>
public int ConsumeNum { get; set; }
/// <summary>
/// 学生已上课金额
/// </summary>
public decimal ConsumeMoney { get; set; }
}
}
......@@ -322,6 +322,8 @@ namespace Edu.Module.Finance
List<RB_Finance_Extend> FAllList = new List<RB_Finance_Extend>();
List<RB_Teaching_BonusDetail_ViewModel> teacherBonusList = new List<RB_Teaching_BonusDetail_ViewModel>();
List<RB_Teaching_Perf_ViewModel> meritsProfitList = new List<RB_Teaching_Perf_ViewModel>();
List<RB_Class_Check_ViewModel> classHoursList = new List<RB_Class_Check_ViewModel>();
List<RB_Class_Check_ViewModel> classStuList = new List<RB_Class_Check_ViewModel>();
if (classList.Any())
{
string classIds = string.Join(",", classList.Select(x => x.ClassId));
......@@ -331,6 +333,10 @@ namespace Edu.Module.Finance
FAllList = RB_FinanceRepository.GetDataStatisticsListThree(new RB_Finance_Extend() { TCIDStr = classIds, OrderSource = OrderResourceEnum.Education });
teacherBonusList = teaching_BonusDetailRepository.GetList(new RB_Teaching_BonusDetail_ViewModel { Group_Id = GroupId, ClassIds = classIds });
meritsProfitList = teaching_PerfRepository.GetList(new RB_Teaching_Perf_ViewModel { Group_Id = GroupId, ClassIds = classIds });
//查询班级下已上课时数量
classHoursList = class_CheckRepository.GetClassLearnHoursList(GroupId, classIds);
//查询班级下所有学生的上课金额
classStuList = class_CheckRepository.GetClassStuLearnMoneyList(GroupId, classIds);
}
//排序取消/删除班级
var oldlist = edu_RevenueReportRepository.GetList(new RB_Edu_RevenueReport_Extend() { StartTime = STime, EndTime = ETime, DateType = 1, Rb_Group_Id = GroupId });
......@@ -372,6 +378,10 @@ namespace Edu.Module.Finance
demodel.TeacherName = item.TeacherName;
demodel.SchoolId = item.School_Id;
demodel.SchoolName = item.SchoolName;
demodel.HoursNum = item.ClassHours;
demodel.ConsumeNum = Convert.ToInt32(classHoursList.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.CurrentDeductionHours ?? 0);
demodel.ConsumeMoney = Math.Round(classStuList.Where(x => x.ClassId == item.ClassId).FirstOrDefault()?.UnitPrice ?? 0, 2, MidpointRounding.AwayFromZero);
#endregion
#region 统计数据
......
......@@ -632,5 +632,56 @@ ORDER BY tt.ClassDate ASC
}
#endregion
#region 营收报表
/// <summary>
/// 获取班级已上课时
/// </summary>
/// <param name="groupId"></param>
/// <param name="classIds"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetClassLearnHoursList(int groupId, string classIds)
{
string sql = $@"SELECT t.ClassId,SUM(t.CurrentDeductionHours) AS CurrentDeductionHours FROM(
SELECT ClassId,ClassDate,ClassTimeId,MAX(CurrentDeductionHours) as CurrentDeductionHours
FROM rb_class_check WHERE `Status` =0 and Group_Id ={groupId} and ClassId in({classIds}) GROUP BY ClassId,ClassDate,ClassTimeId
)t GROUP BY t.ClassId";
return Get<RB_Class_Check_ViewModel>(sql).ToList();
}
/// <summary>
/// 获取班级学生已上课金额
/// </summary>
/// <param name="groupId"></param>
/// <param name="classIds"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetClassStuLearnMoneyList(int groupId, string classIds)
{
string sql = $@"SELECT hq.ClassId, SUM(hq.CurrentDeductionHours * hq.UnitPrice) AS UnitPrice FROM (
SELECT q.ClassId,q.OrderGuestId,q.CurrentDeductionHours,
case when q.ClassHours>0 and q.TotalSub >0 then
(q.CourseFee - q.DiscountMoney / q.TotalSub * q.CourseFee) /q.ClassHours
else 0 END AS UnitPrice
FROM (
SELECT tt.ClassId,tt.OrderGuestId,tt.CurrentDeductionHours
,ec.FirstCourseFee + ec.SecondCourseFee + ec.ThirdCourseFee as CourseFee
,ec.FirstDiscountMoney + ec.SecondDiscountMoney + ec.ThirdDiscountMoney as DiscountMoney
,ec.FirstCourseFee + ec.SecondCourseFee + ec.ThirdCourseFee
+ec.FirstBookFee + ec.SecondBookFee + ec.ThirdBookFee
+ec.FirstClassFee + ec.SecondClassFee + ec.ThirdClassFee as TotalSub
,ec.FirstClassHours + ec.SecondClassHours + ec.ThirdClassHours as ClassHours
FROM(
SELECT p.ClassId,p.OrderGuestId,SUM(p.CurrentDeductionHours) as CurrentDeductionHours FROM rb_class_check p
WHERE p.`Status`=0 and p.Group_Id ={groupId} and p.ClassId in({classIds})
GROUP BY p.ClassId,p.OrderGuestId
)tt
LEFT JOIN rb_education_contract ec on tt.OrderGuestId = ec.GuestId and ec.Status <>4
GROUP BY tt.ClassId,tt.OrderGuestId
)q)hq GROUP BY hq.ClassId";
return Get<RB_Class_Check_ViewModel>(sql).ToList();
}
#endregion
}
}
......@@ -221,7 +221,11 @@ namespace Edu.Repository.Finance
,sum(ShiJiLiRun) as ShiJiLiRun
,sum(AverageIncome) as AverageIncome
,sum(AverageCost) as AverageCost
,sum(AverageProfit) as AverageProfit FROM {0} AS A WHERE {1} ", nameof(RB_Edu_RevenueReport), where);
,sum(AverageProfit) as AverageProfit
,sum(HoursNum) as HoursNum
,sum(ConsumeNum) as ConsumeNum
,sum(ConsumeMoney) as ConsumeMoney
FROM {0} AS A WHERE {1} ", nameof(RB_Edu_RevenueReport), where);
return Get<RB_Edu_RevenueReport_Extend>(sql).FirstOrDefault();
}
}
......
......@@ -771,6 +771,9 @@ namespace Edu.WebApi.Controllers.Finance
new ExcelColumn(value: "毛利率") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "实际利润") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "备注") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "班级课时") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "已上课时") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "已上课金额") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "平均收入") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "平均成本") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
new ExcelColumn(value: "平均利润") { CellWidth = 15, HAlignmentEnum = HAlignmentEnum.CENTER, VAlignmentEnum = VAlignmentEnum.CENTER },
......@@ -820,6 +823,9 @@ namespace Edu.WebApi.Controllers.Finance
new ExcelColumn(value: item.MaoLiRate.ToString()){ },
new ExcelColumn(value: item.ShiJiLiRun.ToString()){ },
new ExcelColumn(value: item.Remark){ },
new ExcelColumn(value: item.HoursNum.ToString()){ },
new ExcelColumn(value: item.ConsumeNum.ToString()){ },
new ExcelColumn(value: item.ConsumeMoney.ToString("#0.00")){ },
new ExcelColumn(value: item.AverageIncome.ToString()){ },
new ExcelColumn(value: item.AverageCost.ToString()){ },
new ExcelColumn(value: item.AverageProfit.ToString()){ },
......
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