Commit 4a69f56a authored by liudong1993's avatar liudong1993

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

parents ae111b23 841c9b8d
......@@ -151,5 +151,20 @@ namespace Edu.Model.Entity.Course
/// 完成进度
/// </summary>
public int CompleteProgress { get; set; }
/// <summary>
/// 班级类型(1-学生班,2-社会班)
/// </summary>
public int ClassType { get; set; }
/// <summary>
/// 默认时间字符串JSON
/// </summary>
public string DefaultTimeJson { get; set; }
/// <summary>
/// 默认选中的日期、周
/// </summary>
public string DateJson { get; set; }
}
}
using Edu.Common.Enum;
using System;
using VT.FW.DB;
namespace Edu.Model.Entity.Course
{
/// <summary>
/// 教室管理实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Class_Check
{
/// <summary>
/// 主键编号
/// </summary>
public int ClassCheckId { get; set; }
/// <summary>
/// 班级编号
/// </summary>
public int ClassId { get; set; }
/// <summary>
/// 上课日期
/// </summary>
public DateTime ClassDate { get; set; }
/// <summary>
/// 状态
/// </summary>
public DateStateEnum Status { get; set; }
/// <summary>
/// 教室编号
/// </summary>
public int ClassRoomId { get; set; }
/// <summary>
/// 集团编号
/// </summary>
public int Group_Id { get; set; }
/// <summary>
/// 所属校区
/// </summary>
public int School_Id { get; set; }
/// <summary>
/// 教师编号
/// </summary>
public int TeacherId { get; set; }
/// <summary>
/// 学员id
/// </summary>
public int OrderGuestId { get; set; }
/// <summary>
/// 0-正常,1-缺席 签到状态
/// </summary>
public int CheckStatus { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.User
{
/// <summary>
/// 部门岗位关联表实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Department_Post
{
/// <summary>
/// 部门岗位关联表主键Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 部门编号
/// </summary>
public int Dept_Id { get; set; }
/// <summary>
/// 岗位编号
/// </summary>
public int PostId { get; set; }
}
}
......@@ -21,11 +21,6 @@ namespace Edu.Model.Entity.User
/// </summary>
public string PostName { get; set; }
/// <summary>
/// 部门编号
/// </summary>
public int RB_Dept_Id { get; set; }
/// <summary>
/// 集团编号
/// </summary>
......
using System;
using System.Collections.Generic;
using System.Text;
using Edu.Model.Entity.Course;
namespace Edu.Model.ViewModel.Course
{
public class RB_Class_Check_ViewModel: RB_Class_Check
{
/// <summary>
/// 【查询使用】
/// </summary>
public string EndDate { get; set; }
/// <summary>
///【查询使用】
/// </summary>
public string StartDate { get; set; }
}
}
......@@ -42,5 +42,10 @@ namespace Edu.Model.ViewModel.Course
/// 周几
/// </summary>
public string WeekDay { get; set; }
/// <summary>
/// 班级对应的老师id
/// </summary>
public int Teacher_Id { get; set; }
}
}
......@@ -84,6 +84,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public List<RB_Class_Time_ViewModel> ClassTimeList { get; set; }
/// <summary>
///班级计划默认上课时间
/// </summary>
public List<RB_Class_Time_ViewModel> DefaultTimeList { get; set; }
/// <summary>
/// 开班开始时间
/// </summary>
......
using Edu.Model.Entity.User;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.User
{
/// <summary>
/// 部门岗位关联表视图实体类
/// </summary>
public class RB_Department_Post_ViewModel: RB_Department_Post
{
/// <summary>
/// 岗位名称
/// </summary>
public string PostName { get; set; }
/// <summary>
/// 部门编号【查询使用,逗号分隔】
/// </summary>
public string QDeptIds { get; set; }
}
}
......@@ -65,5 +65,15 @@ namespace Edu.Model.ViewModel.User
return Common.ConvertHelper.StringToList(this.ManagerIds);
}
}
/// <summary>
/// 部门管理岗位列表
/// </summary>
public List<RB_Department_Post_ViewModel> DeptPostList { get; set; }
/// <summary>
/// 选择的岗位
/// </summary>
public List<int> ChoosePostList { get; set; }
}
}
\ No newline at end of file
......@@ -43,11 +43,6 @@ namespace Edu.Model.ViewModel.User
}
}
/// <summary>
/// 所属部门
/// </summary>
public string DeptName { get; set; }
/// <summary>
/// 岗位编号查询
/// </summary>
......
......@@ -54,6 +54,10 @@ namespace Edu.Module.Course
/// 课程日志记录表
/// </summary>
private readonly RB_Class_LogRepository classLogRepository = new RB_Class_LogRepository();
/// <summary>
/// 课程签到记录表
/// </summary>
private readonly RB_Class_CheckRepository classCheckRepository = new RB_Class_CheckRepository();
/// <summary>
/// 课程日志记录表
......@@ -127,6 +131,11 @@ namespace Edu.Module.Course
bool flag = false;
if (model.ClassId > 0)
{
var oldModel = GetClassModule(model.ClassId);
if (oldModel.Teacher_Id != model.Teacher_Id && model.Teacher_Id > 0 && oldModel.Teacher_Id > 0)
{
class_PlanRepository.UpdatePlanTeacherIdRepository(model.Teacher_Id, model.ClassId);
}
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Class_ViewModel.ClassName),model.ClassName},
......@@ -149,7 +158,9 @@ namespace Edu.Module.Course
{ nameof(RB_Class_ViewModel.ClassStyle),model.ClassStyle},
{ nameof(RB_Class_ViewModel.ClassStatus),model.ClassStatus},
{ nameof(RB_Class_ViewModel.InnerRemark),model.InnerRemark},
{ nameof(RB_Class_ViewModel.OutRemark),model.OutRemark},
{ nameof(RB_Class_ViewModel.ClassType),model.ClassType},
{ nameof(RB_Class_ViewModel.DefaultTimeJson),model.DefaultTimeJson},
{ nameof(RB_Class_ViewModel.DateJson),model.DateJson},
//{ nameof(RB_Class_ViewModel.CompleteProgress),model.CompleteProgress},
};
flag = classRepository.Update(fileds, new WhereHelper(nameof(RB_Class_ViewModel.ClassId), model.ClassId));
......@@ -238,16 +249,66 @@ namespace Edu.Module.Course
}
//班级上课计划列表
List<RB_Class_Plan_ViewModel> classPlanList = new List<RB_Class_Plan_ViewModel>();
//删除班级计划
switch (model.ClassStyle)
List<RB_Class_Plan_ViewModel> classPlanList = CreateClassPlanList(model, defaultPlanTimeList);
model.ClassPlanList = classPlanList;
if (model.ClassPlanList != null && model.ClassPlanList.Count > 0)
{
//按周排课
case Common.Enum.Course.ClassStyleEnum.Week:
if (model.WeekDayList != null && model.WeekDayList.Count > 0)
foreach (var item in model.ClassPlanList)
{
item.ClassPlanId = 0;
if (!class_PlanRepository.CheckExistsRepository(item))
{
var srartDate = model.OpenTime;
for (var i = 0; i < 120; i++)
//添加班级上课计划
var newClassPlanId = class_PlanRepository.Insert(item);
if (item.PlanTimeList != null && item.PlanTimeList.Count > 0)
{
foreach (var subItem in item.PlanTimeList)
{
subItem.ClassTimeId = 0;
subItem.ClassPlanId = newClassPlanId;
//添加班级上课计划的上课时间
class_TimeRepository.Insert(subItem);
}
}
}
}
}
#endregion
return flag;
}
/// <summary>
/// 生成班级上课计划表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
private List<RB_Class_Plan_ViewModel> CreateClassPlanList(RB_Class_ViewModel model,List<RB_Class_Time_ViewModel> defaultPlanTimeList)
{
List<RB_Class_Plan_ViewModel> classPlanList = new List<RB_Class_Plan_ViewModel>();
double totalMinutes = 0;
foreach (var item in defaultPlanTimeList)
{
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 > 0)
{
totalMinutes += span.TotalMinutes;
}
}
//计算每天课时数
var dayClassHour = totalMinutes / 45.0;
if (dayClassHour > 0)
{
var totalDay = model.ClassHours / dayClassHour;
var srartDate = model.OpenTime;
switch (model.ClassStyle)
{
//按周排课
case Common.Enum.Course.ClassStyleEnum.Week:
int i = 0;
while (classPlanList.Count < totalDay)
{
var newDate = srartDate.AddDays(i);
foreach (var item in model.WeekDayList)
......@@ -368,32 +429,37 @@ namespace Edu.Module.Course
break;
}
}
i++;
}
}
break;
//按月排课
case Common.Enum.Course.ClassStyleEnum.Month:
if (model.WeekDayList != null && model.WeekDayList.Count > 0)
{
foreach (var item in model.WeekDayList)
break;
//按月排课
case Common.Enum.Course.ClassStyleEnum.Month:
int j = 0;
while (classPlanList.Count < totalDay)
{
classPlanList.Add(new RB_Class_Plan_ViewModel()
var newDate = srartDate.AddDays(j);
foreach (var item in model.WeekDayList)
{
ClassDate = Convert.ToDateTime(item),
ClassId = model.ClassId,
ClassPlanId = 0,
ClassRoomId = model.ClassRoomId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
PlanTimeList = defaultPlanTimeList,
TeacherId = model.Teacher_Id,
});
if (newDate.Day == Convert.ToInt32(item))
{
classPlanList.Add(new RB_Class_Plan_ViewModel()
{
ClassDate = newDate,
ClassId = model.ClassId,
ClassPlanId = 0,
ClassRoomId = model.ClassRoomId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
PlanTimeList = defaultPlanTimeList,
TeacherId = model.Teacher_Id,
});
}
}
j++;
}
}
break;
//固定日期排课
case Common.Enum.Course.ClassStyleEnum.FixedDate:
{
break;
//固定日期排课
case Common.Enum.Course.ClassStyleEnum.FixedDate:
foreach (var item in model.WeekDayList)
{
classPlanList.Add(new RB_Class_Plan_ViewModel()
......@@ -408,34 +474,10 @@ namespace Edu.Module.Course
TeacherId = model.Teacher_Id,
});
}
}
break;
}
model.ClassPlanList = classPlanList;
if (model.ClassPlanList != null && model.ClassPlanList.Count > 0)
{
foreach (var item in model.ClassPlanList)
{
item.ClassPlanId = 0;
if (!class_PlanRepository.CheckExistsRepository(item))
{
//添加班级上课计划
var newClassPlanId = class_PlanRepository.Insert(item);
if (item.PlanTimeList != null && item.PlanTimeList.Count > 0)
{
foreach (var subItem in item.PlanTimeList)
{
subItem.ClassTimeId = 0;
subItem.ClassPlanId = newClassPlanId;
//添加班级上课计划的上课时间
class_TimeRepository.Insert(subItem);
}
}
}
break;
}
}
#endregion
return flag;
return classPlanList;
}
/// <summary>
......@@ -461,6 +503,14 @@ namespace Edu.Module.Course
item.PlanTimeList = timeList?.Where(qitem => qitem.ClassPlanId == item.ClassPlanId)?.ToList() ?? new List<RB_Class_Time_ViewModel>();
}
}
if (!string.IsNullOrEmpty(extModel.DefaultTimeJson))
{
extModel.DefaultTimeList = Common.Plugin.JsonHelper.DeserializeObject<List<RB_Class_Time_ViewModel>>(extModel.DefaultTimeJson);
}
if (!string.IsNullOrEmpty(extModel.DateJson) && extModel.ClassStyle!= Common.Enum.Course.ClassStyleEnum.OnLine)
{
extModel.WeekDayList= Common.Plugin.JsonHelper.DeserializeObject<List<string>>(extModel.DateJson);
}
}
return extModel;
}
......@@ -497,11 +547,13 @@ namespace Edu.Module.Course
{
timeList = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { QClassPlanIds = Ids });
}
DateTime today = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));
foreach (var item in planList)
{
item.PlanTimeList = timeList?.Where(qitem => qitem.ClassPlanId == item.ClassPlanId)?.ToList();
list.Add(new
{
IsEndDate = item.ClassDate <= today ? true : false,
item.ClassPlanId,
item.ClassId,
item.ClassDate,
......@@ -528,6 +580,25 @@ namespace Edu.Module.Course
return class_PlanRepository.DeleteOne(new WhereHelper(nameof(RB_Class_Plan_ViewModel.ClassPlanId), ClassPlanId));
}
/// <summary>
/// 检查班级上课日期是否存在
/// </summary>
/// <param name="extModel"></param>
/// <returns></returns>
public bool CheckPlanModule(RB_Class_Plan_ViewModel extModel)
{
List<WhereHelper> list = new List<WhereHelper>()
{
new WhereHelper (nameof(RB_Class_Plan_ViewModel.ClassId),extModel.ClassId),
new WhereHelper (nameof(RB_Class_Plan_ViewModel.ClassDate),extModel.ClassDate),
};
if (extModel.ClassPlanId > 0)
{
list.Add(new WhereHelper(nameof(RB_Class_Plan_ViewModel.ClassPlanId), extModel.ClassPlanId, OperatorEnum.NotEqual));
}
return class_PlanRepository.Exists(list);
}
/// <summary>
/// 新增修改班级上课计划
/// </summary>
......@@ -618,7 +689,7 @@ namespace Edu.Module.Course
var orderStudentList = order_GuestRepository.GetList(new RB_Order_Guest_ViewModel()
{
ClassId = classId
});
}).Where(x => x.GuestState == 1).ToList();
var classModel = GetClassModule(classId);
var courseModel = courseRepository.GetEntity((classModel?.CouseId ?? 0));
if (orderStudentList != null && orderStudentList.Count > 0)
......@@ -643,6 +714,17 @@ namespace Edu.Module.Course
return list;
}
/// <summary>
/// 根据班级id获取订单学员信息
/// </summary>
/// <param name="classId"></param>
/// <returns></returns>
public List<RB_Order_Guest_ViewModel> GetOrderGuest(RB_Order_Guest_ViewModel model)
{
return order_GuestRepository.GetList(model);
}
/// <summary>
/// 更新学生的退课信息
/// </summary>
......@@ -653,14 +735,20 @@ namespace Edu.Module.Course
public bool UpdateClassStudentDropOutModule(string ids, string dropOutRemark, int classId, int createBy, int group_Id, int school_Id, string studentName)
{
bool flag = false;
Dictionary<string, object> fileds = new Dictionary<string, object>()
foreach (var item in ids.Split(","))
{
if (!string.IsNullOrWhiteSpace(item))
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.GuestState),2},
{nameof(RB_Order_Guest_ViewModel.DropOutRemark),dropOutRemark}
};
//写日志
flag = order_GuestRepository.Update(fileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), ids, OperatorEnum.IN));
//写日志
flag = order_GuestRepository.Update(fileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), item));
}
}
if (flag)
{
......@@ -697,5 +785,79 @@ namespace Edu.Module.Course
}
/// <summary>
/// 新增签到
/// </summary>
/// <param name="Ids"></param>
/// <param name="DropOutRemark"></param>
/// <returns></returns>
[TransactionCallHandler]
public bool AddClassCheckModule(List<RB_Class_Check_ViewModel> list)
{
bool flag = false;
//写日志
flag = classCheckRepository.InsertBatch(list);
return flag;
}
/// <summary>
/// 获取班级上课记录
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> GetClassPlanLogPageListRepository(int pageIndex, int pageSize, out long rowsCount, RB_Class_Plan_ViewModel query)
{
return class_PlanRepository.GetClassPlanLogPageListRepository(pageIndex, pageSize, out rowsCount, query);
}
/// <summary>
/// 获取班级上课计划
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> GetClassPlanModelRepository(RB_Class_Plan_ViewModel query)
{
return class_PlanRepository.GetClassPlanModelRepository(query);
}
/// <summary>
/// 获取每天签到记录
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetClassCheckListRepository(RB_Class_Check_ViewModel query)
{
return classCheckRepository.GetClassCheckListRepository(query);
}
/// <summary>
/// 获取班级上课计划列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> GetClassPlanListRepository(RB_Class_Plan_ViewModel query)
{
return class_PlanRepository.GetClassPlanListRepository(query);
}
/// <summary>
/// 获取学生列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_ViewModel> GetStudentListRepository(RB_Student_ViewModel query)
{
return studentRepository.GetStudentListRepository(query);
}
}
}
......@@ -21,12 +21,16 @@ namespace Edu.Module.User
/// </summary>
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
/// <summary>
/// 岗位仓储层对象
/// </summary>
private readonly RB_PostRepository postRepository = new RB_PostRepository();
/// <summary>
/// 部门岗位关联表仓储层对象
/// </summary>
private readonly RB_Department_PostRepository department_PostRepository = new RB_Department_PostRepository();
/// <summary>
/// 获取部门分页列表
/// </summary>
......@@ -40,6 +44,7 @@ namespace Edu.Module.User
var list = departmentRepository.GetDepartmentPageListRepository(pageIndex, pageSize, out rowsCount, query);
List<RB_Department_ViewModel> parentList = new List<RB_Department_ViewModel>();
List<Employee_ViewModel> empList = new List<Employee_ViewModel>();
List<RB_Department_Post_ViewModel> deptPostList = new List<RB_Department_Post_ViewModel>();
if (list != null && list.Count > 0)
{
//查询部门列表
......@@ -54,6 +59,12 @@ namespace Edu.Module.User
{
empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { QIds = persion });
}
string qDeptIds = string.Join(",", list.Select(qitem => qitem.DeptId));
if (!string.IsNullOrEmpty(qDeptIds))
{
deptPostList = department_PostRepository.GetDepartmentPostListRepository(new RB_Department_Post_ViewModel() { QDeptIds = qDeptIds });
}
}
foreach (var item in list)
{
......@@ -73,6 +84,7 @@ namespace Edu.Module.User
persionName = persionName.Substring(1);
}
item.ManagerName = persionName;
item.DeptPostList = deptPostList?.Where(qitem => qitem.Dept_Id == item.DeptId)?.ToList() ?? new List<RB_Department_Post_ViewModel>();
}
return list;
}
......@@ -217,22 +229,22 @@ namespace Edu.Module.User
#region 添加岗位
if (isQueryPost)
{
var tempPostList = postList?.Where(qitem => qitem.RB_Dept_Id == fItem.DeptId)?.ToList();
if (tempPostList != null && tempPostList.Count > 0)
{
foreach (var pItem in tempPostList)
{
tModel.ChildList.Add(new DepartmentTree_ViewModel()
{
DeptId = pItem.PostId,
DeptName = pItem.PostName,
ParentId = 0,
ChildList = new List<DepartmentTree_ViewModel>(),
School_Id = fItem.School_Id,
DataType = 3,
});
}
}
//var tempPostList = postList?.Where(qitem => qitem.RB_Dept_Id == fItem.DeptId)?.ToList();
//if (tempPostList != null && tempPostList.Count > 0)
//{
// foreach (var pItem in tempPostList)
// {
// tModel.ChildList.Add(new DepartmentTree_ViewModel()
// {
// DeptId = pItem.PostId,
// DeptName = pItem.PostName,
// ParentId = 0,
// ChildList = new List<DepartmentTree_ViewModel>(),
// School_Id = fItem.School_Id,
// DataType = 3,
// });
// }
//}
}
#endregion
......@@ -296,22 +308,22 @@ namespace Edu.Module.User
#region 添加岗位
if (postList != null && postList.Count > 0)
{
var tempPostList = postList?.Where(qitem => qitem.RB_Dept_Id == item.DeptId)?.ToList();
if (tempPostList != null && tempPostList.Count > 0)
{
foreach (var pItem in tempPostList)
{
model.ChildList.Add(new DepartmentTree_ViewModel()
{
DeptId = pItem.PostId,
DeptName = pItem.PostName,
ParentId = 0,
ChildList = new List<DepartmentTree_ViewModel>(),
School_Id = item.School_Id,
DataType = 3,
});
}
}
//var tempPostList = postList?.Where(qitem => qitem.RB_Dept_Id == item.DeptId)?.ToList();
//if (tempPostList != null && tempPostList.Count > 0)
//{
// foreach (var pItem in tempPostList)
// {
// model.ChildList.Add(new DepartmentTree_ViewModel()
// {
// DeptId = pItem.PostId,
// DeptName = pItem.PostName,
// ParentId = 0,
// ChildList = new List<DepartmentTree_ViewModel>(),
// School_Id = item.School_Id,
// DataType = 3,
// });
// }
//}
}
#endregion
......@@ -399,7 +411,7 @@ namespace Edu.Module.User
/// </summary>
/// <param name="extModel"></param>
/// <returns></returns>
public bool SetDepartmentModule(RB_Department_ViewModel extModel)
public virtual bool SetDepartmentModule(RB_Department_ViewModel extModel)
{
bool flag;
if (extModel.DeptId > 0)
......@@ -425,6 +437,20 @@ namespace Edu.Module.User
extModel.DeptId = newId;
flag = newId > 0;
}
department_PostRepository.DeleteOne(new WhereHelper(nameof(RB_Department_Post_ViewModel.Dept_Id), extModel.DeptId));
if (extModel.ChoosePostList != null && extModel.ChoosePostList.Count > 0)
{
foreach (var item in extModel.ChoosePostList)
{
var deptPostModel = new RB_Department_Post_ViewModel()
{
Id = 0,
Dept_Id = extModel.DeptId,
PostId = item
};
department_PostRepository.Insert(deptPostModel);
}
}
return flag;
}
......@@ -435,7 +461,22 @@ namespace Edu.Module.User
/// <returns></returns>
public RB_Department_ViewModel GetDepartmentModule(object DeptId)
{
return departmentRepository.GetEntity<RB_Department_ViewModel>(DeptId);
var extModel = departmentRepository.GetEntity<RB_Department_ViewModel>(DeptId);
if (extModel != null && extModel.DeptId > 0)
{
var deptPostList = department_PostRepository.GetDepartmentPostListRepository(new RB_Department_Post_ViewModel()
{
Dept_Id = extModel.DeptId
});
extModel.ChoosePostList = new List<int>();
if (deptPostList != null && deptPostList.Count > 0)
{
}
extModel.DeptPostList = deptPostList;
}
return extModel;
}
/// <summary>
......
......@@ -61,7 +61,6 @@ namespace Edu.Module.User
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Post_ViewModel.PostName),extModel.PostName },
{nameof(RB_Post_ViewModel.RB_Dept_Id),extModel.RB_Dept_Id },
{nameof(RB_Post_ViewModel.UpdateBy),extModel.UpdateBy },
{nameof(RB_Post_ViewModel.UpdateTime),extModel.UpdateTime },
};
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using VT.FW.DB.Dapper;
namespace Edu.Repository.Course
{
public class RB_Class_CheckRepository:BaseRepository<RB_Class_Check>
{
/// <summary>
/// 获取教室列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetClassCheckListRepository(RB_Class_Check_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" SELECT A.* FROM RB_Class_Check AS A WHERE 1=1 ");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.School_Id), query.School_Id);
}
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.ClassId), query.ClassId);
}
if (!string.IsNullOrWhiteSpace(query.StartDate))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.CreateTime), query.StartDate);
}
if (!string.IsNullOrWhiteSpace(query.EndDate))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.CreateTime), query.EndDate);
}
}
return Get<RB_Class_Check_ViewModel>(builder.ToString()).ToList();
}
}
}
using Edu.Common.Enum;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Course;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
......@@ -34,6 +35,18 @@ WHERE 1=1
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (query.ClassPlanId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassPlanId), query.ClassPlanId);
}
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
}
if (!string.IsNullOrEmpty(query.QClassIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Class_Plan_ViewModel.ClassId), query.QClassIds);
......@@ -61,6 +74,23 @@ WHERE 1=1
return base.Exists(list);
}
/// <summary>
/// 老师改变则修改后面的代课老师为新的教师编号
/// </summary>
/// <param name="TeacherId"></param>
/// <param name="classId"></param>
/// <returns></returns>
public bool UpdatePlanTeacherIdRepository(int TeacherId, int classId)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
UPDATE rb_class_plan
SET TeacherId={0}
WHERE ClassId={1} AND ClassDate>'{2}'
", TeacherId, classId, DateTime.Now.ToString("yyyy-MM-dd"));
return base.Execute(builder.ToString()) > 0;
}
/// <summary>
/// 根据班级编号删除班级上课计划
/// </summary>
......@@ -91,5 +121,84 @@ WHERE c.ClassStyle =2 AND p.`Status`=0 and p.ClassId in({classIds}) GROUP BY p.
list1.AddRange(list2);
return list1;
}
/// <summary>
/// 获取班级上课记录
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> GetClassPlanLogPageListRepository(int pageIndex, int pageSize, out long rowsCount, RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" SELECT a.*,b.Teacher_Id,c.TeacherName from rb_class_plan as a
LEFT JOIN rb_class as b on a.ClassId=b.ClassId
LEFT JOIN rb_teacher as c on c.TId=a.TeacherId
where a.`Status`=0 and DATE_FORMAT(a.ClassDate,'%Y-%m-%d')<=DATE_FORMAT(NOW(),'%Y-%m-%d') ");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
}
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (query.Status >= 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)query.Status);
}
}
builder.AppendFormat(@" order by ClassDate desc ");
return GetPage<RB_Class_Plan_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
/// <summary>
/// 获取班级上课计划
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> GetClassPlanModelRepository(RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" SELECT a.* from rb_class_plan as a
where a.`Status`=0 and DATE_FORMAT(a.ClassDate,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d') ");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
}
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (query.Status >= 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)query.Status);
}
}
builder.AppendFormat(@" order by ClassDate desc ");
return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList();
}
}
}
using Edu.Model.Entity.User;
using Edu.Model.ViewModel.User;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Edu.Repository.User
{
/// <summary>
/// 部门岗位关联表仓储层
/// </summary>
public class RB_Department_PostRepository : BaseRepository<RB_Department_Post>
{
/// <summary>
/// 获取部门管理岗位列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Department_Post_ViewModel> GetDepartmentPostListRepository(RB_Department_Post_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.PostName,'') AS PostName
FROM rb_department_post AS A LEFT JOIN rb_post AS B ON A.PostId=B.PostId
WHERE 1=1
");
if (query == null)
{
return new List<RB_Department_Post_ViewModel>();
}
else
{
if (query.Dept_Id > 0)
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Department_Post_ViewModel.Dept_Id), query.Dept_Id);
}
if (!string.IsNullOrEmpty(query.QDeptIds))
{
builder.AppendFormat(" AND {0} IN ({1}) ", nameof(RB_Department_Post_ViewModel.Dept_Id), query.QDeptIds);
}
}
return Get<RB_Department_Post_ViewModel>(builder.ToString()).ToList();
}
}
}
......@@ -27,8 +27,8 @@ namespace Edu.Repository.User
DynamicParameters parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.DeptName,'') AS DeptName
FROM rb_post AS A LEFT JOIN rb_department AS B ON A.RB_Dept_Id=B.DeptId
SELECT A.*
FROM rb_post AS A
WHERE 1=1
");
if (query != null)
......@@ -83,10 +83,6 @@ WHERE 1=1
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.PostId)}={query.PostId} ");
}
if (query.RB_Dept_Id > 0)
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.RB_Dept_Id)}={query.RB_Dept_Id} ");
}
if (!string.IsNullOrEmpty(query.QPostIds))
{
builder.Append($" AND A.{nameof(RB_Post_ViewModel.PostId)} IN({query.QPostIds}) ");
......
......@@ -60,6 +60,13 @@ WHERE 1=1
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.AreaId), query.AreaId);
}
if (query.StuStatus > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_ViewModel.StuStatus), query.StuStatus);
}
else {
builder.AppendFormat(" AND t.{0} in({1}) ", nameof(RB_Student_ViewModel.StuStatus), "1,2");
}
}
return Get<RB_Student_ViewModel>(builder.ToString(),parameters).ToList();
}
......
......@@ -58,6 +58,7 @@ namespace Edu.WebApi.Controllers.Course
{
item.ClassId,
item.ClassName,
item.School_Id,
item.SchoolName,
item.CourseName,
item.Teacher_Id,
......@@ -125,6 +126,7 @@ namespace Edu.WebApi.Controllers.Course
OutRemark = base.ParmJObj.GetStringValue("OutRemark"),
CompleteProgress = base.ParmJObj.GetInt("CompleteProgress"),
School_Id = base.ParmJObj.GetInt("School_Id"),
ClassType=base.ParmJObj.GetInt("ClassType"),
};
try
{
......@@ -138,12 +140,52 @@ namespace Edu.WebApi.Controllers.Course
{
Common.Plugin.LogHelper.Write(ex, "SetClass_ClassStepPriceList");
}
//排课方式
try
{
string WeekDayListStr = base.ParmJObj.GetStringValue("WeekDayList");
if (!string.IsNullOrEmpty(WeekDayListStr))
switch (extModel.ClassStyle)
{
extModel.WeekDayList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(WeekDayListStr);
//按周排课
case ClassStyleEnum.Week:
if (!string.IsNullOrEmpty(WeekDayListStr))
{
extModel.WeekDayList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(WeekDayListStr);
extModel.DateJson = Common.Plugin.JsonHelper.Serialize(extModel.WeekDayList);
}
else
{
extModel.DateJson = "";
}
break;
//固定日期排课
case ClassStyleEnum.FixedDate:
if (!string.IsNullOrEmpty(WeekDayListStr))
{
extModel.WeekDayList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(WeekDayListStr);
extModel.DateJson = Common.Plugin.JsonHelper.Serialize(extModel.WeekDayList);
}
else
{
extModel.DateJson = "";
}
break;
//按月排课
case ClassStyleEnum.Month:
if (!string.IsNullOrEmpty(WeekDayListStr))
{
extModel.WeekDayList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(WeekDayListStr);
extModel.DateJson = Common.Plugin.JsonHelper.Serialize(extModel.WeekDayList);
}
else
{
extModel.DateJson = "";
}
break;
//网约课
case ClassStyleEnum.OnLine:
extModel.DateJson = "";
break;
}
}
catch (Exception ex)
......@@ -184,7 +226,13 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.ParamIsNull(message: message);
}
}
extModel.DefaultTimeJson = Common.Plugin.JsonHelper.Serialize(extModel.DefaultPlanTimeList);
}
else
{
extModel.DefaultTimeJson = "";
}
bool flag = classModule.SetClassModule(extModel);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
......@@ -259,6 +307,10 @@ namespace Edu.WebApi.Controllers.Course
TeacherId = base.ParmJObj.GetInt("TeacherId"),
Group_Id = base.UserInfo.Group_Id,
};
if (classModule.CheckPlanModule(extModel))
{
return ApiResult.Failed(message: "已经存在【"+Common.ConvertHelper.FormatDate(extModel.ClassDate)+"】的上课安排!请删除后再操作!");
}
extModel.School_Id = classModule.GetClassModule(extModel.ClassId)?.School_Id ?? 0;
try
{
......@@ -311,6 +363,28 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.Success(data: data);
}
/// <summary>
/// 获取某一天的上课计划列表
/// </summary>
/// <returns></returns>
public ApiResult GetDayClassPlan()
{
var classId = base.ParmJObj.GetInt("ClassId");
var classPlanId = base.ParmJObj.GetInt("ClassPlanId");
var schoolId = base.ParmJObj.GetInt("SchoolId");
if (classId == 0 || classPlanId == 0 || schoolId == 0)
{
return ApiResult.ParamIsNull();
}
var data = classModule.GetClassPlanListRepository(new RB_Class_Plan_ViewModel { ClassId = classId, ClassPlanId = classPlanId, Group_Id = base.UserInfo.Group_Id, School_Id = schoolId }).FirstOrDefault();
if (data == null || data.ClassPlanId == 0)
{
return ApiResult.Failed("数据不存在");
}
return ApiResult.Success(data: new { data.TeacherName, data.RoomName, ClassDate = data.ClassDate.ToString("yyyy-MM-dd") });
}
/// <summary>
/// 更新学生的退课状态
/// </summary>
......@@ -352,8 +426,106 @@ namespace Edu.WebApi.Controllers.Course
bool result = classModule.AddClassStudentDropOutModule(model, base.UserInfo.AccountName);
return ApiResult.Success();
}
/// <summary>
/// 获取教室页列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetClassPlanLogPageList()
{
var pageModel = Common.Plugin.JsonHelper.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
var query = new RB_Class_Plan_ViewModel()
{
Group_Id = base.UserInfo.Group_Id,
School_Id = base.ParmJObj.GetInt("School_Id"),
ClassId = base.ParmJObj.GetInt("ClassId")
};
var list = classModule.GetClassPlanLogPageListRepository(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
List<RB_Class_Check_ViewModel> checkLogList = new List<RB_Class_Check_ViewModel>();
if (list != null && list.Any())
{
checkLogList = classModule.GetClassCheckListRepository(new RB_Class_Check_ViewModel { Group_Id = query.Group_Id, School_Id = query.School_Id, ClassId = query.ClassId, StartDate = list.Min(x => x.ClassDate).ToString("yyyy-MM-dd HH:mm:ss"), EndDate = list.Max(x => x.ClassDate).ToString("yyyy-MM-dd HH:mm:ss") });
}
List<object> resultList = new List<object>();
foreach (var item in list)
{
int totalNum = checkLogList.Where(x => x.ClassId == item.ClassId && x.ClassRoomId == item.ClassRoomId && x.Group_Id == item.Group_Id && x.School_Id == item.School_Id).Count();
int CheckNum = checkLogList.Where(x => x.CheckStatus == 0 && x.ClassId == item.ClassId && x.ClassRoomId == item.ClassRoomId && x.Group_Id == item.Group_Id && x.School_Id == item.School_Id).Count();
int NoCheckNum = checkLogList.Where(x => x.CheckStatus == 1 && x.ClassId == item.ClassId && x.ClassRoomId == item.ClassRoomId && x.Group_Id == item.Group_Id && x.School_Id == item.School_Id).Count();
var planCheckObj = new
{
item.TeacherName,
IsAlternate = item.TeacherId == item.Teacher_Id ? 0 : 1,//是否代课老师
MonthStr = item.ClassDate.ToString("MM"),
DayStr = item.ClassDate.ToString("dd"),
YearStr = item.ClassDate.ToString("yyyy"),
CheckNum,
NoCheckNum,
ColorType = item.TeacherId != item.Teacher_Id ? 1 : (totalNum == CheckNum ? 2 : 3),
};
resultList.Add(planCheckObj);
}
pageModel.Count = rowsCount;
pageModel.PageData = resultList;
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 签到
/// </summary>
/// <returns></returns>
public ApiResult AddClassCheck()
{
List<RB_Class_Check_ViewModel> list = Common.Plugin.JsonHelper.DeserializeObject<List<RB_Class_Check_ViewModel>>(RequestParm.Msg.ToString());
if (list == null || !list.Any())
{
return ApiResult.ParamIsNull("");
}
//获取班级的学员信息
var orderGuestList = classModule.GetOrderGuest(new RB_Order_Guest_ViewModel { Group_Id = base.UserInfo.Group_Id, School_Id = list.FirstOrDefault().School_Id, ClassId = list.FirstOrDefault().ClassId });
if (list.Count() != orderGuestList.Where(x => x.GuestState == 1).Count())
{
return ApiResult.Failed("签到总人数错误,请先检查信息");
}
//判断今天有课没有
var planList = classModule.GetClassPlanModelRepository(new RB_Class_Plan_ViewModel { Group_Id = base.UserInfo.Group_Id, School_Id = list.FirstOrDefault().School_Id, ClassId = list.FirstOrDefault().ClassId });
if (planList == null || !planList.Any())
{
return ApiResult.Failed("今日无课程,无须签到");
}
//判断今天是否已签到
var checkLogList = classModule.GetClassCheckListRepository(new RB_Class_Check_ViewModel { Group_Id = base.UserInfo.Group_Id, School_Id = list.FirstOrDefault().School_Id, ClassId = list.FirstOrDefault().ClassId, StartDate = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), EndDate = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") });
if (checkLogList != null && checkLogList.Any())
{
return ApiResult.Failed("今日已签到,请勿重复操作");
}
list.ForEach(x => x.Group_Id = base.UserInfo.Group_Id);
list.ForEach(x => x.CreateTime = System.DateTime.Now);
list.ForEach(x => x.CreateBy = base.UserInfo.Id);
list.ForEach(x => x.Status = 0);
bool result = classModule.AddClassCheckModule(list);
return result ? ApiResult.Success() : ApiResult.Failed("签到失败");
}
#endregion
#region 获取学员信息
public ApiResult GetStudentList()
{
var schoolId = base.ParmJObj.GetInt("SchoolId");
var data = classModule.GetStudentListRepository(new Model.ViewModel.User.RB_Student_ViewModel { School_Id = schoolId, Group_Id = base.UserInfo.Group_Id });
return ApiResult.Success(data: data);
}
#endregion
#region 枚举相关列表
/// <summary>
/// 获取班级状态列表
......
......@@ -1217,7 +1217,6 @@ namespace Edu.WebApi.Controllers.User
var query = new RB_Post_ViewModel()
{
Group_Id = base.UserInfo.Group_Id,
RB_Dept_Id = base.ParmJObj.GetInt("RB_Dept_Id"),
};
var list = postModule.GetPostListModule(query);
return ApiResult.Success(data: list);
......
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