开班管理

master
xiaochanghai 5 months ago
parent 66dc75b5b0
commit ac17be8bcd
  1. 663
      Model/Tiobon.Web.pdm
  2. 14
      Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassAttendController.cs
  3. 14
      Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs
  4. 14
      Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassFeeController.cs
  5. 14
      Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassScheduleController.cs
  6. 14
      Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassScoresController.cs
  7. 14
      Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassStaffController.cs
  8. 11856
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  9. 30
      Tiobon.Core.Api/Tiobon.Core.xml
  10. 8
      Tiobon.Core.IServices/Ghre/IGhre_OpenClassAttendServices.cs
  11. 8
      Tiobon.Core.IServices/Ghre/IGhre_OpenClassFeeServices.cs
  12. 8
      Tiobon.Core.IServices/Ghre/IGhre_OpenClassScheduleServices.cs
  13. 8
      Tiobon.Core.IServices/Ghre/IGhre_OpenClassScoresServices.cs
  14. 8
      Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs
  15. 8
      Tiobon.Core.IServices/Ghre/IGhre_OpenClassStaffServices.cs
  16. 2
      Tiobon.Core.IServices/GlobalUsings.cs
  17. 219
      Tiobon.Core.Model/Base/Ghre/Ghre_OpenClass.Dto.Base.cs
  18. 121
      Tiobon.Core.Model/Base/Ghre/Ghre_OpenClassAttend.Dto.Base.cs
  19. 127
      Tiobon.Core.Model/Base/Ghre/Ghre_OpenClassFee.Dto.Base.cs
  20. 137
      Tiobon.Core.Model/Base/Ghre/Ghre_OpenClassSchedule.Dto.Base.cs
  21. 138
      Tiobon.Core.Model/Base/Ghre/Ghre_OpenClassScores.Dto.Base.cs
  22. 122
      Tiobon.Core.Model/Base/Ghre/Ghre_OpenClassStaff.Dto.Base.cs
  23. 26
      Tiobon.Core.Model/Edit/Ghre/Ghre_OpenClass.Dto.EditInput.cs
  24. 26
      Tiobon.Core.Model/Edit/Ghre/Ghre_OpenClassAttend.Dto.EditInput.cs
  25. 26
      Tiobon.Core.Model/Edit/Ghre/Ghre_OpenClassFee.Dto.EditInput.cs
  26. 26
      Tiobon.Core.Model/Edit/Ghre/Ghre_OpenClassSchedule.Dto.EditInput.cs
  27. 26
      Tiobon.Core.Model/Edit/Ghre/Ghre_OpenClassScores.Dto.EditInput.cs
  28. 26
      Tiobon.Core.Model/Edit/Ghre/Ghre_OpenClassStaff.Dto.EditInput.cs
  29. 26
      Tiobon.Core.Model/Insert/Ghre/Ghre_OpenClass.Dto.InsertInput.cs
  30. 26
      Tiobon.Core.Model/Insert/Ghre/Ghre_OpenClassAttend.Dto.InsertInput.cs
  31. 26
      Tiobon.Core.Model/Insert/Ghre/Ghre_OpenClassFee.Dto.InsertInput.cs
  32. 26
      Tiobon.Core.Model/Insert/Ghre/Ghre_OpenClassSchedule.Dto.InsertInput.cs
  33. 26
      Tiobon.Core.Model/Insert/Ghre/Ghre_OpenClassScores.Dto.InsertInput.cs
  34. 26
      Tiobon.Core.Model/Insert/Ghre/Ghre_OpenClassStaff.Dto.InsertInput.cs
  35. 220
      Tiobon.Core.Model/Models/Ghre/Ghre_OpenClass.cs
  36. 122
      Tiobon.Core.Model/Models/Ghre/Ghre_OpenClassAttend.cs
  37. 128
      Tiobon.Core.Model/Models/Ghre/Ghre_OpenClassFee.cs
  38. 138
      Tiobon.Core.Model/Models/Ghre/Ghre_OpenClassSchedule.cs
  39. 139
      Tiobon.Core.Model/Models/Ghre/Ghre_OpenClassScores.cs
  40. 123
      Tiobon.Core.Model/Models/Ghre/Ghre_OpenClassStaff.cs
  41. 34
      Tiobon.Core.Model/View/Ghre/Ghre_OpenClass.Dto.View.cs
  42. 34
      Tiobon.Core.Model/View/Ghre/Ghre_OpenClassAttend.Dto.View.cs
  43. 34
      Tiobon.Core.Model/View/Ghre/Ghre_OpenClassFee.Dto.View.cs
  44. 34
      Tiobon.Core.Model/View/Ghre/Ghre_OpenClassSchedule.Dto.View.cs
  45. 34
      Tiobon.Core.Model/View/Ghre/Ghre_OpenClassScores.Dto.View.cs
  46. 34
      Tiobon.Core.Model/View/Ghre/Ghre_OpenClassStaff.Dto.View.cs
  47. 15
      Tiobon.Core.Services/Ghre/Ghre_OpenClassAttendServices.cs
  48. 15
      Tiobon.Core.Services/Ghre/Ghre_OpenClassFeeServices.cs
  49. 15
      Tiobon.Core.Services/Ghre/Ghre_OpenClassScheduleServices.cs
  50. 15
      Tiobon.Core.Services/Ghre/Ghre_OpenClassScoresServices.cs
  51. 15
      Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs
  52. 15
      Tiobon.Core.Services/Ghre/Ghre_OpenClassStaffServices.cs

