diff --git a/Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs b/Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs index 5a6d1e86..15a0fd8c 100644 --- a/Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs +++ b/Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs @@ -92,4 +92,26 @@ public class Ghre_OpenClassController : BaseController DeleteFee([FromBody] List ids) => await _service.DeleteFee(ids); #endregion + + #region 总结 + /// + /// 总结查询 + /// + /// 开班ID + /// + [HttpPost, Route("QuerySummary/{Id}")] + public async Task> QuerySummary(long Id) => await _service.QuerySummary(Id); + + + /// + /// 总结新增 + /// + /// 开班ID + /// 员工ID列表 + /// + [HttpPost, Route("InsertSummary/{Id}")] + public async Task InsertSummary(long Id, [FromBody] InsertGhre_OpenClassInput insert) => await _service.InsertSummary(Id, insert); + + + #endregion } \ No newline at end of file diff --git a/Tiobon.Core.Api/Tiobon.Core.Model.xml b/Tiobon.Core.Api/Tiobon.Core.Model.xml index f712c857..035422cc 100644 --- a/Tiobon.Core.Api/Tiobon.Core.Model.xml +++ b/Tiobon.Core.Api/Tiobon.Core.Model.xml @@ -5040,6 +5040,16 @@ 课程场景ID + + + 开班课表 + + + + + 开班课表 + + 开班打卡 (Dto.Base) @@ -5330,6 +5340,16 @@ 预留字段12 + + + 开班课表 + + + + + 开班课表 + + 开班成绩 (Dto.Base) @@ -29877,17 +29897,17 @@ 关联课程/场景 - + 开班起止日期 - + 报名起止日期 - + 考试起止日期 @@ -29917,6 +29937,16 @@ 课程场景ID + + + 开班课表 + + + + + 开班课表 + + 开班打卡(Dto.View1) diff --git a/Tiobon.Core.Api/Tiobon.Core.xml b/Tiobon.Core.Api/Tiobon.Core.xml index ac1b44d0..ca2afb6d 100644 --- a/Tiobon.Core.Api/Tiobon.Core.xml +++ b/Tiobon.Core.Api/Tiobon.Core.xml @@ -1205,6 +1205,21 @@ 费用数据ID列表 + + + 总结查询 + + 开班ID + + + + + 总结新增 + + 开班ID + 员工ID列表 + + 开班费用(Controller) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs index 597aae52..e9308fa1 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs @@ -19,4 +19,8 @@ public interface IGhre_OpenClassServices : IBaseServices InsertFee(long Id, InsertGhre_OpenClassFeeInput fee); Task DeleteFee(List feeIds); + + Task> QuerySummary(long Id); + + Task InsertSummary(long Id, InsertGhre_OpenClassInput entity); } \ No newline at end of file diff --git a/Tiobon.Core.Model/Base/Ghre/Ghre_OpenClass.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghre/Ghre_OpenClass.Dto.Base.cs index beb4a12d..b052f20f 100644 --- a/Tiobon.Core.Model/Base/Ghre/Ghre_OpenClass.Dto.Base.cs +++ b/Tiobon.Core.Model/Base/Ghre/Ghre_OpenClass.Dto.Base.cs @@ -290,4 +290,20 @@ public class Ghre_OpenClassBase /// 课程场景ID /// public long? CourseSceneId { get; set; } + + public List StartEndTime { get; set; } = new List(); + + public List RegisterStartEndTime { get; set; } = new List(); + + public List ExamStartEndTime { get; set; } = new List(); + + /// + /// 开班课表 + /// + public List Schedules { get; set; } = new List(); + + /// + /// 开班课表 + /// + public List Attachments { get; set; } = new List(); } diff --git a/Tiobon.Core.Model/Base/Ghre/Ghre_OpenClassSchedule.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghre/Ghre_OpenClassSchedule.Dto.Base.cs index 559bee94..28d4a27f 100644 --- a/Tiobon.Core.Model/Base/Ghre/Ghre_OpenClassSchedule.Dto.Base.cs +++ b/Tiobon.Core.Model/Base/Ghre/Ghre_OpenClassSchedule.Dto.Base.cs @@ -134,4 +134,17 @@ public class Ghre_OpenClassScheduleBase /// 预留字段12 /// public int? ReverseI2 { get; set; } + + public List StartEndTime { get; set; } = new List(); + + + /// + /// 开班课表 + /// + public List Schedules { get; set; } = new List(); + + /// + /// 开班课表 + /// + public List Attachments { get; set; } = new List(); } diff --git a/Tiobon.Core.Model/View/Ghre/Ghre_OpenClass.Dto.View.cs b/Tiobon.Core.Model/View/Ghre/Ghre_OpenClass.Dto.View.cs index cb09fbbb..c0a2273f 100644 --- a/Tiobon.Core.Model/View/Ghre/Ghre_OpenClass.Dto.View.cs +++ b/Tiobon.Core.Model/View/Ghre/Ghre_OpenClass.Dto.View.cs @@ -40,24 +40,24 @@ public class Ghre_OpenClassDto : Ghre_OpenClass /// /// 开班起止日期 /// - public string StartEndTime { get; set; } + public string StartEndTime1 { get; set; } /// /// 报名起止日期 /// - public string RegisterStartEndTime { get; set; } + public string RegisterStartEndTime1 { get; set; } /// /// 考试起止日期 /// - public string ExamStartEndTime { get; set; } + public string ExamStartEndTime1 { get; set; } /// /// 试卷 /// public string ExamPaperName { get; set; } - + /// /// 开班负责人 @@ -78,5 +78,21 @@ public class Ghre_OpenClassDto : Ghre_OpenClass /// 课程场景ID /// public long? CourseSceneId { get; set; } + + public List StartEndTime { get; set; } = new List(); + + public List RegisterStartEndTime { get; set; } = new List(); + + public List ExamStartEndTime { get; set; } = new List(); + + /// + /// 开班课表 + /// + public List Schedules { get; set; } = new List(); + + /// + /// 开班课表 + /// + public List Attachments { get; set; } = new List(); } diff --git a/Tiobon.Core.Services/CommonServices.cs b/Tiobon.Core.Services/CommonServices.cs index 47524222..d9c98862 100644 --- a/Tiobon.Core.Services/CommonServices.cs +++ b/Tiobon.Core.Services/CommonServices.cs @@ -1961,7 +1961,6 @@ public partial class CommonServices : BaseServices>, ICommon break; case "F_OpenCLassTemporary": - case "F_OpenCLassPublish": toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault(); if (toolbar != null) toolbar.fnKey = "TBD1YN"; toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault(); @@ -1971,7 +1970,37 @@ public partial class CommonServices : BaseServices>, ICommon toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault(); if (toolbar != null) toolbar.fnKey = "TBD4YN"; - + + break; + case "F_OpenCLassPublish": + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD1YN"; + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD2YN"; + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD3YN"; + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD4YN"; + break; + case "F_OpenCLassOpening": + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD1YN"; + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD2YN"; + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD3YN"; + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD4YN"; + break; + case "F_OpenCLassClose": + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD1YN"; + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD2YN"; + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD3YN"; + toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault(); + if (toolbar != null) toolbar.fnKey = "TBD4YN"; break; } diff --git a/Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs b/Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs index 7e5fba7b..29350fa6 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs @@ -1,4 +1,7 @@ -namespace Tiobon.Core.Services; +using MathNet.Numerics.Distributions; +using Microsoft.EntityFrameworkCore.Metadata.Internal; + +namespace Tiobon.Core.Services; /// /// 开班管理 (服务) @@ -7,17 +10,20 @@ public class Ghre_OpenClassServices : BaseServices _dal; public Ghre_OpenClassServices(ICaching caching, IBaseRepository dal, IGhre_OpenClassStaffServices ghre_OpenClassStaffServices, - IGhre_OpenClassFeeServices ghre_OpenClassFeeServices) + IGhre_OpenClassFeeServices ghre_OpenClassFeeServices, + IGhre_OpenClassScheduleServices ghre_OpenClassScheduleServices) { this._dal = dal; base.BaseDal = dal; base._caching = caching; _ghre_OpenClassStaffServices = ghre_OpenClassStaffServices; _ghre_OpenClassFeeServices = ghre_OpenClassFeeServices; + _ghre_OpenClassScheduleServices = ghre_OpenClassScheduleServices; } public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) @@ -59,13 +65,13 @@ public class Ghre_OpenClassServices : BaseServices().FirstAsync(x => x.Id == DT_TableDataT1.LinkId))?.SceneName; if (DT_TableDataT1.StartTime != null && DT_TableDataT1.EndTime != null) - DT_TableDataT1.StartEndTime = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.StartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.EndTime)}"; + DT_TableDataT1.StartEndTime1 = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.StartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.EndTime)}"; if (DT_TableDataT1.RegisterStartTime != null && DT_TableDataT1.RegisterEndTime != null) - DT_TableDataT1.RegisterStartEndTime = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterStartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterEndTime)}"; - + DT_TableDataT1.RegisterStartEndTime1 = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterStartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterEndTime)}"; + if (DT_TableDataT1.ExamStartTime != null && DT_TableDataT1.ExamEndTime != null) - DT_TableDataT1.ExamStartEndTime = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.ExamStartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.ExamEndTime)}"; + DT_TableDataT1.ExamStartEndTime1 = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.ExamStartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.ExamEndTime)}"; if (DT_TableDataT1.ExamPaperId != null) DT_TableDataT1.ExamPaperName = (await Db.Queryable().FirstAsync(x => x.Id == DT_TableDataT1.ExamPaperId))?.PaperName; @@ -93,17 +99,93 @@ public class Ghre_OpenClassServices : BaseServices().FirstAsync(x => x.Id == entity.CourseSceneId))?.SceneNo; + if (entity.StartEndTime.Count == 2) + { + entity.StartTime = entity.StartEndTime[0]; + entity.EndTime = entity.StartEndTime[1]; + } + if (entity.RegisterStartEndTime.Count == 2) + { + entity.RegisterStartTime = entity.RegisterStartEndTime[0]; + entity.RegisterEndTime = entity.RegisterStartEndTime[1]; + } + if (entity.ExamStartEndTime.Count == 2) + { + entity.ExamStartTime = entity.ExamStartEndTime[0]; + entity.ExamEndTime = entity.ExamStartEndTime[1]; + } + + prefixTemp = prefixTemp + "K"; entity.OpenClassNo = await GenerateContinuousSequence("Ghre_OpenClass", "OpenClassNo", prefixTemp, prefixTemp.Length + 4, 4); var result = await base.Add(entity); + + if (entity.Schedules != null && entity.Schedules.Any()) + { + entity.Schedules.ForEach(x => + { + x.OpenClassId = result; + if (x.StartEndTime.Count == 2) + { + x.StartTime = x.StartEndTime[0]; + x.EndTime = x.StartEndTime[1]; + } + }); + await _ghre_OpenClassScheduleServices.Add(entity.Schedules); + } + + if (entity.Attachments != null && entity.Attachments.Any()) + { + var paths = entity.Attachments.Select(x => x.RelativePath).ToList(); + await Db.Updateable() + .SetColumns(it => new Ghre_Attachment() { TableName = result.ObjToString(), AttachmentGroupID = 1 }) + .Where(it => paths.Contains(it.RelativePath)) + .ExecuteCommandAsync(); + } return result; } - public override async Task Update(long Id, EditGhre_OpenClassInput editModel) + public override async Task Update(long Id, EditGhre_OpenClassInput entity) { - editModel.LinkId = editModel.LinkType == "Course" ? editModel.CourseId : editModel.CourseSceneId; - var result = await base.Update(Id, editModel, null, ["Status"]); + entity.LinkId = entity.LinkType == "Course" ? entity.CourseId : entity.CourseSceneId; + + if (entity.StartEndTime.Count == 2) + { + entity.StartTime = entity.StartEndTime[0]; + entity.EndTime = entity.StartEndTime[2]; + } + if (entity.RegisterStartEndTime.Count == 2) + { + entity.RegisterStartTime = entity.RegisterStartEndTime[0]; + entity.RegisterEndTime = entity.RegisterStartEndTime[2]; + } + if (entity.ExamStartEndTime.Count == 2) + { + entity.ExamStartTime = entity.ExamStartEndTime[0]; + entity.ExamEndTime = entity.ExamStartEndTime[2]; + } + await _ghre_OpenClassScheduleServices.Delete(x => x.OpenClassId == Id); + if (entity.Schedules != null && entity.Schedules.Any()) + { + entity.Schedules.ForEach(x => x.OpenClassId = Id); + + await _ghre_OpenClassScheduleServices.Add(entity.Schedules); + } + await Db.Updateable() + .SetColumns(it => new Ghre_Attachment() { TableName = null, AttachmentGroupID = null }) + .Where(it => it.TableName == Id.ObjToString() && it.AttachmentGroupID == 1) + .ExecuteCommandAsync(); + + if (entity.Attachments != null && entity.Attachments.Any()) + { + var paths = entity.Attachments.Select(x => x.RelativePath).ToList(); + await Db.Updateable() + .SetColumns(it => new Ghre_Attachment() { TableName = Id.ObjToString(), AttachmentGroupID = 1 }) + .Where(it => paths.Contains(it.RelativePath)) + .ExecuteCommandAsync(); + } + var result = await base.Update(Id, entity, null, ["Status"]); return result; } @@ -118,9 +200,19 @@ public class Ghre_OpenClassServices : BaseServices x.OpenClassId == body.id); + result.result.DT_TableDataT1[0].Attachments = await Db.Queryable().Where(x => x.TableName == body.id.ObjToString() && x.AttachmentGroupID == 1).ToListAsync(); } return result; - } #region 学员 @@ -182,4 +274,39 @@ public class Ghre_OpenClassServices : BaseServices> QuerySummary(long Id) + { + var result = await base.QueryById(Id); + + var result1 = new Ghre_OpenClassDto(); + result1.Summary = result.Summary; + result1.Attachments = await Db.Queryable().Where(x => x.TableName == Id.ObjToString() && x.AttachmentGroupID == 2).ToListAsync(); + return ServiceResult.OprateSuccess("查询成功!", result1); + } + public async Task InsertSummary(long Id, InsertGhre_OpenClassInput entity) + { + + await Db.Updateable() + .SetColumns(it => new Ghre_OpenClass() { Summary = entity.Summary }) + .Where(it => it.Id == Id) + .ExecuteCommandAsync(); + await Db.Updateable() + .SetColumns(it => new Ghre_Attachment() { TableName = null, AttachmentGroupID = null }) + .Where(it => it.TableName == Id.ObjToString() && it.AttachmentGroupID == 2) + .ExecuteCommandAsync(); + + if (entity.Attachments != null && entity.Attachments.Any()) + { + var paths = entity.Attachments.Select(x => x.RelativePath).ToList(); + await Db.Updateable() + .SetColumns(it => new Ghre_Attachment() { TableName = Id.ObjToString(), AttachmentGroupID = 2 }) + .Where(it => paths.Contains(it.RelativePath)) + .ExecuteCommandAsync(); + } + return ServiceResult.OprateSuccess(); + } + #endregion } \ No newline at end of file diff --git a/Tiobon.Core/Tiobon.Core.Model.xml b/Tiobon.Core/Tiobon.Core.Model.xml index f712c857..035422cc 100644 --- a/Tiobon.Core/Tiobon.Core.Model.xml +++ b/Tiobon.Core/Tiobon.Core.Model.xml @@ -5040,6 +5040,16 @@ 课程场景ID + + + 开班课表 + + + + + 开班课表 + + 开班打卡 (Dto.Base) @@ -5330,6 +5340,16 @@ 预留字段12 + + + 开班课表 + + + + + 开班课表 + + 开班成绩 (Dto.Base) @@ -29877,17 +29897,17 @@ 关联课程/场景 - + 开班起止日期 - + 报名起止日期 - + 考试起止日期 @@ -29917,6 +29937,16 @@ 课程场景ID + + + 开班课表 + + + + + 开班课表 + + 开班打卡(Dto.View1) diff --git a/Tiobon.Core/Tiobon.Core.xml b/Tiobon.Core/Tiobon.Core.xml index ac1b44d0..ca2afb6d 100644 --- a/Tiobon.Core/Tiobon.Core.xml +++ b/Tiobon.Core/Tiobon.Core.xml @@ -1205,6 +1205,21 @@ 费用数据ID列表 + + + 总结查询 + + 开班ID + + + + + 总结新增 + + 开班ID + 员工ID列表 + + 开班费用(Controller)