Commit 5e559969 authored by 吴春's avatar 吴春

解决冲突

parents 526c7bc9 c543a200
...@@ -64,7 +64,7 @@ namespace Edu.Model.Entity.Course ...@@ -64,7 +64,7 @@ namespace Edu.Model.Entity.Course
/// <summary> /// <summary>
/// 0-正常,1-缺席 签到状态 /// 0-正常,1-缺席,2-请假 签到状态
/// </summary> /// </summary>
public int CheckStatus { get; set; } public int CheckStatus { get; set; }
......
...@@ -69,5 +69,10 @@ namespace Edu.Model.Entity.Course ...@@ -69,5 +69,10 @@ namespace Edu.Model.Entity.Course
/// 课堂视频 /// 课堂视频
/// </summary> /// </summary>
public string VideoUrl { get; set; } public string VideoUrl { get; set; }
/// <summary>
/// 消耗课时
/// </summary>
public decimal TimeHour { get; set; }
} }
} }
...@@ -45,7 +45,7 @@ namespace Edu.Model.Entity.Course ...@@ -45,7 +45,7 @@ namespace Edu.Model.Entity.Course
/// <summary> /// <summary>
/// 课时 /// 课时
/// </summary> /// </summary>
public int CourseHour { get; set; } public decimal CourseHour { get; set; }
/// <summary> /// <summary>
/// 课时费 /// 课时费
...@@ -101,7 +101,7 @@ namespace Edu.Model.Entity.Course ...@@ -101,7 +101,7 @@ namespace Edu.Model.Entity.Course
/// <summary> /// <summary>
/// 抵基础课时 /// 抵基础课时
/// </summary> /// </summary>
public int DeductionHour { get; set; } public decimal DeductionHour { get; set; }
/// <summary> /// <summary>
/// 提成确认状态0-未确认,1-已确认 /// 提成确认状态0-未确认,1-已确认
......
...@@ -192,5 +192,15 @@ namespace Edu.Model.Entity.User ...@@ -192,5 +192,15 @@ namespace Edu.Model.Entity.User
/// 老师特长 /// 老师特长
/// </summary> /// </summary>
public string Specialty { get; set; } public string Specialty { get; set; }
/// <summary>
/// 基础课时启用 1是
/// </summary>
public int BaseHoursEnabled { get; set; }
/// <summary>
/// 启用时间 (存到月)
/// </summary>
public string EnableTime { get; set; }
} }
} }
\ No newline at end of file
...@@ -122,6 +122,16 @@ namespace Edu.Model.ViewModel.Course ...@@ -122,6 +122,16 @@ namespace Edu.Model.ViewModel.Course
/// </summary> /// </summary>
public decimal BaseHourFee { get; set; } public decimal BaseHourFee { get; set; }
/// <summary>
/// 是否启用基础课时 1是
/// </summary>
public int BaseHoursEnabled { get; set; }
/// <summary>
/// 启用时间 (存到月)
/// </summary>
public string EnableTime { get; set; }
/// <summary> /// <summary>
/// 班级课时分钟数 /// 班级课时分钟数
/// </summary> /// </summary>
......
...@@ -54,5 +54,8 @@ namespace Edu.Model.ViewModel.Course ...@@ -54,5 +54,8 @@ namespace Edu.Model.ViewModel.Course
///班级学员 ///班级学员
/// </summary> /// </summary>
public List<RB_Order_Guest_ViewModel> GuestList { get; set; } public List<RB_Order_Guest_ViewModel> GuestList { get; set; }
/// 上课分钟数
/// </summary>
public int TimeMinute { get; set; }
} }
} }
\ No newline at end of file
...@@ -249,5 +249,10 @@ namespace Edu.Model.ViewModel.Course ...@@ -249,5 +249,10 @@ namespace Edu.Model.ViewModel.Course
/// 结束时间 /// 结束时间
/// </summary> /// </summary>
public string EndTime { get; set; } public string EndTime { get; set; }
/// <summary>
/// 消耗课时
/// </summary>
public decimal TimeHour { get; set; }
} }
} }
\ No newline at end of file
...@@ -82,6 +82,16 @@ namespace Edu.Model.ViewModel.Course ...@@ -82,6 +82,16 @@ namespace Edu.Model.ViewModel.Course
/// </summary> /// </summary>
public decimal HourMoney { get; set; } public decimal HourMoney { get; set; }
/// <summary>
/// 是否启用基础课时 1是
/// </summary>
public int BaseHoursEnabled { get; set; }
/// <summary>
/// 启用时间 (存到月)
/// </summary>
public string EnableTime { get; set; }
#endregion #endregion
} }
} }
\ No newline at end of file
...@@ -191,5 +191,15 @@ namespace Edu.Model.ViewModel.User ...@@ -191,5 +191,15 @@ namespace Edu.Model.ViewModel.User
/// 基础课时费 /// 基础课时费
/// </summary> /// </summary>
public decimal BaseHourFee { get; set; } public decimal BaseHourFee { get; set; }
/// <summary>
/// 是否启用基础课时 1是
/// </summary>
public int BaseHoursEnabled { get; set; }
/// <summary>
/// 启用时间 (存到月)
/// </summary>
public string EnableTime { get; set; }
} }
} }
This diff is collapsed.
...@@ -231,7 +231,7 @@ namespace Edu.Module.Course ...@@ -231,7 +231,7 @@ namespace Edu.Module.Course
/// <param name="classId">班级编号</param> /// <param name="classId">班级编号</param>
/// <param name="Group_Id">集团编号</param> /// <param name="Group_Id">集团编号</param>
/// <returns></returns> /// <returns></returns>
public Dictionary<string, object> GetClassCourseListModule(int classId, int Group_Id) public Dictionary<string, object> GetClassCourseListModule(int classId)
{ {
List<object> newCourseList = new List<object>(); List<object> newCourseList = new List<object>();
Dictionary<string, object> fileds = new Dictionary<string, object>(); Dictionary<string, object> fileds = new Dictionary<string, object>();
......
...@@ -503,15 +503,13 @@ namespace Edu.Module.Course ...@@ -503,15 +503,13 @@ namespace Edu.Module.Course
string EndTime = Convert.ToDateTime(dmodel.Month + "-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd"); string EndTime = Convert.ToDateTime(dmodel.Month + "-01").AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd");
var plist = class_PlanRepository.GetClassPlanList_V2(new RB_Class_Plan_ViewModel() { Group_Id = userInfo.Group_Id, Q_TeacherIds = dmodel.TeacherIds, StartTime = StartTime, EndTime = EndTime }); var plist = class_PlanRepository.GetClassPlanList_V2(new RB_Class_Plan_ViewModel() { Group_Id = userInfo.Group_Id, Q_TeacherIds = dmodel.TeacherIds, StartTime = StartTime, EndTime = EndTime });
//查询所有课程的上课时间 //查询所有课程的上课时间
List<RB_Class_Time_ViewModel> timeList = new List<RB_Class_Time_ViewModel>();
List<RB_Class_Type_ViewModel> typeList = new List<RB_Class_Type_ViewModel>(); List<RB_Class_Type_ViewModel> typeList = new List<RB_Class_Type_ViewModel>();
List<RB_Class_Check_ViewModel> checkList = new List<RB_Class_Check_ViewModel>(); List<RB_Class_Check_ViewModel> checkList = new List<RB_Class_Check_ViewModel>();
List<RB_Teacher_ViewModel> teacherList = new List<RB_Teacher_ViewModel>(); List<RB_Teacher_ViewModel> teacherList = new List<RB_Teacher_ViewModel>();
List<RB_Teaching_BonusDetail_ViewModel> DateList = new List<RB_Teaching_BonusDetail_ViewModel>();
if (plist.Any()) if (plist.Any())
{ {
string pids = string.Join(",", plist.Select(x => x.ClassPlanId)); string pids = string.Join(",", plist.Select(x => x.ClassPlanId));
timeList = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { Group_Id = userInfo.Group_Id, QClassPlanIds = pids });
string classTypeIds = string.Join(",", plist.Select(x => x.ClassType).Distinct()); string classTypeIds = string.Join(",", plist.Select(x => x.ClassType).Distinct());
typeList = class_TypeRepository.GetClassTypeListRepository(new RB_Class_Type_ViewModel() { Group_Id = userInfo.Group_Id, Q_CTypeIds = classTypeIds }); typeList = class_TypeRepository.GetClassTypeListRepository(new RB_Class_Type_ViewModel() { Group_Id = userInfo.Group_Id, Q_CTypeIds = classTypeIds });
//查询签到数据 //查询签到数据
...@@ -520,6 +518,38 @@ namespace Edu.Module.Course ...@@ -520,6 +518,38 @@ namespace Edu.Module.Course
//查询教师列表 //查询教师列表
string teacherIds = string.Join(",", plist.Select(x => x.TeacherId).Distinct()); string teacherIds = string.Join(",", plist.Select(x => x.TeacherId).Distinct());
teacherList = teacherRepository.GetTeacherListRepository(new RB_Teacher_ViewModel() { QTIds = teacherIds }); teacherList = teacherRepository.GetTeacherListRepository(new RB_Teacher_ViewModel() { QTIds = teacherIds });
//根据学生签到表 查询
var list = class_CheckRepository.GetTeacherConsumptionHoursDetialList(teacherIds, -1, 0, StartTime, EndTime, userInfo.Group_Id);
if (list.Any())
{
foreach (var item in list)
{
//上课课时
decimal KSNum = item.CurrentDeductionHours;//使用签到表的课时
var typeModel = typeList.Where(x => x.CTypeId == item.ClassType).FirstOrDefault();
decimal unitPrice = configModel.BasicHourFee + (typeModel?.AddHourFee ?? 0) + (item?.BaseHourFee ?? 0);
//课时费 需要每个班级 单独计算 因为 班级有附加费用
decimal KSMoney = KSNum * unitPrice;
DateList.Add(new RB_Teaching_BonusDetail_ViewModel
{
Date = item.ClassDate,
TimeBucket = item.StartDate + "~" + item.EndDate,
TeacherId = item.TeacherId,
TeacherName = item.TeacherName,
ClassId = item.ClassId,
ClassName = item.ClassName,
CouseId = item.CouseId,
CourseName = item.CourseName,
KSNum = KSNum,
UnitPrice = unitPrice,
Money = KSMoney
});
}
}
} }
var trans = teaching_BonusDetailRepository.DbTransaction; var trans = teaching_BonusDetailRepository.DbTransaction;
try try
...@@ -527,18 +557,9 @@ namespace Edu.Module.Course ...@@ -527,18 +557,9 @@ namespace Edu.Module.Course
decimal TotalMoney = 0; decimal TotalMoney = 0;
foreach (var item in plist) foreach (var item in plist)
{ {
var dateqList = DateList.Where(x => x.TeacherId == item.TeacherId && x.Date == item.ClassDate).ToList();
//查询课时 //查询课时
var ctimelist = timeList.Where(x => x.ClassPlanId == item.ClassPlanId).ToList(); decimal ksNum = dateqList.Sum(x => x.KSNum);
int minute = 0;
string nowTime = DateTime.Now.ToString("yyyy-MM-dd");
foreach (var qitem in ctimelist)
{
var ts = Convert.ToDateTime(nowTime + " " + qitem.EndTime) - Convert.ToDateTime(nowTime + " " + qitem.StartTime);
minute += (int)ts.TotalMinutes;
}
int ClassHourMinute = configModel.BasicMinutes;//课时分钟数
if (item.ClassHourMinute > 0) { ClassHourMinute = item.ClassHourMinute; }
int ksNum = minute / ClassHourMinute; // 未达到一课时时间 算不算一课时
//查询课单价 //查询课单价
var typeModel = typeList.Where(x => x.CTypeId == item.ClassType).FirstOrDefault(); var typeModel = typeList.Where(x => x.CTypeId == item.ClassType).FirstOrDefault();
var teacherModel = teacherList.Where(x => x.TId == item.TeacherId).FirstOrDefault(); var teacherModel = teacherList.Where(x => x.TId == item.TeacherId).FirstOrDefault();
...@@ -607,11 +628,18 @@ namespace Edu.Module.Course ...@@ -607,11 +628,18 @@ namespace Edu.Module.Course
List<int> TeacherIdList = blist.Select(x => x.TeacherId).Distinct().ToList(); List<int> TeacherIdList = blist.Select(x => x.TeacherId).Distinct().ToList();
foreach (var item in TeacherIdList) foreach (var item in TeacherIdList)
{ {
var teacherModel = teacherList.Where(x => x.TId == item).FirstOrDefault();
if (teacherModel == null) {
continue;
}
if (!(teacherModel.BaseHoursEnabled == 1 && Convert.ToDateTime(dmodel.Month) >= Convert.ToDateTime(teacherModel.EnableTime))){
continue;
}
var qblist = blist.Where(x => x.TeacherId == item).OrderBy(x => x.Date).ThenBy(x => x.UnitPrice).ToList(); var qblist = blist.Where(x => x.TeacherId == item).OrderBy(x => x.Date).ThenBy(x => x.UnitPrice).ToList();
int BasicHours = configModel.BasicHours; decimal BasicHours = configModel.BasicHours;
foreach (var qitem in qblist) foreach (var qitem in qblist)
{ {
int CourseHour = 0, DeductionHour = 0; decimal CourseHour = 0, DeductionHour = 0;
if (BasicHours > qitem.CourseHour) if (BasicHours > qitem.CourseHour)
{ {
DeductionHour = qitem.CourseHour; DeductionHour = qitem.CourseHour;
......
This diff is collapsed.
...@@ -295,6 +295,8 @@ namespace Edu.Module.User ...@@ -295,6 +295,8 @@ namespace Edu.Module.User
fileds.Add(nameof(RB_Teacher_ViewModel.BaseStuNum), model.BaseStuNum); fileds.Add(nameof(RB_Teacher_ViewModel.BaseStuNum), model.BaseStuNum);
fileds.Add(nameof(RB_Teacher_ViewModel.BaseHourFee), model.BaseHourFee); fileds.Add(nameof(RB_Teacher_ViewModel.BaseHourFee), model.BaseHourFee);
fileds.Add(nameof(RB_Teacher_ViewModel.Specialty), model.Specialty); fileds.Add(nameof(RB_Teacher_ViewModel.Specialty), model.Specialty);
fileds.Add(nameof(RB_Teacher_ViewModel.BaseHoursEnabled), model.BaseHoursEnabled);
fileds.Add(nameof(RB_Teacher_ViewModel.EnableTime), model.EnableTime);
#region 修改日志 #region 修改日志
string logContent = ""; string logContent = "";
if (model.TeacherName != oldModel.TeacherName) if (model.TeacherName != oldModel.TeacherName)
......
...@@ -323,6 +323,10 @@ WHERE 1=1 ...@@ -323,6 +323,10 @@ WHERE 1=1
builder.AppendFormat(" AND A.{0} LIKE @ClassName ", nameof(RB_Class_ViewModel.ClassName)); builder.AppendFormat(" AND A.{0} LIKE @ClassName ", nameof(RB_Class_ViewModel.ClassName));
parameters.Add("ClassName", "%" + query.ClassName.Trim() + "%"); parameters.Add("ClassName", "%" + query.ClassName.Trim() + "%");
} }
if (!string.IsNullOrEmpty(query.ClassNo))
{
builder.AppendFormat(" AND A.{0} ='{1}' ", nameof(RB_Class_ViewModel.ClassNo), query.ClassNo);
}
if (!string.IsNullOrWhiteSpace(query.CourseName)) if (!string.IsNullOrWhiteSpace(query.CourseName))
{ {
builder.AppendFormat(" AND B.{0} LIKE @CourseName ", nameof(RB_Class_ViewModel.CourseName)); builder.AppendFormat(" AND B.{0} LIKE @CourseName ", nameof(RB_Class_ViewModel.CourseName));
......
...@@ -155,7 +155,7 @@ WHERE 1=1 AND `Status` =0 and CheckStatus =0 "); ...@@ -155,7 +155,7 @@ WHERE 1=1 AND `Status` =0 and CheckStatus =0 ");
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.OrderGuestId AS GuestId,SUM(A.StudyNum) AS FinishMinutes,SUM(A.CurrentDeductionHours) AS FinishClassHours SELECT A.OrderGuestId AS GuestId,SUM(A.StudyNum) AS FinishMinutes,SUM(A.CurrentDeductionHours) AS FinishClassHours
FROM rb_class_check AS A FROM rb_class_check AS A
WHERE A.CheckStatus=0 "); WHERE A.`Status`=0 ");
if (!string.IsNullOrEmpty(guestIds)) if (!string.IsNullOrEmpty(guestIds))
{ {
builder.AppendFormat(" AND A.OrderGuestId IN({0})", guestIds); builder.AppendFormat(" AND A.OrderGuestId IN({0})", guestIds);
...@@ -168,47 +168,7 @@ WHERE A.CheckStatus=0 "); ...@@ -168,47 +168,7 @@ WHERE A.CheckStatus=0 ");
return Get<GuestFinishMinute_ViewModel>(builder.ToString()).ToList(); return Get<GuestFinishMinute_ViewModel>(builder.ToString()).ToList();
} }
/// <summary> /// <summary>
/// 计算上课计划分钟数
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public int CalcPlanMinutesRepository(RB_Class_Plan_ViewModel query)
{
int result = 0;
string where = "";
if (query.ClassId > 0)
{
where += string.Format(" AND B.ClassId={0} ", query.ClassId);
}
if (query.ClassDate != null)
{
where += string.Format(" AND B.ClassDate='{0}' ", query.ClassDate);
}
if (query.ClassTimeId > 0)
{
where += string.Format(" AND C.ClassTimeId='{0}' ", query.ClassTimeId);
}
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT SUM(FinishMinutes)
FROM
(
SELECT TIMESTAMPDIFF(MINUTE,(DATE_FORMAT(CONCAT('2021-01-01 ',C.StartTime,':00'),'%Y-%m-%d %H:%i')),(DATE_FORMAT(CONCAT('2021-01-01 ',C.EndTime,':00'), '%Y-%m-%d %H:%i'))) AS FinishMinutes
FROM rb_class_plan AS B INNER JOIN rb_class_time AS C ON B.ClassPlanId=C.ClassPlanId
WHERE 1=1 AND B.`Status`=0 {0}
) AS A
", where);
var obj = base.ExecuteScalar(builder.ToString());
if (obj != null)
{
Int32.TryParse(obj.ToString(), out result);
}
return result;
}
/// <summary>
/// 班级签到完成学习分钟数 /// 班级签到完成学习分钟数
/// </summary> /// </summary>
/// <param name="classIds">班级编号</param> /// <param name="classIds">班级编号</param>
...@@ -442,7 +402,7 @@ GROUP BY tt.TeacherId,tt.OrderGuestId ...@@ -442,7 +402,7 @@ GROUP BY tt.TeacherId,tt.OrderGuestId
} }
string sql = $@" string sql = $@"
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate FROM rb_class_check p SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,t2.BaseHoursEnabled,t2.EnableTime,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate,Max(p.CurrentDeductionHours) as CurrentDeductionHours FROM rb_class_check p
INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId
LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId
LEFT JOIN rb_class c on p.ClassId = c.ClassId LEFT JOIN rb_class c on p.ClassId = c.ClassId
...@@ -480,7 +440,7 @@ ORDER BY p.ClassDate ASC ...@@ -480,7 +440,7 @@ ORDER BY p.ClassDate ASC
} }
string sql = $@" string sql = $@"
SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate FROM rb_class_check p SELECT p.TeacherId,t2.TeacherName,t2.BaseHourFee,t2.BaseHoursEnabled,t2.EnableTime,c.ClassName,co.CourseName,p.ClassId,c.ClassType,c.ClassNo,c.ClassHourMinute,c.CouseId,p.ClassDate,p.ClassTimeId,t.StartTime as StartDate,t.EndTime as EndDate,Max(p.CurrentDeductionHours) as CurrentDeductionHours FROM rb_class_check p
INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId INNER JOIN rb_class_time t on p.ClassTimeId = t.ClassTimeId
LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId LEFT JOIN rb_teacher t2 on p.TeacherId = t2.TId
LEFT JOIN rb_class c on p.ClassId = c.ClassId LEFT JOIN rb_class c on p.ClassId = c.ClassId
......
...@@ -21,7 +21,7 @@ namespace Edu.Repository.Course ...@@ -21,7 +21,7 @@ namespace Edu.Repository.Course
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT * SELECT *,TIMESTAMPDIFF(MINUTE,(DATE_FORMAT(CONCAT('2021-01-01 ',StartTime,':00'),'%Y-%m-%d %H:%i')),(DATE_FORMAT(CONCAT('2021-01-01 ',EndTime,':00'), '%Y-%m-%d %H:%i'))) AS TimeMinute
FROM RB_Class_Time FROM RB_Class_Time
WHERE 1=1 WHERE 1=1
"); ");
......
...@@ -4,6 +4,7 @@ using System; ...@@ -4,6 +4,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using VT.FW.DB;
using VT.FW.DB.Dapper; using VT.FW.DB.Dapper;
namespace Edu.Repository.Course namespace Edu.Repository.Course
...@@ -73,5 +74,50 @@ WHERE 1=1 ...@@ -73,5 +74,50 @@ WHERE 1=1
builder.Append(" ORDER BY A.ClassId,A.ClassDate,A.OrderGuestId "); builder.Append(" ORDER BY A.ClassId,A.ClassDate,A.OrderGuestId ");
return GetPage<RB_Student_Makeup_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); return GetPage<RB_Student_Makeup_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
} }
/// <summary>
/// 新增修改学员补课信息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetStudentMakeUpRepository(RB_Student_Makeup model)
{
bool flag = false;
var newModel = new RB_Student_Makeup()
{
Id = 0,
ClassCheckId = model.ClassCheckId,
ClassDate = model.ClassDate,
ClassId = model.ClassId,
CreateBy = model.CreateBy,
CreateTime = model.CreateTime,
Group_Id = model.Group_Id,
MakeUpStatus = 3,
OrderGuestId = model.OrderGuestId
};
newModel.Id = CheckStudentMakeUpExistsRepository(model);
if (newModel.Id > 0)
{
flag = base.Insert(newModel) > 0;
}
else
{
flag = base.Update(newModel);
}
return flag;
}
/// <summary>
/// 检查数据是否存在
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int CheckStudentMakeUpExistsRepository(RB_Student_Makeup model)
{
List<WhereHelper> whereHelpers = new List<WhereHelper>();
whereHelpers.Add(new WhereHelper(nameof(RB_Student_Makeup.ClassCheckId), model.ClassCheckId));
whereHelpers.Add(new WhereHelper(nameof(RB_Student_Makeup.OrderGuestId), model.OrderGuestId));
return base.Exists("Id", whereHelpers);
}
} }
} }
...@@ -449,7 +449,7 @@ FROM ...@@ -449,7 +449,7 @@ FROM
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT ar.AccountRemark,A.Id,A.Account,A.AccountId,A.Group_Id,A.School_Id,A.EmployeeName,A.UserIcon,A.IDCard,A.Sex,A.Education,A.EntryTime,A.Address,A.BirthDate SELECT ar.AccountRemark,A.Id,A.Account,A.AccountId,A.Group_Id,A.School_Id,A.EmployeeName,A.UserIcon,A.IDCard,A.Sex,A.Education,A.EntryTime,A.Address,A.BirthDate
,A.LeaveStatus,A.LeaveTime,A.EmployeeTel,A.AccountType,A.Email,A.BaseHourFee,IFNULL(A.DirectSupervisor,0) AS DirectSupervisor ,A.LeaveStatus,A.LeaveTime,A.EmployeeTel,A.AccountType,A.Email,A.BaseHourFee,A.BaseHoursEnabled,A.EnableTime,IFNULL(A.DirectSupervisor,0) AS DirectSupervisor
,IFNULL(G.GroupName,'') AS GroupName,IFNULL(s.SName,'') AS SchoolName ,IFNULL(G.GroupName,'') AS GroupName,IFNULL(s.SName,'') AS SchoolName
,IFNULL(d.DeptId,0) AS Dept_Id,IFNULL(d.DeptName,'') AS DeptName,IFNULL(p.PostId,0) AS Post_Id, IFNULL(p.PostName,'') AS PostName ,IFNULL(d.DeptId,0) AS Dept_Id,IFNULL(d.DeptName,'') AS DeptName,IFNULL(p.PostId,0) AS Post_Id, IFNULL(p.PostName,'') AS PostName
,(CASE WHEN CONCAT(DATE_FORMAT(now(),'%Y'),'-',DATE_FORMAT(BirthDate,'%m-%d')) >= DATE_FORMAT(now(),'%Y-%m-%d') ,(CASE WHEN CONCAT(DATE_FORMAT(now(),'%Y'),'-',DATE_FORMAT(BirthDate,'%m-%d')) >= DATE_FORMAT(now(),'%Y-%m-%d')
...@@ -463,7 +463,7 @@ FROM ...@@ -463,7 +463,7 @@ FROM
,b.School_Id,IFNULL(B.MName,'') AS EmployeeName,B.MHead AS UserIcon,B.Dept_Id,B.Post_Id,B.IDCard ,b.School_Id,IFNULL(B.MName,'') AS EmployeeName,B.MHead AS UserIcon,B.Dept_Id,B.Post_Id,B.IDCard
,B.Sex,B.Education,B.EntryTime,B.Address,B.BirthDate ,B.Sex,B.Education,B.EntryTime,B.Address,B.BirthDate
,B.LeaveStatus,B.LeaveTime,B.MTel AS EmployeeTel,IFNULL(B.Email,'') AS Email ,B.LeaveStatus,B.LeaveTime,B.MTel AS EmployeeTel,IFNULL(B.Email,'') AS Email
,0 as BaseHourFee ,0 as BaseHourFee,0 as BaseHoursEnabled,'' as EnableTime
FROM rb_manager AS B LEFT JOIN rb_account AS A ON A.AccountId=B.MId AND A.AccountType=1 FROM rb_manager AS B LEFT JOIN rb_account AS A ON A.AccountId=B.MId AND A.AccountType=1
WHERE 1=1 {0} {1} WHERE 1=1 {0} {1}
UNION ALL UNION ALL
...@@ -472,7 +472,7 @@ FROM ...@@ -472,7 +472,7 @@ FROM
,b.School_Id,IFNULL(B.TeacherName,'') AS EmployeeName,B.TeacherIcon AS UserIcon,B.Dept_Id,B.Post_Id,B.IDCard ,b.School_Id,IFNULL(B.TeacherName,'') AS EmployeeName,B.TeacherIcon AS UserIcon,B.Dept_Id,B.Post_Id,B.IDCard
,B.Sex,B.Education,B.EntryTime,B.Address,B.BirthDate ,B.Sex,B.Education,B.EntryTime,B.Address,B.BirthDate
,B.LeaveStatus,B.LeaveTime,B.TeacherTel AS EmployeeTel,IFNULL(B.Email,'') AS Email ,B.LeaveStatus,B.LeaveTime,B.TeacherTel AS EmployeeTel,IFNULL(B.Email,'') AS Email
,B.BaseHourFee ,B.BaseHourFee,B.BaseHoursEnabled,B.EnableTime
FROM rb_teacher AS B LEFT JOIN rb_account AS A ON A.AccountId=B.TId AND A.AccountType=2 FROM rb_teacher AS B LEFT JOIN rb_account AS A ON A.AccountId=B.TId AND A.AccountType=2
WHERE 1=1 {0} {2} WHERE 1=1 {0} {2}
UNION ALL UNION ALL
...@@ -481,7 +481,7 @@ FROM ...@@ -481,7 +481,7 @@ FROM
,b.School_Id,IFNULL(B.AssistName,'') AS EmployeeName,B.AssistIcon AS UserIcon,B.Dept_Id,B.Post_Id,B.IDCard ,b.School_Id,IFNULL(B.AssistName,'') AS EmployeeName,B.AssistIcon AS UserIcon,B.Dept_Id,B.Post_Id,B.IDCard
,B.Sex,B.Education,B.EntryTime,B.Address,B.BirthDate ,B.Sex,B.Education,B.EntryTime,B.Address,B.BirthDate
,B.LeaveStatus,B.LeaveTime,B.AssistTel AS EmployeeTel,IFNULL(B.Email,'') AS Email ,B.LeaveStatus,B.LeaveTime,B.AssistTel AS EmployeeTel,IFNULL(B.Email,'') AS Email
,0 as BaseHourFee ,0 as BaseHourFee,0 as BaseHoursEnabled,'' as EnableTime
FROM rb_assist AS B LEFT JOIN rb_account AS A ON A.AccountId=B.AId AND A.AccountType=3 FROM rb_assist AS B LEFT JOIN rb_account AS A ON A.AccountId=B.AId AND A.AccountType=3
WHERE 1=1 {0} {3} WHERE 1=1 {0} {3}
) AS A LEFT JOIN rb_group AS g ON A.Group_Id=g.GId ) AS A LEFT JOIN rb_group AS g ON A.Group_Id=g.GId
......
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks;
using Edu.Cache.User; using Edu.Cache.User;
using Edu.Common.API; using Edu.Common.API;
using Edu.Common.Enum.Course; using Edu.Common.Enum.Course;
...@@ -298,6 +299,13 @@ namespace Edu.WebApi.Controllers.Course ...@@ -298,6 +299,13 @@ namespace Edu.WebApi.Controllers.Course
} }
message += "【" + item.EndTime + "】格式不正确!(参考格式为 00:00)"; message += "【" + item.EndTime + "】格式不正确!(参考格式为 00:00)";
} }
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + item.StartTime + ":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + item.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
if (item.TimeHour <= 0)
{
item.TimeHour = Convert.ToDecimal(span.TotalMinutes / classModule.GetBasicMinutesModule(extModel.Group_Id));
}
if (!string.IsNullOrEmpty(message)) if (!string.IsNullOrEmpty(message))
{ {
return ApiResult.ParamIsNull(message: message); return ApiResult.ParamIsNull(message: message);
...@@ -348,39 +356,53 @@ namespace Edu.WebApi.Controllers.Course ...@@ -348,39 +356,53 @@ namespace Edu.WebApi.Controllers.Course
[HttpPost] [HttpPost]
public ApiResult InitClassTime() public ApiResult InitClassTime()
{ {
bool flag = false;
var list = classModule.GetClassListModule(new RB_Class_ViewModel()); var list = classModule.GetClassListModule(new RB_Class_ViewModel());
foreach (var item in list) foreach (var item in list)
{ {
List<string> dateList = new List<string>(); List<ClassTimeItem> dateList = new List<ClassTimeItem>();
if (!string.IsNullOrEmpty(item.DateJson)) if (!string.IsNullOrEmpty(item.DefaultTimeJson))
{ {
dateList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(item.DateJson); dateList = Common.Plugin.JsonHelper.DeserializeObject<List<ClassTimeItem>>(item.DefaultTimeJson);
} }
if (dateList != null && dateList.Count > 0 && !string.IsNullOrEmpty(item.DefaultTimeJson)) foreach (var jItem in dateList)
{ {
ClassTimeItem model = new ClassTimeItem() if (jItem.TimeList != null && jItem.TimeList.Count > 0)
{
DateList = new List<string>(),
TimeList = new List<TimeItem>(),
};
model.DateList = dateList;
JArray jArray = JArray.Parse(item.DefaultTimeJson);
foreach (var jItem in jArray)
{ {
JObject jobj = JObject.Parse(jItem.ToString()); foreach (var sItem in jItem.TimeList)
model.TimeList.Add(new TimeItem()
{ {
StartTime = jobj["StartTime"].ToString(), var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.StartTime + ":00");
EndTime = jobj["EndTime"].ToString(), var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.EndTime + ":00");
}); TimeSpan span = endDate.Subtract(startDate);
if (sItem.TimeHour <= 0)
{
sItem.TimeHour = Convert.ToDecimal(span.TotalMinutes / classModule.GetBasicMinutesModule(item.Group_Id));
}
}
} }
List<ClassTimeItem> slist = new List<ClassTimeItem>
{
model
};
bool flag = classModule.UpdateClassTimeModule(item.ClassId, Common.Plugin.JsonHelper.Serialize(slist));
} }
flag = classModule.UpdateClassTimeModule(item.ClassId, Common.Plugin.JsonHelper.Serialize(dateList));
} }
var classTimeList = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel());
int basicMintues= classModule.GetBasicMinutesModule(classTimeList[0].Group_Id);
Task.Run(() =>
{
foreach (var item in classTimeList)
{
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + item.StartTime + ":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + item.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
if (span.TotalMinutes % basicMintues == 0)
{
item.TimeHour = Convert.ToDecimal(span.TotalMinutes / basicMintues);
}
if (item.TimeHour > 0)
{
flag = classModule.UpdateClassPlanTimeModule(item.ClassTimeId, item.TimeHour);
}
}
});
return ApiResult.Success(); return ApiResult.Success();
} }
...@@ -597,9 +619,6 @@ namespace Edu.WebApi.Controllers.Course ...@@ -597,9 +619,6 @@ namespace Edu.WebApi.Controllers.Course
#endregion #endregion
#region 上课计划 #region 上课计划
/// <summary> /// <summary>
/// 获取上课计划 /// 获取上课计划
/// </summary> /// </summary>
...@@ -751,7 +770,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -751,7 +770,7 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.Failed("数据不存在"); return ApiResult.Failed("数据不存在");
} }
double totalMinutes = 0; double totalMinutes = 0;
var planTimeList = classModule.GetClassTimeListRepository(new RB_Class_Time_ViewModel { ClassId = classId, ClassPlanId = classPlanId, Group_Id = base.UserInfo.Group_Id, School_Id = schoolId, ClassTimeId = ClassTimeId }); var planTimeList = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel { ClassId = classId, ClassPlanId = classPlanId, Group_Id = base.UserInfo.Group_Id, School_Id = schoolId, ClassTimeId = ClassTimeId });
if (planTimeList != null && planTimeList.Any()) if (planTimeList != null && planTimeList.Any())
{ {
foreach (var item in planTimeList) foreach (var item in planTimeList)
...@@ -1308,7 +1327,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1308,7 +1327,7 @@ namespace Edu.WebApi.Controllers.Course
{ {
return ApiResult.Failed("班级上课计划不存在"); return ApiResult.Failed("班级上课计划不存在");
} }
var planTiemList = classModule.GetClassTimeListRepository(new RB_Class_Time_ViewModel { Group_Id = base.UserInfo.Group_Id, ClassId = extModel.ClassId, ClassPlanId = extModel.ClassPlanId }); var planTiemList = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel { Group_Id = base.UserInfo.Group_Id, ClassId = extModel.ClassId, ClassPlanId = extModel.ClassPlanId });
model.TeacherName = planDate.TeacherName; model.TeacherName = planDate.TeacherName;
model.WorkDate = planDate.ClassDate.ToString("yyyy年MM月dd日"); model.WorkDate = planDate.ClassDate.ToString("yyyy年MM月dd日");
model.WeekStr = StringHelper.GetJapanWeekChar(planDate.ClassDate); model.WeekStr = StringHelper.GetJapanWeekChar(planDate.ClassDate);
...@@ -1500,11 +1519,9 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1500,11 +1519,9 @@ namespace Edu.WebApi.Controllers.Course
/// <returns></returns> /// <returns></returns>
public ApiResult GetTeacherPlan() public ApiResult GetTeacherPlan()
{ {
var query = new RB_Class_ViewModel() var query = new RB_Class_ViewModel()
{ {
Group_Id = base.UserInfo.Group_Id, Group_Id = base.UserInfo.Group_Id,
// School_Id = base.ParmJObj.GetInt("School_Id", 0),
Teacher_Id = base.ParmJObj.GetInt("Teacher_Id", 0), Teacher_Id = base.ParmJObj.GetInt("Teacher_Id", 0),
StartTime = base.ParmJObj.GetStringValue("StartTime"), StartTime = base.ParmJObj.GetStringValue("StartTime"),
EndTime = base.ParmJObj.GetStringValue("EndTime"), EndTime = base.ParmJObj.GetStringValue("EndTime"),
...@@ -2073,7 +2090,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -2073,7 +2090,7 @@ namespace Edu.WebApi.Controllers.Course
{ {
return ApiResult.Failed("请传入上课时间Id"); return ApiResult.Failed("请传入上课时间Id");
} }
var oldModel = classModule.GetClassTimeListRepository(new RB_Class_Time_ViewModel { ClassTimeId = extModel.ClassTimeId, Group_Id = base.UserInfo.Group_Id }).FirstOrDefault(); var oldModel = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel { ClassTimeId = extModel.ClassTimeId, Group_Id = base.UserInfo.Group_Id }).FirstOrDefault();
if (oldModel == null || oldModel.ClassTimeId == 0) if (oldModel == null || oldModel.ClassTimeId == 0)
{ {
return ApiResult.Failed("上课计划不存在"); return ApiResult.Failed("上课计划不存在");
...@@ -2100,7 +2117,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -2100,7 +2117,7 @@ namespace Edu.WebApi.Controllers.Course
{ {
return ApiResult.Failed("请传入上课时间Id"); return ApiResult.Failed("请传入上课时间Id");
} }
var oldModel = classModule.GetClassTimeListRepository(new RB_Class_Time_ViewModel { ClassTimeId = extModel.ClassTimeId, }).FirstOrDefault(); var oldModel = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel { ClassTimeId = extModel.ClassTimeId, }).FirstOrDefault();
if (oldModel == null || oldModel.ClassTimeId == 0) if (oldModel == null || oldModel.ClassTimeId == 0)
{ {
return ApiResult.Failed("上课计划不存在"); return ApiResult.Failed("上课计划不存在");
......
...@@ -295,7 +295,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -295,7 +295,7 @@ namespace Edu.WebApi.Controllers.Course
string roomIds = string.Join(",", roomList.Select(x => x.ClassRoomId)); string roomIds = string.Join(",", roomList.Select(x => x.ClassRoomId));
roomUserLogList = classRoomModule.GetClassRoomUseLogListRepository(new RB_Class_RoomUseLog_ViewModel { StartTime = StartTime, EndTime = EndTime, QRoomIds = roomIds }); roomUserLogList = classRoomModule.GetClassRoomUseLogListRepository(new RB_Class_RoomUseLog_ViewModel { StartTime = StartTime, EndTime = EndTime, QRoomIds = roomIds });
string pids = string.Join(",", roomList.Select(x => x.ClassPlanId)); string pids = string.Join(",", roomList.Select(x => x.ClassPlanId));
timeList = classModule.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { Group_Id = base.UserInfo.Group_Id, QClassPlanIds = pids }); timeList = classModule.GetClassTimeListModule(new RB_Class_Time_ViewModel() { Group_Id = base.UserInfo.Group_Id, QClassPlanIds = pids });
timeList.ForEach(x => x.NewPlanDateTime = System.DateTime.Now.ToString("yyyy-MM-dd ") + x.StartTime); timeList.ForEach(x => x.NewPlanDateTime = System.DateTime.Now.ToString("yyyy-MM-dd ") + x.StartTime);
timeList.ForEach(x => x.NewEndPlanDateTime = System.DateTime.Now.ToString("yyyy-MM-dd ") + x.EndTime); timeList.ForEach(x => x.NewEndPlanDateTime = System.DateTime.Now.ToString("yyyy-MM-dd ") + x.EndTime);
foreach (var item in roomUserLogList) foreach (var item in roomUserLogList)
......
...@@ -1314,7 +1314,7 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -1314,7 +1314,7 @@ namespace Edu.WebApi.Controllers.Finance
new ExcelColumn(value: item.StudentName){ }, new ExcelColumn(value: item.StudentName){ },
new ExcelColumn(value: item.CreateByName){ }, new ExcelColumn(value: item.CreateByName){ },
new ExcelColumn(value: item.TotalClassHours.ToString()){ }, new ExcelColumn(value: item.TotalClassHours.ToString()){ },
new ExcelColumn(value: Math.Round(item.TotalCourseFee / item.TotalClassHours, 2, MidpointRounding.AwayFromZero).ToString()){ }, new ExcelColumn(value: (item.TotalClassHours > 0 ? Math.Round(item.TotalCourseFee / item.TotalClassHours, 2, MidpointRounding.AwayFromZero) : 0).ToString()){ },
new ExcelColumn(value: item.TotalCourseFee.ToString()){ }, new ExcelColumn(value: item.TotalCourseFee.ToString()){ },
new ExcelColumn(value: item.TotalBookFee.ToString()){ }, new ExcelColumn(value: item.TotalBookFee.ToString()){ },
new ExcelColumn(value: item.TotalClassFee.ToString()){ }, new ExcelColumn(value: item.TotalClassFee.ToString()){ },
...@@ -1989,6 +1989,37 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -1989,6 +1989,37 @@ namespace Edu.WebApi.Controllers.Finance
return ApiResult.Success("", list); return ApiResult.Success("", list);
} }
/// <summary>
/// 获取班级月度分摊统计
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetAllClassNowMonthStatistics() {
var userInfo = base.UserInfo;
string StartTime = base.ParmJObj.GetStringValue("StartTime");//开始时间
string EndTime = base.ParmJObj.GetStringValue("EndTime");//结束时间
if (string.IsNullOrEmpty(StartTime))
{
return ApiResult.ParamIsNull();
}
if (string.IsNullOrEmpty(EndTime))
{
return ApiResult.ParamIsNull();
}
try
{
StartTime = Convert.ToDateTime(StartTime).ToString("yyyy-MM-dd");
EndTime = Convert.ToDateTime(EndTime).ToString("yyyy-MM-dd");
}
catch (Exception)
{
return ApiResult.Failed("日期格式有误,请核实后再试");
}
var Robj = financeModule.GetAllClassNowMonthStatistics(StartTime, EndTime, userInfo);
return ApiResult.Success("", Robj);
}
#endregion #endregion
} }
} }
...@@ -404,7 +404,9 @@ namespace Edu.WebApi.Controllers.User ...@@ -404,7 +404,9 @@ namespace Edu.WebApi.Controllers.User
BaseStuNum = base.ParmJObj.GetInt("BaseStuNum"), BaseStuNum = base.ParmJObj.GetInt("BaseStuNum"),
BaseHourFee = base.ParmJObj.GetDecimal("BaseHourFee"), BaseHourFee = base.ParmJObj.GetDecimal("BaseHourFee"),
AuditStatus = AccountStatusEnum.Pass, AuditStatus = AccountStatusEnum.Pass,
Specialty=base.ParmJObj.GetStringValue("Specialty"), Specialty = base.ParmJObj.GetStringValue("Specialty"),
BaseHoursEnabled = base.ParmJObj.GetInt("BaseHoursEnabled", 0),
EnableTime = base.ParmJObj.GetStringValue("EnableTime")
}; };
extModel.TeachTag = base.ParmJObj.GetStringValue("TeachTag"); extModel.TeachTag = base.ParmJObj.GetStringValue("TeachTag");
extModel.CreateBy = base.UserInfo.Id; extModel.CreateBy = base.UserInfo.Id;
......
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