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

页面修改

parent 3085312c
......@@ -600,85 +600,98 @@ namespace Edu.Module.Course
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,
StartTime = Common.ConvertHelper.FormatDate(DateTime.Now)
});
foreach (var item in newPlanList)
Group_Id = model.Group_Id,
School_Id = model.School_Id,
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",
EndTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + item.EndTime + ":00",
});
flag= class_PlanRepository.UpdateClassPlanTeacherOrClassRoomIdRepository(TeacherId,0, ids);
}
var repeatList = class_PlanRepository.CheckClassPlanRepository(model.ClassId, timeItemList);
var updatePlanList = new List<RB_Class_Plan_ViewModel>();
foreach (var item in newPlanList)
if (ChangeType == 2)
{
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)
flag = class_PlanRepository.UpdateClassPlanTeacherOrClassRoomIdRepository(0, ClassRoomId, ids);
}
if (ChangeType == 3)
{
var teacherList = tempRepeatList?.Where(qitem => qitem.TeacherId == item.TeacherId)?.ToList();
if (teacherList != null && teacherList.Count > 0)
flag= class_TimeRepository.DeleteClassTimeByPlanIdsRepository(ids);
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)));
if (tempIds != null && tempIds.Count > 0)
QClassPlanIds = ids
});
if (flag && planList != null && planList.Count > 0)
{
ids.AddRange(tempIds);
}
}
}
if (item.ClassRoomId > 0)
List<RB_Class_Time> timeList = new List<RB_Class_Time>();
foreach (var item in planList)
{
var classroomList = tempRepeatList?.Where(qitem => qitem.ClassRoomId == item.ClassRoomId)?.ToList();
if (classroomList != null && classroomList.Count > 0)
foreach (var subItem in TimeList)
{
var tempIds = Common.ConvertHelper.StringToList(string.Join(",", classroomList.GroupBy(qitem => qitem.ClassPlanId).Select(qitem => qitem.Key)));
if (tempIds != null && tempIds.Count > 0)
var classTime = new RB_Class_Time()
{
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 (ids != null && ids.Count > 0)
{
RepeatPlanIds = string.Join(",", ids);
if (!result)
if (timeList != null && timeList.Count > 0)
{
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)
{
flag = class_PlanRepository.BatchUpdateClassPlanRepository(updatePlanList);
class_PlanRepository.CheckClassPlanRepeatRepository(ClassId, out result);
return flag;
}
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,
LogContent = "创建上课计划成功!但是存在冲突的上课安排,等待管理员处理!",
ClassId = ClassId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
CreateBy = model.CreateBy,
CreateTime = System.DateTime.Now
};
classLogRepository.AddClassLogRepository(classLogModel);
class_PlanRepository.CheckClassPlanRepeatRepository(model.ClassId, out result);
}
return flag;
}
......@@ -723,16 +736,13 @@ namespace Edu.Module.Course
var tempRepeatList = repeatList?.Where(qitem => qitem.ClassDate == item.ClassDate)?.ToList();
if (tempRepeatList != null && tempRepeatList.Count > 0)
{
if (tempRepeatList.Count > 1)
{
}
foreach (var subItem in tempRepeatList)
{
var tempObj = new
{
subItem.ClassPlanId,
subItem.ClassId,
subItem.ClassName,
ClassDate = Common.ConvertHelper.FormatDate(subItem.ClassDate),
subItem.TeacherId,
subItem.TeacherName,
......@@ -751,10 +761,12 @@ namespace Edu.Module.Course
PlanRepeatList.Add(tempObj);
}
}
RB_Class_Plan_ViewModel model = new RB_Class_Plan_ViewModel();
var obj = new
{
item.ClassPlanId,
item.ClassId,
item.ClassName,
ClassDate=Common.ConvertHelper.FormatDate(item.ClassDate),
item.TeacherId,
item.TeacherName,
......@@ -782,8 +794,11 @@ namespace Edu.Module.Course
/// <param name="model"></param>
/// <param name="message"></param>
/// <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 = "";
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
......@@ -792,6 +807,13 @@ namespace Edu.Module.Course
if (model.Teacher_Id > 0)
{
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)
......@@ -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>
......
......@@ -2659,7 +2659,7 @@ namespace Edu.Module.Course
};
//HK2021-07-19新增【有效课时大于完成课时修改学员状态为正常】
string LogContent = "";
if (gmodel.CompleteHours < validClassHours)
if (gmodel.CompleteHours <= validClassHours)
{
keyValues.Add(nameof(RB_Order_Guest.GuestState), 1);
keyValues.Add(nameof(RB_Order_Guest.DropOutRemark), "有效课时大于完成课时,恢复学员状态!");
......
......@@ -24,9 +24,10 @@ namespace Edu.Repository.Course
{
StringBuilder builder = new StringBuilder();
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
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
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal);
......@@ -815,6 +816,105 @@ WHERE 1=1
}
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
}
}
......@@ -395,10 +395,8 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult BatchUpdateClassPlan()
{
var ClassId = base.ParmJObj.GetInt("ClassId");
//调动类型(1-课程,2-老师,3-教室,4-取消课程)
//调动类型(1-老师,2-教室,3-时段)
var ChangeType = base.ParmJObj.GetInt("ChangeType");
//调动选项(1-固定日期,2-全局调整)
int MoveType = base.ParmJObj.GetInt("MoveType");
var ClassRoomId = base.ParmJObj.GetInt("ClassRoomId");
var TeacherId = base.ParmJObj.GetInt("TeacherId");
var timeStr = base.ParmJObj.GetStringValue("TimeList");
......@@ -407,17 +405,79 @@ namespace Edu.WebApi.Controllers.Course
{
TimeList = Common.Plugin.JsonHelper.DeserializeObject<List<TimeItem>>(timeStr);
}
if (MoveType == 1)
var planIds = base.ParmJObj.GetStringValue("ClassPlanIdList");
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;
return flag ? ApiResult.Success(data:false) : ApiResult.Failed();
catch (Exception ex)
{
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>
......@@ -427,8 +487,16 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult GetRepeatClassPlan()
{
var ClassId = base.ParmJObj.GetInt("ClassId");
var classModel = classModule.GetClassModule(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>
......@@ -467,8 +535,8 @@ namespace Edu.WebApi.Controllers.Course
{
return ApiResult.ParamIsNull(message: "未找到此班级,请刷新页面重试!");
}
bool flag = classModule.SetClassStatusModule(extModel,out string message);
return flag ? ApiResult.Success(message: message) : ApiResult.Failed(message: message);
bool flag = classModule.SetClassStatusModule(extModel,out string message, out bool result);
return flag ? ApiResult.Success(message: message, data: result) : ApiResult.Failed(message: message, data: result);
}
/// <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