Commit 82707095 authored by 吴春's avatar 吴春

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

parents 2da3c2c5 fd3c08dd
using Edu.Model.Entity.EduTask; using Edu.Model.Entity.EduTask;
using Edu.Model.ViewModel.Course;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
...@@ -133,7 +134,6 @@ namespace Edu.Model.ViewModel.EduTask ...@@ -133,7 +134,6 @@ namespace Edu.Model.ViewModel.EduTask
/// </summary> /// </summary>
public class AllChangePlanItem public class AllChangePlanItem
{ {
/// <summary> /// <summary>
/// 总课时 /// 总课时
/// </summary> /// </summary>
...@@ -178,49 +178,9 @@ namespace Edu.Model.ViewModel.EduTask ...@@ -178,49 +178,9 @@ namespace Edu.Model.ViewModel.EduTask
/// </summary> /// </summary>
public List<ClassTimeItem> DefaultTimeList { get; set; } public List<ClassTimeItem> DefaultTimeList { get; set; }
/// <summary> /// <summary>
/// 排课方式(1-周,2-月,3-固定日期,4-约课) /// 排课方式(1-周,2-月,3-固定日期,4-约课)
/// </summary> /// </summary>
public Common.Enum.Course.ClassStyleEnum ClassStyle { get; set; } public Common.Enum.Course.ClassStyleEnum ClassStyle { get; set; }
}
///<summary>
/// 上课时间配置项
/// </summary>
public class ClassTimeItem
{
/// <summary>
/// 上课日期【ClassStyle:1-周(1,2...);2和3(具体日期);4(暂无)】
/// </summary>
public List<string> DateList { get; set; }
/// <summary>
/// 具体上课时间
/// </summary>
public List<TimeItem> TimeList { get; set; }
}
/// <summary>
/// 上课时间对象
/// </summary>
public class TimeItem
{
/// <summary>
/// 开始时间
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public string EndTime { get; set; }
/// <summary>
/// 消耗课时
/// </summary>
public decimal TimeHour { get; set; }
} }
} }
...@@ -1056,214 +1056,10 @@ namespace Edu.Module.Course ...@@ -1056,214 +1056,10 @@ namespace Edu.Module.Course
}); });
//已经完成的上课计划 //已经完成的上课计划
var finishClassHours = oldPlanList?.Sum(qitem => qitem.TimeHour) ?? 0; var finishClassHours = oldPlanList?.Sum(qitem => qitem.TimeHour) ?? 0;
List<RB_Class_Plan_ViewModel> classPlanList = new List<RB_Class_Plan_ViewModel>(); List<RB_Class_Plan_ViewModel> classPlanList = class_PlanRepository.CreateClassPlanRepository(model, defaultPlanTimeList, finishClassHours, BasicMinutes);
if (model.ClassHours > 0 && defaultPlanTimeList != null && defaultPlanTimeList.Count > 0)
{
var srartDate = model.OpenTime;
if (model.OpenTime < DateTime.Now)
{
srartDate = DateTime.Now;
}
//按周排课和按月排课
if (model.ClassStyle == ClassStyleEnum.Week || model.ClassStyle == ClassStyleEnum.Month)
{
int i = 0;
double totalHours = Convert.ToDouble(finishClassHours);
while (model.ClassHours > totalHours)
{
var newDate = srartDate.AddDays(i);
foreach (var item in model.WeekDayList)
{
var planModel = new RB_Class_Plan_ViewModel()
{
ClassId = model.ClassId,
ClassPlanId = 0,
ClassRoomId = model.ClassRoomId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
PlanTimeList = new List<RB_Class_Time_ViewModel>(),
TeacherId = model.Teacher_Id,
ClassDate = newDate
};
if (model.ClassStyle == ClassStyleEnum.Week)
{
switch (item)
{
case "1":
if (newDate.DayOfWeek == DayOfWeek.Monday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "2":
if (newDate.DayOfWeek == DayOfWeek.Tuesday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "3":
if (newDate.DayOfWeek == DayOfWeek.Wednesday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "4":
if (newDate.DayOfWeek == DayOfWeek.Thursday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "5":
if (newDate.DayOfWeek == DayOfWeek.Friday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "6":
if (newDate.DayOfWeek == DayOfWeek.Saturday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "7":
if (newDate.DayOfWeek == DayOfWeek.Sunday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
}
}
else if (model.ClassStyle == ClassStyleEnum.Month)
{
if (newDate.Day == Convert.ToInt32(item))
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
}
}
i++;
}
}
//固定日期
else if (model.ClassStyle == ClassStyleEnum.FixedDate)
{
foreach (var item in model.WeekDayList)
{
var planModel = new RB_Class_Plan_ViewModel()
{
ClassId = model.ClassId,
ClassPlanId = 0,
ClassRoomId = model.ClassRoomId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
PlanTimeList = new List<RB_Class_Time_ViewModel>(),
TeacherId = model.Teacher_Id,
ClassDate = Convert.ToDateTime(item)
};
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
CalcDayClassHoursModule(timeList, planModel.PlanTimeList, model, BasicMinutes);
classPlanList.Add(planModel);
}
}
}
//约课
else
{
}
}
return classPlanList; return classPlanList;
} }
/// <summary>
/// 计算每天课时
/// </summary>
/// <param name="timeList"></param>
/// <param name="classTimeList"></param>
/// <param name="model"></param>
/// <returns></returns>
private double CalcDayClassHoursModule(List<TimeItem> timeList, List<RB_Class_Time_ViewModel> classTimeList, RB_Class_ViewModel model, int BasicMinutes)
{
double dayClassHours = 0;
double dayMinutes = 0;
foreach (var sItem in timeList)
{
var timeModel = new RB_Class_Time_ViewModel()
{
StartTime = sItem.StartTime,
EndTime = sItem.EndTime,
TimeHour = sItem.TimeHour,
};
classTimeList.Add(timeModel);
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.StartTime + ":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
if (span.TotalMinutes > 0)
{
dayMinutes += span.TotalMinutes;
}
}
if (model.ClassHourMinute > 0)
{
dayClassHours = dayMinutes / model.ClassHourMinute;
}
else
{
dayClassHours = dayMinutes / BasicMinutes;
}
return dayClassHours;
}
/// <summary> /// <summary>
/// 根据班级编号获取班级详细信息 /// 根据班级编号获取班级详细信息
/// </summary> /// </summary>
......
using Edu.Model.Entity.EduTask; using Edu.Model.CacheModel;
using Edu.Model.Entity.EduTask;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.EduTask; using Edu.Model.ViewModel.EduTask;
using Edu.Model.ViewModel.User;
using Edu.Repository.Course;
using Edu.Repository.EduTask; using Edu.Repository.EduTask;
using Edu.Repository.User;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using VT.FW.AOP.CustomerAttribute; using VT.FW.AOP.CustomerAttribute;
using VT.FW.DB; using VT.FW.DB;
...@@ -22,6 +28,350 @@ namespace Edu.Module.EduTask ...@@ -22,6 +28,350 @@ namespace Edu.Module.EduTask
/// </summary> /// </summary>
private readonly RB_Change_ClassPlanRepository change_ClassPlanRepository = new RB_Change_ClassPlanRepository(); private readonly RB_Change_ClassPlanRepository change_ClassPlanRepository = new RB_Change_ClassPlanRepository();
/// <summary>
/// 班级上课计划仓储层对象
/// </summary>
private readonly RB_Class_PlanRepository class_PlanRepository = new RB_Class_PlanRepository();
/// <summary>
/// 班级上课计划上课时间仓储层对象
/// </summary>
private readonly RB_Class_TimeRepository class_TimeRepository = new RB_Class_TimeRepository();
/// <summary>
/// 教室仓储层对象
/// </summary>
private readonly RB_Class_RoomRepository class_RoomRepository = new RB_Class_RoomRepository();
/// <summary>
/// 老师仓储层对象
/// </summary>
private readonly RB_TeacherRepository teacherRepository = new RB_TeacherRepository();
/// <summary>
/// 课程基础配置
/// </summary>
private readonly RB_Class_ConfigRepository class_ConfigRepository = new RB_Class_ConfigRepository();
/// <summary>
/// 班级仓储层对象
/// </summary>
private readonly RB_ClassRepository classRepository = new RB_ClassRepository();
/// <summary>
/// 检查是否重复【固定日期】
/// </summary>
/// <param name="ClassId"></param>
/// <param name="changeList"></param>
/// <param name="timeList"></param>
/// <returns></returns>
public List<object> GetRepeatListModule(int ClassId, List<ChangePlanItem> changeList, List<TimeItem> timeList)
{
List<object> list = new List<object>();
var planList = new List<RB_Class_Plan_ViewModel>();
if (changeList != null && changeList.Count > 0)
{
foreach (var item in changeList)
{
var planModel = new RB_Class_Plan_ViewModel()
{
ClassPlanId=0,
ClassId=ClassId,
ClassDate=item.ClassDate,
ClassRoomId=item.ClassRoomId,
TeacherId=item.TeacherId,
PlanTimeList=new List<RB_Class_Time_ViewModel> (),
};
if (timeList != null && timeList.Count > 0)
{
foreach (var subItem in timeList)
{
planModel.PlanTimeList.Add(new RB_Class_Time_ViewModel
{
StartTime = subItem.StartTime,
EndTime = subItem.EndTime,
TimeHour = subItem.TimeHour,
});
}
}
planList.Add(planModel);
}
}
if (timeList != null && timeList.Count > 0 && planList!=null && planList.Count>0)
{
list = GetRepeatDataModule(planList, 2);
}
return list;
}
/// <summary>
/// 全局老师、教室调整
/// </summary>
/// <param name="ClassId"></param>
/// <param name="changeList"></param>
/// <param name="timeList"></param>
/// <returns></returns>
public List<object> GetAllRepeatListModule(int ClassId, string TakeEffectTime, int TeacherId = 0, int ClassRoomId = 0)
{
List<object> list = new List<object>();
var classPlanList = class_PlanRepository.GetClassPlanListRepository(new RB_Class_Plan_ViewModel()
{
ClassId = ClassId,
StartTime = TakeEffectTime,
});
list = GetRepeatDataModule(classPlanList, 1, TeacherId: TeacherId, ClassRoomId: ClassRoomId);
return list;
}
/// <summary>
/// 全局验证上课日期和时间
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public List<object> GetAllDateAndTimeRepeatListModule(int ClassId, AllChangePlanItem model, UserInfo user)
{
List<object> list = new List<object>();
var oldClass = classRepository.GetEntity(ClassId);
var oldPlanList = class_PlanRepository.GetClassPlanListExtRepository(new RB_Class_Plan_ViewModel()
{
ClassId = ClassId,
EndTime = Common.ConvertHelper.FormatDate(model.OpenTimeStr)
});
//已经完成的上课计划
var finishClassHours = oldPlanList?.Sum(qitem => qitem.TimeHour) ?? 0;
var BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(user.Group_Id);
RB_Class_ViewModel classModel = new RB_Class_ViewModel()
{
ClassHours = oldClass.ClassHours,
ClassStyle = model.ClassStyle,
WeekDayList = new List<string>(),
Teacher_Id = model.TeacherId,
ClassRoomId = model.ClassRoomId,
};
if (model.DefaultTimeList != null && model.DefaultTimeList.Count > 0)
{
foreach (var item in model.DefaultTimeList)
{
if (item.DateList != null && item.DateList.Count > 0)
{
classModel.WeekDayList.AddRange(item.DateList);
}
}
}
var planList = class_PlanRepository.CreateClassPlanRepository(classModel, model.DefaultTimeList, finishClassHours, BasicMinutes, defaultOpenTime: model.OpenTimeStr);
list = GetRepeatDataModule(planList,2);
return list;
}
/// <summary>
/// 获取冲突的数据
/// </summary>
/// <param name="classPlanList">上课计划</param>
/// <param name="ChangeType">1-全局调整(教室或者老师),2-全局调整(上课计划)</param>
/// <param name="TeacherId">老师编号</param>
/// <param name="ClassRoomId">教室编号</param>
/// <returns></returns>
public List<object> GetRepeatDataModule(List<RB_Class_Plan_ViewModel> classPlanList,int ChangeType, int TeacherId=0,int ClassRoomId=0)
{
List<object> list = new List<object>();
List<TimeItem> timeList = new List<TimeItem>();
//冲突的上课计划编号
List<int> ids = new List<int>();
if (classPlanList != null && classPlanList.Count > 0)
{
string planIds = string.Join(",", classPlanList.Select(qitem => qitem.ClassPlanId));
var classTimeList = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel()
{
QClassPlanIds = planIds
});
foreach (var item in classPlanList)
{
if (ChangeType == 1)
{
item.PlanTimeList = classTimeList?.Where(qitem => qitem.ClassPlanId == item.ClassPlanId)?.ToList() ?? new List<RB_Class_Time_ViewModel>();
}
if (item.PlanTimeList != null && item.PlanTimeList.Count > 0)
{
foreach (var subItem in item.PlanTimeList)
{
timeList.Add(new TimeItem
{
StartTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + subItem.StartTime + ":00",
EndTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + subItem.EndTime + ":00",
});
}
}
}
var repeatList = CheckClassPlanModule(classPlanList[0].ClassId, timeList);
if (repeatList != null && repeatList.Count > 0)
{
foreach (var item in classPlanList)
{
var tempRepeatList = repeatList?.Where(qitem => qitem.ClassDate == item.ClassDate)?.ToList();
if (tempRepeatList != null && tempRepeatList.Count > 0)
{
var newTeacherId = 0;
var newClassRoomId = 0;
if (ChangeType == 1)
{
newTeacherId = TeacherId;
newClassRoomId = ClassRoomId;
}
else
{
newTeacherId = item.TeacherId;
newClassRoomId = item.ClassRoomId;
}
if (newTeacherId > 0)
{
var tempTeacherList = tempRepeatList?.Where(qitem => qitem.TeacherId == newTeacherId)?.ToList();
if (tempTeacherList != null && tempTeacherList.Count > 0)
{
var tempIds = Common.ConvertHelper.StringToList(string.Join(",", tempTeacherList.GroupBy(qitem => qitem.ClassPlanId).Select(qitem => qitem.Key)));
if (tempIds != null && tempIds.Count > 0)
{
ids.AddRange(tempIds);
}
}
}
if (newClassRoomId > 0)
{
var classroomList = tempRepeatList?.Where(qitem => qitem.ClassRoomId == newClassRoomId)?.ToList();
if (classroomList != null && classroomList.Count > 0)
{
var tempIds = Common.ConvertHelper.StringToList(string.Join(",", classroomList.GroupBy(qitem => qitem.ClassPlanId).Select(qitem => qitem.Key)));
if (tempIds != null && tempIds.Count > 0)
{
ids.AddRange(tempIds);
}
}
}
}
}
}
}
if (ids != null && ids.Count > 0)
{
List<RB_Class_Room_ViewModel> roomList = new List<RB_Class_Room_ViewModel>();
List<RB_Teacher_ViewModel> teacherList = new List<RB_Teacher_ViewModel>();
List<int> roomIds = Common.ConvertHelper.StringToList(string.Join(",", classPlanList.Select(qitem => qitem.ClassRoomId)));
List<int> teacherIds= Common.ConvertHelper.StringToList(string.Join(",", classPlanList.Select(qitem => qitem.TeacherId)));
if (roomIds != null && roomIds.Count > 0)
{
roomIds.Add(ClassRoomId);
}
if (teacherIds != null && teacherIds.Count > 0)
{
teacherIds.Add(TeacherId);
}
if (roomIds!=null&& roomIds.Count>0)
{
roomList = class_RoomRepository.GetClassRoomListRepository(new RB_Class_Room_ViewModel()
{
QRoomIds =string.Join(",", roomIds)
});
}
if (teacherIds!=null&& teacherIds.Count > 0)
{
teacherList = teacherRepository.GetTeacherListRepository(new RB_Teacher_ViewModel()
{
QTIds = string.Join(",", teacherIds)
});
}
//冲突的数据
var planOtherList = class_PlanRepository.GetClassPlanListRepository(new RB_Class_Plan_ViewModel()
{
QClassPlanIds = string.Join(",", ids)
});
var classOtherTimeList = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel()
{
QClassPlanIds = string.Join(",", ids)
});
foreach (var item in classPlanList)
{
List<object> PlanRepeatList = new List<object>();
var tempRepeatList = planOtherList?.Where(qitem => qitem.ClassDate == item.ClassDate)?.ToList();
if (tempRepeatList != null && tempRepeatList.Count > 0)
{
foreach (var subItem in tempRepeatList)
{
var tempObj = new
{
subItem.ClassPlanId,
subItem.ClassId,
subItem.ClassName,
ClassDate = Common.ConvertHelper.FormatDate(subItem.ClassDate),
subItem.TeacherId,
subItem.TeacherName,
subItem.ClassRoomId,
subItem.RoomName,
PlanTimeList = classOtherTimeList.Where(qitem => qitem.ClassPlanId == subItem.ClassPlanId).Select(qitem => new
{
qitem.StartTime,
qitem.EndTime,
qitem.TimeHour
}),
};
PlanRepeatList.Add(tempObj);
}
string TeacherName = "";
string RoomName = "";
var newTeacherId = 0;
var newClassRoomId = 0;
//调整老师或者教室
if (ChangeType == 1)
{
newTeacherId = TeacherId > 0 ? TeacherId : item.TeacherId;
newClassRoomId = ClassRoomId > 0 ? ClassRoomId : item.ClassRoomId;
TeacherName = teacherList?.Where(qitem => qitem.TId == newTeacherId)?.FirstOrDefault()?.TeacherName ?? "";
RoomName = roomList?.Where(qitem => qitem.RoomId == newClassRoomId)?.FirstOrDefault()?.RoomName ?? "";
}
//调整上课日期或上课时间
else
{
newTeacherId = item.TeacherId;
newClassRoomId = item.ClassRoomId;
TeacherName = teacherList?.Where(qitem => qitem.TId == item.TeacherId)?.FirstOrDefault()?.TeacherName ?? "";
RoomName = roomList?.Where(qitem => qitem.RoomId == item.ClassRoomId)?.FirstOrDefault()?.RoomName ?? "";
}
var obj = new
{
item.ClassPlanId,
ClassDate = Common.ConvertHelper.FormatDate(item.ClassDate),
TeacherId = newTeacherId,
TeacherName,
ClassRoomId = newClassRoomId,
RoomName,
PlanTimeList = item.PlanTimeList.Select(qitem => new
{
qitem.StartTime,
qitem.EndTime,
}),
PlanRepeatList
};
list.Add(obj);
}
}
}
return list;
}
/// <summary>
/// 检查上课计划是否存在时间上的交集【HK2021-07-28新增】
/// </summary>
/// <param name="classId"></param>
/// <param name="timeList"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> CheckClassPlanModule(int classId, List<TimeItem> timeList)
{
return class_PlanRepository.CheckClassPlanRepository(classId, timeList);
}
/// <summary> /// <summary>
/// 新增修改调课计划 /// 新增修改调课计划
/// </summary> /// </summary>
......
using Edu.Common.Enum; using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using Edu.Model.Entity.Course; using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course; using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Reserve; using Edu.Model.ViewModel.Reserve;
...@@ -914,7 +915,232 @@ WHERE 1=1 ...@@ -914,7 +915,232 @@ WHERE 1=1
} }
builder.AppendFormat(" WHERE ClassPlanId IN({0}) ", planIds); builder.AppendFormat(" WHERE ClassPlanId IN({0}) ", planIds);
return base.Execute(builder.ToString()) > 0; return base.Execute(builder.ToString()) > 0;
} }
#endregion #endregion
/// <summary>
/// 生成上课计划列表
/// </summary>
/// <param name="model"></param>
/// <param name="defaultPlanTimeList"></param>
/// <param name="finishClassHours"></param>
/// <param name="BasicMinutes"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> CreateClassPlanRepository(RB_Class_ViewModel model, List<ClassTimeItem> defaultPlanTimeList,decimal finishClassHours,int BasicMinutes,string defaultOpenTime="")
{
List<RB_Class_Plan_ViewModel> classPlanList = new List<RB_Class_Plan_ViewModel>();
if (model.ClassHours > 0 && defaultPlanTimeList != null && defaultPlanTimeList.Count > 0)
{
var srartDate = model.OpenTime;
if (model.OpenTime < DateTime.Now)
{
srartDate = DateTime.Now;
}
if (!string.IsNullOrEmpty(defaultOpenTime))
{
srartDate = Convert.ToDateTime(defaultOpenTime);
}
//按周排课和按月排课
if (model.ClassStyle == ClassStyleEnum.Week || model.ClassStyle == ClassStyleEnum.Month)
{
int i = 0;
double totalHours = Convert.ToDouble(finishClassHours);
while (model.ClassHours > totalHours)
{
var newDate = srartDate.AddDays(i);
foreach (var item in model.WeekDayList)
{
var planModel = new RB_Class_Plan_ViewModel()
{
ClassId = model.ClassId,
ClassPlanId = 0,
ClassRoomId = model.ClassRoomId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
PlanTimeList = new List<RB_Class_Time_ViewModel>(),
TeacherId = model.Teacher_Id,
ClassDate = newDate
};
if (model.ClassStyle == ClassStyleEnum.Week)
{
switch (item)
{
case "1":
if (newDate.DayOfWeek == DayOfWeek.Monday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "2":
if (newDate.DayOfWeek == DayOfWeek.Tuesday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "3":
if (newDate.DayOfWeek == DayOfWeek.Wednesday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "4":
if (newDate.DayOfWeek == DayOfWeek.Thursday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "5":
if (newDate.DayOfWeek == DayOfWeek.Friday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "6":
if (newDate.DayOfWeek == DayOfWeek.Saturday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "7":
if (newDate.DayOfWeek == DayOfWeek.Sunday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
}
}
else if (model.ClassStyle == ClassStyleEnum.Month)
{
if (newDate.Day == Convert.ToInt32(item))
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
}
}
i++;
}
}
//固定日期
else if (model.ClassStyle == ClassStyleEnum.FixedDate)
{
foreach (var item in model.WeekDayList)
{
var planModel = new RB_Class_Plan_ViewModel()
{
ClassId = model.ClassId,
ClassPlanId = 0,
ClassRoomId = model.ClassRoomId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
PlanTimeList = new List<RB_Class_Time_ViewModel>(),
TeacherId = model.Teacher_Id,
ClassDate = Convert.ToDateTime(item)
};
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
classPlanList.Add(planModel);
}
}
}
//约课
else
{
}
}
return classPlanList;
}
/// <summary>
/// 计算每天课时
/// </summary>
/// <param name="timeList"></param>
/// <param name="classTimeList"></param>
/// <param name="model"></param>
/// <returns></returns>
private double CalcDayClassHoursRepository(List<TimeItem> timeList, List<RB_Class_Time_ViewModel> classTimeList, RB_Class_ViewModel model, int BasicMinutes)
{
double dayClassHours = 0;
double dayMinutes = 0;
foreach (var sItem in timeList)
{
var timeModel = new RB_Class_Time_ViewModel()
{
StartTime = sItem.StartTime,
EndTime = sItem.EndTime,
TimeHour = sItem.TimeHour,
};
classTimeList.Add(timeModel);
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.StartTime + ":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
if (span.TotalMinutes > 0)
{
dayMinutes += span.TotalMinutes;
}
}
if (model.ClassHourMinute > 0)
{
dayClassHours = dayMinutes / model.ClassHourMinute;
}
else
{
dayClassHours = dayMinutes / BasicMinutes;
}
return dayClassHours;
}
} }
} }
...@@ -76,10 +76,10 @@ WHERE 1=1 ...@@ -76,10 +76,10 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Room_ViewModel.Group_Id), query.Group_Id); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Room_ViewModel.Group_Id), query.Group_Id);
} }
if (query.School_Id > 0) //if (query.School_Id > 0)
{ //{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Room_ViewModel.School_Id), query.School_Id); // builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Room_ViewModel.School_Id), query.School_Id);
} //}
if (!string.IsNullOrEmpty(query.RoomName)) if (!string.IsNullOrEmpty(query.RoomName))
{ {
builder.AppendFormat(" AND A.{0} LIKE @RoomName ", nameof(RB_Class_Room_ViewModel.RoomName)); builder.AppendFormat(" AND A.{0} LIKE @RoomName ", nameof(RB_Class_Room_ViewModel.RoomName));
......
...@@ -6,6 +6,7 @@ using System.Text; ...@@ -6,6 +6,7 @@ using System.Text;
using System.Linq; using System.Linq;
using Edu.Common.Enum.Course; using Edu.Common.Enum.Course;
using System.Threading.Tasks; using System.Threading.Tasks;
using Edu.Model.ViewModel.Course;
namespace Edu.Repository.EduTask namespace Edu.Repository.EduTask
{ {
...@@ -180,9 +181,7 @@ WHERE 1=1 ...@@ -180,9 +181,7 @@ WHERE 1=1
); );
} }
} }
} }
else if (model.ChangeType == 4)//取消课程 else if (model.ChangeType == 4)//取消课程
{ {
var oldPlanList = class_TimeRepository.GetClassTimeListRepository(new Edu.Model.ViewModel.Course.RB_Class_Time_ViewModel() var oldPlanList = class_TimeRepository.GetClassTimeListRepository(new Edu.Model.ViewModel.Course.RB_Class_Time_ViewModel()
...@@ -211,11 +210,11 @@ WHERE 1=1 ...@@ -211,11 +210,11 @@ WHERE 1=1
} }
if (deletePlanList != null && deletePlanList.Any()) if (deletePlanList != null && deletePlanList.Any())
{ {
builder.AppendFormat(" update RB_Class_Plan SET Status=1 where ClassPlanId in({0});", string.Join(",", deletePlanList.Select(x => x))); builder.AppendFormat(" UPDATE RB_Class_Plan SET Status=1 WHERE ClassPlanId IN({0});", string.Join(",", deletePlanList.Select(x => x)));
} }
if (deletePlanTimeList != null && deletePlanTimeList.Any()) if (deletePlanTimeList != null && deletePlanTimeList.Any())
{ {
builder.AppendFormat(" DELETE FROM rb_class_time where classtimeId in({0});", string.Join(",", deletePlanTimeList.Select(x => x))); builder.AppendFormat(" DELETE FROM rb_class_time WHERE classtimeId IN({0});", string.Join(",", deletePlanTimeList.Select(x => x)));
} }
} }
} }
...@@ -268,7 +267,7 @@ WHERE 1=1 ...@@ -268,7 +267,7 @@ WHERE 1=1
} }
//班级上课计划列表 //班级上课计划列表
List<Model.ViewModel.Course.RB_Class_Plan_ViewModel> classPlanList = new List<Model.ViewModel.Course.RB_Class_Plan_ViewModel>(); List<RB_Class_Plan_ViewModel> classPlanList = new List<RB_Class_Plan_ViewModel>();
if (allChangePlanModel.ClassHours > 0) if (allChangePlanModel.ClassHours > 0)
{ {
var srartDate = Convert.ToDateTime(allChangePlanModel.OpenTimeStr); var srartDate = Convert.ToDateTime(allChangePlanModel.OpenTimeStr);
...@@ -282,14 +281,14 @@ WHERE 1=1 ...@@ -282,14 +281,14 @@ WHERE 1=1
var newDate = srartDate.AddDays(i); var newDate = srartDate.AddDays(i);
foreach (var item in allChangePlanModel.WeekDayList) foreach (var item in allChangePlanModel.WeekDayList)
{ {
var planModel = new Model.ViewModel.Course.RB_Class_Plan_ViewModel() var planModel = new RB_Class_Plan_ViewModel()
{ {
ClassId = model.ClassId, ClassId = model.ClassId,
ClassPlanId = 0, ClassPlanId = 0,
ClassRoomId = allChangePlanModel.ClassRoomId, ClassRoomId = allChangePlanModel.ClassRoomId,
Group_Id = model.Group_Id, Group_Id = model.Group_Id,
School_Id = model.School_Id, School_Id = model.School_Id,
PlanTimeList = new List<Model.ViewModel.Course.RB_Class_Time_ViewModel>(), PlanTimeList = new List<RB_Class_Time_ViewModel>(),
TeacherId = allChangePlanModel.TeacherId, TeacherId = allChangePlanModel.TeacherId,
ClassDate = newDate ClassDate = newDate
}; };
...@@ -405,14 +404,14 @@ WHERE 1=1 ...@@ -405,14 +404,14 @@ WHERE 1=1
{ {
foreach (var item in allChangePlanModel.WeekDayList) foreach (var item in allChangePlanModel.WeekDayList)
{ {
var planModel = new Model.ViewModel.Course.RB_Class_Plan_ViewModel() var planModel = new RB_Class_Plan_ViewModel()
{ {
ClassId = model.ClassId, ClassId = model.ClassId,
ClassPlanId = 0, ClassPlanId = 0,
ClassRoomId = allChangePlanModel.ClassRoomId, ClassRoomId = allChangePlanModel.ClassRoomId,
Group_Id = model.Group_Id, Group_Id = model.Group_Id,
School_Id = model.School_Id, School_Id = model.School_Id,
PlanTimeList = new List<Model.ViewModel.Course.RB_Class_Time_ViewModel>(), PlanTimeList = new List<RB_Class_Time_ViewModel>(),
TeacherId = allChangePlanModel.TeacherId, TeacherId = allChangePlanModel.TeacherId,
ClassDate = Convert.ToDateTime(item) ClassDate = Convert.ToDateTime(item)
}; };
...@@ -433,7 +432,6 @@ WHERE 1=1 ...@@ -433,7 +432,6 @@ WHERE 1=1
Task.Run(() => Task.Run(() =>
{ {
if (oldPlanList != null && oldPlanList.Any())//删除剩余的排课日期和时间 if (oldPlanList != null && oldPlanList.Any())//删除剩余的排课日期和时间
{ {
string ids = string.Join(",", oldPlanList.Select(qitem => qitem.ClassPlanId)); string ids = string.Join(",", oldPlanList.Select(qitem => qitem.ClassPlanId));
...@@ -491,14 +489,14 @@ WHERE 1=1 ...@@ -491,14 +489,14 @@ WHERE 1=1
{ {
if (model.ChangeType == 2) if (model.ChangeType == 2)
{ {
builder.AppendFormat(" update RB_Class_Plan SET TeacherId={0} where DATE_FORMAT(ClassDate,'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d')", allChangePlanModel.TeacherId, model.TakeEffectTime.Value.ToString("yyyy-MM-dd")); builder.AppendFormat(" UPDATE RB_Class_Plan SET TeacherId={0} WHERE DATE_FORMAT(ClassDate,'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d')", allChangePlanModel.TeacherId, model.TakeEffectTime.Value.ToString("yyyy-MM-dd"));
string tIds = allChangePlanModel.TeacherId.ToString(); string tIds = allChangePlanModel.TeacherId.ToString();
var teacherList = teacherRepository.GetTeacherListRepository(new Model.ViewModel.User.RB_Teacher_ViewModel() { QTIds = tIds }); var teacherList = teacherRepository.GetTeacherListRepository(new Model.ViewModel.User.RB_Teacher_ViewModel() { QTIds = tIds });
logContent += string.Format("全局将讲师修改为【{0}】.", (teacherList?.Where(qitem => qitem.TId == allChangePlanModel.TeacherId)?.FirstOrDefault()?.TeacherName ?? "")); logContent += string.Format("全局将讲师修改为【{0}】.", (teacherList?.Where(qitem => qitem.TId == allChangePlanModel.TeacherId)?.FirstOrDefault()?.TeacherName ?? ""));
} }
else if (model.ChangeType == 3) else if (model.ChangeType == 3)
{ {
builder.AppendFormat(" update RB_Class_Plan SET ClassRoomId={0} where DATE_FORMAT(ClassDate,'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d')", allChangePlanModel.ClassRoomId, model.TakeEffectTime.Value.ToString("yyyy-MM-dd")); builder.AppendFormat(" UPDATE RB_Class_Plan SET ClassRoomId={0} WHERE DATE_FORMAT(ClassDate,'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d')", allChangePlanModel.ClassRoomId, model.TakeEffectTime.Value.ToString("yyyy-MM-dd"));
string roomIds = allChangePlanModel.ClassRoomId.ToString(); string roomIds = allChangePlanModel.ClassRoomId.ToString();
var roomList = class_RoomRepository.GetClassRoomListRepository(new Edu.Model.ViewModel.Course.RB_Class_Room_ViewModel() { QRoomIds = roomIds }); var roomList = class_RoomRepository.GetClassRoomListRepository(new Edu.Model.ViewModel.Course.RB_Class_Room_ViewModel() { QRoomIds = roomIds });
logContent += string.Format("全局将教室修改为【{0}】.", (roomList?.Where(qitem => qitem.RoomId == allChangePlanModel.ClassRoomId)?.FirstOrDefault()?.RoomName ?? "")); logContent += string.Format("全局将教室修改为【{0}】.", (roomList?.Where(qitem => qitem.RoomId == allChangePlanModel.ClassRoomId)?.FirstOrDefault()?.RoomName ?? ""));
...@@ -506,7 +504,7 @@ WHERE 1=1 ...@@ -506,7 +504,7 @@ WHERE 1=1
} }
else if (model.ChangeType == 4) else if (model.ChangeType == 4)
{ {
var oldPlanList = class_PlanRepository.GetClassPlanListRepository(new Edu.Model.ViewModel.Course.RB_Class_Plan_ViewModel() var oldPlanList = class_PlanRepository.GetClassPlanListRepository(new RB_Class_Plan_ViewModel()
{ {
ClassId = model.ClassId, ClassId = model.ClassId,
StartTime = model.TakeEffectTime.Value.ToString("yyyy-MM-dd") StartTime = model.TakeEffectTime.Value.ToString("yyyy-MM-dd")
...@@ -515,8 +513,8 @@ WHERE 1=1 ...@@ -515,8 +513,8 @@ WHERE 1=1
{ {
if (oldPlanList != null && oldPlanList.Any()) if (oldPlanList != null && oldPlanList.Any())
{ {
builder.AppendFormat(" update RB_Class_Plan SET Status=1 where ClassPlanId in({0});", string.Join(",", oldPlanList.Select(x => x.ClassPlanId))); builder.AppendFormat(" UPDATE RB_Class_Plan SET Status=1 WHERE ClassPlanId IN({0});", string.Join(",", oldPlanList.Select(x => x.ClassPlanId)));
builder.AppendFormat(" DELETE FROM rb_class_time where ClassPlanId in({0});", string.Join(",", oldPlanList.Select(x => x.ClassPlanId))); builder.AppendFormat(" DELETE FROM rb_class_time WHERE ClassPlanId IN({0});", string.Join(",", oldPlanList.Select(x => x.ClassPlanId)));
} }
} }
} }
...@@ -531,7 +529,7 @@ WHERE 1=1 ...@@ -531,7 +529,7 @@ WHERE 1=1
classLogRepository.AddClassLogRepository( classLogRepository.AddClassLogRepository(
new Model.Entity.Log.RB_Class_Log() new Model.Entity.Log.RB_Class_Log()
{ {
LogType = Common.Enum.Course.ClassLogTypeEnum.Class, LogType = ClassLogTypeEnum.Class,
LogContent = logContent, LogContent = logContent,
ClassId = model.ClassId, ClassId = model.ClassId,
Group_Id = model.Group_Id, Group_Id = model.Group_Id,
...@@ -551,13 +549,13 @@ WHERE 1=1 ...@@ -551,13 +549,13 @@ WHERE 1=1
/// <param name="classTimeList"></param> /// <param name="classTimeList"></param>
/// <param name="model"></param> /// <param name="model"></param>
/// <returns></returns> /// <returns></returns>
private decimal CalcDayClassHoursModule(List<TimeItem> timeList, List<Model.ViewModel.Course.RB_Class_Time_ViewModel> classTimeList, int ClassHourMinute, int BasicMinutes) private decimal CalcDayClassHoursModule(List<TimeItem> timeList, List<RB_Class_Time_ViewModel> classTimeList, int ClassHourMinute, int BasicMinutes)
{ {
decimal dayClassHours = 0; decimal dayClassHours = 0;
decimal dayMinutes = 0; decimal dayMinutes = 0;
foreach (var sItem in timeList) foreach (var sItem in timeList)
{ {
var timeModel = new Model.ViewModel.Course.RB_Class_Time_ViewModel() var timeModel = new RB_Class_Time_ViewModel()
{ {
StartTime = sItem.StartTime, StartTime = sItem.StartTime,
EndTime = sItem.EndTime, EndTime = sItem.EndTime,
...@@ -584,6 +582,5 @@ WHERE 1=1 ...@@ -584,6 +582,5 @@ WHERE 1=1
} }
return dayClassHours; return dayClassHours;
} }
} }
} }
\ No newline at end of file
...@@ -40,10 +40,10 @@ WHERE 1=1 ...@@ -40,10 +40,10 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND a.{0}={1} ", nameof(RB_Account_ViewModel.AccountType), (int)query.AccountType); builder.AppendFormat(" AND a.{0}={1} ", nameof(RB_Account_ViewModel.AccountType), (int)query.AccountType);
} }
if (query.School_Id > 0) //if (query.School_Id > 0)
{ //{
builder.AppendFormat(" AND a.{0}={1} ", nameof(RB_Account_ViewModel.School_Id), query.School_Id); // builder.AppendFormat(" AND a.{0}={1} ", nameof(RB_Account_ViewModel.School_Id), query.School_Id);
} //}
if (query.Group_Id > 0) if (query.Group_Id > 0)
{ {
builder.AppendFormat(" AND a.{0}={1} ", nameof(RB_Account_ViewModel.Group_Id), query.Group_Id); builder.AppendFormat(" AND a.{0}={1} ", nameof(RB_Account_ViewModel.Group_Id), query.Group_Id);
......
...@@ -49,21 +49,18 @@ namespace Edu.WebApi.Controllers.EduTask ...@@ -49,21 +49,18 @@ namespace Edu.WebApi.Controllers.EduTask
MoveType = base.ParmJObj.GetInt("MoveType"), MoveType = base.ParmJObj.GetInt("MoveType"),
Remarks = base.ParmJObj.GetStringValue("Remarks") Remarks = base.ParmJObj.GetStringValue("Remarks")
}; };
if (model.ClassId <= 0) if (model.ClassId <= 0)
{ {
return ApiResult.ParamIsNull(message: "请选择要调整的班级!"); return ApiResult.ParamIsNull(message: "请选择要调整的班级!");
} }
var classModel = classModule.GetClassModule(model.ClassId); var classModel = classModule.GetClassModule(model.ClassId);
string receiptFile = string.Empty; string receiptFile = string.Empty;
try try
{ {
List<string> receiptFileList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(base.ParmJObj.GetStringValue("ReceiptFileList")); List<string> receiptFileList = JsonHelper.DeserializeObject<List<string>>(base.ParmJObj.GetStringValue("ReceiptFileList"));
if (receiptFileList == null || !receiptFileList.Any()) if (receiptFileList == null || !receiptFileList.Any())
{ {
receiptFile = ""; receiptFile = "";
//return ApiResult.Failed("附件必须上传");
} }
else else
{ {
...@@ -71,8 +68,8 @@ namespace Edu.WebApi.Controllers.EduTask ...@@ -71,8 +68,8 @@ namespace Edu.WebApi.Controllers.EduTask
} }
if (model.MoveType == 1) if (model.MoveType == 1)
{ {
model.OldChangePlanItemList = Common.Plugin.JsonHelper.DeserializeObject<List<ChangePlanItem>>(base.ParmJObj.GetStringValue("OldChangePlanItemList")); model.OldChangePlanItemList = JsonHelper.DeserializeObject<List<ChangePlanItem>>(base.ParmJObj.GetStringValue("OldChangePlanItemList"));
model.NewChangePlanItemList = Common.Plugin.JsonHelper.DeserializeObject<List<ChangePlanItem>>(base.ParmJObj.GetStringValue("NewChangePlanItemList")); model.NewChangePlanItemList = JsonHelper.DeserializeObject<List<ChangePlanItem>>(base.ParmJObj.GetStringValue("NewChangePlanItemList"));
} }
else else
{ {
...@@ -85,7 +82,6 @@ namespace Edu.WebApi.Controllers.EduTask ...@@ -85,7 +82,6 @@ namespace Edu.WebApi.Controllers.EduTask
} }
model.TakeEffectTime = Convert.ToDateTime(takeEffectTime); model.TakeEffectTime = Convert.ToDateTime(takeEffectTime);
} }
model.AllChangePlanModel = Common.Plugin.JsonHelper.DeserializeObject<AllChangePlanItem>(base.ParmJObj.GetStringValue("AllChangePlanItem")); model.AllChangePlanModel = Common.Plugin.JsonHelper.DeserializeObject<AllChangePlanItem>(base.ParmJObj.GetStringValue("AllChangePlanItem"));
} }
} }
...@@ -93,7 +89,9 @@ namespace Edu.WebApi.Controllers.EduTask ...@@ -93,7 +89,9 @@ namespace Edu.WebApi.Controllers.EduTask
{ {
Common.Plugin.LogHelper.Write(ex, "SetChangeClassPlan"); Common.Plugin.LogHelper.Write(ex, "SetChangeClassPlan");
} }
if (model.MoveType == 1)//固定日期 List<TimeItem> timeList = new List<TimeItem>();
//固定日期
if (model.MoveType == 1)
{ {
if (model.ChangeType == 1)//调课 if (model.ChangeType == 1)//调课
{ {
...@@ -101,6 +99,7 @@ namespace Edu.WebApi.Controllers.EduTask ...@@ -101,6 +99,7 @@ namespace Edu.WebApi.Controllers.EduTask
{ {
return ApiResult.Failed("排课原次数与现有次数不一致"); return ApiResult.Failed("排课原次数与现有次数不一致");
} }
} }
else if (model.ChangeType == 2) else if (model.ChangeType == 2)
{ {
...@@ -116,8 +115,31 @@ namespace Edu.WebApi.Controllers.EduTask ...@@ -116,8 +115,31 @@ namespace Edu.WebApi.Controllers.EduTask
return ApiResult.Failed("请选择教室"); return ApiResult.Failed("请选择教室");
} }
} }
//固定日期上课计划验证冲突
timeList = new List<TimeItem>();
foreach (var item in model.NewChangePlanItemList)
{
foreach (var subItem in item.PlanTimeList)
{
timeList.Add(new TimeItem
{
StartTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + subItem.StartTime + ":00",
EndTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + subItem.EndTime + ":00",
});
}
}
if (timeList != null && timeList.Count > 0)
{
//var objList = changeClassPlanModule.GetRepeatListModule(model.ClassId, model.NewChangePlanItemList, timeList);
//if (objList != null && objList.Count > 0)
//{
// return ApiResult.Failed("存在上课计划冲突的数据!", data: objList);
//}
}
} }
else //全局修改 //全局修改
else
{ {
if (model.ChangeType == 1) if (model.ChangeType == 1)
{ {
...@@ -203,6 +225,11 @@ namespace Edu.WebApi.Controllers.EduTask ...@@ -203,6 +225,11 @@ namespace Edu.WebApi.Controllers.EduTask
{ {
return ApiResult.Failed("班级信息不存在"); return ApiResult.Failed("班级信息不存在");
} }
//var dateList = changeClassPlanModule.GetAllDateAndTimeRepeatListModule(model.ClassId, model.AllChangePlanModel,base.UserInfo);
//if (dateList != null && dateList.Count > 0)
//{
// return ApiResult.Failed("存在上课计划冲突的数据!", data: dateList);
//}
} }
else if (model.ChangeType == 2) else if (model.ChangeType == 2)
{ {
...@@ -210,6 +237,11 @@ namespace Edu.WebApi.Controllers.EduTask ...@@ -210,6 +237,11 @@ namespace Edu.WebApi.Controllers.EduTask
{ {
return ApiResult.Failed("请选择老师"); return ApiResult.Failed("请选择老师");
} }
//var teacherlist = changeClassPlanModule.GetAllRepeatListModule(model.ClassId, Common.ConvertHelper.FormatDate(model.TakeEffectTime), TeacherId: model.AllChangePlanModel.TeacherId);
//if (teacherlist != null && teacherlist.Count > 0)
//{
// return ApiResult.Failed("存在上课计划冲突的数据!", data: teacherlist);
//}
} }
else if (model.ChangeType == 3) else if (model.ChangeType == 3)
{ {
...@@ -217,6 +249,11 @@ namespace Edu.WebApi.Controllers.EduTask ...@@ -217,6 +249,11 @@ namespace Edu.WebApi.Controllers.EduTask
{ {
return ApiResult.Failed("请选择教室"); return ApiResult.Failed("请选择教室");
} }
//var classroomlist = changeClassPlanModule.GetAllRepeatListModule(model.ClassId, Common.ConvertHelper.FormatDate(model.TakeEffectTime), ClassRoomId: model.AllChangePlanModel.ClassRoomId);
//if (classroomlist != null && classroomlist.Count > 0)
//{
// return ApiResult.Failed("存在上课计划冲突的数据!", data: classroomlist);
//}
} }
} }
if (model.OldChangePlanItemList != null && model.OldChangePlanItemList.Any()) if (model.OldChangePlanItemList != null && model.OldChangePlanItemList.Any())
......
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