Commit 59416faf authored by liudong1993's avatar liudong1993

7.21最新调整

parent 3a3eef4e
......@@ -11,6 +11,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public class RB_Class_Check_ViewModel : RB_Class_Check
{
/// <summary>
/// 是否可更新补课数据 1不更新
/// </summary>
public int IsUpdateMakeUp { get; set; }
/// <summary>
/// 【查询使用】
/// </summary>
......
......@@ -21,6 +21,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary>
public string ContractNo { get; set; }
/// <summary>
/// 合同id
/// </summary>
public int ContractId { get; set; }
/// <summary>
/// 校区名称
/// </summary>
......
......@@ -1479,7 +1479,7 @@ namespace Edu.Module.Course
if (flag)
{
//更新学员完成课时
var completeHours = (oldModel?.FinishClassHours ?? 0) + item.CurrentDeductionHours;
var completeHours = (oldModel?.FinishClassHours ?? 0) + currentDeductionHours;
Dictionary<string, object> orderFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.CompleteHours),completeHours }
......@@ -1519,6 +1519,23 @@ namespace Edu.Module.Course
return flag;
}
/// <summary>
/// 验证缺席 补课是否已处理
/// </summary>
/// <param name="classCheckId"></param>
/// <param name="guestName"></param>
/// <returns></returns>
public bool ValidateMakeupIsDeal(int classCheckId, out string guestName)
{
guestName = "";
var mmodel = student_MakeupRepository.GetStudentMakeupListRepository(new RB_Student_Makeup_ViewModel() { ClassCheckId = classCheckId }).FirstOrDefault();
if (mmodel != null && mmodel.MakeUpStatus != 1) {
guestName = order_GuestRepository.GetEntity(mmodel.OrderGuestId)?.GuestName ?? "";
return true;
}
return false;
}
/// <summary>
/// 初始化缺勤数据
/// </summary>
......@@ -1593,8 +1610,9 @@ namespace Edu.Module.Course
flag = classCheckRepository.Update(checkFileds, checkWheres);
}
if (flag)
if (flag && checkModel.CheckStatus == 1 && checkModel.IsUpdateMakeUp != 1)
{
//请假的 因为不扣课时, 无法进补课
flag = student_MakeupRepository.SetStudentMakeUpRepository(new RB_Student_Makeup()
{
Id = 0,
......
......@@ -296,10 +296,11 @@ namespace Edu.Module.Course
//获取当日签到数据
var list = class_CheckRepository.GetStudentAttendanceDayStatistics(demodel);
//根据班级 课次分组
var RList = list.GroupBy(x => new { x.ClassId, x.ClassName, x.CouseId, x.CourseName, x.ClassRoomId, x.RoomName, x.School_Id, x.TeacherId, x.TeacherName, x.ClassDate, x.TimeBucket }).OrderBy(x => x.Key.ClassId).ThenBy(x => x.Key.TimeBucket).Select(x => new
var RList = list.GroupBy(x => new { x.ClassId, x.ClassName, x.ClassNo, x.CouseId, x.CourseName, x.ClassRoomId, x.RoomName, x.School_Id, x.TeacherId, x.TeacherName, x.ClassDate, x.TimeBucket }).OrderBy(x => x.Key.ClassId).ThenBy(x => x.Key.TimeBucket).Select(x => new
{
x.Key.ClassId,
x.Key.ClassName,
x.Key.ClassNo,
x.Key.CouseId,
x.Key.CourseName,
x.Key.ClassRoomId,
......@@ -333,7 +334,7 @@ namespace Edu.Module.Course
//获取当日签到数据
var list = class_CheckRepository.GetStudentAttendanceDayStatistics(demodel);
//根据班级 课次分组
var glist = list.GroupBy(x => new { x.ClassId, x.ClassName, x.CouseId, x.CourseName, x.ClassRoomId, x.RoomName, x.School_Id, x.TeacherId, x.TeacherName, x.ClassDate, x.TimeBucket }).OrderBy(x => x.Key.ClassId).ThenBy(x => x.Key.TimeBucket);
var glist = list.GroupBy(x => new { x.ClassId, x.ClassName, x.ClassNo, x.CouseId, x.CourseName, x.ClassRoomId, x.RoomName, x.School_Id, x.TeacherId, x.TeacherName, x.ClassDate, x.TimeBucket }).OrderBy(x => x.Key.ClassId).ThenBy(x => x.Key.TimeBucket);
foreach (var qitem in glist)
{
int Count = qitem.Count();
......@@ -356,6 +357,7 @@ namespace Edu.Module.Course
{
ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn(value: qitem.Key.ClassNo){ Rowspan = Count },
new ExcelColumn(value: qitem.Key.ClassName){ Rowspan = Count },
new ExcelColumn(value: qitem.Key.CourseName){ Rowspan = Count},
new ExcelColumn(value: qitem.Key.TeacherName){ Rowspan = Count},
......@@ -374,6 +376,7 @@ namespace Edu.Module.Course
{
ExcelRows = new List<ExcelColumn>()
{
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
......
......@@ -43,7 +43,7 @@ namespace Edu.Repository.Course
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.GuestName,'') AS GuestName,ec.ContractNo,IFNULL(C.SName,'') AS SchoolName,IFNULL(D.ClassName,'') AS ClassName,IFNULL(T.TeacherName,'') AS TeacherName
SELECT A.*,IFNULL(B.GuestName,'') AS GuestName,ec.ContractNo,ec.Id as ContractId,IFNULL(C.SName,'') AS SchoolName,IFNULL(D.ClassName,'') AS ClassName,IFNULL(T.TeacherName,'') AS TeacherName
,IFNULL(E.EnterID,0) AS EnterID,IFNULL(F.CourseName,'') AS CourseName,D.ClassNo
FROM RB_Student_BackClass AS A LEFT JOIN rb_order_guest AS B ON A.GuestId=B.Id
left join rb_education_contract ec on B.Id = ec.GuestId and ec.Status <>4
......
......@@ -35,7 +35,7 @@ FROM RB_Student_Makeup AS A LEFT JOIN rb_class_check AS B ON A.ClassCheckId=B.Cl
LEFT JOIN rb_teacher AS F ON B.TeacherId=F.TId
LEFT JOIN rb_class_room AS G ON B.ClassRoomId=G.RoomId
LEFT JOIN rb_class_time AS H ON B.ClassTimeId=H.ClassTimeId
WHERE 1=1
WHERE 1=1 and B.CheckStatus =1
");
if (query != null)
{
......@@ -75,6 +75,45 @@ WHERE 1=1
return GetPage<RB_Student_Makeup_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_Makeup_ViewModel> GetStudentMakeupListRepository(RB_Student_Makeup_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Student_Makeup AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Makeup_ViewModel.Group_Id), query.Group_Id);
}
if (query.MakeUpStatus > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Makeup_ViewModel.MakeUpStatus), query.MakeUpStatus);
}
if (query.ClassCheckId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Makeup_ViewModel.ClassCheckId), query.ClassCheckId);
}
if (!string.IsNullOrEmpty(query.StartDate))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Student_Makeup_ViewModel.ClassDate), query.StartDate);
}
if (!string.IsNullOrEmpty(query.EndDate))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Student_Makeup_ViewModel.ClassDate), query.EndDate);
}
}
return Get<RB_Student_Makeup_ViewModel>(builder.ToString()).ToList();
}
/// <summary>
/// 新增修改学员补课信息
/// </summary>
......
......@@ -1001,6 +1001,20 @@ namespace Edu.WebApi.Controllers.Course
item.CreateTime = signModel.CreateTime;
item.CreateBy = base.UserInfo.Id;
item.Status = 0;
#region 验证缺席 补课是否已处理
if (signModel.CheckStatus == 1 && item.CheckStatus != 1)
{
if (classModule.ValidateMakeupIsDeal(signModel.ClassCheckId, out string GuestName))
{
return ApiResult.Failed(GuestName + "(" + item.OrderGuestId + ") 其补课已处理,无法修改其缺勤状态");
}
}
if (signModel.CheckStatus == 1 && item.CheckStatus == 1) {
//都是缺勤 不更新补课数据
item.IsUpdateMakeUp = 1;
}
#endregion
}
else
{
......
......@@ -222,6 +222,7 @@ namespace Edu.WebApi.Controllers.Course
ExcelDataSource header = new ExcelDataSource()
{
ExcelRows = new List<ExcelColumn>(30) {
new ExcelColumn(value:"班号"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"班级"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"课程"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"老师"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
......
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