Commit 6e78f203 authored by 黄奎's avatar 黄奎

页面修改

parent 3085312c
...@@ -600,85 +600,98 @@ namespace Edu.Module.Course ...@@ -600,85 +600,98 @@ namespace Edu.Module.Course
flag = class_TimeRepository.BatchInsertClassTimeRepository(timeList); flag = class_TimeRepository.BatchInsertClassTimeRepository(timeList);
} }
} }
//检查上课计划是否重复
var newPlanList = class_PlanRepository.GetClassPlanListExtRepository(new RB_Class_Plan_ViewModel() class_PlanRepository.CheckClassPlanRepeatRepository(ClassId, out result);
if (result)
{
var classLogModel = new Model.Entity.Log.RB_Class_Log()
{ {
LogType = Common.Enum.Course.ClassLogTypeEnum.CreateClass,
LogContent = "创建上课计划成功!但是存在冲突的上课安排,等待管理员处理!",
ClassId = ClassId, ClassId = ClassId,
StartTime = Common.ConvertHelper.FormatDate(DateTime.Now) Group_Id = model.Group_Id,
}); School_Id = model.School_Id,
foreach (var item in newPlanList) CreateBy = model.CreateBy,
CreateTime = System.DateTime.Now
};
classLogRepository.AddClassLogRepository(classLogModel);
}
return flag;
}
/// <summary>
/// 批量修改上课计划
/// </summary>
/// <param name="ChangeType">调动类型(1-老师,2-教室,3-时段)</param>
/// <param name="ClassRoomId"></param>
/// <param name="TeacherId"></param>
/// <param name="ClassPlanIdList"></param>
/// <param name="TimeList"></param>
/// <param name="result"></param>
/// <returns></returns>
public bool BatchUpdateClassPlanModule(int ClassId,int ChangeType,int ClassRoomId,int TeacherId,List<int> ClassPlanIdList, List<TimeItem> TimeList, out bool result)
{ {
timeItemList.Add(new TimeItem() bool flag = false;
string ids = string.Join(",", ClassPlanIdList);
result = false;
if (ChangeType == 1)
{ {
StartTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + item.StartTime + ":00", flag= class_PlanRepository.UpdateClassPlanTeacherOrClassRoomIdRepository(TeacherId,0, ids);
EndTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + item.EndTime + ":00",
});
} }
var repeatList = class_PlanRepository.CheckClassPlanRepository(model.ClassId, timeItemList); if (ChangeType == 2)
var updatePlanList = new List<RB_Class_Plan_ViewModel>();
foreach (var item in newPlanList)
{ {
var tempRepeatList = repeatList?.Where(qitem => qitem.ClassDate == item.ClassDate)?.ToList(); flag = class_PlanRepository.UpdateClassPlanTeacherOrClassRoomIdRepository(0, ClassRoomId, ids);
List<int> ids = new List<int>(); }
if (tempRepeatList != null && tempRepeatList.Count > 0) if (ChangeType == 3)
{
if (item.TeacherId > 0)
{ {
var teacherList = tempRepeatList?.Where(qitem => qitem.TeacherId == item.TeacherId)?.ToList(); flag= class_TimeRepository.DeleteClassTimeByPlanIdsRepository(ids);
if (teacherList != null && teacherList.Count > 0) var planList = class_PlanRepository.GetClassPlanListRepository(new RB_Class_Plan_ViewModel()
{ {
var tempIds = Common.ConvertHelper.StringToList(string.Join(",", teacherList.GroupBy(qitem => qitem.ClassPlanId).Select(qitem => qitem.Key))); QClassPlanIds = ids
if (tempIds != null && tempIds.Count > 0) });
if (flag && planList != null && planList.Count > 0)
{ {
ids.AddRange(tempIds); List<RB_Class_Time> timeList = new List<RB_Class_Time>();
} foreach (var item in planList)
}
}
if (item.ClassRoomId > 0)
{ {
var classroomList = tempRepeatList?.Where(qitem => qitem.ClassRoomId == item.ClassRoomId)?.ToList(); foreach (var subItem in TimeList)
if (classroomList != null && classroomList.Count > 0)
{ {
var tempIds = Common.ConvertHelper.StringToList(string.Join(",", classroomList.GroupBy(qitem => qitem.ClassPlanId).Select(qitem => qitem.Key))); var classTime = new RB_Class_Time()
if (tempIds != null && tempIds.Count > 0)
{ {
ids.AddRange(tempIds); ClassTimeId = 0,
} ClassId = item.ClassId,
} ClassPlanId = item.ClassPlanId,
StartTime = subItem.StartTime,
EndTime = subItem.EndTime,
Group_Id = item.Group_Id,
School_Id = item.School_Id,
ClassStatus = 0,
TimeHour = subItem.TimeHour
};
timeList.Add(classTime);
} }
} }
string RepeatPlanIds = ""; if (timeList != null && timeList.Count > 0)
if (ids != null && ids.Count > 0)
{
RepeatPlanIds = string.Join(",", ids);
if (!result)
{ {
result = true; flag = class_TimeRepository.BatchInsertClassTimeRepository(timeList);
} }
} }
updatePlanList.Add(new RB_Class_Plan_ViewModel()
{
ClassPlanId=item.ClassPlanId,
RepeatPlanIds= RepeatPlanIds,
});
} }
if (updatePlanList != null && updatePlanList.Count > 0) class_PlanRepository.CheckClassPlanRepeatRepository(ClassId, out result);
{ return flag;
flag = class_PlanRepository.BatchUpdateClassPlanRepository(updatePlanList);
} }
if (result)
/// <summary>
/// 单个修改上课计划
/// </summary>
/// <returns></returns>
public bool UpdateClassPlanSingleModule(RB_Class_Plan_ViewModel model,int createBy, out bool result)
{ {
var classLogModel = new Model.Entity.Log.RB_Class_Log() result = false;
var flag = SetClassPlanModule(model, createBy);
if (flag)
{ {
LogType = Common.Enum.Course.ClassLogTypeEnum.CreateClass, class_PlanRepository.CheckClassPlanRepeatRepository(model.ClassId, out result);
LogContent = "创建上课计划成功!但是存在冲突的上课安排,等待管理员处理!",
ClassId = ClassId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
CreateBy = model.CreateBy,
CreateTime = System.DateTime.Now
};
classLogRepository.AddClassLogRepository(classLogModel);
} }
return flag; return flag;
} }
...@@ -723,16 +736,13 @@ namespace Edu.Module.Course ...@@ -723,16 +736,13 @@ namespace Edu.Module.Course
var tempRepeatList = repeatList?.Where(qitem => qitem.ClassDate == item.ClassDate)?.ToList(); var tempRepeatList = repeatList?.Where(qitem => qitem.ClassDate == item.ClassDate)?.ToList();
if (tempRepeatList != null && tempRepeatList.Count > 0) if (tempRepeatList != null && tempRepeatList.Count > 0)
{ {
if (tempRepeatList.Count > 1)
{
}
foreach (var subItem in tempRepeatList) foreach (var subItem in tempRepeatList)
{ {
var tempObj = new var tempObj = new
{ {
subItem.ClassPlanId, subItem.ClassPlanId,
subItem.ClassId, subItem.ClassId,
subItem.ClassName,
ClassDate = Common.ConvertHelper.FormatDate(subItem.ClassDate), ClassDate = Common.ConvertHelper.FormatDate(subItem.ClassDate),
subItem.TeacherId, subItem.TeacherId,
subItem.TeacherName, subItem.TeacherName,
...@@ -751,10 +761,12 @@ namespace Edu.Module.Course ...@@ -751,10 +761,12 @@ namespace Edu.Module.Course
PlanRepeatList.Add(tempObj); PlanRepeatList.Add(tempObj);
} }
} }
RB_Class_Plan_ViewModel model = new RB_Class_Plan_ViewModel();
var obj = new var obj = new
{ {
item.ClassPlanId, item.ClassPlanId,
item.ClassId, item.ClassId,
item.ClassName,
ClassDate=Common.ConvertHelper.FormatDate(item.ClassDate), ClassDate=Common.ConvertHelper.FormatDate(item.ClassDate),
item.TeacherId, item.TeacherId,
item.TeacherName, item.TeacherName,
...@@ -782,8 +794,11 @@ namespace Edu.Module.Course ...@@ -782,8 +794,11 @@ namespace Edu.Module.Course
/// <param name="model"></param> /// <param name="model"></param>
/// <param name="message"></param> /// <param name="message"></param>
/// <returns></returns> /// <returns></returns>
public virtual bool SetClassStatusModule(RB_Class_ViewModel model, out string message) [TransactionCallHandler]
public virtual bool SetClassStatusModule(RB_Class_ViewModel model, out string message,out bool result)
{ {
result = false;
bool flag = false;
message = ""; message = "";
Dictionary<string, object> fileds = new Dictionary<string, object>() Dictionary<string, object> fileds = new Dictionary<string, object>()
{ {
...@@ -792,6 +807,13 @@ namespace Edu.Module.Course ...@@ -792,6 +807,13 @@ namespace Edu.Module.Course
if (model.Teacher_Id > 0) if (model.Teacher_Id > 0)
{ {
fileds.Add(nameof(RB_Class_ViewModel.Teacher_Id), model.Teacher_Id); fileds.Add(nameof(RB_Class_ViewModel.Teacher_Id), model.Teacher_Id);
Dictionary<string, object> planFileds = new Dictionary<string, object>()
{
{nameof(RB_Class_Plan.TeacherId),model.Teacher_Id },
};
class_PlanRepository.Update(planFileds, new WhereHelper(nameof(RB_Class_Plan.ClassId), model.ClassId));
class_PlanRepository.CheckClassPlanRepeatRepository(model.ClassId, out result);
} }
//结课验证课时 //结课验证课时
if (model.ClassStatus == ClassStatusEnum.EndClass) if (model.ClassStatus == ClassStatusEnum.EndClass)
...@@ -808,7 +830,9 @@ namespace Edu.Module.Course ...@@ -808,7 +830,9 @@ namespace Edu.Module.Course
} }
} }
} }
return classRepository.Update(fileds, new WhereHelper(nameof(RB_Class_ViewModel.ClassId), model.ClassId));
flag= classRepository.Update(fileds, new WhereHelper(nameof(RB_Class_ViewModel.ClassId), model.ClassId));
return flag;
} }
/// <summary> /// <summary>
......
...@@ -2659,7 +2659,7 @@ namespace Edu.Module.Course ...@@ -2659,7 +2659,7 @@ namespace Edu.Module.Course
}; };
//HK2021-07-19新增【有效课时大于完成课时修改学员状态为正常】 //HK2021-07-19新增【有效课时大于完成课时修改学员状态为正常】
string LogContent = ""; string LogContent = "";
if (gmodel.CompleteHours < validClassHours) if (gmodel.CompleteHours <= validClassHours)
{ {
keyValues.Add(nameof(RB_Order_Guest.GuestState), 1); keyValues.Add(nameof(RB_Order_Guest.GuestState), 1);
keyValues.Add(nameof(RB_Order_Guest.DropOutRemark), "有效课时大于完成课时,恢复学员状态!"); keyValues.Add(nameof(RB_Order_Guest.DropOutRemark), "有效课时大于完成课时,恢复学员状态!");
......
...@@ -24,9 +24,10 @@ namespace Edu.Repository.Course ...@@ -24,9 +24,10 @@ namespace Edu.Repository.Course
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon SELECT A.*,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon,IFNULL(C.ClassName,'') AS ClassName
FROM RB_Class_Plan AS A LEFT JOIN rb_class_room AS B ON A.ClassRoomId=B.RoomId FROM RB_Class_Plan AS A LEFT JOIN rb_class_room AS B ON A.ClassRoomId=B.RoomId
LEFT JOIN rb_teacher AS T ON A.TeacherId=T.TId LEFT JOIN rb_teacher AS T ON A.TeacherId=T.TId
LEFT JOIN rb_class AS C ON A.ClassId=C.ClassId
WHERE 1=1 WHERE 1=1
"); ");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal);
...@@ -815,6 +816,105 @@ WHERE 1=1 ...@@ -815,6 +816,105 @@ WHERE 1=1
} }
return flag; return flag;
} }
/// <summary>
/// 检查班级上课计划是否存在重复,有重复则更新冲突的编号
/// </summary>
/// <param name="ClassId"></param>
/// <param name="result"></param>
public void CheckClassPlanRepeatRepository(int ClassId, out bool result)
{
result = false;
List<TimeItem> timeItemList = new List<TimeItem>();
var newPlanList = GetClassPlanListExtRepository(new RB_Class_Plan_ViewModel()
{
ClassId = ClassId,
StartTime = Common.ConvertHelper.FormatDate(DateTime.Now)
});
foreach (var item in newPlanList)
{
timeItemList.Add(new TimeItem()
{
StartTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + item.StartTime + ":00",
EndTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + item.EndTime + ":00",
});
}
var repeatList = CheckClassPlanRepository(ClassId, timeItemList);
var updatePlanList = new List<RB_Class_Plan_ViewModel>();
foreach (var item in newPlanList)
{
var tempRepeatList = repeatList?.Where(qitem => qitem.ClassDate == item.ClassDate)?.ToList();
List<int> ids = new List<int>();
if (tempRepeatList != null && tempRepeatList.Count > 0)
{
if (item.TeacherId > 0)
{
var teacherList = tempRepeatList?.Where(qitem => qitem.TeacherId == item.TeacherId)?.ToList();
if (teacherList != null && teacherList.Count > 0)
{
var tempIds = Common.ConvertHelper.StringToList(string.Join(",", teacherList.GroupBy(qitem => qitem.ClassPlanId).Select(qitem => qitem.Key)));
if (tempIds != null && tempIds.Count > 0)
{
ids.AddRange(tempIds);
}
}
}
if (item.ClassRoomId > 0)
{
var classroomList = tempRepeatList?.Where(qitem => qitem.ClassRoomId == item.ClassRoomId)?.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);
}
}
}
}
string RepeatPlanIds = "";
if (ids != null && ids.Count > 0)
{
RepeatPlanIds = string.Join(",", ids);
if (!result)
{
result = true;
}
}
updatePlanList.Add(new RB_Class_Plan_ViewModel()
{
ClassPlanId = item.ClassPlanId,
RepeatPlanIds = RepeatPlanIds,
});
}
if (updatePlanList != null && updatePlanList.Count > 0)
{
BatchUpdateClassPlanRepository(updatePlanList);
}
}
/// <summary>
/// 批量修改教室或者老师
/// </summary>
/// <param name="TeacherId"></param>
/// <param name="ClassRoomId"></param>
/// <param name="planIds"></param>
/// <returns></returns>
public bool UpdateClassPlanTeacherOrClassRoomIdRepository(int TeacherId, int ClassRoomId, string planIds)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(" UPDATE rb_class_plan SET ");
if (TeacherId > 0)
{
builder.AppendFormat(" TeacherId={0} ", TeacherId);
}
if (ClassRoomId > 0)
{
builder.AppendFormat(" ClassRoomId={0} ", ClassRoomId);
}
builder.AppendFormat(" WHERE ClassPlanId IN({0}) ", planIds);
return base.Execute(builder.ToString()) > 0;
}
#endregion #endregion
} }
} }
...@@ -395,10 +395,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -395,10 +395,8 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult BatchUpdateClassPlan() public ApiResult BatchUpdateClassPlan()
{ {
var ClassId = base.ParmJObj.GetInt("ClassId"); var ClassId = base.ParmJObj.GetInt("ClassId");
//调动类型(1-课程,2-老师,3-教室,4-取消课程) //调动类型(1-老师,2-教室,3-时段)
var ChangeType = base.ParmJObj.GetInt("ChangeType"); var ChangeType = base.ParmJObj.GetInt("ChangeType");
//调动选项(1-固定日期,2-全局调整)
int MoveType = base.ParmJObj.GetInt("MoveType");
var ClassRoomId = base.ParmJObj.GetInt("ClassRoomId"); var ClassRoomId = base.ParmJObj.GetInt("ClassRoomId");
var TeacherId = base.ParmJObj.GetInt("TeacherId"); var TeacherId = base.ParmJObj.GetInt("TeacherId");
var timeStr = base.ParmJObj.GetStringValue("TimeList"); var timeStr = base.ParmJObj.GetStringValue("TimeList");
...@@ -407,17 +405,79 @@ namespace Edu.WebApi.Controllers.Course ...@@ -407,17 +405,79 @@ namespace Edu.WebApi.Controllers.Course
{ {
TimeList = Common.Plugin.JsonHelper.DeserializeObject<List<TimeItem>>(timeStr); TimeList = Common.Plugin.JsonHelper.DeserializeObject<List<TimeItem>>(timeStr);
} }
var planIds = base.ParmJObj.GetStringValue("ClassPlanIdList");
if (MoveType == 1) var ClassPlanIdList = new List<int>();
if (!string.IsNullOrEmpty(planIds))
{ {
ClassPlanIdList = Common.Plugin.JsonHelper.DeserializeObject<List<int>>(planIds);
} }
else if (ClassPlanIdList == null || (ClassPlanIdList != null && ClassPlanIdList.Count <= 0))
{
return ApiResult.ParamIsNull(message: "请选择要调整的数据!");
}
if (ChangeType == 1 && TeacherId <= 0)
{
return ApiResult.ParamIsNull(message: "请选择教学老师!");
}
if (ChangeType == 2 && ClassRoomId <= 0)
{ {
return ApiResult.ParamIsNull(message: "请选择上课教室!");
}
if (ChangeType == 3 && (TimeList == null || (TimeList != null && TimeList.Count <= 0)))
{
return ApiResult.ParamIsNull(message: "请选择上课时间段!");
}
bool flag = classModule.BatchUpdateClassPlanModule(ClassId,ChangeType, ClassRoomId, TeacherId, ClassPlanIdList,TimeList, out bool result);
return flag ? ApiResult.Success(data: result) : ApiResult.Failed();
}
/// <summary>
/// 上课计划单个调整
/// </summary>
public ApiResult UpdateClassPlanSingle()
{
var extModel = new RB_Class_Plan_ViewModel()
{
ClassPlanId = base.ParmJObj.GetInt("ClassPlanId"),
ClassId = base.ParmJObj.GetInt("ClassId"),
ClassDate = base.ParmJObj.GetDateTime("ClassDate"),
Status = Common.Enum.DateStateEnum.Normal,
ClassRoomId = base.ParmJObj.GetInt("ClassRoomId"),
TeacherId = base.ParmJObj.GetInt("TeacherId"),
};
try
{
extModel.PlanTimeList = Common.Plugin.JsonHelper.DeserializeObject<List<RB_Class_Time_ViewModel>>(base.ParmJObj.GetStringValue("PlanTimeList"));
} }
bool flag = false; catch (Exception ex)
return flag ? ApiResult.Success(data:false) : ApiResult.Failed(); {
Common.Plugin.LogHelper.Write(ex, "SetClassPlan_PlanTimeList");
}
if (extModel.PlanTimeList != null && extModel.PlanTimeList.Count > 0)
{
foreach (var item in extModel.PlanTimeList)
{
string message = "";
if (!Common.ConvertHelper.IsTime(item.StartTime + ":00"))
{
message = "【" + item.StartTime + "】格式不正确!(参考格式为 00:00)";
}
if (!Common.ConvertHelper.IsTime(item.EndTime + ":00"))
{
if (!string.IsNullOrEmpty(message))
{
message += ",";
}
message += "【" + item.EndTime + "】格式不正确!(参考格式为 00:00)";
}
if (!string.IsNullOrEmpty(message))
{
return ApiResult.ParamIsNull(message: message);
}
}
}
var flag = classModule.UpdateClassPlanSingleModule(extModel, base.UserInfo.Id, out bool result);
return flag ? ApiResult.Success(data: result) : ApiResult.Failed();
} }
/// <summary> /// <summary>
...@@ -427,8 +487,16 @@ namespace Edu.WebApi.Controllers.Course ...@@ -427,8 +487,16 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult GetRepeatClassPlan() public ApiResult GetRepeatClassPlan()
{ {
var ClassId = base.ParmJObj.GetInt("ClassId"); var ClassId = base.ParmJObj.GetInt("ClassId");
var classModel = classModule.GetClassModule(ClassId);
var obj = classModule.GetRepeatClassPlanModule(ClassId); var obj = classModule.GetRepeatClassPlanModule(ClassId);
return ApiResult.Success(data: obj); var data = new
{
ClassId,
classModel?.ClassName,
classModel?.ClassNo,
RepeatList= obj,
};
return ApiResult.Success(data: data);
} }
/// <summary> /// <summary>
...@@ -467,8 +535,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -467,8 +535,8 @@ namespace Edu.WebApi.Controllers.Course
{ {
return ApiResult.ParamIsNull(message: "未找到此班级,请刷新页面重试!"); return ApiResult.ParamIsNull(message: "未找到此班级,请刷新页面重试!");
} }
bool flag = classModule.SetClassStatusModule(extModel,out string message); bool flag = classModule.SetClassStatusModule(extModel,out string message, out bool result);
return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message); return flag ? ApiResult.Success(message: message, data: result) : ApiResult.Failed(message: message, data: result);
} }
/// <summary> /// <summary>
......
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