diff --git a/Tiobon.Core.Api/Controllers/Ghrp/Ghrp_PerformanceTemplateController.cs b/Tiobon.Core.Api/Controllers/Ghrp/Ghrp_PerformanceTemplateController.cs
new file mode 100644
index 00000000..0d7aefa0
--- /dev/null
+++ b/Tiobon.Core.Api/Controllers/Ghrp/Ghrp_PerformanceTemplateController.cs
@@ -0,0 +1,14 @@
+namespace Tiobon.Core.Api.Controllers;
+
+///
+/// 考核模板(Controller)
+///
+[Route("api/[controller]")]
+[ApiController, GlobalActionFilter]
+[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghrp)]
+public class Ghrp_PerformanceTemplateController : BaseController
+{
+ public Ghrp_PerformanceTemplateController(IGhrp_PerformanceTemplateServices service) : base(service)
+ {
+ }
+}
\ 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 7c115f9b..5e162309 100644
--- a/Tiobon.Core.Api/Tiobon.Core.Model.xml
+++ b/Tiobon.Core.Api/Tiobon.Core.Model.xml
@@ -2530,6 +2530,11 @@
预留字段12
+
+
+ 证书编号
+
+
Ghre_CertificateDesign (Dto.Base)
@@ -3025,6 +3030,11 @@
颁发公司ID
+
+
+ 集团数据归属
+
+
课程场景ID
@@ -3470,6 +3480,11 @@
学分规则ID
+
+
+ 所属公司ID
+
+
课程分类 (Dto.Base)
@@ -3565,6 +3580,11 @@
内置
+
+
+ 集团数据归属
+
+
课程场景 (Dto.Base)
@@ -3705,6 +3725,11 @@
场景说明
+
+
+ 所属公司ID
+
+
课程列表
@@ -3962,7 +3987,7 @@
- 课程ID
+ 课程ID
@@ -3970,14 +3995,14 @@
课程
-
+
- 分钟
+ 时
-
+
- 时
+ 分钟
@@ -4065,6 +4090,11 @@
预留字段12
+
+
+ 集团数据归属
+
+
课件附件 (Dto.Base)
@@ -4400,6 +4430,11 @@
预留字段12
+
+
+ 集团数据归属
+
+
Ghre_DaySalaryEntry_Boltone (Dto.Base)
@@ -4705,6 +4740,11 @@
查看答案和解析后,是否允许重新考试
+
+
+ 集团数据归属
+
+
考试通知记录 (Dto.Base)
@@ -4960,6 +5000,11 @@
内置
+
+
+ 集团数据归属
+
+
试卷配置 (Dto.Base)
@@ -6215,6 +6260,11 @@
预留字段12
+
+
+ 集团数据归属
+
+
开班管理 (Dto.Base)
@@ -6500,6 +6550,11 @@
上级反馈单ID
+
+
+ 集团数据归属
+
+
课程ID
@@ -7365,6 +7420,11 @@
外训机构
+
+
+ 集团数据归属
+
+
题目 (Dto.Base)
@@ -7480,6 +7540,11 @@
内置
+
+
+ 集团数据归属
+
+
题目答案 (Dto.Base)
@@ -7895,6 +7960,11 @@
支付金额说明
+
+
+ 集团数据归属
+
+
必选修查询 (Dto.Base)
@@ -8135,6 +8205,21 @@
预留字段12
+
+
+ 有效期起
+
+
+
+
+ 有效期止
+
+
+
+
+ 集团数据归属
+
+
培训机构附件 (Dto.Base)
@@ -8395,6 +8480,11 @@
预留字段12
+
+
+ 集团数据归属
+
+
直间接
@@ -8935,6 +9025,11 @@
培训计划ID
+
+
+ 集团数据归属
+
+
必选修规则结果 (Dto.Base)
@@ -10460,6 +10555,11 @@
失效日期
+
+
+ 集团数据归属
+
+
Ghre_TeacherAttachment (Dto.Base)
@@ -10685,11 +10785,6 @@
申请理由
-
-
- 发起人
-
-
状态
@@ -10835,6 +10930,16 @@
预留字段12
+
+
+ 发起人
+
+
+
+
+ 集团数据归属
+
+
培训讲师异动附件 (Dto.Base)
@@ -11135,6 +11240,11 @@
预留字段12
+
+
+ 考评方式
+
+
培训费用_宝连通 (Dto.Base)
@@ -16520,6 +16630,151 @@
考核阶段名称
+
+
+ 考核模板 (Dto.Base)
+
+
+
+
+ 考核模板编号
+
+
+
+
+ 考核模板名称
+
+
+
+
+ 考核周期类别ID
+
+
+
+
+ 考核周期类别编号
+
+
+
+
+ 考核阶段
+
+
+
+
+ 考核对象
+
+
+
+
+ 总分
+
+
+
+
+ 表单是否允许超过总分
+
+
+
+
+ 考核模板权重
+
+
+
+
+ 考核阶数(含本人)
+
+
+
+
+ 考核主管显示方式
+
+
+
+
+ 模板类型
+
+
+
+
+ 备注
+
+
+
+
+ 排序
+
+
+
+
+ 默认标志
+
+
+
+
+ 预留字段1
+
+
+
+
+ 预留字段2
+
+
+
+
+ 预留字段3
+
+
+
+
+ 预留字段4
+
+
+
+
+ 预留字段5
+
+
+
+
+ 预留字段6
+
+
+
+
+ 预留字段7
+
+
+
+
+ 预留字段8
+
+
+
+
+ 预留字段9
+
+
+
+
+ 预留字段10
+
+
+
+
+ 预留字段11
+
+
+
+
+ 预留字段12
+
+
+
+
+ 内置
+
+
Ghrs_Attachment (Dto.Base)
@@ -16663,6 +16918,101 @@
Reverse5
+
+
+ 资料归属 (Dto.Base)
+
+
+
+
+ DataBelongId
+
+
+
+
+ DataBelongNo
+
+
+
+
+ DataBelongName
+
+
+
+
+ DataBelongEname
+
+
+
+
+ DataBelongTypeID
+
+
+
+
+ MKey
+
+
+
+
+ RemarkSz
+
+
+
+
+ SortNo
+
+
+
+
+ IsDefault
+
+
+
+
+ Reverse1
+
+
+
+
+ Reverse2
+
+
+
+
+ Reverse3
+
+
+
+
+ Reverse4
+
+
+
+
+ Reverse5
+
+
+
+
+ Reverse6
+
+
+
+
+ Reverse7
+
+
+
+
+ Reverse8
+
+
+
+
+ Reverse9
+
+
Ghrs_DataRoleDetail (Dto.Base)
@@ -18677,11 +19027,21 @@
考核周期类别 (Dto.EditInput)
+
+
+ 考核模板 (Dto.EditInput)
+
+
Ghrs_Attachment (Dto.EditInput)
+
+
+ 资料归属 (Dto.EditInput)
+
+
Ghrs_DataRoleDetail (Dto.EditInput)
@@ -19343,11 +19703,21 @@
考核周期类别 (Dto.InsertInput)
+
+
+ 考核模板 (Dto.InsertInput)
+
+
Ghrs_Attachment (Dto.InsertInput)
+
+
+ 资料归属 (Dto.InsertInput)
+
+
Ghrs_DataRoleDetail (Dto.InsertInput)
@@ -22072,6 +22442,11 @@
预留字段12
+
+
+ 证书编号
+
+
Ghre_CertificateDesign (Model)
@@ -22567,6 +22942,11 @@
颁发公司ID
+
+
+ 集团数据归属
+
+
参数配置 (Model)
@@ -23002,6 +23382,11 @@
学分规则ID
+
+
+ 所属公司ID
+
+
课程分类 (Model)
@@ -23097,6 +23482,11 @@
内置
+
+
+ 集团数据归属
+
+
课程场景 (Model)
@@ -23237,6 +23627,11 @@
场景说明
+
+
+ 所属公司ID
+
+
Ghre_CourseSnap (Model)
@@ -23497,14 +23892,14 @@
课程
-
+
- 分钟
+ 时
-
+
- 时
+ 分钟
@@ -23592,6 +23987,11 @@
预留字段12
+
+
+ 集团数据归属
+
+
课件附件 (Model)
@@ -23927,6 +24327,11 @@
预留字段12
+
+
+ 集团数据归属
+
+
Ghre_DaySalaryEntry_Boltone (Model)
@@ -24232,6 +24637,11 @@
查看答案和解析后,是否允许重新考试
+
+
+ 集团数据归属
+
+
考试通知记录 (Model)
@@ -24487,6 +24897,11 @@
内置
+
+
+ 集团数据归属
+
+
试卷配置 (Model)
@@ -25742,6 +26157,11 @@
预留字段12
+
+
+ 集团数据归属
+
+
开班管理 (Model)
@@ -26027,6 +26447,11 @@
上级反馈单ID
+
+
+ 集团数据归属
+
+
开班打卡 (Model)
@@ -26867,6 +27292,11 @@
外训机构
+
+
+ 集团数据归属
+
+
题目 (Model)
@@ -26982,6 +27412,11 @@
内置
+
+
+ 集团数据归属
+
+
题目答案 (Model)
@@ -27397,6 +27832,11 @@
支付金额说明
+
+
+ 集团数据归属
+
+
必选修查询 (Model)
@@ -27637,6 +28077,21 @@
预留字段12
+
+
+ 有效期起
+
+
+
+
+ 有效期止
+
+
+
+
+ 集团数据归属
+
+
培训机构附件 (Model)
@@ -27897,6 +28352,11 @@
预留字段12
+
+
+ 集团数据归属
+
+
培训记录 (Model)
@@ -28367,6 +28827,11 @@
培训计划ID
+
+
+ 集团数据归属
+
+
必选修规则结果 (Model)
@@ -29892,6 +30357,11 @@
失效日期
+
+
+ 集团数据归属
+
+
Ghre_TeacherAttachment (Model)
@@ -30025,7 +30495,7 @@
原调动日期
-
+
@@ -30122,11 +30592,6 @@
状态
-
-
- 发起人
-
-
默认标志
@@ -30267,6 +30732,16 @@
预留字段12
+
+
+ 发起人
+
+
+
+
+ 集团数据归属
+
+
培训讲师异动附件 (Model)
@@ -30567,6 +31042,11 @@
预留字段12
+
+
+ 考评方式
+
+
培训费用_宝连通 (Model)
@@ -36087,6 +36567,151 @@
内置
+
+
+ 考核模板 (Model)
+
+
+
+
+ 考核模板编号
+
+
+
+
+ 考核模板名称
+
+
+
+
+ 考核周期类别ID
+
+
+
+
+ 考核周期类别编号
+
+
+
+
+ 考核阶段
+
+
+
+
+ 考核对象
+
+
+
+
+ 总分
+
+
+
+
+ 表单是否允许超过总分
+
+
+
+
+ 考核模板权重
+
+
+
+
+ 考核阶数(含本人)
+
+
+
+
+ 考核主管显示方式
+
+
+
+
+ 模板类型
+
+
+
+
+ 备注
+
+
+
+
+ 排序
+
+
+
+
+ 默认标志
+
+
+
+
+ 预留字段1
+
+
+
+
+ 预留字段2
+
+
+
+
+ 预留字段3
+
+
+
+
+ 预留字段4
+
+
+
+
+ 预留字段5
+
+
+
+
+ 预留字段6
+
+
+
+
+ 预留字段7
+
+
+
+
+ 预留字段8
+
+
+
+
+ 预留字段9
+
+
+
+
+ 预留字段10
+
+
+
+
+ 预留字段11
+
+
+
+
+ 预留字段12
+
+
+
+
+ 内置
+
+
Ghrs_Attachment (Model)
@@ -36230,6 +36855,101 @@
Reverse5
+
+
+ 资料归属 (Model)
+
+
+
+
+ DataBelongId
+
+
+
+
+ DataBelongNo
+
+
+
+
+ DataBelongName
+
+
+
+
+ DataBelongEname
+
+
+
+
+ DataBelongTypeID
+
+
+
+
+ MKey
+
+
+
+
+ RemarkSz
+
+
+
+
+ SortNo
+
+
+
+
+ IsDefault
+
+
+
+
+ Reverse1
+
+
+
+
+ Reverse2
+
+
+
+
+ Reverse3
+
+
+
+
+ Reverse4
+
+
+
+
+ Reverse5
+
+
+
+
+ Reverse6
+
+
+
+
+ Reverse7
+
+
+
+
+ Reverse8
+
+
+
+
+ Reverse9
+
+
Ghrs_DataRoleDetail (Model)
@@ -41118,6 +41838,21 @@
考核阶段名称
+
+
+ 考核模板(Dto.View1)
+
+
+
+
+ 创建信息
+
+
+
+
+ 修改信息
+
+
Ghrs_Attachment(Dto.View)
@@ -41133,6 +41868,21 @@
修改信息
+
+
+ 资料归属(Dto.View1)
+
+
+
+
+ 创建信息
+
+
+
+
+ 修改信息
+
+
Ghrs_DataRoleDetail(Dto.View)
@@ -43193,6 +43943,11 @@
试卷配置ID
+
+
+ 集团数据归属
+
+
创建信息
diff --git a/Tiobon.Core.Api/Tiobon.Core.xml b/Tiobon.Core.Api/Tiobon.Core.xml
index 4321306b..5ee6772c 100644
--- a/Tiobon.Core.Api/Tiobon.Core.xml
+++ b/Tiobon.Core.Api/Tiobon.Core.xml
@@ -749,6 +749,14 @@
培训记录(Controller)
+
+
+ 根据条件查询数据
+
+ RuleId
+ 条件
+
+
Ghre_CertificateDesign(Controller)
@@ -2385,11 +2393,21 @@
阶段
+
+
+ 考核模板(Controller)
+
+
Ghrs_Attachment(Controller)
+
+
+ 资料归属(Controller)
+
+
Ghrs_DataRoleDetail(Controller)
diff --git a/Tiobon.Core.IServices/Ghrp/IGhrp_PerformanceTemplateServices.cs b/Tiobon.Core.IServices/Ghrp/IGhrp_PerformanceTemplateServices.cs
new file mode 100644
index 00000000..b4266f1b
--- /dev/null
+++ b/Tiobon.Core.IServices/Ghrp/IGhrp_PerformanceTemplateServices.cs
@@ -0,0 +1,12 @@
+using Tiobon.Core.IServices.BASE;
+using Tiobon.Core.Model.Models;
+
+namespace Tiobon.Core.IServices
+{
+ ///
+ /// 考核模板(自定义服务接口)
+ ///
+ public interface IGhrp_PerformanceTemplateServices :IBaseServices
+ {
+ }
+}
\ No newline at end of file
diff --git a/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformanceTemplate.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformanceTemplate.Dto.Base.cs
new file mode 100644
index 00000000..6e2f3650
--- /dev/null
+++ b/Tiobon.Core.Model/Base/Ghrp/Ghrp_PerformanceTemplate.Dto.Base.cs
@@ -0,0 +1,188 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghrp_PerformanceTemplate.cs
+*
+*功 能: N / A
+* 类 名: Ghrp_PerformanceTemplate
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2025/6/4 14:15:24 SimonHsiao 初版
+*
+* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 考核模板 (Dto.Base)
+ ///
+ public class Ghrp_PerformanceTemplateBase
+ {
+
+ ///
+ /// 考核模板编号
+ ///
+ [Display(Name = "TemplateNo"), Description("考核模板编号"), MaxLength(100, ErrorMessage = "考核模板编号 不能超过 100 个字符")]
+ public string TemplateNo { get; set; }
+
+ ///
+ /// 考核模板名称
+ ///
+ [Display(Name = "TemplateName"), Description("考核模板名称"), MaxLength(100, ErrorMessage = "考核模板名称 不能超过 100 个字符")]
+ public string TemplateName { get; set; }
+
+ ///
+ /// 考核周期类别ID
+ ///
+ public int? PerformancePeriodTypeID { get; set; }
+
+ ///
+ /// 考核周期类别编号
+ ///
+ [Display(Name = "PeriodTypeNo"), Description("考核周期类别编号"), MaxLength(200, ErrorMessage = "考核周期类别编号 不能超过 200 个字符")]
+ public string PeriodTypeNo { get; set; }
+
+ ///
+ /// 考核阶段
+ ///
+ [Display(Name = "StageItem"), Description("考核阶段"), MaxLength(100, ErrorMessage = "考核阶段 不能超过 100 个字符")]
+ public string StageItem { get; set; }
+
+ ///
+ /// 考核对象
+ ///
+ public int? StaffGroupID { get; set; }
+
+ ///
+ /// 总分
+ ///
+ [Display(Name = "TotalScore"), Description("总分"), Column(TypeName = "decimal(18,2)")]
+ public decimal? TotalScore { get; set; }
+
+ ///
+ /// 表单是否允许超过总分
+ ///
+ public int? IsOutScore { get; set; }
+
+ ///
+ /// 考核模板权重
+ ///
+ [Display(Name = "Weight"), Description("考核模板权重"), Column(TypeName = "decimal(18,2)")]
+ public decimal? Weight { get; set; }
+
+ ///
+ /// 考核阶数(含本人)
+ ///
+ public int? LevelNum { get; set; }
+
+ ///
+ /// 考核主管显示方式
+ ///
+ [Display(Name = "MGShowType"), Description("考核主管显示方式"), MaxLength(255, ErrorMessage = "考核主管显示方式 不能超过 255 个字符")]
+ public string MGShowType { get; set; }
+
+ ///
+ /// 模板类型
+ ///
+ [Display(Name = "TemplateType"), Description("模板类型"), MaxLength(255, ErrorMessage = "模板类型 不能超过 255 个字符")]
+ public string TemplateType { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
+ public string RemarkSz { get; set; }
+
+ ///
+ /// 排序
+ ///
+ public int? SortNo { 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 int? BuiltIn { get; set; }
+ }
+}
diff --git a/Tiobon.Core.Model/Edit/Ghrp/Ghrp_PerformanceTemplate.Dto.EditInput.cs b/Tiobon.Core.Model/Edit/Ghrp/Ghrp_PerformanceTemplate.Dto.EditInput.cs
new file mode 100644
index 00000000..9e89b183
--- /dev/null
+++ b/Tiobon.Core.Model/Edit/Ghrp/Ghrp_PerformanceTemplate.Dto.EditInput.cs
@@ -0,0 +1,27 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghrp_PerformanceTemplate.cs
+*
+*功 能: N / A
+* 类 名: Ghrp_PerformanceTemplate
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2025/6/4 14:15:24 SimonHsiao 初版
+*
+* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 考核模板 (Dto.EditInput)
+ ///
+ public class EditGhrp_PerformanceTemplateInput : Ghrp_PerformanceTemplateBase
+ {
+ }
+}
diff --git a/Tiobon.Core.Model/Insert/Ghrp/Ghrp_PerformanceTemplate.Dto.InsertInput.cs b/Tiobon.Core.Model/Insert/Ghrp/Ghrp_PerformanceTemplate.Dto.InsertInput.cs
new file mode 100644
index 00000000..e567d856
--- /dev/null
+++ b/Tiobon.Core.Model/Insert/Ghrp/Ghrp_PerformanceTemplate.Dto.InsertInput.cs
@@ -0,0 +1,27 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghrp_PerformanceTemplate.cs
+*
+*功 能: N / A
+* 类 名: Ghrp_PerformanceTemplate
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2025/6/4 14:15:24 SimonHsiao 初版
+*
+* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 考核模板 (Dto.InsertInput)
+ ///
+ public class InsertGhrp_PerformanceTemplateInput : Ghrp_PerformanceTemplateBase
+ {
+ }
+}
diff --git a/Tiobon.Core.Model/Models/Ghrp/Ghrp_PerformanceTemplate.cs b/Tiobon.Core.Model/Models/Ghrp/Ghrp_PerformanceTemplate.cs
new file mode 100644
index 00000000..8e6bf882
--- /dev/null
+++ b/Tiobon.Core.Model/Models/Ghrp/Ghrp_PerformanceTemplate.cs
@@ -0,0 +1,190 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghrp_PerformanceTemplate.cs
+*
+*功 能: N / A
+* 类 名: Ghrp_PerformanceTemplate
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2025/6/4 14:15:24 SimonHsiao 初版
+*
+* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using SqlSugar;
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 考核模板 (Model)
+ ///
+ [SugarTable("Ghrp_PerformanceTemplate", "Ghrp_PerformanceTemplate"), Entity(TableCnName = "考核模板", TableName = "Ghrp_PerformanceTemplate")]
+ public class Ghrp_PerformanceTemplate : BasePoco
+ {
+
+ ///
+ /// 考核模板编号
+ ///
+ [Display(Name = "TemplateNo"), Description("考核模板编号"), MaxLength(100, ErrorMessage = "考核模板编号 不能超过 100 个字符")]
+ public string TemplateNo { get; set; }
+
+ ///
+ /// 考核模板名称
+ ///
+ [Display(Name = "TemplateName"), Description("考核模板名称"), MaxLength(100, ErrorMessage = "考核模板名称 不能超过 100 个字符")]
+ public string TemplateName { get; set; }
+
+ ///
+ /// 考核周期类别ID
+ ///
+ public int? PerformancePeriodTypeID { get; set; }
+
+ ///
+ /// 考核周期类别编号
+ ///
+ [Display(Name = "PeriodTypeNo"), Description("考核周期类别编号"), MaxLength(200, ErrorMessage = "考核周期类别编号 不能超过 200 个字符")]
+ public string PeriodTypeNo { get; set; }
+
+ ///
+ /// 考核阶段
+ ///
+ [Display(Name = "StageItem"), Description("考核阶段"), MaxLength(100, ErrorMessage = "考核阶段 不能超过 100 个字符")]
+ public string StageItem { get; set; }
+
+ ///
+ /// 考核对象
+ ///
+ public int? StaffGroupID { get; set; }
+
+ ///
+ /// 总分
+ ///
+ [Display(Name = "TotalScore"), Description("总分"), Column(TypeName = "decimal(18,2)")]
+ public decimal? TotalScore { get; set; }
+
+ ///
+ /// 表单是否允许超过总分
+ ///
+ public int? IsOutScore { get; set; }
+
+ ///
+ /// 考核模板权重
+ ///
+ [Display(Name = "Weight"), Description("考核模板权重"), Column(TypeName = "decimal(18,2)")]
+ public decimal? Weight { get; set; }
+
+ ///
+ /// 考核阶数(含本人)
+ ///
+ public int? LevelNum { get; set; }
+
+ ///
+ /// 考核主管显示方式
+ ///
+ [Display(Name = "MGShowType"), Description("考核主管显示方式"), MaxLength(255, ErrorMessage = "考核主管显示方式 不能超过 255 个字符")]
+ public string MGShowType { get; set; }
+
+ ///
+ /// 模板类型
+ ///
+ [Display(Name = "TemplateType"), Description("模板类型"), MaxLength(255, ErrorMessage = "模板类型 不能超过 255 个字符")]
+ public string TemplateType { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
+ public string RemarkSz { get; set; }
+
+ ///
+ /// 排序
+ ///
+ public int? SortNo { 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 int? BuiltIn { get; set; }
+ }
+}
diff --git a/Tiobon.Core.Model/View/Ghrp/Ghrp_PerformanceTemplate.Dto.View.cs b/Tiobon.Core.Model/View/Ghrp/Ghrp_PerformanceTemplate.Dto.View.cs
new file mode 100644
index 00000000..94dd2640
--- /dev/null
+++ b/Tiobon.Core.Model/View/Ghrp/Ghrp_PerformanceTemplate.Dto.View.cs
@@ -0,0 +1,38 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghrp_PerformanceTemplate.cs
+*
+*功 能: N / A
+* 类 名: Ghrp_PerformanceTemplate
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2025/6/4 14:15:24 SimonHsiao 初版
+*
+* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models;
+
+///
+/// 考核模板(Dto.View1)
+///
+public class Ghrp_PerformanceTemplateDto : Ghrp_PerformanceTemplate
+{
+ ///
+ /// 创建信息
+ ///
+ public string CreateDataInfo { get; set; }
+
+ ///
+ /// 修改信息
+ ///
+ public string UpdateDataInfo { get; set; }
+
+ public string StaffGroupName { get; set; }
+ public string PeriodTypeName { get; set; }
+
+}
diff --git a/Tiobon.Core.Services/Ghrp/Ghrp_PerformanceTemplateServices.cs b/Tiobon.Core.Services/Ghrp/Ghrp_PerformanceTemplateServices.cs
new file mode 100644
index 00000000..7b72144a
--- /dev/null
+++ b/Tiobon.Core.Services/Ghrp/Ghrp_PerformanceTemplateServices.cs
@@ -0,0 +1,60 @@
+
+using Tiobon.Core.IServices;
+using Tiobon.Core.Model.Models;
+using Tiobon.Core.Services.BASE;
+using Tiobon.Core.IRepository.Base;
+using Tiobon.Core.Common.Caches;
+using Tiobon.Core.Common.DB.Dapper.Extensions;
+
+namespace Tiobon.Core.Services
+{
+ ///
+ /// 考核模板 (服务)
+ ///
+ public class Ghrp_PerformanceTemplateServices : BaseServices, IGhrp_PerformanceTemplateServices
+ {
+ private readonly IBaseRepository _dal;
+ public Ghrp_PerformanceTemplateServices(ICaching caching, IBaseRepository dal)
+ {
+ this._dal = dal;
+ base.BaseDal = dal;
+ base._caching = caching;
+ }
+
+ public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
+ {
+
+ var result = await base.QueryFilterPage(filter, condition, IsEnable);
+
+ result.result.DT_TableDataT1.ForEach(async x =>
+ {
+ x.StageItem = await GetParaLabel("PerformanceStageItem", x.StageItem);
+ x.MGShowType = await GetParaLabelListString("Performance", "PerformanceMGShowType", x.MGShowType);
+ x.TemplateType = await GetParaLabelListString("Performance", "PerformanceTemplateType", x.TemplateType);
+ x.StaffGroupName = Db.Ado.GetString("select StaffGroupName from Ghra_StaffGroup where StaffGroupID=@StaffGroupID"
+ , new { StaffGroupID = x.StaffGroupID });
+ x.PeriodTypeName = Db.Ado.GetString("select PeriodTypeName from Ghrp_PerformancePeriodType where PerformancePeriodTypeID=@PerformancePeriodTypeID"
+ , new { PerformancePeriodTypeID = x.PerformancePeriodTypeID });
+ });
+ return result;
+ }
+
+ public override async Task Add(InsertGhrp_PerformanceTemplateInput entity)
+ {
+ if (entity.PerformancePeriodTypeID != null)
+ entity.PeriodTypeNo = await Db.Queryable().Where(a => a.Id == entity.PerformancePeriodTypeID).Select(x => x.PeriodTypeNo).FirstAsync();
+ var result = await base.Add(entity);
+
+ return result;
+ }
+
+ public override async Task Update(long Id, EditGhrp_PerformanceTemplateInput editModel)
+ {
+ if (editModel.PerformancePeriodTypeID != null)
+ editModel.PeriodTypeNo = await Db.Queryable().Where(a => a.Id == editModel.PerformancePeriodTypeID).Select(x => x.PeriodTypeNo).FirstAsync();
+
+ var result = await base.Update(Id, editModel, null, ["Status"]);
+ return result;
+ }
+ }
+}
\ No newline at end of file