diff --git a/Tiobon.Core.Api/Tiobon.Core.Model.xml b/Tiobon.Core.Api/Tiobon.Core.Model.xml
index ac92ccc8..bdbaab0d 100644
--- a/Tiobon.Core.Api/Tiobon.Core.Model.xml
+++ b/Tiobon.Core.Api/Tiobon.Core.Model.xml
@@ -5535,6 +5535,16 @@
预留字段12
+
+
+ SchoolName1
+
+
+
+
+ CourseName1
+
+
多岗维护 (Dto.Base)
@@ -23922,6 +23932,16 @@
预留字段12
+
+
+ SchoolName1
+
+
+
+
+ CourseName1
+
+
多岗维护 (Model)
diff --git a/Tiobon.Core.Model/Base/Ghre/Ghre_ExternalTrainApplyOrder_Boltone.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghre/Ghre_ExternalTrainApplyOrder_Boltone.Dto.Base.cs
index f9fa1030..057cf764 100644
--- a/Tiobon.Core.Model/Base/Ghre/Ghre_ExternalTrainApplyOrder_Boltone.Dto.Base.cs
+++ b/Tiobon.Core.Model/Base/Ghre/Ghre_ExternalTrainApplyOrder_Boltone.Dto.Base.cs
@@ -6,7 +6,7 @@
*
* Ver 变更日期 负责人 变更内容
* ───────────────────────────────────
-*V0.01 2025/4/11 11:35:25 SimonHsiao 初版
+*V0.01 2025/4/25 12:00:26 SimonHsiao 初版
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*┌──────────────────────────────────┐
@@ -319,6 +319,19 @@ public class Ghre_ExternalTrainApplyOrder_BoltoneBase
///
public int? ReverseI2 { get; set; }
+ ///
+ /// SchoolName1
+ ///
+ [Display(Name = "SchoolName1"), Description("SchoolName1"), MaxLength(128, ErrorMessage = "SchoolName1 不能超过 128 个字符")]
+ public string SchoolName1 { get; set; }
+
+ ///
+ /// CourseName1
+ ///
+ [Display(Name = "CourseName1"), Description("CourseName1"), MaxLength(128, ErrorMessage = "CourseName1 不能超过 128 个字符")]
+ public string CourseName1 { get; set; }
+
+
public List ExternalAttachments { get; set; } = new List();
public List ContractAttachments { get; set; } = new List();
@@ -328,3 +341,4 @@ public class Ghre_ExternalTrainApplyOrder_BoltoneBase
public string AttachmentTemplateLink { get; set; } = "/Advanced/files/外训申请附件.zip"
;
}
+
diff --git a/Tiobon.Core.Model/Models/Ghre/Ghre_ExternalTrainApplyOrder_Boltone.cs b/Tiobon.Core.Model/Models/Ghre/Ghre_ExternalTrainApplyOrder_Boltone.cs
index 68963eeb..d0956be2 100644
--- a/Tiobon.Core.Model/Models/Ghre/Ghre_ExternalTrainApplyOrder_Boltone.cs
+++ b/Tiobon.Core.Model/Models/Ghre/Ghre_ExternalTrainApplyOrder_Boltone.cs
@@ -6,7 +6,7 @@
*
* Ver 变更日期 负责人 变更内容
* ───────────────────────────────────
-*V0.01 2025/4/11 11:35:25 SimonHsiao 初版
+*V0.01 2025/4/25 12:00:26 SimonHsiao 初版
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*┌──────────────────────────────────┐
@@ -18,308 +18,319 @@ using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using SqlSugar;
-namespace Tiobon.Core.Model.Models
+namespace Tiobon.Core.Model.Models;
+
+
+///
+/// 外训申请_宝连通 (Model)
+///
+[SugarTable("Ghre_ExternalTrainApplyOrder_Boltone", "Ghre_ExternalTrainApplyOrder_Boltone"), Entity(TableCnName = "外训申请_宝连通", TableName = "Ghre_ExternalTrainApplyOrder_Boltone")]
+public class Ghre_ExternalTrainApplyOrder_Boltone : BasePoco
{
///
- /// 外训申请_宝连通 (Model)
- ///
- [SugarTable("Ghre_ExternalTrainApplyOrder_Boltone", "Ghre_ExternalTrainApplyOrder_Boltone"), Entity(TableCnName = "外训申请_宝连通", TableName = "Ghre_ExternalTrainApplyOrder_Boltone")]
- public class Ghre_ExternalTrainApplyOrder_Boltone : BasePoco
- {
-
- ///
- /// 发起时间
- ///
- public DateTime? ApplicantTime { get; set; }
-
- ///
- /// 发起人ID
- ///
- public int? ApplicantId { get; set; }
-
- ///
- /// 发起人部门ID
- ///
- public int? ApplicantDeptId { get; set; }
-
- ///
- /// 培训类型
- ///
- [Display(Name = "TrainType"), Description("培训类型"), MaxLength(32, ErrorMessage = "培训类型 不能超过 32 个字符")]
- public string TrainType { get; set; }
-
- ///
- /// 受训人员
- ///
- public int? StaffId { get; set; }
-
- ///
- /// 培训开始时间
- ///
- public DateTime? BeginTime { get; set; }
-
- ///
- /// 培训结束时间
- ///
- public DateTime? EndTime { get; set; }
-
- ///
- /// 培训地点
- ///
- [Display(Name = "Address"), Description("培训地点"), MaxLength(256, ErrorMessage = "培训地点 不能超过 256 个字符")]
- public string Address { get; set; }
-
- ///
- /// 培训机构
- ///
- public long? SchoolId { get; set; }
-
- ///
- /// 课程ID
- ///
- public long? CourseId { get; set; }
-
- ///
- /// 课程大纲
- ///
- [Display(Name = "CourseOutline"), Description("课程大纲"), MaxLength(2000, ErrorMessage = "课程大纲 不能超过 2000 个字符")]
- public string CourseOutline { get; set; }
-
- ///
- /// 受训目的
- ///
- [Display(Name = "TrainGoal"), Description("受训目的"), MaxLength(2000, ErrorMessage = "受训目的 不能超过 2000 个字符")]
- public string TrainGoal { get; set; }
-
- ///
- /// 费用
- ///
- [Display(Name = "Cost"), Description("费用"), Column(TypeName = "decimal(20,2)")]
- public decimal? Cost { get; set; }
-
- ///
- /// 是否签订服务协议
- ///
- [Display(Name = "IsSignContract"), Description("是否签订服务协议"), MaxLength(32, ErrorMessage = "是否签订服务协议 不能超过 32 个字符")]
- public string IsSignContract { get; set; }
-
- ///
- /// 服务协议
- ///
- [Display(Name = "ContractContent"), Description("服务协议"), MaxLength(2000, ErrorMessage = "服务协议 不能超过 2000 个字符")]
- public string ContractContent { get; set; }
-
- ///
- /// 服务协议开始日期
- ///
- public DateTime? ContractBeginTime { get; set; }
-
- ///
- /// 服务协议结束日期
- ///
- public DateTime? ContractEndTime { get; set; }
-
- ///
- /// 培训结果
- ///
- [Display(Name = "TrainResult"), Description("培训结果"), MaxLength(2000, ErrorMessage = "培训结果 不能超过 2000 个字符")]
- public string TrainResult { get; set; }
-
- ///
- /// 证件类型
- ///
- [Display(Name = "CertificateType"), Description("证件类型"), MaxLength(32, ErrorMessage = "证件类型 不能超过 32 个字符")]
- public string CertificateType { get; set; }
-
- ///
- /// 证件编号
- ///
- [Display(Name = "CertificateNo"), Description("证件编号"), MaxLength(256, ErrorMessage = "证件编号 不能超过 256 个字符")]
- public string CertificateNo { get; set; }
-
- ///
- /// 证件有效开始日期
- ///
- public DateTime? CertificateBeginTime { get; set; }
-
- ///
- /// 证件有效结束日期
- ///
- public DateTime? CertificateEndTime { get; set; }
-
- ///
- /// 培训机构评价
- ///
- [Display(Name = "SchoolEval"), Description("培训机构评价"), MaxLength(100, ErrorMessage = "培训机构评价 不能超过 100 个字符")]
- public string SchoolEval { get; set; }
-
- ///
- /// 培训成果确认
- ///
- [Display(Name = "SchoolOutcomeConfirm"), Description("培训成果确认"), MaxLength(32, ErrorMessage = "培训成果确认 不能超过 32 个字符")]
- public string SchoolOutcomeConfirm { get; set; }
-
- ///
- /// WorkID
- ///
- public int? WorkID { get; set; }
-
- ///
- /// WorkNo
- ///
- [Display(Name = "WorkNo"), Description("WorkNo"), MaxLength(100, ErrorMessage = "WorkNo 不能超过 100 个字符")]
- public string WorkNo { get; set; }
-
- ///
- /// ToDoType
- ///
- [Display(Name = "ToDoType"), Description("ToDoType"), MaxLength(100, ErrorMessage = "ToDoType 不能超过 100 个字符")]
- public string ToDoType { get; set; }
-
- ///
- /// BatchSID
- ///
- [Display(Name = "BatchSID"), Description("BatchSID"), MaxLength(100, ErrorMessage = "BatchSID 不能超过 100 个字符")]
- public string BatchSID { get; set; }
-
- ///
- /// WorkState
- ///
- public int? WorkState { get; set; }
-
- ///
- /// ShiftID
- ///
- public int? ShiftID { get; set; }
-
- ///
- /// ConfirmUserID
- ///
- public int? ConfirmUserID { get; set; }
-
- ///
- /// ConfirmTime
- ///
- public DateTime? ConfirmTime { get; set; }
-
- ///
- /// ConfirmComment
- ///
- [Display(Name = "ConfirmComment"), Description("ConfirmComment"), MaxLength(2000, ErrorMessage = "ConfirmComment 不能超过 2000 个字符")]
- public string ConfirmComment { get; set; }
-
- ///
- /// 同意人
- ///
- public long? AgreeUserId { get; set; }
-
- ///
- /// 同意时间
- ///
- public DateTime? AgreeTime { get; set; }
-
- ///
- /// 同意理由
- ///
- [Display(Name = "AgreeReason"), Description("同意理由"), MaxLength(2000, ErrorMessage = "同意理由 不能超过 2000 个字符")]
- public string AgreeReason { get; set; }
-
- ///
- /// 拒绝人
- ///
- public long? RefuseUserId { get; set; }
-
- ///
- /// 拒绝时间
- ///
- public DateTime? RefuseTime { get; set; }
-
- ///
- /// 拒绝理由
- ///
- [Display(Name = "RefuseReason"), Description("拒绝理由"), MaxLength(2000, ErrorMessage = "拒绝理由 不能超过 2000 个字符")]
- public string RefuseReason { get; set; }
-
- ///
- /// 备注
- ///
- [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
- public string RemarkSz { get; set; }
-
- ///
- /// 默认标志
- ///
- public int? IsDefault { get; set; }
-
- ///
- /// 预留字段1
- ///
- [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
- public string Reverse1 { get; set; }
-
- ///
- /// 预留字段2
- ///
- [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
- public string Reverse2 { get; set; }
-
- ///
- /// 预留字段3
- ///
- [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
- public string Reverse3 { get; set; }
-
- ///
- /// 预留字段4
- ///
- [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
- public string Reverse4 { get; set; }
-
- ///
- /// 预留字段5
- ///
- [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
- public string Reverse5 { get; set; }
-
- ///
- /// 预留字段6
- ///
- [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
- public string Reverse6 { get; set; }
-
- ///
- /// 预留字段7
- ///
- [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
- public string Reverse7 { get; set; }
-
- ///
- /// 预留字段8
- ///
- [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
- public string Reverse8 { get; set; }
-
- ///
- /// 预留字段9
- ///
- [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
- public string Reverse9 { get; set; }
-
- ///
- /// 预留字段10
- ///
- [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
- public string Reverse10 { get; set; }
-
- ///
- /// 预留字段11
- ///
- public int? ReverseI1 { get; set; }
-
- ///
- /// 预留字段12
- ///
- public int? ReverseI2 { get; set; }
- }
+ /// 发起时间
+ ///
+ public DateTime? ApplicantTime { get; set; }
+
+ ///
+ /// 发起人ID
+ ///
+ public int? ApplicantId { get; set; }
+
+ ///
+ /// 发起人部门ID
+ ///
+ public int? ApplicantDeptId { get; set; }
+
+ ///
+ /// 培训类型
+ ///
+ [Display(Name = "TrainType"), Description("培训类型"), MaxLength(32, ErrorMessage = "培训类型 不能超过 32 个字符")]
+ public string TrainType { get; set; }
+
+ ///
+ /// 受训人员
+ ///
+ public int? StaffId { get; set; }
+
+ ///
+ /// 培训开始时间
+ ///
+ public DateTime? BeginTime { get; set; }
+
+ ///
+ /// 培训结束时间
+ ///
+ public DateTime? EndTime { get; set; }
+
+ ///
+ /// 培训地点
+ ///
+ [Display(Name = "Address"), Description("培训地点"), MaxLength(256, ErrorMessage = "培训地点 不能超过 256 个字符")]
+ public string Address { get; set; }
+
+ ///
+ /// 培训机构
+ ///
+ public long? SchoolId { get; set; }
+
+ ///
+ /// 课程ID
+ ///
+ public long? CourseId { get; set; }
+
+ ///
+ /// 课程大纲
+ ///
+ [Display(Name = "CourseOutline"), Description("课程大纲"), MaxLength(2000, ErrorMessage = "课程大纲 不能超过 2000 个字符")]
+ public string CourseOutline { get; set; }
+
+ ///
+ /// 受训目的
+ ///
+ [Display(Name = "TrainGoal"), Description("受训目的"), MaxLength(2000, ErrorMessage = "受训目的 不能超过 2000 个字符")]
+ public string TrainGoal { get; set; }
+
+ ///
+ /// 费用
+ ///
+ [Display(Name = "Cost"), Description("费用"), Column(TypeName = "decimal(20,2)")]
+ public decimal? Cost { get; set; }
+
+ ///
+ /// 是否签订服务协议
+ ///
+ [Display(Name = "IsSignContract"), Description("是否签订服务协议"), MaxLength(32, ErrorMessage = "是否签订服务协议 不能超过 32 个字符")]
+ public string IsSignContract { get; set; }
+
+ ///
+ /// 服务协议
+ ///
+ [Display(Name = "ContractContent"), Description("服务协议"), MaxLength(2000, ErrorMessage = "服务协议 不能超过 2000 个字符")]
+ public string ContractContent { get; set; }
+
+ ///
+ /// 服务协议开始日期
+ ///
+ public DateTime? ContractBeginTime { get; set; }
+
+ ///
+ /// 服务协议结束日期
+ ///
+ public DateTime? ContractEndTime { get; set; }
+
+ ///
+ /// 培训结果
+ ///
+ [Display(Name = "TrainResult"), Description("培训结果"), MaxLength(2000, ErrorMessage = "培训结果 不能超过 2000 个字符")]
+ public string TrainResult { get; set; }
+
+ ///
+ /// 证件类型
+ ///
+ [Display(Name = "CertificateType"), Description("证件类型"), MaxLength(32, ErrorMessage = "证件类型 不能超过 32 个字符")]
+ public string CertificateType { get; set; }
+
+ ///
+ /// 证件编号
+ ///
+ [Display(Name = "CertificateNo"), Description("证件编号"), MaxLength(256, ErrorMessage = "证件编号 不能超过 256 个字符")]
+ public string CertificateNo { get; set; }
+
+ ///
+ /// 证件有效开始日期
+ ///
+ public DateTime? CertificateBeginTime { get; set; }
+
+ ///
+ /// 证件有效结束日期
+ ///
+ public DateTime? CertificateEndTime { get; set; }
+
+ ///
+ /// 培训机构评价
+ ///
+ [Display(Name = "SchoolEval"), Description("培训机构评价"), MaxLength(100, ErrorMessage = "培训机构评价 不能超过 100 个字符")]
+ public string SchoolEval { get; set; }
+
+ ///
+ /// 培训成果确认
+ ///
+ [Display(Name = "SchoolOutcomeConfirm"), Description("培训成果确认"), MaxLength(32, ErrorMessage = "培训成果确认 不能超过 32 个字符")]
+ public string SchoolOutcomeConfirm { get; set; }
+
+ ///
+ /// WorkID
+ ///
+ public int? WorkID { get; set; }
+
+ ///
+ /// WorkNo
+ ///
+ [Display(Name = "WorkNo"), Description("WorkNo"), MaxLength(100, ErrorMessage = "WorkNo 不能超过 100 个字符")]
+ public string WorkNo { get; set; }
+
+ ///
+ /// ToDoType
+ ///
+ [Display(Name = "ToDoType"), Description("ToDoType"), MaxLength(100, ErrorMessage = "ToDoType 不能超过 100 个字符")]
+ public string ToDoType { get; set; }
+
+ ///
+ /// BatchSID
+ ///
+ [Display(Name = "BatchSID"), Description("BatchSID"), MaxLength(100, ErrorMessage = "BatchSID 不能超过 100 个字符")]
+ public string BatchSID { get; set; }
+
+ ///
+ /// WorkState
+ ///
+ public int? WorkState { get; set; }
+
+ ///
+ /// ShiftID
+ ///
+ public int? ShiftID { get; set; }
+
+ ///
+ /// ConfirmUserID
+ ///
+ public int? ConfirmUserID { get; set; }
+
+ ///
+ /// ConfirmTime
+ ///
+ public DateTime? ConfirmTime { get; set; }
+
+ ///
+ /// ConfirmComment
+ ///
+ [Display(Name = "ConfirmComment"), Description("ConfirmComment"), MaxLength(2000, ErrorMessage = "ConfirmComment 不能超过 2000 个字符")]
+ public string ConfirmComment { get; set; }
+
+ ///
+ /// 同意人
+ ///
+ public long? AgreeUserId { get; set; }
+
+ ///
+ /// 同意时间
+ ///
+ public DateTime? AgreeTime { get; set; }
+
+ ///
+ /// 同意理由
+ ///
+ [Display(Name = "AgreeReason"), Description("同意理由"), MaxLength(2000, ErrorMessage = "同意理由 不能超过 2000 个字符")]
+ public string AgreeReason { get; set; }
+
+ ///
+ /// 拒绝人
+ ///
+ public long? RefuseUserId { get; set; }
+
+ ///
+ /// 拒绝时间
+ ///
+ public DateTime? RefuseTime { get; set; }
+
+ ///
+ /// 拒绝理由
+ ///
+ [Display(Name = "RefuseReason"), Description("拒绝理由"), MaxLength(2000, ErrorMessage = "拒绝理由 不能超过 2000 个字符")]
+ public string RefuseReason { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
+ public string RemarkSz { get; set; }
+
+ ///
+ /// 默认标志
+ ///
+ public int? IsDefault { get; set; }
+
+ ///
+ /// 预留字段1
+ ///
+ [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
+ public string Reverse1 { get; set; }
+
+ ///
+ /// 预留字段2
+ ///
+ [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
+ public string Reverse2 { get; set; }
+
+ ///
+ /// 预留字段3
+ ///
+ [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
+ public string Reverse3 { get; set; }
+
+ ///
+ /// 预留字段4
+ ///
+ [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
+ public string Reverse4 { get; set; }
+
+ ///
+ /// 预留字段5
+ ///
+ [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
+ public string Reverse5 { get; set; }
+
+ ///
+ /// 预留字段6
+ ///
+ [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
+ public string Reverse6 { get; set; }
+
+ ///
+ /// 预留字段7
+ ///
+ [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
+ public string Reverse7 { get; set; }
+
+ ///
+ /// 预留字段8
+ ///
+ [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
+ public string Reverse8 { get; set; }
+
+ ///
+ /// 预留字段9
+ ///
+ [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
+ public string Reverse9 { get; set; }
+
+ ///
+ /// 预留字段10
+ ///
+ [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
+ public string Reverse10 { get; set; }
+
+ ///
+ /// 预留字段11
+ ///
+ public int? ReverseI1 { get; set; }
+
+ ///
+ /// 预留字段12
+ ///
+ public int? ReverseI2 { get; set; }
+
+ ///
+ /// SchoolName1
+ ///
+ [Display(Name = "SchoolName1"), Description("SchoolName1"), MaxLength(128, ErrorMessage = "SchoolName1 不能超过 128 个字符")]
+ public string SchoolName1 { get; set; }
+
+ ///
+ /// CourseName1
+ ///
+ [Display(Name = "CourseName1"), Description("CourseName1"), MaxLength(128, ErrorMessage = "CourseName1 不能超过 128 个字符")]
+ public string CourseName1 { get; set; }
}
diff --git a/Tiobon.Core.Services/Ghre/Ghre_TitleSkill_BoltoneServices.cs b/Tiobon.Core.Services/Ghre/Ghre_TitleSkill_BoltoneServices.cs
index a16a9e0d..807a2e73 100644
--- a/Tiobon.Core.Services/Ghre/Ghre_TitleSkill_BoltoneServices.cs
+++ b/Tiobon.Core.Services/Ghre/Ghre_TitleSkill_BoltoneServices.cs
@@ -145,7 +145,8 @@ public class Ghre_TitleSkill_BoltoneServices : BaseServices
+
+
+ SchoolName1
+
+
+
+
+ CourseName1
+
+
多岗维护 (Dto.Base)
@@ -23922,6 +23932,16 @@
预留字段12
+
+
+ SchoolName1
+
+
+
+
+ CourseName1
+
+
多岗维护 (Model)