Commit 6163ad93 authored by 吴春's avatar 吴春

提交代码

parent 40b1fd63
......@@ -10,7 +10,16 @@ namespace Edu.Model.ViewModel.EduTask
/// </summary>
public class RB_Change_ClassPlan_ViewModel : RB_Change_ClassPlan
{
/// <summary>
/// 调整原数据信息
/// </summary>
public List<ChangePlanItem> OldChangePlanItemList { get; set; }
/// <summary>
/// 调整新数据信息
/// </summary>
public List<ChangePlanItem> NewChangePlanItemList { get; set; }
}
public class ChangePlanItem
......@@ -35,6 +44,11 @@ namespace Edu.Model.ViewModel.EduTask
/// </summary>
public int ClassRoomId { get; set; }
/// <summary>
///班级计划上课日期的上课时间表
/// </summary>
public List<Course.RB_Class_Time_ViewModel> PlanTimeList { get; set; }
}
}
......@@ -298,6 +298,7 @@ WHERE 1=1 and A.Status=0 and b.OrderState<>3
{
builder.AppendFormat($@" AND A.{nameof(RB_Order_Guest_ViewModel.GuestState)} ={demodel.GuestState}");
}
builder.AppendFormat($@" order by A.{nameof(RB_Order_Guest_ViewModel.Id)} desc");
return GetPage<RB_Order_Guest_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
}
......
......@@ -12,6 +12,33 @@ namespace Edu.Repository.EduTask
/// </summary>
public class RB_Change_ClassPlanRepository : BaseRepository<RB_Change_ClassPlan>
{
/// <summary>
/// 班级上课计划仓储层对象
/// </summary>
private readonly Course.RB_Class_PlanRepository class_PlanRepository = new Course.RB_Class_PlanRepository();
/// <summary>
/// 班级上课计划上课时间仓储层对象
/// </summary>
private readonly Course.RB_Class_TimeRepository class_TimeRepository = new Course.RB_Class_TimeRepository();
/// <summary>
/// 教室仓储层对象
/// </summary>
private readonly Course.RB_Class_RoomRepository class_RoomRepository = new Course.RB_Class_RoomRepository();
/// <summary>
/// 教师仓储层对象
/// </summary>
private readonly User.RB_TeacherRepository teacherRepository = new User.RB_TeacherRepository();
/// <summary>
/// 教务单据仓储层对象
/// </summary>
private readonly RB_Education_ReceiptRepository education_ReceiptRepository = new RB_Education_ReceiptRepository();
/// <summary>
/// 课程日志记录表
/// </summary>
private readonly Log.RB_Class_LogRepository classLogRepository = new Log.RB_Class_LogRepository();
/// <summary>
/// 获取调课计划列表
/// </summary>
......@@ -31,5 +58,155 @@ WHERE 1=1
}
return Get<RB_Change_ClassPlan_ViewModel>(builder.ToString()).ToList();
}
/// <summary>
/// 审核通过后更新调课信息
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public bool UpdateChangeClassPlan(object Id)
{
//查询当前调课信息
bool flag = false;
var model = GetEntity(Id);
if (model == null || model.Id == 0)
{
return false;
}
else
{//更新信息
string logContent = "";
StringBuilder builder = new StringBuilder();
List<ChangePlanItem> oldChangePlanItemList = new List<ChangePlanItem>();
List<ChangePlanItem> newChangePlanItemList = new List<ChangePlanItem>();
List<Model.Entity.Log.RB_Class_Log> classLogList = new List<Model.Entity.Log.RB_Class_Log>();
if (model.ChangeType == 1)//1.调课
{
//原数据
if (!string.IsNullOrWhiteSpace(model.SourceData))
{
oldChangePlanItemList = Common.Plugin.JsonHelper.DeserializeObject<List<ChangePlanItem>>(model.SourceData);
}
//目标数据
if (!string.IsNullOrWhiteSpace(model.TargetData))
{
newChangePlanItemList = Common.Plugin.JsonHelper.DeserializeObject<List<ChangePlanItem>>(model.TargetData);
}
foreach (var item in oldChangePlanItemList)
{
var newChangePlanItemModel = newChangePlanItemList.Where(x => x.ClassPlanId == item.ClassPlanId).FirstOrDefault();
if (item.ClassDate != newChangePlanItemModel.ClassDate)
{
logContent += string.Format("日期由【{0}】修改为【{1}】.", Common.ConvertHelper.FormatDate(item.ClassDate), Common.ConvertHelper.FormatDate(newChangePlanItemModel.ClassDate));
builder.AppendFormat(" update RB_Class_Plan ClassDate={0} where ClassPlanId ={1};", newChangePlanItemModel.ClassDate, item.ClassPlanId);
}
foreach (var itemTime in newChangePlanItemModel.PlanTimeList)
{
var oldTimeModel = item.PlanTimeList.Where(x => x.ClassTimeId == itemTime.ClassTimeId).FirstOrDefault();
if (oldTimeModel != null && oldTimeModel.ClassTimeId > 0)
{
if (oldTimeModel.StartTime != itemTime.StartTime)
{
logContent += string.Format("{0}上课开始时间由【{1}】修改为【{2}】.", Common.ConvertHelper.FormatDate(newChangePlanItemModel.ClassDate), oldTimeModel.StartTime, itemTime.EndTime);
}
if (oldTimeModel.EndTime != itemTime.EndTime)
{
logContent += string.Format("{0}上课结束时间由【{1}】修改为【{2}】.", Common.ConvertHelper.FormatDate(newChangePlanItemModel.ClassDate), oldTimeModel.EndTime, itemTime.EndTime);
}
if (oldTimeModel.StartTime != itemTime.StartTime|| oldTimeModel.EndTime != itemTime.EndTime)
{
builder.AppendFormat(" update rb_class_time StartTime={0} ,EndTime={1} where ClassTimeId ={1};", itemTime.StartTime, itemTime.EndTime, itemTime.ClassTimeId);
}
}
}
}
}
else if (model.ChangeType == 2 || model.ChangeType == 3)//更新老师或者更新教室
{
if (model.ChangeType == 2)
{
builder.AppendFormat(" update RB_Class_Plan TeacherId={0} where ClassPlanId in(1)", newChangePlanItemList.FirstOrDefault().TeacherId, string.Join(",", oldChangePlanItemList.Select(x => x.TeacherId)));
string tIds = string.Join(",", oldChangePlanItemList.Select(x => x.TeacherId)) + "," + newChangePlanItemList.FirstOrDefault().TeacherId;
var teacherList = teacherRepository.GetTeacherListRepository(new Model.ViewModel.User.RB_Teacher_ViewModel() { QTIds = tIds });
foreach (var item in oldChangePlanItemList)
{
logContent += string.Format(Common.ConvertHelper.FormatDate(item.ClassDate) + "的讲师由【{0}】修改为【{1}】.",
(teacherList?.Where(qitem => qitem.TId == item.TeacherId)?.FirstOrDefault()?.TeacherName ?? ""),
(teacherList?.Where(qitem => qitem.TId == newChangePlanItemList.FirstOrDefault().TeacherId)?.FirstOrDefault()?.TeacherName ?? "")
);
}
}
else if (model.ChangeType == 3)
{
builder.AppendFormat(" update RB_Class_Plan ClassRoomId={0} where ClassPlanId in(1)", newChangePlanItemList.FirstOrDefault().ClassRoomId, string.Join(",", oldChangePlanItemList.Select(x => x.ClassRoomId)));
string roomIds = string.Join(",", oldChangePlanItemList.Select(x => x.ClassRoomId)) + "," + newChangePlanItemList.FirstOrDefault().ClassRoomId;
var roomList = class_RoomRepository.GetClassRoomListRepository(new Edu.Model.ViewModel.Course.RB_Class_Room_ViewModel() { QRoomIds = roomIds });
foreach (var item in oldChangePlanItemList)
{
logContent += string.Format(Common.ConvertHelper.FormatDate(item.ClassDate) + "的教室由【{0}】修改为【{1}】.",
(roomList?.Where(qitem => qitem.RoomId == item.ClassRoomId)?.FirstOrDefault()?.RoomName ?? ""),
(roomList?.Where(qitem => qitem.RoomId == newChangePlanItemList.FirstOrDefault().ClassRoomId)?.FirstOrDefault()?.RoomName ?? "")
);
}
}
}
else if (model.ChangeType == 4)//取消课程
{
var oldPlanList = class_TimeRepository.GetClassTimeListRepository(new Edu.Model.ViewModel.Course.RB_Class_Time_ViewModel()
{
ClassId = model.ClassId,
QClassPlanIds = string.Join(",", oldChangePlanItemList.Select(x => x.ClassPlanId)),
});
List<int> deletePlanList = new List<int>();
List<int> deletePlanTimeList = new List<int>();
foreach (var item in oldPlanList.GroupBy(x => x.ClassPlanId))
{
var tempPlanTimeList = oldPlanList.Where(x => x.ClassPlanId == item.Key);
var oldPlanTimeModel = oldChangePlanItemList.Where(x => x.ClassPlanId == item.Key).FirstOrDefault();
if (tempPlanTimeList.Count() == oldPlanTimeModel.PlanTimeList.Count())
{
deletePlanList.Add(item.Key);
}
deletePlanTimeList.AddRange(oldPlanTimeModel.PlanTimeList.Select(x => x.ClassTimeId));
}
foreach (var item in oldChangePlanItemList)
{
foreach (var itemTime in item.PlanTimeList)
{
logContent += string.Format("删除{0}上课时间【{1} - {2}】.", Common.ConvertHelper.FormatDate(item.ClassDate), itemTime.StartTime, itemTime.EndTime);
}
}
if (deletePlanList != null && deletePlanList.Any())
{
builder.AppendFormat(" update RB_Class_Plan Status=1 where ClassPlanId in(0);", string.Join(",", deletePlanList.Select(x => x)));
}
if (deletePlanTimeList != null && deletePlanTimeList.Any())
{
builder.AppendFormat(" DELETE FROM rb_class_time where classtimeId in(0)", string.Join(",", deletePlanTimeList.Select(x => x)));
}
}
flag = class_PlanRepository.Execute(builder.ToString()) > 0;
if (!string.IsNullOrEmpty(logContent) && flag)
{
classLogRepository.AddClassLogRepository(
new Model.Entity.Log.RB_Class_Log()
{
LogType = Common.Enum.Course.ClassLogTypeEnum.Class,
LogContent = logContent,
ClassId = model.ClassId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
CreateBy = model.CreateBy
});
}
}
return flag;
}
}
}
using Edu.Common.API;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.EduTask;
using Edu.Module.EduTask;
using Edu.WebApi.Filter;
......@@ -36,18 +37,62 @@ namespace Edu.WebApi.Controllers.EduTask
{
var model = new RB_Change_ClassPlan_ViewModel()
{
Id=base.ParmJObj.GetInt("Id"),
ClassId=base.ParmJObj.GetInt("ClassId"),
CourseId=base.ParmJObj.GetInt("CourseId"),
ChangeType=base.ParmJObj.GetInt("ChangeType"),
MoveType=base.ParmJObj.GetInt("MoveType"),
SourceData=base.ParmJObj.GetStringValue("SourceData"),
TargetData=base.ParmJObj.GetStringValue("TargetData"),
Id = base.ParmJObj.GetInt("Id"),
ClassId = base.ParmJObj.GetInt("ClassId"),
CourseId = base.ParmJObj.GetInt("CourseId"),
ChangeType = base.ParmJObj.GetInt("ChangeType"),
MoveType = base.ParmJObj.GetInt("MoveType"),
// SourceData=base.ParmJObj.GetStringValue("SourceData"),
// TargetData=base.ParmJObj.GetStringValue("TargetData"),
};
model.Group_Id = base.UserInfo.Group_Id;
model.School_Id = base.UserInfo.School_Id;
try
{
model.OldChangePlanItemList = Common.Plugin.JsonHelper.DeserializeObject<List<ChangePlanItem>>(base.ParmJObj.GetStringValue("OldChangePlanItemList"));
model.NewChangePlanItemList = Common.Plugin.JsonHelper.DeserializeObject<List<ChangePlanItem>>(base.ParmJObj.GetStringValue("NewChangePlanItemList"));
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "SetChangeClassPlan");
}
if (model.ChangeType == 1)//调课
{
if (model.OldChangePlanItemList.Count() != model.NewChangePlanItemList.Count())
{
return ApiResult.Failed("排课原次数与现有次数不一致");
}
foreach (var item in model.OldChangePlanItemList)
{
if (item.PlanTimeList.Count() != model.NewChangePlanItemList.Where(x => x.ClassDate == item.ClassDate).Count())
{
return ApiResult.Failed(item.ClassDate.ToString("yyyy-MM-dd") + "号的排课原课时数与现有课时数不一致");
}
}
}
if (model.OldChangePlanItemList != null && model.OldChangePlanItemList.Any())
{
model.SourceData = JsonHelper.Serialize(model.OldChangePlanItemList);
}
else
{
model.SourceData = "";
}
if (model.NewChangePlanItemList != null && model.NewChangePlanItemList.Any())
{
model.TargetData = JsonHelper.Serialize(model.NewChangePlanItemList);
}
else
{
model.TargetData = "";
}
if (model.Id == 0)
{
model.CreateBy = base.UserInfo.Id;
model.CreateTime = DateTime.Now;
model.Group_Id = base.UserInfo.Group_Id;
model.School_Id = base.UserInfo.School_Id;
}
model.UpdateBy = base.UserInfo.Id;
model.UpdateTime = DateTime.Now;
bool flag = changeClassPlanModule.SetChangeClassPlanModule(model);
......
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