Commit a0020f8c authored by 吴春's avatar 吴春

提交代码

parent 97f9c853
......@@ -11,44 +11,55 @@ namespace Edu.Model.Entity.Course
[DB(ConnectionName = "DefaultConnection")]
public class RB_Class_Plan
{
/// <summary>
/// 上课计划编号
/// </summary>
public int ClassPlanId { 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>
/// 上课计划编号
/// </summary>
public int ClassPlanId { 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>
/// 0-未备课,1-已备课
/// </summary>
public int BeiKeStatus { get; set; }
/// <summary>
/// 0-未反馈,1-已反馈
/// </summary>
public int FanKuiStatus { get; set; }
}
}
\ No newline at end of file
......@@ -1705,6 +1705,19 @@ namespace Edu.Module.Course
return list;
}
/// <summary>
/// 获取上课计划
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> GetClassPlanList_V3(RB_Class_Plan_ViewModel query)
{
var list = class_PlanRepository.GetClassPlanList_V2(query);
return list;
}
/// <summary>
/// 获取学生列表
/// </summary>
......@@ -1821,8 +1834,16 @@ namespace Edu.Module.Course
{
LessonPlanId = ClassLessonPlanRepository.Insert(item);
flag = LessonPlanId > 0;
}
if (flag)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Class_Plan_ViewModel.BeiKeStatus),1},
};
class_PlanRepository.Update(fileds, new WhereHelper(nameof(RB_Class_Plan_ViewModel.ClassPlanId), item.ClassPlanId));
}
foreach (var itemDetails in item.LessonPlanDetailsList)
{
itemDetails.LessonPlanId = LessonPlanId;
......@@ -1909,6 +1930,14 @@ namespace Edu.Module.Course
flag = ClassLessonPlanRepository.Update(fileds, new WhereHelper(nameof(RB_Class_LessonPlan_ViewModel.LessonPlanId), item.LessonPlanId));
}
}
if (flag)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Class_Plan_ViewModel.FanKuiStatus),1},
};
class_PlanRepository.Update(fileds, new WhereHelper(nameof(RB_Class_Plan_ViewModel.ClassPlanId), model.LessonPlanList.FirstOrDefault().ClassPlanId));
}
}
return flag;
}
......@@ -2934,7 +2963,7 @@ namespace Edu.Module.Course
{
var currentDate = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + (item.StartTime ?? "");
List<object> GuestList = new List<object>();
result.Add(new
{
Id = item?.ClassTimeId ?? 0,
......@@ -2945,11 +2974,12 @@ namespace Edu.Module.Course
item.RoomName,
item.TeacherName,
item.TotalPlanNum,
ClassDate = item.ClassDate.ToString("yyyy-MM-dd"),
item.Ranks,
TimeStr = Common.ConvertHelper.GetTimeStr(currentDate),
StartTime = item?.StartTime ?? "",
EndTime = item?.EndTime ?? "",
GuestList = item.ClassType==1? guestList.Where(qitem => qitem.ClassId == item.ClassId)?.Select(qitem => new { qitem.GuestName }) : visitorList?.Where(qitem => qitem.ReserveClassId == item.ClassTimeId)?.Select(qitem => new { GuestName = qitem.VisitorName }),
GuestList = item.ClassType == 1 ? guestList.Where(qitem => qitem.ClassId == item.ClassId)?.Select(qitem => new { qitem.GuestName }) : visitorList?.Where(qitem => qitem.ReserveClassId == item.ClassTimeId)?.Select(qitem => new { GuestName = qitem.VisitorName }),
});
}
......
......@@ -41,6 +41,28 @@ namespace Edu.Module.System
return holidayRepository.GetDayhList(NowDay);
}
/// <summary>
/// 判断某一个时间段是否在节假日里
/// </summary>
/// <param name="NowDay"></param>
/// <returns></returns>
public List<RB_System_Holiday> GetExistHoliday(string startTime, string endTime)
{
return holidayRepository.GetExistHoliday(startTime, endTime);
}
/// <summary>
/// 获取节假日详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public RB_System_Holiday GetEntity(object id)
{
return holidayRepository.GetEntity(id);
}
/// <summary>
/// 新增/修改节假日
/// </summary>
......
......@@ -493,7 +493,7 @@ ORDER BY p.ClassDate ASC
}
if (StudentId > 0)
{
where += $@" and t2.StudentId ={StudentId}";
where += $@" and t2.Id ={StudentId}";
}
if (!string.IsNullOrEmpty(contractNo))
{
......
......@@ -370,16 +370,18 @@ WHERE p.`Status`=0 AND p.Group_Id={group_Id} AND p.ClassId ={classId}
public List<RB_Class_Plan_ViewModel> GetTeacherPlanListRepository(RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
//builder.AppendFormat(@"
// SELECT A.*,class.ClassName,lp.LessonPlanNum,lps.LessonPlanSummaryNum,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon
// FROM RB_Class_Plan AS A LEFT JOIN rb_class_room AS B ON A.ClassRoomId=B.RoomId
// LEFT JOIN rb_class as class on a.ClassId=class.ClassId
// LEFT JOIN rb_teacher AS T ON A.TeacherId=T.TId
// LEFT JOIN (SELECT ClassPlanId,COUNT(*) as LessonPlanNum from rb_class_lessonplan where `Status`=0 GROUP BY ClassPlanId)as lp on a.ClassPlanId=lp.ClassPlanId
//LEFT JOIN (SELECT ClassPlanId,COUNT(*) as LessonPlanSummaryNum from rb_class_lessonplan where `Status`=0 and ISNULL(Summary)=0 and LENGTH(trim(Summary))>0 GROUP BY ClassPlanId)as lps on a.ClassPlanId=lps.ClassPlanId
//WHERE 1=1 and class.ClassStatus=2 and t.`Status`=0
// ");
// builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal);
builder.AppendFormat(@"
SELECT * from (SELECT
(SELECT COUNT(*) from rb_class_plan where `Status`=0 and DATE_FORMAT(ClassDate,'%Y-%m-%d') <=DATE_FORMAT(a.ClassDate,'%Y-%m-%d') and ClassId=a.ClassId) as Ranks,
A.*,class.ClassName,lp.LessonPlanNum,lps.LessonPlanSummaryNum,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon
FROM RB_Class_Plan AS A LEFT JOIN rb_class_room AS B ON A.ClassRoomId=B.RoomId
LEFT JOIN rb_class as class on a.ClassId=class.ClassId
LEFT JOIN rb_teacher AS T ON A.TeacherId=T.TId
LEFT JOIN (SELECT ClassPlanId,COUNT(*) as LessonPlanNum from rb_class_lessonplan where `Status`=0 GROUP BY ClassPlanId)as lp on a.ClassPlanId=lp.ClassPlanId
LEFT JOIN (SELECT ClassPlanId,COUNT(*) as LessonPlanSummaryNum from rb_class_lessonplan where `Status`=0 and ISNULL(Summary)=0 and LENGTH(trim(Summary))>0 GROUP BY ClassPlanId)as lps on a.ClassPlanId=lps.ClassPlanId
WHERE 1=1 and class.ClassStatus=2 and t.`Status`=0 and a.`Status`=0 ORDER BY a.ClassId,a.ClassDate) as a where 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (query.ClassId > 0)
......@@ -408,19 +410,19 @@ WHERE p.`Status`=0 AND p.Group_Id={group_Id} AND p.ClassId ={classId}
}
if (!string.IsNullOrEmpty(query.QMonth))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},''%y/%m'')= DATE_FORMAT(''{1}-01'',''%y/%m'') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.QMonth);
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m')= DATE_FORMAT('{1}-01','%y/%m') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.QMonth);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},''%y-%m-%d'')>=DATE_FORMAT(''{1}'',''%y-%m-%d'') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.StartTime);
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')>=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},''%y-%m-%d'')<=DATE_FORMAT(''{1}'',''%y-%m-%d'') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.EndTime);
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')<=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.EndTime);
}
}
// return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList();
return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList();
//// string sql = $@"
////SELECT * from (SELECT IF
......@@ -442,8 +444,8 @@ WHERE p.`Status`=0 AND p.Group_Id={group_Id} AND p.ClassId ={classId}
////( SELECT @rank := 0, @class := 0, @score := '2020-01-01', @colum := 0 ) r
////WHERE 1=1 and class.ClassStatus=2 and t.`Status`=0 and a.`Status`=0 ORDER BY a.ClassId,a.ClassDate) as a where 1=1 {builder.ToString()} ";
string sql = $@"CALL proc_GetClassPlanRank('{builder.ToString()}')";
return Get<RB_Class_Plan_ViewModel>(sql).ToList();
// string sql = $@"CALL proc_GetClassPlanRank('{builder.ToString()}')";
// return Get<RB_Class_Plan_ViewModel>(sql).ToList();
}
......
......@@ -6,7 +6,7 @@ using Edu.Model.Entity.System;
namespace Edu.Repository.System
{
public class RB_System_HolidayRepository:BaseRepository<RB_System_Holiday>
public class RB_System_HolidayRepository : BaseRepository<RB_System_Holiday>
{
/// <summary>
/// 表名称
......@@ -60,5 +60,26 @@ namespace Edu.Repository.System
return Get<RB_System_Holiday>(sql).ToList();
}
/// <summary>
/// 判断某一个时间段是否在节假日里
/// </summary>
/// <param name="NowDay"></param>
/// <returns></returns>
public List<RB_System_Holiday> GetExistHoliday(string startTime, string endTime)
{
string sql = $@"SELECT * FROM RB_System_Holiday WHERE `Status` = 0 and
(( DATE_FORMAT(StartTime, '%y/%m/%d') <= DATE_FORMAT('{startTime}', '%y/%m/%d')
AND DATE_FORMAT(EndTime, '%y/%m/%d') >= DATE_FORMAT('{startTime}', '%y/%m/%d'))
or ( DATE_FORMAT(StartTime, '%y/%m/%d') <= DATE_FORMAT('{endTime}', '%y/%m/%d')
AND DATE_FORMAT(EndTime, '%y/%m/%d') >= DATE_FORMAT('{endTime}', '%y/%m/%d'))
or (DATE_FORMAT(EndTime, '%y/%m/%d') <= DATE_FORMAT('{endTime}', '%y/%m/%d'))
) ";
return Get<RB_System_Holiday>(sql).ToList();
}
}
}
......@@ -1685,11 +1685,11 @@ namespace Edu.WebApi.Controllers.Course
foreach (var item in plan.Where(x => x.TeacherId == itemGroup.Key.TeacherId && x.ClassId == itemGroup.Key.ClassId))
{
if (plan.Where(x => x.LessonPlanNum > 0).Count() < plan.Count() && plan.Where(x => x.LessonPlanNum > 0).Count() > 0)
if (plan.Where(x => x.BeiKeStatus > 0).Count() < plan.Count() && plan.Where(x => x.BeiKeStatus > 0).Count() > 0)
{
IsLessonStatus = 1;
}
else if (plan.Where(x => x.LessonPlanNum > 0).Count() == plan.Count())
else if (plan.Where(x => x.BeiKeStatus > 0).Count() == plan.Count())
{
IsLessonStatus = 2;
}
......@@ -1701,11 +1701,11 @@ namespace Edu.WebApi.Controllers.Course
foreach (var itemTime in item.PlanTimeList)
{
int IsPlanLessonStatus = 0;//0-未备课,1-部分,2-全部
if (plan.Where(x => x.LessonPlanNum > 0 && x.ClassPlanId == itemTime.ClassPlanId).Count() < plan.Where(x => x.ClassPlanId == itemTime.ClassPlanId).Count() && plan.Where(x => x.LessonPlanNum > 0 && x.ClassPlanId == itemTime.ClassPlanId).Count() > 0)
if (plan.Where(x => x.BeiKeStatus > 0 && x.ClassPlanId == itemTime.ClassPlanId).Count() < plan.Where(x => x.ClassPlanId == itemTime.ClassPlanId).Count() && plan.Where(x => x.BeiKeStatus > 0 && x.ClassPlanId == itemTime.ClassPlanId).Count() > 0)
{
IsPlanLessonStatus = 1;
}
else if (plan.Where(x => x.LessonPlanNum > 0 && x.ClassPlanId == itemTime.ClassPlanId).Count() == plan.Where(x => x.ClassPlanId == itemTime.ClassPlanId).Count())
else if (plan.Where(x => x.BeiKeStatus > 0 && x.ClassPlanId == itemTime.ClassPlanId).Count() == plan.Where(x => x.ClassPlanId == itemTime.ClassPlanId).Count())
{
IsPlanLessonStatus = 2;
}
......@@ -1763,8 +1763,8 @@ namespace Edu.WebApi.Controllers.Course
planListResult.Add(new
{
LessonPlanNum = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.LessonPlanNum ?? 0,
LessonPlanSummaryNum = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.LessonPlanSummaryNum ?? 0,
LessonPlanNum = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.BeiKeStatus ?? 0,
LessonPlanSummaryNum = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.FanKuiStatus ?? 0,
Ranks = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.Ranks ?? -1,
School_Id = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.School_Id ?? -1,
ClassPlanId = plan.Where(x => x.ClassId == itemGroup.Key.ClassId && x.TeacherId == itemGroup.Key.TeacherId).FirstOrDefault()?.ClassPlanId ?? -1,
......
......@@ -234,7 +234,7 @@ namespace Edu.WebApi.Controllers.Course
{
if (item.EnterID > 0)
{
item.EnterName = UserReidsCache.GetUserLoginInfo(item.CreateBy)?.AccountName ?? "";
item.EnterName = UserReidsCache.GetUserLoginInfo(item.EnterID)?.AccountName ?? "";
}
result.Add(new
{
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Edu.Common.API;
using Edu.Common.Plugin;
using Edu.Model.CacheModel;
using Edu.Model.Entity.System;
using Edu.Module.System;
using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace Edu.WebApi.Controllers.Public
{
[Route("api/[controller]/[action]")]
[ApiExceptionFilter]
[ApiController]
[EnableCors("AllowCors")]
public class HolidayController : BaseController
{
/// <summary>
/// 节假日处理类对象
/// </summary>
private readonly HolidayModule holidayModule = new HolidayModule();
/// <summary>
/// 班级处理类对象
/// </summary>
private readonly Module.Course.ClassModule classModule = new Module.Course.ClassModule();
#region 节假日管理
/// <summary>
/// 新增修改广告基础信息
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public ApiResult SetHoliday()
{
UserInfo userInfo = base.UserInfo;
var startDate = base.ParmJObj.GetStringValue("StartTime");
var endDate = base.ParmJObj.GetStringValue("EndTime");
if (string.IsNullOrEmpty(startDate))
{
return ApiResult.Failed("节假日开始时间不能为空");
}
if (string.IsNullOrEmpty(endDate))
{
return ApiResult.Failed("节假日结束时间不能为空");
}
RB_System_Holiday dmodel = new RB_System_Holiday
{
DayType = base.ParmJObj.GetInt("DayType", 0),
StartTime = Convert.ToDateTime(startDate),
EndTime = Convert.ToDateTime(endDate)
};
if (dmodel.StartTime > dmodel.EndTime)
{
return ApiResult.Failed("节假日开始时间不能大于结束时间");
}
//先判断日期是否已存在
var oldList = holidayModule.GetExistHoliday(startDate, endDate);
if (oldList != null && oldList.Any(x => x.HolidayId != dmodel.HolidayId))
{
return ApiResult.Failed("节假日时间范围重合");
}
if (dmodel.DayType == 1)//判断节假日是否有排课计划
{
var planList = classModule.GetClassPlanList_V3(new Model.ViewModel.Course.RB_Class_Plan_ViewModel
{
Group_Id = userInfo.Group_Id,
StartTime = dmodel.StartTime.ToString("yyyy-MM-dd 00:00:00"),
EndTime = dmodel.EndTime.ToString("yyyy-MM-dd 00:00:00")
});
if (planList != null && planList.Any())
{
return ApiResult.Failed("班级:" + string.Join(",", planList.Select(x => x.ClassName)) + "存在排课");
}
}
if (dmodel.HolidayId == 0)
{
dmodel.CreateDate = System.DateTime.Now;
dmodel.Status = 0;
dmodel.Group_Id = userInfo.Group_Id;
dmodel.School_Id = userInfo.School_Id;
}
bool flag = holidayModule.SetHoliday(dmodel);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
/// <summary>
/// 删除节假日
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public ApiResult DelHoliday()
{
var HolidayId = base.ParmJObj.GetInt("HolidayId");
if (HolidayId <= 0)
{
return ApiResult.ParamIsNull();
}
var flag = holidayModule.DelHoliday(HolidayId);
if (flag)
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed();
}
}
/// <summary>
/// 获取节假日列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public ApiResult GetHolidayList()
{
UserInfo userInfo = base.UserInfo;
ResultPageModel pmodel = JsonConvert.DeserializeObject<ResultPageModel>(RequestParm.Msg.ToString());
RB_System_Holiday dmodel = new RB_System_Holiday
{
DayType = base.ParmJObj.GetInt("DayType", 0)
};
List<RB_System_Holiday> list = holidayModule.GetPageList(pmodel.PageIndex, pmodel.PageSize, dmodel, out long count);
pmodel.Count = Convert.ToInt32(count.ToString());
pmodel.PageData = list.Select(x => new
{
x.HolidayId,
StartTime = x.StartTime.ToString("yyyy-MM-dd"),
EndTime = x.EndTime.ToString("yyyy-MM-dd"),
x.DayType
});
return ApiResult.Success("", pmodel);
}
/// <summary>
/// 获取节假日详情
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
public ApiResult GetHolidayInfo()
{
int HolidayId = base.ParmJObj.GetInt("HolidayId", 0);
if (HolidayId <= 0)
{
return ApiResult.ParamIsNull();
}
var model = holidayModule.GetEntity(HolidayId);
if (model != null)
{
var obj = new
{
model.HolidayId,
StartTime = model.StartTime.ToString("yyyy-MM-dd"),
EndTime = model.EndTime.ToString("yyyy-MM-dd"),
model.DayType
};
return ApiResult.Success("请求成功!", obj);
}
else
{
return ApiResult.Failed("请求失败,数据不存在!");
}
}
#endregion
}
}
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