File diff suppressed because it is too large Load Diff

@ -0,0 +1,14 @@
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// 开班打卡(Controller)
/// </summary>
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
public class Ghre_OpenClassAttendController : BaseController<IGhre_OpenClassAttendServices, Ghre_OpenClassAttend, Ghre_OpenClassAttendDto, InsertGhre_OpenClassAttendInput, EditGhre_OpenClassAttendInput>
{
public Ghre_OpenClassAttendController(IGhre_OpenClassAttendServices service) : base(service)
{
}
}

@ -0,0 +1,14 @@
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// 开班管理(Controller)
/// </summary>
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
public class Ghre_OpenClassController : BaseController<IGhre_OpenClassServices, Ghre_OpenClass, Ghre_OpenClassDto, InsertGhre_OpenClassInput, EditGhre_OpenClassInput>
{
public Ghre_OpenClassController(IGhre_OpenClassServices service) : base(service)
{
}
}

@ -0,0 +1,14 @@
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// 开班费用(Controller)
/// </summary>
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
public class Ghre_OpenClassFeeController : BaseController<IGhre_OpenClassFeeServices, Ghre_OpenClassFee, Ghre_OpenClassFeeDto, InsertGhre_OpenClassFeeInput, EditGhre_OpenClassFeeInput>
{
public Ghre_OpenClassFeeController(IGhre_OpenClassFeeServices service) : base(service)
{
}
}

@ -0,0 +1,14 @@
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// 开班课表(Controller)
/// </summary>
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
public class Ghre_OpenClassScheduleController : BaseController<IGhre_OpenClassScheduleServices, Ghre_OpenClassSchedule, Ghre_OpenClassScheduleDto, InsertGhre_OpenClassScheduleInput, EditGhre_OpenClassScheduleInput>
{
public Ghre_OpenClassScheduleController(IGhre_OpenClassScheduleServices service) : base(service)
{
}
}

@ -0,0 +1,14 @@
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// 开班成绩(Controller)
/// </summary>
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
public class Ghre_OpenClassScoresController : BaseController<IGhre_OpenClassScoresServices, Ghre_OpenClassScores, Ghre_OpenClassScoresDto, InsertGhre_OpenClassScoresInput, EditGhre_OpenClassScoresInput>
{
public Ghre_OpenClassScoresController(IGhre_OpenClassScoresServices service) : base(service)
{
}
}

@ -0,0 +1,14 @@
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// 开班学员(Controller)
/// </summary>
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
public class Ghre_OpenClassStaffController : BaseController<IGhre_OpenClassStaffServices, Ghre_OpenClassStaff, Ghre_OpenClassStaffDto, InsertGhre_OpenClassStaffInput, EditGhre_OpenClassStaffInput>
{
public Ghre_OpenClassStaffController(IGhre_OpenClassStaffServices service) : base(service)
{
}
}

File diff suppressed because it is too large Load Diff

@ -1135,6 +1135,36 @@
Ghre_ExamStaff(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassAttendController">
<summary>
开班打卡(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassController">
<summary>
开班管理(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassFeeController">
<summary>
开班费用(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassScheduleController">
<summary>
开班课表(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassScoresController">
<summary>
开班成绩(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassStaffController">
<summary>
开班学员(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_QuestionAnswerController">
<summary>
题目答案(Controller)

@ -0,0 +1,8 @@
namespace Tiobon.Core.IServices;
/// <summary>
/// 开班打卡(自定义服务接口)
/// </summary>
public interface IGhre_OpenClassAttendServices : IBaseServices<Ghre_OpenClassAttend, Ghre_OpenClassAttendDto, InsertGhre_OpenClassAttendInput, EditGhre_OpenClassAttendInput>
{
}

@ -0,0 +1,8 @@
namespace Tiobon.Core.IServices;
/// <summary>
/// 开班费用(自定义服务接口)
/// </summary>
public interface IGhre_OpenClassFeeServices : IBaseServices<Ghre_OpenClassFee, Ghre_OpenClassFeeDto, InsertGhre_OpenClassFeeInput, EditGhre_OpenClassFeeInput>
{
}

@ -0,0 +1,8 @@
namespace Tiobon.Core.IServices;
/// <summary>
/// 开班课表(自定义服务接口)
/// </summary>
public interface IGhre_OpenClassScheduleServices : IBaseServices<Ghre_OpenClassSchedule, Ghre_OpenClassScheduleDto, InsertGhre_OpenClassScheduleInput, EditGhre_OpenClassScheduleInput>
{
}

@ -0,0 +1,8 @@
namespace Tiobon.Core.IServices;
/// <summary>
/// 开班成绩(自定义服务接口)
/// </summary>
public interface IGhre_OpenClassScoresServices : IBaseServices<Ghre_OpenClassScores, Ghre_OpenClassScoresDto, InsertGhre_OpenClassScoresInput, EditGhre_OpenClassScoresInput>
{
}

@ -0,0 +1,8 @@
namespace Tiobon.Core.IServices;
/// <summary>
/// 开班管理(自定义服务接口)
/// </summary>
public interface IGhre_OpenClassServices : IBaseServices<Ghre_OpenClass, Ghre_OpenClassDto, InsertGhre_OpenClassInput, EditGhre_OpenClassInput>
{
}

@ -0,0 +1,8 @@
namespace Tiobon.Core.IServices;
/// <summary>
/// 开班学员(自定义服务接口)
/// </summary>
public interface IGhre_OpenClassStaffServices : IBaseServices<Ghre_OpenClassStaff, Ghre_OpenClassStaffDto, InsertGhre_OpenClassStaffInput, EditGhre_OpenClassStaffInput>
{
}

@ -0,0 +1,2 @@
global using Tiobon.Core.IServices.BASE;
global using Tiobon.Core.Model.Models;

@ -0,0 +1,219 @@
/* ,
* Ghre_OpenClass.cs
*
* N / A
* Ghre_OpenClass
*
* Ver
*
*V0.01 2025/2/8 14:35:04 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班管理 (Dto.Base)
/// </summary>
public class Ghre_OpenClassBase
{
/// <summary>
/// 开班编号
/// </summary>
[Display(Name = "OpenClassNo"), Description("开班编号"), MaxLength(64, ErrorMessage = "开班编号 不能超过 64 个字符")]
public string OpenClassNo { get; set; }
/// <summary>
/// 开班名称
/// </summary>
[Display(Name = "OpenClassName"), Description("开班名称"), MaxLength(64, ErrorMessage = "开班名称 不能超过 64 个字符")]
public string OpenClassName { get; set; }
/// <summary>
/// 开班类别
/// </summary>
[Display(Name = "OpenClassType"), Description("开班类别"), MaxLength(32, ErrorMessage = "开班类别 不能超过 32 个字符")]
public string OpenClassType { get; set; }
/// <summary>
/// 开班形式
/// </summary>
[Display(Name = "OpenClassWay"), Description("开班形式"), MaxLength(32, ErrorMessage = "开班形式 不能超过 32 个字符")]
public string OpenClassWay { get; set; }
/// <summary>
/// 培训计划
/// </summary>
public long? PanId { get; set; }
/// <summary>
/// 关联类型
/// </summary>
[Display(Name = "LinkType"), Description("关联类型"), MaxLength(32, ErrorMessage = "关联类型 不能超过 32 个字符")]
public string LinkType { get; set; }
/// <summary>
/// 课程/场景ID
/// </summary>
public long? LinkId { get; set; }
/// <summary>
/// 试卷ID
/// </summary>
public long? ExamPaperId { get; set; }
/// <summary>
/// 反馈单ID
/// </summary>
public long? FeedbackId { get; set; }
/// <summary>
/// 培训地点
/// </summary>
[Display(Name = "Address"), Description("培训地点"), MaxLength(256, ErrorMessage = "培训地点 不能超过 256 个字符")]
public string Address { get; set; }
/// <summary>
/// 开班开始日期
/// </summary>
public DateTime? StartTime { get; set; }
/// <summary>
/// 开班结束日期
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 报名开始日期
/// </summary>
public DateTime? RegisterStartTime { get; set; }
/// <summary>
/// 报名结束日期
/// </summary>
public DateTime? RegisterEndTime { get; set; }
/// <summary>
/// 评估方式
/// </summary>
public long? ScoringMethod { get; set; }
/// <summary>
/// 学员群组
/// </summary>
public long? StaffGroup { get; set; }
/// <summary>
/// 开班通知内容
/// </summary>
[Display(Name = "NoticeContent"), Description("开班通知内容"), MaxLength(2000, ErrorMessage = "开班通知内容 不能超过 2000 个字符")]
public string NoticeContent { get; set; }
/// <summary>
/// 总结
/// </summary>
[Display(Name = "Summary"), Description("总结"), MaxLength(2000, ErrorMessage = "总结 不能超过 2000 个字符")]
public string Summary { get; set; }
/// <summary>
/// 发布状态
/// </summary>
public int? ReleaseStatus { get; set; }
/// <summary>
/// 开课状态
/// </summary>
public int? OpenStatus { get; set; }
/// <summary>
/// 结案状态
/// </summary>
public int? CloseStatus { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,121 @@
/* ,
* Ghre_OpenClassAttend.cs
*
* N / A
* Ghre_OpenClassAttend
*
* Ver
*
*V0.01 2025/2/8 14:57:20 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班打卡 (Dto.Base)
/// </summary>
public class Ghre_OpenClassAttendBase
{
/// <summary>
/// 开班ID
/// </summary>
public long? OpenClassId { get; set; }
/// <summary>
/// 打卡时间
/// </summary>
public DateTime? AttendTime { get; set; }
/// <summary>
/// 课表ID
/// </summary>
public long? ScheduleId { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,127 @@
/* ,
* Ghre_OpenClassFee.cs
*
* N / A
* Ghre_OpenClassFee
*
* Ver
*
*V0.01 2025/2/8 14:57:45 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班费用 (Dto.Base)
/// </summary>
public class Ghre_OpenClassFeeBase
{
/// <summary>
/// 开班ID
/// </summary>
public long? OpenClassId { get; set; }
/// <summary>
/// 员工ID
/// </summary>
public int? StaffId { get; set; }
/// <summary>
/// 费用项目ID
/// </summary>
public long? ItemId { get; set; }
/// <summary>
/// 金额
/// </summary>
[Display(Name = "Amount"), Description("金额"), Column(TypeName = "decimal(20,2)")]
public decimal? Amount { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,137 @@
/* ,
* Ghre_OpenClassSchedule.cs
*
* N / A
* Ghre_OpenClassSchedule
*
* Ver
*
*V0.01 2025/2/8 14:57:01 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班课表 (Dto.Base)
/// </summary>
public class Ghre_OpenClassScheduleBase
{
/// <summary>
/// 开班ID
/// </summary>
public long? OpenClassId { get; set; }
/// <summary>
/// 课程ID
/// </summary>
public long? CourseId { get; set; }
/// <summary>
/// 讲师ID
/// </summary>
public long? TeacherId { get; set; }
/// <summary>
/// 培训地点
/// </summary>
[Display(Name = "Address"), Description("培训地点"), MaxLength(256, ErrorMessage = "培训地点 不能超过 256 个字符")]
public string Address { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,138 @@
/* ,
* Ghre_OpenClassScores.cs
*
* N / A
* Ghre_OpenClassScores
*
* Ver
*
*V0.01 2025/2/8 14:57:32 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班成绩 (Dto.Base)
/// </summary>
public class Ghre_OpenClassScoresBase
{
/// <summary>
/// 开班ID
/// </summary>
public long? OpenClassId { get; set; }
/// <summary>
/// 出席状态
/// </summary>
[Display(Name = "AttendStatus"), Description("出席状态"), MaxLength(256, ErrorMessage = "出席状态 不能超过 256 个字符")]
public string AttendStatus { get; set; }
/// <summary>
/// 缺席原因
/// </summary>
[Display(Name = "AbsentReason"), Description("缺席原因"), MaxLength(2000, ErrorMessage = "缺席原因 不能超过 2000 个字符")]
public string AbsentReason { get; set; }
/// <summary>
/// 打卡时间
/// </summary>
public DateTime? AttendTime { get; set; }
/// <summary>
/// 学习ID
/// </summary>
public long? StudyRecordId { get; set; }
/// <summary>
/// 考试ID
/// </summary>
public long? ExamId { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,122 @@
/* ,
* Ghre_OpenClassStaff.cs
*
* N / A
* Ghre_OpenClassStaff
*
* Ver
*
*V0.01 2025/2/8 14:51:48 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班学员 (Dto.Base)
/// </summary>
public class Ghre_OpenClassStaffBase
{
/// <summary>
/// 开班ID
/// </summary>
public long? OpenClassId { get; set; }
/// <summary>
/// 员工ID
/// </summary>
public int? StaffId { get; set; }
/// <summary>
/// 来源
/// </summary>
[Display(Name = "Source"), Description("来源"), MaxLength(32, ErrorMessage = "来源 不能超过 32 个字符")]
public string Source { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClass.cs
*
* N / A
* Ghre_OpenClass
*
* Ver
*
*V0.01 2025/2/8 14:35:04 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班管理 (Dto.EditInput)
/// </summary>
public class EditGhre_OpenClassInput : Ghre_OpenClassBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClassAttend.cs
*
* N / A
* Ghre_OpenClassAttend
*
* Ver
*
*V0.01 2025/2/8 14:57:20 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班打卡 (Dto.EditInput)
/// </summary>
public class EditGhre_OpenClassAttendInput : Ghre_OpenClassAttendBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClassFee.cs
*
* N / A
* Ghre_OpenClassFee
*
* Ver
*
*V0.01 2025/2/8 14:57:45 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班费用 (Dto.EditInput)
/// </summary>
public class EditGhre_OpenClassFeeInput : Ghre_OpenClassFeeBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClassSchedule.cs
*
* N / A
* Ghre_OpenClassSchedule
*
* Ver
*
*V0.01 2025/2/8 14:57:01 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班课表 (Dto.EditInput)
/// </summary>
public class EditGhre_OpenClassScheduleInput : Ghre_OpenClassScheduleBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClassScores.cs
*
* N / A
* Ghre_OpenClassScores
*
* Ver
*
*V0.01 2025/2/8 14:57:32 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班成绩 (Dto.EditInput)
/// </summary>
public class EditGhre_OpenClassScoresInput : Ghre_OpenClassScoresBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClassStaff.cs
*
* N / A
* Ghre_OpenClassStaff
*
* Ver
*
*V0.01 2025/2/8 14:51:48 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班学员 (Dto.EditInput)
/// </summary>
public class EditGhre_OpenClassStaffInput : Ghre_OpenClassStaffBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClass.cs
*
* N / A
* Ghre_OpenClass
*
* Ver
*
*V0.01 2025/2/8 14:35:04 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班管理 (Dto.InsertInput)
/// </summary>
public class InsertGhre_OpenClassInput : Ghre_OpenClassBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClassAttend.cs
*
* N / A
* Ghre_OpenClassAttend
*
* Ver
*
*V0.01 2025/2/8 14:57:20 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班打卡 (Dto.InsertInput)
/// </summary>
public class InsertGhre_OpenClassAttendInput : Ghre_OpenClassAttendBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClassFee.cs
*
* N / A
* Ghre_OpenClassFee
*
* Ver
*
*V0.01 2025/2/8 14:57:45 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班费用 (Dto.InsertInput)
/// </summary>
public class InsertGhre_OpenClassFeeInput : Ghre_OpenClassFeeBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClassSchedule.cs
*
* N / A
* Ghre_OpenClassSchedule
*
* Ver
*
*V0.01 2025/2/8 14:57:01 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班课表 (Dto.InsertInput)
/// </summary>
public class InsertGhre_OpenClassScheduleInput : Ghre_OpenClassScheduleBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClassScores.cs
*
* N / A
* Ghre_OpenClassScores
*
* Ver
*
*V0.01 2025/2/8 14:57:32 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班成绩 (Dto.InsertInput)
/// </summary>
public class InsertGhre_OpenClassScoresInput : Ghre_OpenClassScoresBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_OpenClassStaff.cs
*
* N / A
* Ghre_OpenClassStaff
*
* Ver
*
*V0.01 2025/2/8 14:51:48 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班学员 (Dto.InsertInput)
/// </summary>
public class InsertGhre_OpenClassStaffInput : Ghre_OpenClassStaffBase
{
}

@ -0,0 +1,220 @@
/* ,
* Ghre_OpenClass.cs
*
* N / A
* Ghre_OpenClass
*
* Ver
*
*V0.01 2025/2/8 14:35:04 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班管理 (Model)
/// </summary>
[SugarTable("Ghre_OpenClass", "Ghre_OpenClass"), Entity(TableCnName = "开班管理", TableName = "Ghre_OpenClass")]
public class Ghre_OpenClass : BasePoco
{
/// <summary>
/// 开班编号
/// </summary>
[Display(Name = "OpenClassNo"), Description("开班编号"), MaxLength(64, ErrorMessage = "开班编号 不能超过 64 个字符")]
public string OpenClassNo { get; set; }
/// <summary>
/// 开班名称
/// </summary>
[Display(Name = "OpenClassName"), Description("开班名称"), MaxLength(64, ErrorMessage = "开班名称 不能超过 64 个字符")]
public string OpenClassName { get; set; }
/// <summary>
/// 开班类别
/// </summary>
[Display(Name = "OpenClassType"), Description("开班类别"), MaxLength(32, ErrorMessage = "开班类别 不能超过 32 个字符")]
public string OpenClassType { get; set; }
/// <summary>
/// 开班形式
/// </summary>
[Display(Name = "OpenClassWay"), Description("开班形式"), MaxLength(32, ErrorMessage = "开班形式 不能超过 32 个字符")]
public string OpenClassWay { get; set; }
/// <summary>
/// 培训计划
/// </summary>
public long? PanId { get; set; }
/// <summary>
/// 关联类型
/// </summary>
[Display(Name = "LinkType"), Description("关联类型"), MaxLength(32, ErrorMessage = "关联类型 不能超过 32 个字符")]
public string LinkType { get; set; }
/// <summary>
/// 课程/场景ID
/// </summary>
public long? LinkId { get; set; }
/// <summary>
/// 试卷ID
/// </summary>
public long? ExamPaperId { get; set; }
/// <summary>
/// 反馈单ID
/// </summary>
public long? FeedbackId { get; set; }
/// <summary>
/// 培训地点
/// </summary>
[Display(Name = "Address"), Description("培训地点"), MaxLength(256, ErrorMessage = "培训地点 不能超过 256 个字符")]
public string Address { get; set; }
/// <summary>
/// 开班开始日期
/// </summary>
public DateTime? StartTime { get; set; }
/// <summary>
/// 开班结束日期
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 报名开始日期
/// </summary>
public DateTime? RegisterStartTime { get; set; }
/// <summary>
/// 报名结束日期
/// </summary>
public DateTime? RegisterEndTime { get; set; }
/// <summary>
/// 评估方式
/// </summary>
public long? ScoringMethod { get; set; }
/// <summary>
/// 学员群组
/// </summary>
public long? StaffGroup { get; set; }
/// <summary>
/// 开班通知内容
/// </summary>
[Display(Name = "NoticeContent"), Description("开班通知内容"), MaxLength(2000, ErrorMessage = "开班通知内容 不能超过 2000 个字符")]
public string NoticeContent { get; set; }
/// <summary>
/// 总结
/// </summary>
[Display(Name = "Summary"), Description("总结"), MaxLength(2000, ErrorMessage = "总结 不能超过 2000 个字符")]
public string Summary { get; set; }
/// <summary>
/// 发布状态
/// </summary>
public int? ReleaseStatus { get; set; }
/// <summary>
/// 开课状态
/// </summary>
public int? OpenStatus { get; set; }
/// <summary>
/// 结案状态
/// </summary>
public int? CloseStatus { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,122 @@
/* ,
* Ghre_OpenClassAttend.cs
*
* N / A
* Ghre_OpenClassAttend
*
* Ver
*
*V0.01 2025/2/8 14:57:20 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班打卡 (Model)
/// </summary>
[SugarTable("Ghre_OpenClassAttend", "Ghre_OpenClassAttend"), Entity(TableCnName = "开班打卡", TableName = "Ghre_OpenClassAttend")]
public class Ghre_OpenClassAttend : BasePoco
{
/// <summary>
/// 开班ID
/// </summary>
public long? OpenClassId { get; set; }
/// <summary>
/// 打卡时间
/// </summary>
public DateTime? AttendTime { get; set; }
/// <summary>
/// 课表ID
/// </summary>
public long? ScheduleId { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,128 @@
/* ,
* Ghre_OpenClassFee.cs
*
* N / A
* Ghre_OpenClassFee
*
* Ver
*
*V0.01 2025/2/8 14:57:45 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班费用 (Model)
/// </summary>
[SugarTable("Ghre_OpenClassFee", "Ghre_OpenClassFee"), Entity(TableCnName = "开班费用", TableName = "Ghre_OpenClassFee")]
public class Ghre_OpenClassFee : BasePoco
{
/// <summary>
/// 开班ID
/// </summary>
public long? OpenClassId { get; set; }
/// <summary>
/// 员工ID
/// </summary>
public int? StaffId { get; set; }
/// <summary>
/// 费用项目ID
/// </summary>
public long? ItemId { get; set; }
/// <summary>
/// 金额
/// </summary>
[Display(Name = "Amount"), Description("金额"), Column(TypeName = "decimal(20,2)")]
public decimal? Amount { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,138 @@
/* ,
* Ghre_OpenClassSchedule.cs
*
* N / A
* Ghre_OpenClassSchedule
*
* Ver
*
*V0.01 2025/2/8 14:57:01 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班课表 (Model)
/// </summary>
[SugarTable("Ghre_OpenClassSchedule", "Ghre_OpenClassSchedule"), Entity(TableCnName = "开班课表", TableName = "Ghre_OpenClassSchedule")]
public class Ghre_OpenClassSchedule : BasePoco
{
/// <summary>
/// 开班ID
/// </summary>
public long? OpenClassId { get; set; }
/// <summary>
/// 课程ID
/// </summary>
public long? CourseId { get; set; }
/// <summary>
/// 讲师ID
/// </summary>
public long? TeacherId { get; set; }
/// <summary>
/// 培训地点
/// </summary>
[Display(Name = "Address"), Description("培训地点"), MaxLength(256, ErrorMessage = "培训地点 不能超过 256 个字符")]
public string Address { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,139 @@
/* ,
* Ghre_OpenClassScores.cs
*
* N / A
* Ghre_OpenClassScores
*
* Ver
*
*V0.01 2025/2/8 14:57:32 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班成绩 (Model)
/// </summary>
[SugarTable("Ghre_OpenClassScores", "Ghre_OpenClassScores"), Entity(TableCnName = "开班成绩", TableName = "Ghre_OpenClassScores")]
public class Ghre_OpenClassScores : BasePoco
{
/// <summary>
/// 开班ID
/// </summary>
public long? OpenClassId { get; set; }
/// <summary>
/// 出席状态
/// </summary>
[Display(Name = "AttendStatus"), Description("出席状态"), MaxLength(256, ErrorMessage = "出席状态 不能超过 256 个字符")]
public string AttendStatus { get; set; }
/// <summary>
/// 缺席原因
/// </summary>
[Display(Name = "AbsentReason"), Description("缺席原因"), MaxLength(2000, ErrorMessage = "缺席原因 不能超过 2000 个字符")]
public string AbsentReason { get; set; }
/// <summary>
/// 打卡时间
/// </summary>
public DateTime? AttendTime { get; set; }
/// <summary>
/// 学习ID
/// </summary>
public long? StudyRecordId { get; set; }
/// <summary>
/// 考试ID
/// </summary>
public long? ExamId { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,123 @@
/* ,
* Ghre_OpenClassStaff.cs
*
* N / A
* Ghre_OpenClassStaff
*
* Ver
*
*V0.01 2025/2/8 14:51:48 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班学员 (Model)
/// </summary>
[SugarTable("Ghre_OpenClassStaff", "Ghre_OpenClassStaff"), Entity(TableCnName = "开班学员", TableName = "Ghre_OpenClassStaff")]
public class Ghre_OpenClassStaff : BasePoco
{
/// <summary>
/// 开班ID
/// </summary>
public long? OpenClassId { get; set; }
/// <summary>
/// 员工ID
/// </summary>
public int? StaffId { get; set; }
/// <summary>
/// 来源
/// </summary>
[Display(Name = "Source"), Description("来源"), MaxLength(32, ErrorMessage = "来源 不能超过 32 个字符")]
public string Source { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,34 @@
/* ,
* Ghre_OpenClass.cs
*
* N / A
* Ghre_OpenClass
*
* Ver
*
*V0.01 2025/2/8 14:35:04 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班管理(Dto.View1)
/// </summary>
public class Ghre_OpenClassDto : Ghre_OpenClass
{
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
}

@ -0,0 +1,34 @@
/* ,
* Ghre_OpenClassAttend.cs
*
* N / A
* Ghre_OpenClassAttend
*
* Ver
*
*V0.01 2025/2/8 14:57:20 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班打卡(Dto.View1)
/// </summary>
public class Ghre_OpenClassAttendDto : Ghre_OpenClassAttend
{
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
}

@ -0,0 +1,34 @@
/* ,
* Ghre_OpenClassFee.cs
*
* N / A
* Ghre_OpenClassFee
*
* Ver
*
*V0.01 2025/2/8 14:57:45 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班费用(Dto.View1)
/// </summary>
public class Ghre_OpenClassFeeDto : Ghre_OpenClassFee
{
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
}

@ -0,0 +1,34 @@
/* ,
* Ghre_OpenClassSchedule.cs
*
* N / A
* Ghre_OpenClassSchedule
*
* Ver
*
*V0.01 2025/2/8 14:57:01 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班课表(Dto.View1)
/// </summary>
public class Ghre_OpenClassScheduleDto : Ghre_OpenClassSchedule
{
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
}

@ -0,0 +1,34 @@
/* ,
* Ghre_OpenClassScores.cs
*
* N / A
* Ghre_OpenClassScores
*
* Ver
*
*V0.01 2025/2/8 14:57:32 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班成绩(Dto.View1)
/// </summary>
public class Ghre_OpenClassScoresDto : Ghre_OpenClassScores
{
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
}

@ -0,0 +1,34 @@
/* ,
* Ghre_OpenClassStaff.cs
*
* N / A
* Ghre_OpenClassStaff
*
* Ver
*
*V0.01 2025/2/8 14:51:48 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 开班学员(Dto.View1)
/// </summary>
public class Ghre_OpenClassStaffDto : Ghre_OpenClassStaff
{
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
}

@ -0,0 +1,15 @@
namespace Tiobon.Core.Services;
/// <summary>
/// 开班打卡 (服务)
/// </summary>
public class Ghre_OpenClassAttendServices : BaseServices<Ghre_OpenClassAttend, Ghre_OpenClassAttendDto, InsertGhre_OpenClassAttendInput, EditGhre_OpenClassAttendInput>, IGhre_OpenClassAttendServices
{
private readonly IBaseRepository<Ghre_OpenClassAttend> _dal;
public Ghre_OpenClassAttendServices(ICaching caching, IBaseRepository<Ghre_OpenClassAttend> dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
}
}

@ -0,0 +1,15 @@
namespace Tiobon.Core.Services;
/// <summary>
/// 开班费用 (服务)
/// </summary>
public class Ghre_OpenClassFeeServices : BaseServices<Ghre_OpenClassFee, Ghre_OpenClassFeeDto, InsertGhre_OpenClassFeeInput, EditGhre_OpenClassFeeInput>, IGhre_OpenClassFeeServices
{
private readonly IBaseRepository<Ghre_OpenClassFee> _dal;
public Ghre_OpenClassFeeServices(ICaching caching, IBaseRepository<Ghre_OpenClassFee> dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
}
}

@ -0,0 +1,15 @@
namespace Tiobon.Core.Services;
/// <summary>
/// 开班课表 (服务)
/// </summary>
public class Ghre_OpenClassScheduleServices : BaseServices<Ghre_OpenClassSchedule, Ghre_OpenClassScheduleDto, InsertGhre_OpenClassScheduleInput, EditGhre_OpenClassScheduleInput>, IGhre_OpenClassScheduleServices
{
private readonly IBaseRepository<Ghre_OpenClassSchedule> _dal;
public Ghre_OpenClassScheduleServices(ICaching caching, IBaseRepository<Ghre_OpenClassSchedule> dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
}
}

@ -0,0 +1,15 @@
namespace Tiobon.Core.Services;
/// <summary>
/// 开班成绩 (服务)
/// </summary>
public class Ghre_OpenClassScoresServices : BaseServices<Ghre_OpenClassScores, Ghre_OpenClassScoresDto, InsertGhre_OpenClassScoresInput, EditGhre_OpenClassScoresInput>, IGhre_OpenClassScoresServices
{
private readonly IBaseRepository<Ghre_OpenClassScores> _dal;
public Ghre_OpenClassScoresServices(ICaching caching, IBaseRepository<Ghre_OpenClassScores> dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
}
}

@ -0,0 +1,15 @@
namespace Tiobon.Core.Services;
/// <summary>
/// 开班管理 (服务)
/// </summary>
public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClassDto, InsertGhre_OpenClassInput, EditGhre_OpenClassInput>, IGhre_OpenClassServices
{
private readonly IBaseRepository<Ghre_OpenClass> _dal;
public Ghre_OpenClassServices(ICaching caching, IBaseRepository<Ghre_OpenClass> dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
}
}

@ -0,0 +1,15 @@
namespace Tiobon.Core.Services;
/// <summary>
/// 开班学员 (服务)
/// </summary>
public class Ghre_OpenClassStaffServices : BaseServices<Ghre_OpenClassStaff, Ghre_OpenClassStaffDto, InsertGhre_OpenClassStaffInput, EditGhre_OpenClassStaffInput>, IGhre_OpenClassStaffServices
{
private readonly IBaseRepository<Ghre_OpenClassStaff> _dal;
public Ghre_OpenClassStaffServices(ICaching caching, IBaseRepository<Ghre_OpenClassStaff> dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
}
}
Loading…
Cancel
Save