diff --git a/Tiobon.Core.Api/Controllers/Ghrs/Ghrs_MenuController.cs b/Tiobon.Core.Api/Controllers/Ghrs/Ghrs_MenuController.cs
new file mode 100644
index 00000000..27a600af
--- /dev/null
+++ b/Tiobon.Core.Api/Controllers/Ghrs/Ghrs_MenuController.cs
@@ -0,0 +1,14 @@
+namespace Tiobon.Core.Api.Controllers;
+
+///
+/// Ghrs_Menu(Controller)
+///
+[Route("api/[controller]")]
+[ApiController, GlobalActionFilter]
+[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghrs)]
+public class Ghrs_MenuController : BaseController
+{
+ public Ghrs_MenuController(IGhrs_MenuServices 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 cd45ab99..1709f1fd 100644
--- a/Tiobon.Core.Api/Tiobon.Core.Model.xml
+++ b/Tiobon.Core.Api/Tiobon.Core.Model.xml
@@ -5393,6 +5393,386 @@
Reverse5
+
+
+ Ghrs_Menu (Dto.Base)
+
+
+
+
+ MenuId
+
+
+
+
+ MenuNo
+
+
+
+
+ MenuName
+
+
+
+
+ MKey
+
+
+
+
+ IconType
+
+
+
+
+ MenuUrl
+
+
+
+
+ MenuComponent
+
+
+
+
+ ParentMenuId
+
+
+
+
+ MenuType
+
+
+
+
+ MenuType2
+
+
+
+
+ FormType
+
+
+
+
+ DataPrivType
+
+
+
+
+ FlowID
+
+
+
+
+ MenuColDisplayType
+
+
+
+
+ MenuGroupTitle
+
+
+
+
+ QueryProcedure
+
+
+
+
+ EditProcedure
+
+
+
+
+ IUDProcedure
+
+
+
+
+ IsSTDMenu
+
+
+
+
+ IsWaterMark
+
+
+
+
+ IsPWDAgain
+
+
+
+
+ IsFromExcel
+
+
+
+
+ IsToExcel
+
+
+
+
+ IsNew
+
+
+
+
+ IsDetail
+
+
+
+
+ IsUpdate
+
+
+
+
+ IsDel
+
+
+
+
+ IsQuery
+
+
+
+
+ IsPrint
+
+
+
+
+ IsLog
+
+
+
+
+ IsManual
+
+
+
+
+ IsCopy
+
+
+
+
+ IsTBD1
+
+
+
+
+ TBD1MKey
+
+
+
+
+ IsTBD2
+
+
+
+
+ TBD2MKey
+
+
+
+
+ IsTBD3
+
+
+
+
+ TBD3MKey
+
+
+
+
+ IsTBD4
+
+
+
+
+ TBD4MKey
+
+
+
+
+ IsTBD5
+
+
+
+
+ TBD5MKey
+
+
+
+
+ IsTBD6
+
+
+
+
+ TBD6MKey
+
+
+
+
+ IsTBD7
+
+
+
+
+ TBD7MKey
+
+
+
+
+ IsTBD8
+
+
+
+
+ TBD8MKey
+
+
+
+
+ IsTBD9
+
+
+
+
+ TBD9MKey
+
+
+
+
+ IsTBD10
+
+
+
+
+ TBD10MKey
+
+
+
+
+ IsTBD11
+
+
+
+
+ TBD11MKey
+
+
+
+
+ IsTBD12
+
+
+
+
+ TBD12MKey
+
+
+
+
+ IsTBD13
+
+
+
+
+ TBD13MKey
+
+
+
+
+ IsTBD14
+
+
+
+
+ TBD14MKey
+
+
+
+
+ IsTBD15
+
+
+
+
+ TBD15MKey
+
+
+
+
+ RemarkSz
+
+
+
+
+ SortNo
+
+
+
+
+ IsDefault
+
+
+
+
+ Reverse1
+
+
+
+
+ Reverse2
+
+
+
+
+ Reverse3
+
+
+
+
+ Reverse4
+
+
+
+
+ Reverse5
+
+
+
+
+ Reverse6
+
+
+
+
+ Reverse7
+
+
+
+
+ Reverse8
+
+
+
+
+ Reverse9
+
+
+
+
+ AppUrl
+
+
Ghrs_ParaDetail (Dto.Base)
@@ -5907,6 +6287,11 @@
Ghrs_DataRoleDetail (Dto.EditInput)
+
+
+ Ghrs_Menu (Dto.EditInput)
+
+
Ghrs_ParaDetail (Dto.EditInput)
@@ -6137,6 +6522,11 @@
Ghrs_DataRoleDetail (Dto.InsertInput)
+
+
+ Ghrs_Menu (Dto.InsertInput)
+
+
Ghrs_ParaDetail (Dto.InsertInput)
@@ -11854,6 +12244,386 @@
Reverse5
+
+
+ Ghrs_Menu (Model)
+
+
+
+
+ MenuId
+
+
+
+
+ MenuNo
+
+
+
+
+ MenuName
+
+
+
+
+ MKey
+
+
+
+
+ IconType
+
+
+
+
+ MenuUrl
+
+
+
+
+ MenuComponent
+
+
+
+
+ ParentMenuId
+
+
+
+
+ MenuType
+
+
+
+
+ MenuType2
+
+
+
+
+ FormType
+
+
+
+
+ DataPrivType
+
+
+
+
+ FlowID
+
+
+
+
+ MenuColDisplayType
+
+
+
+
+ MenuGroupTitle
+
+
+
+
+ QueryProcedure
+
+
+
+
+ EditProcedure
+
+
+
+
+ IUDProcedure
+
+
+
+
+ IsSTDMenu
+
+
+
+
+ IsWaterMark
+
+
+
+
+ IsPWDAgain
+
+
+
+
+ IsFromExcel
+
+
+
+
+ IsToExcel
+
+
+
+
+ IsNew
+
+
+
+
+ IsDetail
+
+
+
+
+ IsUpdate
+
+
+
+
+ IsDel
+
+
+
+
+ IsQuery
+
+
+
+
+ IsPrint
+
+
+
+
+ IsLog
+
+
+
+
+ IsManual
+
+
+
+
+ IsCopy
+
+
+
+
+ IsTBD1
+
+
+
+
+ TBD1MKey
+
+
+
+
+ IsTBD2
+
+
+
+
+ TBD2MKey
+
+
+
+
+ IsTBD3
+
+
+
+
+ TBD3MKey
+
+
+
+
+ IsTBD4
+
+
+
+
+ TBD4MKey
+
+
+
+
+ IsTBD5
+
+
+
+
+ TBD5MKey
+
+
+
+
+ IsTBD6
+
+
+
+
+ TBD6MKey
+
+
+
+
+ IsTBD7
+
+
+
+
+ TBD7MKey
+
+
+
+
+ IsTBD8
+
+
+
+
+ TBD8MKey
+
+
+
+
+ IsTBD9
+
+
+
+
+ TBD9MKey
+
+
+
+
+ IsTBD10
+
+
+
+
+ TBD10MKey
+
+
+
+
+ IsTBD11
+
+
+
+
+ TBD11MKey
+
+
+
+
+ IsTBD12
+
+
+
+
+ TBD12MKey
+
+
+
+
+ IsTBD13
+
+
+
+
+ TBD13MKey
+
+
+
+
+ IsTBD14
+
+
+
+
+ TBD14MKey
+
+
+
+
+ IsTBD15
+
+
+
+
+ TBD15MKey
+
+
+
+
+ RemarkSz
+
+
+
+
+ SortNo
+
+
+
+
+ IsDefault
+
+
+
+
+ Reverse1
+
+
+
+
+ Reverse2
+
+
+
+
+ Reverse3
+
+
+
+
+ Reverse4
+
+
+
+
+ Reverse5
+
+
+
+
+ Reverse6
+
+
+
+
+ Reverse7
+
+
+
+
+ Reverse8
+
+
+
+
+ Reverse9
+
+
+
+
+ AppUrl
+
+
Ghrs_ParaDetail (Model)
@@ -13672,6 +14442,21 @@
修改信息
+
+
+ Ghrs_Menu(Dto.View)
+
+
+
+
+ 创建信息
+
+
+
+
+ 修改信息
+
+
Ghrs_ParaDetail(Dto.View)
diff --git a/Tiobon.Core.Api/Tiobon.Core.xml b/Tiobon.Core.Api/Tiobon.Core.xml
index fa94a41e..6b2743c6 100644
--- a/Tiobon.Core.Api/Tiobon.Core.xml
+++ b/Tiobon.Core.Api/Tiobon.Core.xml
@@ -1075,6 +1075,11 @@
Ghrs_DataRoleDetail(Controller)
+
+
+ Ghrs_Menu(Controller)
+
+
Ghrs_ParaDetail(Controller)
diff --git a/Tiobon.Core.IServices/Ghrs/IGhrs_MenuServices.cs b/Tiobon.Core.IServices/Ghrs/IGhrs_MenuServices.cs
new file mode 100644
index 00000000..2edf52ad
--- /dev/null
+++ b/Tiobon.Core.IServices/Ghrs/IGhrs_MenuServices.cs
@@ -0,0 +1,12 @@
+using Tiobon.Core.IServices.BASE;
+using Tiobon.Core.Model.Models;
+
+namespace Tiobon.Core.IServices
+{
+ ///
+ /// Ghrs_Menu(自定义服务接口)
+ ///
+ public interface IGhrs_MenuServices :IBaseServices
+ {
+ }
+}
\ No newline at end of file
diff --git a/Tiobon.Core.Model/Base/Ghrs/Ghrs_Menu.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghrs/Ghrs_Menu.Dto.Base.cs
new file mode 100644
index 00000000..bee4740b
--- /dev/null
+++ b/Tiobon.Core.Model/Base/Ghrs/Ghrs_Menu.Dto.Base.cs
@@ -0,0 +1,445 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghrs_Menu.cs
+*
+*功 能: N / A
+* 类 名: Ghrs_Menu
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/9/3 15:32:53 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// Ghrs_Menu (Dto.Base)
+ ///
+ public class Ghrs_MenuBase
+ {
+
+ ///
+ /// MenuId
+ ///
+ public int? MenuId { get; set; }
+
+ ///
+ /// MenuNo
+ ///
+ [Display(Name = "MenuNo"), Description("MenuNo"), MaxLength(100, ErrorMessage = "MenuNo 不能超过 100 个字符")]
+ public string MenuNo { get; set; }
+
+ ///
+ /// MenuName
+ ///
+ [Display(Name = "MenuName"), Description("MenuName"), MaxLength(1000, ErrorMessage = "MenuName 不能超过 1000 个字符")]
+ public string MenuName { get; set; }
+
+ ///
+ /// MKey
+ ///
+ [Display(Name = "MKey"), Description("MKey"), MaxLength(200, ErrorMessage = "MKey 不能超过 200 个字符")]
+ public string MKey { get; set; }
+
+ ///
+ /// IconType
+ ///
+ [Display(Name = "IconType"), Description("IconType"), MaxLength(200, ErrorMessage = "IconType 不能超过 200 个字符")]
+ public string IconType { get; set; }
+
+ ///
+ /// MenuUrl
+ ///
+ [Display(Name = "MenuUrl"), Description("MenuUrl"), MaxLength(500, ErrorMessage = "MenuUrl 不能超过 500 个字符")]
+ public string MenuUrl { get; set; }
+
+ ///
+ /// MenuComponent
+ ///
+ [Display(Name = "MenuComponent"), Description("MenuComponent"), MaxLength(100, ErrorMessage = "MenuComponent 不能超过 100 个字符")]
+ public string MenuComponent { get; set; }
+
+ ///
+ /// ParentMenuId
+ ///
+ public int? ParentMenuId { get; set; }
+
+ ///
+ /// MenuType
+ ///
+ [Display(Name = "MenuType"), Description("MenuType"), MaxLength(10, ErrorMessage = "MenuType 不能超过 10 个字符")]
+ public string MenuType { get; set; }
+
+ ///
+ /// MenuType2
+ ///
+ [Display(Name = "MenuType2"), Description("MenuType2"), MaxLength(100, ErrorMessage = "MenuType2 不能超过 100 个字符")]
+ public string MenuType2 { get; set; }
+
+ ///
+ /// FormType
+ ///
+ [Display(Name = "FormType"), Description("FormType"), MaxLength(100, ErrorMessage = "FormType 不能超过 100 个字符")]
+ public string FormType { get; set; }
+
+ ///
+ /// DataPrivType
+ ///
+ [Display(Name = "DataPrivType"), Description("DataPrivType"), MaxLength(100, ErrorMessage = "DataPrivType 不能超过 100 个字符")]
+ public string DataPrivType { get; set; }
+
+ ///
+ /// FlowID
+ ///
+ public int? FlowID { get; set; }
+
+ ///
+ /// MenuColDisplayType
+ ///
+ [Display(Name = "MenuColDisplayType"), Description("MenuColDisplayType"), MaxLength(100, ErrorMessage = "MenuColDisplayType 不能超过 100 个字符")]
+ public string MenuColDisplayType { get; set; }
+
+ ///
+ /// MenuGroupTitle
+ ///
+ [Display(Name = "MenuGroupTitle"), Description("MenuGroupTitle"), MaxLength(100, ErrorMessage = "MenuGroupTitle 不能超过 100 个字符")]
+ public string MenuGroupTitle { get; set; }
+
+ ///
+ /// QueryProcedure
+ ///
+ [Display(Name = "QueryProcedure"), Description("QueryProcedure"), MaxLength(200, ErrorMessage = "QueryProcedure 不能超过 200 个字符")]
+ public string QueryProcedure { get; set; }
+
+ ///
+ /// EditProcedure
+ ///
+ [Display(Name = "EditProcedure"), Description("EditProcedure"), MaxLength(200, ErrorMessage = "EditProcedure 不能超过 200 个字符")]
+ public string EditProcedure { get; set; }
+
+ ///
+ /// IUDProcedure
+ ///
+ [Display(Name = "IUDProcedure"), Description("IUDProcedure"), MaxLength(200, ErrorMessage = "IUDProcedure 不能超过 200 个字符")]
+ public string IUDProcedure { get; set; }
+
+ ///
+ /// IsSTDMenu
+ ///
+ public int? IsSTDMenu { get; set; }
+
+ ///
+ /// IsWaterMark
+ ///
+ public int? IsWaterMark { get; set; }
+
+ ///
+ /// IsPWDAgain
+ ///
+ public int? IsPWDAgain { get; set; }
+
+ ///
+ /// IsFromExcel
+ ///
+ public int? IsFromExcel { get; set; }
+
+ ///
+ /// IsToExcel
+ ///
+ public int? IsToExcel { get; set; }
+
+ ///
+ /// IsNew
+ ///
+ public int? IsNew { get; set; }
+
+ ///
+ /// IsDetail
+ ///
+ public int? IsDetail { get; set; }
+
+ ///
+ /// IsUpdate
+ ///
+ public int? IsUpdate { get; set; }
+
+ ///
+ /// IsDel
+ ///
+ public int? IsDel { get; set; }
+
+ ///
+ /// IsQuery
+ ///
+ public int? IsQuery { get; set; }
+
+ ///
+ /// IsPrint
+ ///
+ public int? IsPrint { get; set; }
+
+ ///
+ /// IsLog
+ ///
+ public int? IsLog { get; set; }
+
+ ///
+ /// IsManual
+ ///
+ public int? IsManual { get; set; }
+
+ ///
+ /// IsCopy
+ ///
+ public int? IsCopy { get; set; }
+
+ ///
+ /// IsTBD1
+ ///
+ public int? IsTBD1 { get; set; }
+
+ ///
+ /// TBD1MKey
+ ///
+ [Display(Name = "TBD1MKey"), Description("TBD1MKey"), MaxLength(200, ErrorMessage = "TBD1MKey 不能超过 200 个字符")]
+ public string TBD1MKey { get; set; }
+
+ ///
+ /// IsTBD2
+ ///
+ public int? IsTBD2 { get; set; }
+
+ ///
+ /// TBD2MKey
+ ///
+ [Display(Name = "TBD2MKey"), Description("TBD2MKey"), MaxLength(200, ErrorMessage = "TBD2MKey 不能超过 200 个字符")]
+ public string TBD2MKey { get; set; }
+
+ ///
+ /// IsTBD3
+ ///
+ public int? IsTBD3 { get; set; }
+
+ ///
+ /// TBD3MKey
+ ///
+ [Display(Name = "TBD3MKey"), Description("TBD3MKey"), MaxLength(200, ErrorMessage = "TBD3MKey 不能超过 200 个字符")]
+ public string TBD3MKey { get; set; }
+
+ ///
+ /// IsTBD4
+ ///
+ public int? IsTBD4 { get; set; }
+
+ ///
+ /// TBD4MKey
+ ///
+ [Display(Name = "TBD4MKey"), Description("TBD4MKey"), MaxLength(200, ErrorMessage = "TBD4MKey 不能超过 200 个字符")]
+ public string TBD4MKey { get; set; }
+
+ ///
+ /// IsTBD5
+ ///
+ public int? IsTBD5 { get; set; }
+
+ ///
+ /// TBD5MKey
+ ///
+ [Display(Name = "TBD5MKey"), Description("TBD5MKey"), MaxLength(200, ErrorMessage = "TBD5MKey 不能超过 200 个字符")]
+ public string TBD5MKey { get; set; }
+
+ ///
+ /// IsTBD6
+ ///
+ public int? IsTBD6 { get; set; }
+
+ ///
+ /// TBD6MKey
+ ///
+ [Display(Name = "TBD6MKey"), Description("TBD6MKey"), MaxLength(200, ErrorMessage = "TBD6MKey 不能超过 200 个字符")]
+ public string TBD6MKey { get; set; }
+
+ ///
+ /// IsTBD7
+ ///
+ public int? IsTBD7 { get; set; }
+
+ ///
+ /// TBD7MKey
+ ///
+ [Display(Name = "TBD7MKey"), Description("TBD7MKey"), MaxLength(200, ErrorMessage = "TBD7MKey 不能超过 200 个字符")]
+ public string TBD7MKey { get; set; }
+
+ ///
+ /// IsTBD8
+ ///
+ public int? IsTBD8 { get; set; }
+
+ ///
+ /// TBD8MKey
+ ///
+ [Display(Name = "TBD8MKey"), Description("TBD8MKey"), MaxLength(200, ErrorMessage = "TBD8MKey 不能超过 200 个字符")]
+ public string TBD8MKey { get; set; }
+
+ ///
+ /// IsTBD9
+ ///
+ public int? IsTBD9 { get; set; }
+
+ ///
+ /// TBD9MKey
+ ///
+ [Display(Name = "TBD9MKey"), Description("TBD9MKey"), MaxLength(200, ErrorMessage = "TBD9MKey 不能超过 200 个字符")]
+ public string TBD9MKey { get; set; }
+
+ ///
+ /// IsTBD10
+ ///
+ public int? IsTBD10 { get; set; }
+
+ ///
+ /// TBD10MKey
+ ///
+ [Display(Name = "TBD10MKey"), Description("TBD10MKey"), MaxLength(200, ErrorMessage = "TBD10MKey 不能超过 200 个字符")]
+ public string TBD10MKey { get; set; }
+
+ ///
+ /// IsTBD11
+ ///
+ public int? IsTBD11 { get; set; }
+
+ ///
+ /// TBD11MKey
+ ///
+ [Display(Name = "TBD11MKey"), Description("TBD11MKey"), MaxLength(200, ErrorMessage = "TBD11MKey 不能超过 200 个字符")]
+ public string TBD11MKey { get; set; }
+
+ ///
+ /// IsTBD12
+ ///
+ public int? IsTBD12 { get; set; }
+
+ ///
+ /// TBD12MKey
+ ///
+ [Display(Name = "TBD12MKey"), Description("TBD12MKey"), MaxLength(200, ErrorMessage = "TBD12MKey 不能超过 200 个字符")]
+ public string TBD12MKey { get; set; }
+
+ ///
+ /// IsTBD13
+ ///
+ public int? IsTBD13 { get; set; }
+
+ ///
+ /// TBD13MKey
+ ///
+ [Display(Name = "TBD13MKey"), Description("TBD13MKey"), MaxLength(200, ErrorMessage = "TBD13MKey 不能超过 200 个字符")]
+ public string TBD13MKey { get; set; }
+
+ ///
+ /// IsTBD14
+ ///
+ public int? IsTBD14 { get; set; }
+
+ ///
+ /// TBD14MKey
+ ///
+ [Display(Name = "TBD14MKey"), Description("TBD14MKey"), MaxLength(200, ErrorMessage = "TBD14MKey 不能超过 200 个字符")]
+ public string TBD14MKey { get; set; }
+
+ ///
+ /// IsTBD15
+ ///
+ public int? IsTBD15 { get; set; }
+
+ ///
+ /// TBD15MKey
+ ///
+ [Display(Name = "TBD15MKey"), Description("TBD15MKey"), MaxLength(200, ErrorMessage = "TBD15MKey 不能超过 200 个字符")]
+ public string TBD15MKey { get; set; }
+
+ ///
+ /// RemarkSz
+ ///
+ [Display(Name = "RemarkSz"), Description("RemarkSz"), MaxLength(2000, ErrorMessage = "RemarkSz 不能超过 2000 个字符")]
+ public string RemarkSz { get; set; }
+
+ ///
+ /// SortNo
+ ///
+ public int? SortNo { get; set; }
+
+ ///
+ /// IsDefault
+ ///
+ public int? IsDefault { get; set; }
+
+ ///
+ /// Reverse1
+ ///
+ [Display(Name = "Reverse1"), Description("Reverse1"), MaxLength(1000, ErrorMessage = "Reverse1 不能超过 1000 个字符")]
+ public string Reverse1 { get; set; }
+
+ ///
+ /// Reverse2
+ ///
+ [Display(Name = "Reverse2"), Description("Reverse2"), MaxLength(1000, ErrorMessage = "Reverse2 不能超过 1000 个字符")]
+ public string Reverse2 { get; set; }
+
+ ///
+ /// Reverse3
+ ///
+ [Display(Name = "Reverse3"), Description("Reverse3"), MaxLength(1000, ErrorMessage = "Reverse3 不能超过 1000 个字符")]
+ public string Reverse3 { get; set; }
+
+ ///
+ /// Reverse4
+ ///
+ [Display(Name = "Reverse4"), Description("Reverse4"), MaxLength(1000, ErrorMessage = "Reverse4 不能超过 1000 个字符")]
+ public string Reverse4 { get; set; }
+
+ ///
+ /// Reverse5
+ ///
+ [Display(Name = "Reverse5"), Description("Reverse5"), MaxLength(1000, ErrorMessage = "Reverse5 不能超过 1000 个字符")]
+ public string Reverse5 { get; set; }
+
+ ///
+ /// Reverse6
+ ///
+ [Display(Name = "Reverse6"), Description("Reverse6"), MaxLength(1000, ErrorMessage = "Reverse6 不能超过 1000 个字符")]
+ public string Reverse6 { get; set; }
+
+ ///
+ /// Reverse7
+ ///
+ [Display(Name = "Reverse7"), Description("Reverse7"), MaxLength(1000, ErrorMessage = "Reverse7 不能超过 1000 个字符")]
+ public string Reverse7 { get; set; }
+
+ ///
+ /// Reverse8
+ ///
+ [Display(Name = "Reverse8"), Description("Reverse8"), MaxLength(1000, ErrorMessage = "Reverse8 不能超过 1000 个字符")]
+ public string Reverse8 { get; set; }
+
+ ///
+ /// Reverse9
+ ///
+ [Display(Name = "Reverse9"), Description("Reverse9"), MaxLength(1000, ErrorMessage = "Reverse9 不能超过 1000 个字符")]
+ public string Reverse9 { get; set; }
+
+ ///
+ /// AppUrl
+ ///
+ [Display(Name = "AppUrl"), Description("AppUrl"), MaxLength(200, ErrorMessage = "AppUrl 不能超过 200 个字符")]
+ public string AppUrl { get; set; }
+ }
+}
diff --git a/Tiobon.Core.Model/Edit/Ghrs/Ghrs_Menu.Dto.EditInput.cs b/Tiobon.Core.Model/Edit/Ghrs/Ghrs_Menu.Dto.EditInput.cs
new file mode 100644
index 00000000..591347a5
--- /dev/null
+++ b/Tiobon.Core.Model/Edit/Ghrs/Ghrs_Menu.Dto.EditInput.cs
@@ -0,0 +1,27 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghrs_Menu.cs
+*
+*功 能: N / A
+* 类 名: Ghrs_Menu
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/9/3 15:32:53 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// Ghrs_Menu (Dto.EditInput)
+ ///
+ public class EditGhrs_MenuInput : Ghrs_MenuBase
+ {
+ }
+}
diff --git a/Tiobon.Core.Model/Insert/Ghrs/Ghrs_Menu.Dto.InsertInput.cs b/Tiobon.Core.Model/Insert/Ghrs/Ghrs_Menu.Dto.InsertInput.cs
new file mode 100644
index 00000000..1221d0bc
--- /dev/null
+++ b/Tiobon.Core.Model/Insert/Ghrs/Ghrs_Menu.Dto.InsertInput.cs
@@ -0,0 +1,27 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghrs_Menu.cs
+*
+*功 能: N / A
+* 类 名: Ghrs_Menu
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/9/3 15:32:53 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// Ghrs_Menu (Dto.InsertInput)
+ ///
+ public class InsertGhrs_MenuInput : Ghrs_MenuBase
+ {
+ }
+}
diff --git a/Tiobon.Core.Model/Models/Ghrs/Ghrs_Menu.cs b/Tiobon.Core.Model/Models/Ghrs/Ghrs_Menu.cs
new file mode 100644
index 00000000..1a06ad31
--- /dev/null
+++ b/Tiobon.Core.Model/Models/Ghrs/Ghrs_Menu.cs
@@ -0,0 +1,448 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghrs_Menu.cs
+*
+*功 能: N / A
+* 类 名: Ghrs_Menu
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/9/3 15:32:53 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using SqlSugar;
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// Ghrs_Menu (Model)
+ ///
+ [SugarTable("Ghrs_Menu", "Ghrs_Menu"), Entity(TableCnName = "Ghrs_Menu", TableName = "Ghrs_Menu")]
+ public class Ghrs_Menu : BasePoco1
+ {
+
+ ///
+ /// MenuId
+ ///
+ [SugarColumn(IsNullable = false, IsPrimaryKey = true, IsIdentity = false), Display(Name = "表主键")]
+ public int? MenuId { get; set; }
+
+ ///
+ /// MenuNo
+ ///
+ [Display(Name = "MenuNo"), Description("MenuNo"), MaxLength(100, ErrorMessage = "MenuNo 不能超过 100 个字符")]
+ public string MenuNo { get; set; }
+
+ ///
+ /// MenuName
+ ///
+ [Display(Name = "MenuName"), Description("MenuName"), MaxLength(1000, ErrorMessage = "MenuName 不能超过 1000 个字符")]
+ public string MenuName { get; set; }
+
+ ///
+ /// MKey
+ ///
+ [Display(Name = "MKey"), Description("MKey"), MaxLength(200, ErrorMessage = "MKey 不能超过 200 个字符")]
+ public string MKey { get; set; }
+
+ ///
+ /// IconType
+ ///
+ [Display(Name = "IconType"), Description("IconType"), MaxLength(200, ErrorMessage = "IconType 不能超过 200 个字符")]
+ public string IconType { get; set; }
+
+ ///
+ /// MenuUrl
+ ///
+ [Display(Name = "MenuUrl"), Description("MenuUrl"), MaxLength(500, ErrorMessage = "MenuUrl 不能超过 500 个字符")]
+ public string MenuUrl { get; set; }
+
+ ///
+ /// MenuComponent
+ ///
+ [Display(Name = "MenuComponent"), Description("MenuComponent"), MaxLength(100, ErrorMessage = "MenuComponent 不能超过 100 个字符")]
+ public string MenuComponent { get; set; }
+
+ ///
+ /// ParentMenuId
+ ///
+ public int? ParentMenuId { get; set; }
+
+ ///
+ /// MenuType
+ ///
+ [Display(Name = "MenuType"), Description("MenuType"), MaxLength(10, ErrorMessage = "MenuType 不能超过 10 个字符")]
+ public string MenuType { get; set; }
+
+ ///
+ /// MenuType2
+ ///
+ [Display(Name = "MenuType2"), Description("MenuType2"), MaxLength(100, ErrorMessage = "MenuType2 不能超过 100 个字符")]
+ public string MenuType2 { get; set; }
+
+ ///
+ /// FormType
+ ///
+ [Display(Name = "FormType"), Description("FormType"), MaxLength(100, ErrorMessage = "FormType 不能超过 100 个字符")]
+ public string FormType { get; set; }
+
+ ///
+ /// DataPrivType
+ ///
+ [Display(Name = "DataPrivType"), Description("DataPrivType"), MaxLength(100, ErrorMessage = "DataPrivType 不能超过 100 个字符")]
+ public string DataPrivType { get; set; }
+
+ ///
+ /// FlowID
+ ///
+ public int? FlowID { get; set; }
+
+ ///
+ /// MenuColDisplayType
+ ///
+ [Display(Name = "MenuColDisplayType"), Description("MenuColDisplayType"), MaxLength(100, ErrorMessage = "MenuColDisplayType 不能超过 100 个字符")]
+ public string MenuColDisplayType { get; set; }
+
+ ///
+ /// MenuGroupTitle
+ ///
+ [Display(Name = "MenuGroupTitle"), Description("MenuGroupTitle"), MaxLength(100, ErrorMessage = "MenuGroupTitle 不能超过 100 个字符")]
+ public string MenuGroupTitle { get; set; }
+
+ ///
+ /// QueryProcedure
+ ///
+ [Display(Name = "QueryProcedure"), Description("QueryProcedure"), MaxLength(200, ErrorMessage = "QueryProcedure 不能超过 200 个字符")]
+ public string QueryProcedure { get; set; }
+
+ ///
+ /// EditProcedure
+ ///
+ [Display(Name = "EditProcedure"), Description("EditProcedure"), MaxLength(200, ErrorMessage = "EditProcedure 不能超过 200 个字符")]
+ public string EditProcedure { get; set; }
+
+ ///
+ /// IUDProcedure
+ ///
+ [Display(Name = "IUDProcedure"), Description("IUDProcedure"), MaxLength(200, ErrorMessage = "IUDProcedure 不能超过 200 个字符")]
+ public string IUDProcedure { get; set; }
+
+ ///
+ /// IsSTDMenu
+ ///
+ public int? IsSTDMenu { get; set; }
+
+ ///
+ /// IsWaterMark
+ ///
+ public int? IsWaterMark { get; set; }
+
+ ///
+ /// IsPWDAgain
+ ///
+ public int? IsPWDAgain { get; set; }
+
+ ///
+ /// IsFromExcel
+ ///
+ public int? IsFromExcel { get; set; }
+
+ ///
+ /// IsToExcel
+ ///
+ public int? IsToExcel { get; set; }
+
+ ///
+ /// IsNew
+ ///
+ public int? IsNew { get; set; }
+
+ ///
+ /// IsDetail
+ ///
+ public int? IsDetail { get; set; }
+
+ ///
+ /// IsUpdate
+ ///
+ public int? IsUpdate { get; set; }
+
+ ///
+ /// IsDel
+ ///
+ public int? IsDel { get; set; }
+
+ ///
+ /// IsQuery
+ ///
+ public int? IsQuery { get; set; }
+
+ ///
+ /// IsPrint
+ ///
+ public int? IsPrint { get; set; }
+
+ ///
+ /// IsLog
+ ///
+ public int? IsLog { get; set; }
+
+ ///
+ /// IsManual
+ ///
+ public int? IsManual { get; set; }
+
+ ///
+ /// IsCopy
+ ///
+ public int? IsCopy { get; set; }
+
+ ///
+ /// IsTBD1
+ ///
+ public int? IsTBD1 { get; set; }
+
+ ///
+ /// TBD1MKey
+ ///
+ [Display(Name = "TBD1MKey"), Description("TBD1MKey"), MaxLength(200, ErrorMessage = "TBD1MKey 不能超过 200 个字符")]
+ public string TBD1MKey { get; set; }
+
+ ///
+ /// IsTBD2
+ ///
+ public int? IsTBD2 { get; set; }
+
+ ///
+ /// TBD2MKey
+ ///
+ [Display(Name = "TBD2MKey"), Description("TBD2MKey"), MaxLength(200, ErrorMessage = "TBD2MKey 不能超过 200 个字符")]
+ public string TBD2MKey { get; set; }
+
+ ///
+ /// IsTBD3
+ ///
+ public int? IsTBD3 { get; set; }
+
+ ///
+ /// TBD3MKey
+ ///
+ [Display(Name = "TBD3MKey"), Description("TBD3MKey"), MaxLength(200, ErrorMessage = "TBD3MKey 不能超过 200 个字符")]
+ public string TBD3MKey { get; set; }
+
+ ///
+ /// IsTBD4
+ ///
+ public int? IsTBD4 { get; set; }
+
+ ///
+ /// TBD4MKey
+ ///
+ [Display(Name = "TBD4MKey"), Description("TBD4MKey"), MaxLength(200, ErrorMessage = "TBD4MKey 不能超过 200 个字符")]
+ public string TBD4MKey { get; set; }
+
+ ///
+ /// IsTBD5
+ ///
+ public int? IsTBD5 { get; set; }
+
+ ///
+ /// TBD5MKey
+ ///
+ [Display(Name = "TBD5MKey"), Description("TBD5MKey"), MaxLength(200, ErrorMessage = "TBD5MKey 不能超过 200 个字符")]
+ public string TBD5MKey { get; set; }
+
+ ///
+ /// IsTBD6
+ ///
+ public int? IsTBD6 { get; set; }
+
+ ///
+ /// TBD6MKey
+ ///
+ [Display(Name = "TBD6MKey"), Description("TBD6MKey"), MaxLength(200, ErrorMessage = "TBD6MKey 不能超过 200 个字符")]
+ public string TBD6MKey { get; set; }
+
+ ///
+ /// IsTBD7
+ ///
+ public int? IsTBD7 { get; set; }
+
+ ///
+ /// TBD7MKey
+ ///
+ [Display(Name = "TBD7MKey"), Description("TBD7MKey"), MaxLength(200, ErrorMessage = "TBD7MKey 不能超过 200 个字符")]
+ public string TBD7MKey { get; set; }
+
+ ///
+ /// IsTBD8
+ ///
+ public int? IsTBD8 { get; set; }
+
+ ///
+ /// TBD8MKey
+ ///
+ [Display(Name = "TBD8MKey"), Description("TBD8MKey"), MaxLength(200, ErrorMessage = "TBD8MKey 不能超过 200 个字符")]
+ public string TBD8MKey { get; set; }
+
+ ///
+ /// IsTBD9
+ ///
+ public int? IsTBD9 { get; set; }
+
+ ///
+ /// TBD9MKey
+ ///
+ [Display(Name = "TBD9MKey"), Description("TBD9MKey"), MaxLength(200, ErrorMessage = "TBD9MKey 不能超过 200 个字符")]
+ public string TBD9MKey { get; set; }
+
+ ///
+ /// IsTBD10
+ ///
+ public int? IsTBD10 { get; set; }
+
+ ///
+ /// TBD10MKey
+ ///
+ [Display(Name = "TBD10MKey"), Description("TBD10MKey"), MaxLength(200, ErrorMessage = "TBD10MKey 不能超过 200 个字符")]
+ public string TBD10MKey { get; set; }
+
+ ///
+ /// IsTBD11
+ ///
+ public int? IsTBD11 { get; set; }
+
+ ///
+ /// TBD11MKey
+ ///
+ [Display(Name = "TBD11MKey"), Description("TBD11MKey"), MaxLength(200, ErrorMessage = "TBD11MKey 不能超过 200 个字符")]
+ public string TBD11MKey { get; set; }
+
+ ///
+ /// IsTBD12
+ ///
+ public int? IsTBD12 { get; set; }
+
+ ///
+ /// TBD12MKey
+ ///
+ [Display(Name = "TBD12MKey"), Description("TBD12MKey"), MaxLength(200, ErrorMessage = "TBD12MKey 不能超过 200 个字符")]
+ public string TBD12MKey { get; set; }
+
+ ///
+ /// IsTBD13
+ ///
+ public int? IsTBD13 { get; set; }
+
+ ///
+ /// TBD13MKey
+ ///
+ [Display(Name = "TBD13MKey"), Description("TBD13MKey"), MaxLength(200, ErrorMessage = "TBD13MKey 不能超过 200 个字符")]
+ public string TBD13MKey { get; set; }
+
+ ///
+ /// IsTBD14
+ ///
+ public int? IsTBD14 { get; set; }
+
+ ///
+ /// TBD14MKey
+ ///
+ [Display(Name = "TBD14MKey"), Description("TBD14MKey"), MaxLength(200, ErrorMessage = "TBD14MKey 不能超过 200 个字符")]
+ public string TBD14MKey { get; set; }
+
+ ///
+ /// IsTBD15
+ ///
+ public int? IsTBD15 { get; set; }
+
+ ///
+ /// TBD15MKey
+ ///
+ [Display(Name = "TBD15MKey"), Description("TBD15MKey"), MaxLength(200, ErrorMessage = "TBD15MKey 不能超过 200 个字符")]
+ public string TBD15MKey { get; set; }
+
+ ///
+ /// RemarkSz
+ ///
+ [Display(Name = "RemarkSz"), Description("RemarkSz"), MaxLength(2000, ErrorMessage = "RemarkSz 不能超过 2000 个字符")]
+ public string RemarkSz { get; set; }
+
+ ///
+ /// SortNo
+ ///
+ public int? SortNo { get; set; }
+
+ ///
+ /// IsDefault
+ ///
+ public int? IsDefault { get; set; }
+
+ ///
+ /// Reverse1
+ ///
+ [Display(Name = "Reverse1"), Description("Reverse1"), MaxLength(1000, ErrorMessage = "Reverse1 不能超过 1000 个字符")]
+ public string Reverse1 { get; set; }
+
+ ///
+ /// Reverse2
+ ///
+ [Display(Name = "Reverse2"), Description("Reverse2"), MaxLength(1000, ErrorMessage = "Reverse2 不能超过 1000 个字符")]
+ public string Reverse2 { get; set; }
+
+ ///
+ /// Reverse3
+ ///
+ [Display(Name = "Reverse3"), Description("Reverse3"), MaxLength(1000, ErrorMessage = "Reverse3 不能超过 1000 个字符")]
+ public string Reverse3 { get; set; }
+
+ ///
+ /// Reverse4
+ ///
+ [Display(Name = "Reverse4"), Description("Reverse4"), MaxLength(1000, ErrorMessage = "Reverse4 不能超过 1000 个字符")]
+ public string Reverse4 { get; set; }
+
+ ///
+ /// Reverse5
+ ///
+ [Display(Name = "Reverse5"), Description("Reverse5"), MaxLength(1000, ErrorMessage = "Reverse5 不能超过 1000 个字符")]
+ public string Reverse5 { get; set; }
+
+ ///
+ /// Reverse6
+ ///
+ [Display(Name = "Reverse6"), Description("Reverse6"), MaxLength(1000, ErrorMessage = "Reverse6 不能超过 1000 个字符")]
+ public string Reverse6 { get; set; }
+
+ ///
+ /// Reverse7
+ ///
+ [Display(Name = "Reverse7"), Description("Reverse7"), MaxLength(1000, ErrorMessage = "Reverse7 不能超过 1000 个字符")]
+ public string Reverse7 { get; set; }
+
+ ///
+ /// Reverse8
+ ///
+ [Display(Name = "Reverse8"), Description("Reverse8"), MaxLength(1000, ErrorMessage = "Reverse8 不能超过 1000 个字符")]
+ public string Reverse8 { get; set; }
+
+ ///
+ /// Reverse9
+ ///
+ [Display(Name = "Reverse9"), Description("Reverse9"), MaxLength(1000, ErrorMessage = "Reverse9 不能超过 1000 个字符")]
+ public string Reverse9 { get; set; }
+
+ ///
+ /// AppUrl
+ ///
+ [Display(Name = "AppUrl"), Description("AppUrl"), MaxLength(200, ErrorMessage = "AppUrl 不能超过 200 个字符")]
+ public string AppUrl { get; set; }
+ }
+}
diff --git a/Tiobon.Core.Model/View/Ghrs/Ghrs_Menu.Dto.View.cs b/Tiobon.Core.Model/View/Ghrs/Ghrs_Menu.Dto.View.cs
new file mode 100644
index 00000000..af1cf26a
--- /dev/null
+++ b/Tiobon.Core.Model/View/Ghrs/Ghrs_Menu.Dto.View.cs
@@ -0,0 +1,34 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghrs_Menu.cs
+*
+*功 能: N / A
+* 类 名: Ghrs_Menu
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/9/3 15:32:53 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models;
+
+///
+/// Ghrs_Menu(Dto.View)
+///
+public class Ghrs_MenuDto : Ghrs_Menu
+{
+///
+/// 创建信息
+///
+public string CreateDataInfo { get; set; }
+
+///
+/// 修改信息
+///
+public string UpdateDataInfo { get; set; }
+}
diff --git a/Tiobon.Core.Services/BASE/BaseServices.cs b/Tiobon.Core.Services/BASE/BaseServices.cs
index ef1696e4..05305dbb 100644
--- a/Tiobon.Core.Services/BASE/BaseServices.cs
+++ b/Tiobon.Core.Services/BASE/BaseServices.cs
@@ -21,7 +21,6 @@ using Tiobon.Core.Model.Models;
using System.Reflection;
using System.Collections;
using Tiobon.Core.Model.ViewModels.Extend;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
namespace Tiobon.Core.Services.BASE;
@@ -1398,23 +1397,45 @@ public class BaseServices : IBaseServ
return StaffId;
}
+ #region 获取部门列表
+ public static void LoopToAppendChildren(List depts, List depts1, Ghro_Dept dept)
+ {
+ var depts2 = depts.Where(x => x.ParentDeptID == dept.DeptID).ToList();
+ depts1.AddRange(depts2);
+ foreach (var item in depts2)
+ {
+ LoopToAppendChildren(depts, depts1, item);
+ }
+ }
+ public async Task> GetDeptList(List depts, int? deptId = null)
+ {
+ if (!depts.Any())
+ depts = await Db.Queryable().ToListAsync();
+ if (!deptId.IsNullOrEmpty())
+ {
+ var dept = depts.Where(x => x.DeptID == deptId).FirstOrDefault();
+ List depts1 = [dept];
+
+ LoopToAppendChildren(depts, depts1, dept);
+ return depts1;
+ }
+ else return depts;
+ }
+ #endregion
+
public async Task> GetUserStaffPrivIds(int userId, int? staffId = null, DateTime? date = null)
{
if (date == null) date = DateTime.Now;
var @CDate = date;
var @UserID = userId;
- var @StaffID = staffId.IsNullOrEmpty() ? 0 : staffId.Value;
+ var @StaffID = staffId.IsNullOrEmpty() ? -1 : staffId.Value;
+ int @UserStaffID = await Db.Ado.GetIntAsync($"SELECT UserStaffID FROM Ghrs_User WHERE UserId='{userId}'");
var @CompanySpecCode = string.Empty;
int @UserDeptID = 0;
- int @DataRoleType = 0; //--1 员工自身 2 全部人员 3 按设定
- int @DeptType = 0; //1 按挑选 2 主管(含下阶) 3 主管(不含下阶) 4 部门助理(含下阶) 5 部门助理(不含下阶) 6 所在部门(含下阶) 7 所在部门(不含下阶) 8: 全部部门
- int? @AllDataBelong = 0,
- @AllGrade = 0,
- @AllTitle = 0,
- @AllZone = 0,
- @AllPeriodMaster = 0,
- @ALLDL_IDL = 0,
+ //int @DataRoleType = 0; //--1 员工自身 2 全部人员 3 按设定
+ //int @DeptType = 0; //1 按挑选 2 主管(含下阶) 3 主管(不含下阶) 4 部门助理(含下阶) 5 部门助理(不含下阶) 6 所在部门(含下阶) 7 所在部门(不含下阶) 8: 全部部门
+ int?
@DeptID,
@TitleID,
@GradeID,
@@ -1447,19 +1468,210 @@ public class BaseServices : IBaseServ
var dataRoles = await Db.Ado.SqlQueryAsync(sql);
- if (@StaffID.IsNullOrEmpty())
+ var scr = Db.Queryable();
+ if (@StaffID == -1)
{
if (dataRoles.Where(x => x.DataRoleType == 2).Any())// 全部人员权限
- return await Db.Queryable().Select(x => x.StaffID).ToListAsync();
+ return await scr.Select(x => x.StaffID).ToListAsync();
+
+ var staffIds = new List();
+ var depts = new List();
+ depts = await GetDeptList(depts);
+ for (int i = 0; i < dataRoles.Count; i++)
+ {
+ var deptIds = new List();
+ var dataRole = dataRoles[i];
+
+ //--2 集团数据归属编号
+ var dataBelongIds = new List();
+ if (dataRole.@AllDataBelong == 0)
+ {
+ dataBelongIds = await Db.Queryable()
+ .Where(x =>
+ x.IsEnable == 1 &&
+ x.DataTypeID == 2 &&
+ x.DataID != null &&
+ x.DataRoleId != null &&
+ x.DataRoleId == dataRole.DataRoleID)
+ .Select(x => x.DataID.Value).ToListAsync();
+ }
+
+ //-- 3 职等编号
+ var gradeIds = new List();
+ if (dataRole.@AllGrade == 0)
+ {
+ gradeIds = await Db.Queryable()
+ .Where(x =>
+ x.IsEnable == 1 &&
+ x.DataTypeID == 3 &&
+ x.DataID != null &&
+ x.DataRoleId != null &&
+ x.DataRoleId == dataRole.DataRoleID)
+ .Select(x => x.DataID.Value).ToListAsync();
+ }
+
+ //-- 4 职称编号
+ var titleIds = new List();
+ if (dataRole.@AllTitle == 0)
+ {
+ titleIds = await Db.Queryable()
+ .Where(x =>
+ x.IsEnable == 1 &&
+ x.DataTypeID == 4 &&
+ x.DataID != null &&
+ x.DataRoleId != null &&
+ x.DataRoleId == dataRole.DataRoleID)
+ .Select(x => x.DataID.Value).ToListAsync();
+ }
+
+ //-- 5 厂区编号
+ var zoneIds = new List();
+ if (dataRole.@AllZone == 0)
+ {
+ zoneIds = await Db.Queryable()
+ .Where(x =>
+ x.IsEnable == 1 &&
+ x.DataTypeID == 5 &&
+ x.DataID != null &&
+ x.DataRoleId != null &&
+ x.DataRoleId == dataRole.DataRoleID)
+ .Select(x => x.DataID.Value).ToListAsync();
+ }
+
+ //-- 6 计薪类别编号
+ var periodMasterIds = new List();
+ if (dataRole.@AllPeriodMaster == 0)
+ {
+ periodMasterIds = await Db.Queryable()
+ .Where(x =>
+ x.IsEnable == 1 &&
+ x.DataTypeID == 6 &&
+ x.DataID != null &&
+ x.DataRoleId != null &&
+ x.DataRoleId == dataRole.DataRoleID)
+ .Select(x => x.DataID.Value).ToListAsync();
+ }
+
+ //-- 7 直间接编号
+ var DL_IDLIds = new List();
+ if (dataRole.@ALLDL_IDL == 0)
+ DL_IDLIds = await Db.Queryable().Where(x =>
+ x.IsEnable == 1 &&
+ x.DataTypeID == 6 &&
+ x.DataID != null &&
+ x.DataRoleId != null &&
+ x.DataRoleId == dataRole.DataRoleID)
+ .Select(x => x.DataID.Value).ToListAsync();
+
+ //判断部门的权限 @DeptType
+
+
+ //7 所在部门(不含下阶)
+ if (dataRole.@DeptType == 7)
+ deptIds.Add(@UserStaffID);
+
+ //6 所在部门(含下阶)
+ if (dataRole.@DeptType == 6)
+ {
+ var dept = depts.Where(x => x.DeptID == @UserStaffID).FirstOrDefault();
+ var depts1 = await GetDeptList(depts, dept.DeptID);
+ }
+
+ //5 部门助理(不含下阶)
+ if (dataRole.@DeptType == 5)
+ {
+ var depts1 = depts.Where(x => x.DeptAssID == @UserStaffID).ToList();
+ deptIds.AddRange(depts1.Select(x => x.DeptID.Value).ToList());
+ }
+
+ //4 部门助理(含下阶)
+ if (dataRole.@DeptType == 4)
+ {
+ var depts1 = depts.Where(x => x.DeptAssID == @UserStaffID).ToList();
+
+ foreach (var dept in depts1)
+ {
+ var items = await GetDeptList(depts, dept.DeptID);
+ deptIds.AddRange(items.Select(x => x.DeptID.Value).ToList());
+ }
+ }
+
+ //3 主管(不含下阶)
+ if (dataRole.@DeptType == 3)
+ {
+ var depts1 = depts.Where(x => x.DeptManagerID == @UserStaffID).ToList();
+
+ deptIds.AddRange(depts1.Select(x => x.DeptID.Value).ToList());
+ }
+
+ //2 主管(含下阶)
+ if (dataRole.@DeptType == 2)
+ {
+ var depts1 = depts.Where(x => x.DeptManagerID == @UserStaffID).ToList();
+
+ foreach (var dept in depts1)
+ {
+ var items = await GetDeptList(depts, dept.DeptID);
+ deptIds.AddRange(items.Select(x => x.DeptID.Value).ToList());
+ }
+ }
+
+ //1 按挑选
+ if (dataRole.@DeptType == 1)
+ {
+
+ sql = @$"SELECT DataID
+ FROM Ghrs_DataRoleDetail
+ WHERE IsEnable = 1
+ AND DataRoleID = {dataRole.DataRoleID}
+ AND DataTypeID = 1
+ AND IncludeSub = 0";
+
+ var dataIDs = await Db.Ado.SqlQueryAsync(sql);
+
+
+ if (!dataIDs.Any())
+ {
+ sql = @$"SELECT DataID
+ FROM Ghrs_DataRoleDetail
+ WHERE IsEnable = 1
+ AND DataRoleID = {dataRole.DataRoleID}
+ AND DataTypeID = 1
+ AND IncludeSub = 1";
+
+ dataIDs = await Db.Ado.SqlQueryAsync(sql);
+
+ foreach (var dataID in dataIDs)
+ {
+ var items = await GetDeptList(depts, dataID);
+ deptIds.AddRange(items.Select(x => x.DeptID.Value).ToList());
+ }
+ }
+ else
+ deptIds.AddRange(dataIDs);
+
+ }
+ deptIds = deptIds.Distinct().ToList();
+ var ids = await scr
+ .WhereIF(dataRole.@AllDataBelong == 0, x => x.DataBelongID != null && dataBelongIds.Contains(x.DataBelongID.Value))
+ .WhereIF(dataRole.@AllGrade == 0, x => x.GradeID != null && gradeIds.Contains(x.GradeID.Value))
+ .WhereIF(dataRole.@AllTitle == 0, x => x.TitleID != null && titleIds.Contains(x.TitleID.Value))
+ .WhereIF(dataRole.@AllZone == 0, x => x.ZoneID != null && zoneIds.Contains(x.ZoneID.Value))
+ .WhereIF(dataRole.@AllPeriodMaster == 0, x => x.PeriodMasterID != null && periodMasterIds.Contains(x.PeriodMasterID.Value))
+ .WhereIF(dataRole.@ALLDL_IDL == 0, x => x.StaffType1 != null && DL_IDLIds.Contains(x.StaffType1.Value))
+ .Where(x => (x.DeptID != null && deptIds.Contains(x.DeptID.Value))
+ ).Select(x => x.StaffID).ToListAsync();
+ staffIds.AddRange(ids);
+ }
- var dataBelongIDs = new List();
+ staffIds.Add(UserStaffID);
+ staffIds.Distinct().ToList();
+ return staffIds;
- return [@StaffID];
}
else
{
#region 员工默认有自己的权限
- int? @UserStaffID = await Db.Ado.GetIntAsync($"SELECT UserStaffID FROM Ghrs_User WHERE UserId='{userId}'");
if (staffId == @UserStaffID)
return [@StaffID];
#endregion
diff --git a/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs
index c80bd73d..b5df214e 100644
--- a/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs
+++ b/Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs
@@ -38,7 +38,12 @@ public class Ghre_CertificateServices : BaseServices().Where(x => x.DataPrivType == "Priv" && x.MenuNo == filter.menuName).AnyAsync())
+ {
+ var staffIds = await GetUserStaffPrivIds((int)App.User.ID);
+ if (staffIds.Any())
+ conditions = $" WHERE StaffId IN ({string.Join(",", staffIds.Select(id => "'" + id + "'"))})";
+ }
if (IsEnable == true)
conditions += " AND IsEnable = 1";
else if (IsEnable == false)
diff --git a/Tiobon.Core.Services/Ghre/Ghre_CreditPointServices.cs b/Tiobon.Core.Services/Ghre/Ghre_CreditPointServices.cs
index c25f8f0d..d2ebee72 100644
--- a/Tiobon.Core.Services/Ghre/Ghre_CreditPointServices.cs
+++ b/Tiobon.Core.Services/Ghre/Ghre_CreditPointServices.cs
@@ -130,6 +130,14 @@ public class Ghre_CreditPointServices : BaseServices().Where(x => x.DataPrivType == "Priv" && x.MenuNo == filter.menuName).AnyAsync())
+ {
+ var staffIds = await GetUserStaffPrivIds((int)App.User.ID);
+ if (staffIds.Any())
+ conditions += $" AND StaffId IN ({string.Join(",", staffIds.Select(id => "'" + id + "'"))})";
+ }
+
sql = string.Format(sql, conditions);
if (filter.pageSize == 0)
filter.pageSize = 10000;
diff --git a/Tiobon.Core.Services/Ghre/Ghre_RequiredCourseServices.cs b/Tiobon.Core.Services/Ghre/Ghre_RequiredCourseServices.cs
index 8dfaf128..e0f811b5 100644
--- a/Tiobon.Core.Services/Ghre/Ghre_RequiredCourseServices.cs
+++ b/Tiobon.Core.Services/Ghre/Ghre_RequiredCourseServices.cs
@@ -38,6 +38,12 @@ public class Ghre_RequiredCourseServices : BaseServices().Where(x => x.DataPrivType == "Priv" && x.MenuNo == filter.menuName).AnyAsync())
+ {
+ var staffIds = await GetUserStaffPrivIds((int)App.User.ID);
+ if (staffIds.Any())
+ conditions += $" AND StaffId IN ({string.Join(",", staffIds.Select(id => "'" + id + "'"))})";
+ }
if (filter.jsonParam != null)
foreach (JProperty jProperty in filter.jsonParam.Properties())
{
diff --git a/Tiobon.Core.Services/Ghre/Ghre_StudyRecordServices.cs b/Tiobon.Core.Services/Ghre/Ghre_StudyRecordServices.cs
index f59864ab..1c728dc3 100644
--- a/Tiobon.Core.Services/Ghre/Ghre_StudyRecordServices.cs
+++ b/Tiobon.Core.Services/Ghre/Ghre_StudyRecordServices.cs
@@ -19,6 +19,7 @@ using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using Microsoft.AspNetCore.Http;
using System.Data;
+using Org.BouncyCastle.Crypto;
namespace Tiobon.Core.Services;
@@ -50,7 +51,13 @@ public class Ghre_StudyRecordServices : BaseServices().Where(x => x.DataPrivType == "Priv" && x.MenuNo == filter.menuName).AnyAsync())
+ {
+ var staffIds = await GetUserStaffPrivIds((int)App.User.ID);
+ if (staffIds.Any())
+ conditions = $" WHERE StaffId IN ({string.Join(",", staffIds.Select(id => "'" + id + "'"))})";
+ }
if (IsEnable == true)
conditions += " AND IsEnable = 1";
@@ -60,7 +67,6 @@ public class Ghre_StudyRecordServices : BaseServices
+ /// Ghrs_Menu (服务)
+ ///
+ public class Ghrs_MenuServices : BaseServices, IGhrs_MenuServices
+ {
+ private readonly IBaseRepository _dal;
+ public Ghrs_MenuServices(ICaching caching, IBaseRepository dal)
+ {
+ this._dal = dal;
+ base.BaseDal = dal;
+ base._caching = caching;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tiobon.Core/Tiobon.Core.Model.xml b/Tiobon.Core/Tiobon.Core.Model.xml
index 71f93680..1709f1fd 100644
--- a/Tiobon.Core/Tiobon.Core.Model.xml
+++ b/Tiobon.Core/Tiobon.Core.Model.xml
@@ -5308,6370 +5308,7320 @@
Reverse5
-
-
- Ghrs_ParaDetail (Dto.Base)
-
-
-
-
- ParaDetailId
-
-
-
-
- ParaTypeId
-
-
-
+
- ParaMasterId
+ Ghrs_DataRoleDetail (Dto.Base)
-
+
- ParaTypeNo
+ DataRoleDetailId
-
+
- ParaMasterNo
+ DataRoleId
-
+
- ParaDetailNo
+ DataTypeID
-
+
- ParaDetailName
+ DataID
-
+
- ParaDetailEname
+ DataNo
-
+
- IsBuildIn
+ IncludeSub
-
+
- MKey
+ TableName
-
+
- SqlFunction
+ TableIDName
-
+
RemarkSz
-
+
SortNo
-
+
IsDefault
-
+
Reverse1
-
+
Reverse2
-
+
Reverse3
-
+
Reverse4
-
+
Reverse5
-
+
- Reverse6
+ Ghrs_Menu (Dto.Base)
-
+
- Reverse7
+ MenuId
-
+
- Reverse8
+ MenuNo
-
+
- Reverse9
+ MenuName
-
+
- 系统用户 (Dto.Base)
+ MKey
-
+
- UserId
+ IconType
-
+
- UserNo
+ MenuUrl
-
+
- UserName
+ MenuComponent
-
+
- UserEname
+ ParentMenuId
-
+
- Email
+ MenuType
-
+
- Mobile
+ MenuType2
-
+
- UserStaffID
+ FormType
-
+
- PwdComplexityRuleID
+ DataPrivType
-
+
- UserPhotoUrl
+ FlowID
-
+
- APPID
+ MenuColDisplayType
-
+
- DingID
+ MenuGroupTitle
-
+
- EWeChatID
+ QueryProcedure
-
+
- WeChatID
+ EditProcedure
-
+
- OtherID
+ IUDProcedure
-
+
- UserLangID
+ IsSTDMenu
-
+
- PageStyle
+ IsWaterMark
-
+
- UserType
+ IsPWDAgain
-
+
- BeginDate
+ IsFromExcel
-
+
- EndDate
+ IsToExcel
-
+
- SalaryPwd
+ IsNew
+
+
- Pwd
+ IsDetail
+
+
- TempPwd
+ IsUpdate
+
+
- TimeZoneID
+ IsDel
-
+
- TimeZoneGapMinute
+ IsQuery
-
+
- Reverse1
+ IsPrint
-
+
- Reverse2
+ IsLog
-
+
- Reverse3
+ IsManual
-
+
- Reverse4
+ IsCopy
-
+
- Reverse5
+ IsTBD1
-
+
- Reverse6
+ TBD1MKey
-
+
- Reverse7
+ IsTBD2
-
+
- Reverse8
+ TBD2MKey
-
+
- Reverse9
+ IsTBD3
-
+
- LockTime
+ TBD3MKey
-
+
- APPID2
+ IsTBD4
-
+
- 年级 (Dto.EditInput)
+ TBD4MKey
-
+
- Ghra_Job (Dto.EditInput)
+ IsTBD5
-
+
- Ghra_Staff (Dto.EditInput)
+ TBD5MKey
-
+
- Ghra_StaffLicence (Dto.EditInput)
+ IsTBD6
-
+
- Ghra_Title (Dto.EditInput)
+ TBD6MKey
-
+
- 厂区 (Dto.EditInput)
+ IsTBD7
-
+
- 附件 (Dto.EditInput)
+ TBD7MKey
-
+
- 培训记录 (Dto.EditInput)
+ IsTBD8
-
+
- 培训证书规则 (Dto.EditInput)
+ TBD8MKey
-
+
- 课程 (Dto.EditInput)
+ IsTBD9
-
+
- 课程分类 (Dto.EditInput)
+ TBD9MKey
-
+
- 课程场景 (Dto.EditInput)
+ IsTBD10
-
+
- Ghre_CourseSnap (Dto.EditInput)
+ TBD10MKey
-
+
- 课件 (Dto.EditInput)
+ IsTBD11
-
+
- 课件附件 (Dto.EditInput)
+ TBD11MKey
-
+
- 学分记录 (Dto.EditInput)
+ IsTBD12
-
+
- 考试 (Dto.EditInput)
+ TBD12MKey
-
+
- 考试通知记录 (Dto.EditInput)
+ IsTBD13
-
+
- 试卷 (Dto.EditInput)
+ TBD13MKey
-
+
- 试卷配置 (Dto.EditInput)
+ IsTBD14
-
+
- 试卷题目 (Dto.EditInput)
+ TBD14MKey
-
+
- 考试记录 (Dto.EditInput)
+ IsTBD15
-
+
- Ghre_ExamRecordAnswer (Dto.EditInput)
+ TBD15MKey
-
+
- Ghre_ExamRecordDetail (Dto.EditInput)
+ RemarkSz
-
+
- Ghre_ExamStaff (Dto.EditInput)
+ SortNo
-
+
- 题目 (Dto.EditInput)
+ IsDefault
-
+
- 答案
+ Reverse1
-
+
- 题目答案 (Dto.EditInput)
+ Reverse2
-
+
- 必选修查询 (Dto.EditInput)
+ Reverse3
-
+
- 培训机构 (Dto.EditInput)
+ Reverse4
-
+
- 培训机构附件 (Dto.EditInput)
+ Reverse5
-
+
- 培训记录 (Dto.EditInput)
+ Reverse6
-
+
- 得分
+ Reverse7
-
+
- 调整得分
+ Reverse8
-
+
- 考试日期
+ Reverse9
-
+
- 是否合格
+ AppUrl
-
+
- 必选修规则 (Dto.EditInput)
+ Ghrs_ParaDetail (Dto.Base)
-
+
- 必选修规则结果 (Dto.EditInput)
+ ParaDetailId
-
+
- 必选修规则人员 (Dto.EditInput)
+ ParaTypeId
-
+
- Ghre_Teacher (Dto.EditInput)
+ ParaMasterId
-
+
- Ghre_TeacherAttachment (Dto.EditInput)
+ ParaTypeNo
-
+
- Ghro_Dept (Dto.EditInput)
+ ParaMasterNo
-
+
- Ghrs_Attachment (Dto.EditInput)
+ ParaDetailNo
-
+
- Ghrs_ParaDetail (Dto.EditInput)
+ ParaDetailName
-
+
- 系统用户 (Dto.EditInput)
+ ParaDetailEname
-
+
- 年级 (Dto.InsertInput)
+ IsBuildIn
-
+
- Ghra_Job (Dto.InsertInput)
+ MKey
-
+
- Ghra_Staff (Dto.InsertInput)
+ SqlFunction
-
+
- Ghra_StaffLicence (Dto.InsertInput)
+ RemarkSz
-
+
- Ghra_Title (Dto.InsertInput)
+ SortNo
-
+
- 厂区 (Dto.InsertInput)
+ IsDefault
-
+
- 附件 (Dto.InsertInput)
+ Reverse1
-
+
- 培训记录 (Dto.InsertInput)
+ Reverse2
-
+
- 培训证书规则 (Dto.InsertInput)
+ Reverse3
-
+
- 课程 (Dto.InsertInput)
+ Reverse4
-
+
- 课程分类 (Dto.InsertInput)
+ Reverse5
-
+
- 课程场景 (Dto.InsertInput)
+ Reverse6
-
+
- Ghre_CourseSnap (Dto.InsertInput)
+ Reverse7
-
+
- 课件 (Dto.InsertInput)
+ Reverse8
-
+
- 课件附件 (Dto.InsertInput)
+ Reverse9
-
+
- 学分记录 (Dto.InsertInput)
+ 系统用户 (Dto.Base)
-
+
- 考试 (Dto.InsertInput)
+ UserId
-
+
- 考试通知记录 (Dto.InsertInput)
+ UserNo
-
+
- 试卷 (Dto.InsertInput)
+ UserName
-
+
- 试卷配置 (Dto.InsertInput)
+ UserEname
-
+
- 试卷题目 (Dto.InsertInput)
+ Email
-
+
- 考试记录 (Dto.InsertInput)
+ Mobile
-
+
- Ghre_ExamRecordAnswer (Dto.InsertInput)
+ UserStaffID
-
+
- Ghre_ExamRecordDetail (Dto.InsertInput)
+ PwdComplexityRuleID
-
+
- Ghre_ExamStaff (Dto.InsertInput)
+ UserPhotoUrl
-
+
- 题目 (Dto.InsertInput)
+ APPID
-
+
- 答案
+ DingID
-
+
- 题目答案 (Dto.InsertInput)
+ EWeChatID
-
+
- 必选修查询 (Dto.InsertInput)
+ WeChatID
-
+
- 培训机构 (Dto.InsertInput)
+ OtherID
-
+
- 培训机构附件 (Dto.InsertInput)
+ UserLangID
-
+
- 培训记录 (Dto.InsertInput)
+ PageStyle
-
+
- 得分
+ UserType
-
+
- 调整得分
+ BeginDate
-
+
- 考试日期
+ EndDate
-
+
- 是否合格
+ SalaryPwd
-
-
- 必选修规则 (Dto.InsertInput)
+ Pwd
-
-
- 必选修规则结果 (Dto.InsertInput)
+ TempPwd
-
-
- 必选修规则人员 (Dto.InsertInput)
+ TimeZoneID
-
+
- Ghre_Teacher (Dto.InsertInput)
+ TimeZoneGapMinute
-
+
- Ghre_TeacherAttachment (Dto.InsertInput)
+ Reverse1
-
+
- Ghro_Dept (Dto.InsertInput)
+ Reverse2
-
+
- Ghrs_Attachment (Dto.InsertInput)
+ Reverse3
-
+
- Ghrs_ParaDetail (Dto.InsertInput)
+ Reverse4
-
+
- 系统用户 (Dto.InsertInput)
+ Reverse5
-
+
- 用户访问趋势日志
+ Reverse6
-
+
- 用户
+ Reverse7
-
+
- 次数
+ Reverse8
-
+
- 更新时间
+ Reverse9
-
+
- 博客文章
+ LockTime
-
+
- 主键
+ APPID2
- 这里之所以没用RootEntity,是想保持和之前的数据库一致,主键是bID,不是Id
-
+
- 创建人
+ 年级 (Dto.EditInput)
-
+
- 标题Tiobon
+ Ghra_Job (Dto.EditInput)
-
+
- 类别
+ Ghra_Staff (Dto.EditInput)
-
+
- 内容
+ Ghra_StaffLicence (Dto.EditInput)
-
+
- 访问量
+ Ghra_Title (Dto.EditInput)
-
+
- 评论数量
+ 厂区 (Dto.EditInput)
-
-
- 修改时间
+
+
+ 附件 (Dto.EditInput)
-
+
- 创建时间
+ 培训记录 (Dto.EditInput)
-
+
- 备注
+ 培训证书规则 (Dto.EditInput)
-
+
- 逻辑删除
+ 课程 (Dto.EditInput)
-
+
- 评论
+ 课程分类 (Dto.EditInput)
-
+
- 博客文章 评论
+ 课程场景 (Dto.EditInput)
-
+
- 部门表
+ Ghre_CourseSnap (Dto.EditInput)
-
+
- Desc:部门关系编码
- Default:
- Nullable:True
+ 课件 (Dto.EditInput)
-
+
- Desc:部门名称
- Default:
+ 课件附件 (Dto.EditInput)
+
+
+
+
+ 学分记录 (Dto.EditInput)
+
+
+
+
+ 考试 (Dto.EditInput)
+
+
+
+
+ 考试通知记录 (Dto.EditInput)
+
+
+
+
+ 试卷 (Dto.EditInput)
+
+
+
+
+ 试卷配置 (Dto.EditInput)
+
+
+
+
+ 试卷题目 (Dto.EditInput)
+
+
+
+
+ 考试记录 (Dto.EditInput)
+
+
+
+
+ Ghre_ExamRecordAnswer (Dto.EditInput)
+
+
+
+
+ Ghre_ExamRecordDetail (Dto.EditInput)
+
+
+
+
+ Ghre_ExamStaff (Dto.EditInput)
+
+
+
+
+ 题目 (Dto.EditInput)
+
+
+
+
+ 答案
+
+
+
+
+ 题目答案 (Dto.EditInput)
+
+
+
+
+ 必选修查询 (Dto.EditInput)
+
+
+
+
+ 培训机构 (Dto.EditInput)
+
+
+
+
+ 培训机构附件 (Dto.EditInput)
+
+
+
+
+ 培训记录 (Dto.EditInput)
+
+
+
+
+ 得分
+
+
+
+
+ 调整得分
+
+
+
+
+ 考试日期
+
+
+
+
+ 是否合格
+
+
+
+
+ 必选修规则 (Dto.EditInput)
+
+
+
+
+ 必选修规则结果 (Dto.EditInput)
+
+
+
+
+ 必选修规则人员 (Dto.EditInput)
+
+
+
+
+ Ghre_Teacher (Dto.EditInput)
+
+
+
+
+ Ghre_TeacherAttachment (Dto.EditInput)
+
+
+
+
+ Ghro_Dept (Dto.EditInput)
+
+
+
+
+ Ghrs_Attachment (Dto.EditInput)
+
+
+
+
+ Ghrs_DataRoleDetail (Dto.EditInput)
+
+
+
+
+ Ghrs_Menu (Dto.EditInput)
+
+
+
+
+ Ghrs_ParaDetail (Dto.EditInput)
+
+
+
+
+ 系统用户 (Dto.EditInput)
+
+
+
+
+ 年级 (Dto.InsertInput)
+
+
+
+
+ Ghra_Job (Dto.InsertInput)
+
+
+
+
+ Ghra_Staff (Dto.InsertInput)
+
+
+
+
+ Ghra_StaffLicence (Dto.InsertInput)
+
+
+
+
+ Ghra_Title (Dto.InsertInput)
+
+
+
+
+ 厂区 (Dto.InsertInput)
+
+
+
+
+ 附件 (Dto.InsertInput)
+
+
+
+
+ 培训记录 (Dto.InsertInput)
+
+
+
+
+ 培训证书规则 (Dto.InsertInput)
+
+
+
+
+ 课程 (Dto.InsertInput)
+
+
+
+
+ 课程分类 (Dto.InsertInput)
+
+
+
+
+ 课程场景 (Dto.InsertInput)
+
+
+
+
+ Ghre_CourseSnap (Dto.InsertInput)
+
+
+
+
+ 课件 (Dto.InsertInput)
+
+
+
+
+ 课件附件 (Dto.InsertInput)
+
+
+
+
+ 学分记录 (Dto.InsertInput)
+
+
+
+
+ 考试 (Dto.InsertInput)
+
+
+
+
+ 考试通知记录 (Dto.InsertInput)
+
+
+
+
+ 试卷 (Dto.InsertInput)
+
+
+
+
+ 试卷配置 (Dto.InsertInput)
+
+
+
+
+ 试卷题目 (Dto.InsertInput)
+
+
+
+
+ 考试记录 (Dto.InsertInput)
+
+
+
+
+ Ghre_ExamRecordAnswer (Dto.InsertInput)
+
+
+
+
+ Ghre_ExamRecordDetail (Dto.InsertInput)
+
+
+
+
+ Ghre_ExamStaff (Dto.InsertInput)
+
+
+
+
+ 题目 (Dto.InsertInput)
+
+
+
+
+ 答案
+
+
+
+
+ 题目答案 (Dto.InsertInput)
+
+
+
+
+ 必选修查询 (Dto.InsertInput)
+
+
+
+
+ 培训机构 (Dto.InsertInput)
+
+
+
+
+ 培训机构附件 (Dto.InsertInput)
+
+
+
+
+ 培训记录 (Dto.InsertInput)
+
+
+
+
+ 得分
+
+
+
+
+ 调整得分
+
+
+
+
+ 考试日期
+
+
+
+
+ 是否合格
+
+
+
+
+ 必选修规则 (Dto.InsertInput)
+
+
+
+
+ 必选修规则结果 (Dto.InsertInput)
+
+
+
+
+ 必选修规则人员 (Dto.InsertInput)
+
+
+
+
+ Ghre_Teacher (Dto.InsertInput)
+
+
+
+
+ Ghre_TeacherAttachment (Dto.InsertInput)
+
+
+
+
+ Ghro_Dept (Dto.InsertInput)
+
+
+
+
+ Ghrs_Attachment (Dto.InsertInput)
+
+
+
+
+ Ghrs_DataRoleDetail (Dto.InsertInput)
+
+
+
+
+ Ghrs_Menu (Dto.InsertInput)
+
+
+
+
+ Ghrs_ParaDetail (Dto.InsertInput)
+
+
+
+
+ 系统用户 (Dto.InsertInput)
+
+
+
+
+ 用户访问趋势日志
+
+
+
+
+ 用户
+
+
+
+
+ 次数
+
+
+
+
+ 更新时间
+
+
+
+
+ 博客文章
+
+
+
+
+ 主键
+
+ 这里之所以没用RootEntity,是想保持和之前的数据库一致,主键是bID,不是Id
+
+
+
+ 创建人
+
+
+
+
+ 标题Tiobon
+
+
+
+
+ 类别
+
+
+
+
+ 内容
+
+
+
+
+ 访问量
+
+
+
+
+ 评论数量
+
+
+
+
+ 修改时间
+
+
+
+
+ 创建时间
+
+
+
+
+ 备注
+
+
+
+
+ 逻辑删除
+
+
+
+
+ 评论
+
+
+
+
+ 博客文章 评论
+
+
+
+
+ 部门表
+
+
+
+
+ Desc:部门关系编码
+ Default:
+ Nullable:True
+
+
+
+
+ Desc:部门名称
+ Default:
+ Nullable:True
+
+
+
+
+ Desc:负责人
+ Default:
+ Nullable:True
+
+
+
+
+ Desc:排序
+ Default:
+ Nullable:True
+
+
+
+
+ Desc:部门状态(0正常 1停用)
+ Default:0
+ Nullable:True
+
+
+
+
+ Desc:删除标志(0代表存在 2代表删除)
+ Default:0
+ Nullable:True
+
+
+
+
+ Desc:创建者
+ Default:
+ Nullable:True
+
+
+
+
+ Desc:创建时间
+ Default:
+ Nullable:True
+
+
+
+
+ Desc:更新者
+ Default:
+ Nullable:True
+
+
+
+
+ Desc:更新时间
+ Default:
Nullable:True
-
+
+
+ 用户团队表
+
+
+
+
+ ID
+
+
+
+
+ HttpContext.TraceIdentifier 事件链路ID(获取或设置一个唯一标识符,用于在跟踪日志中表示此请求。)
+
+
+
+
+ 时间
+
+
+
+
+ 线程
+
+
+
+
+ 等级
+
+
+
+
+ 记录器
+
+
+
+
+ 日志类型
+
+
+
+
+ 数据类型
+
+
+
+
+ 错误信息
+
+
+
+
+ 异常
+
+
+
+
+ 年级 (Model)
+
+
+
+
+ TitleID
+
+
+
+
+ 编号
+
+
+
+
+ 名称
+
+
+
+
+ MKey
+
+
+
+
+ DataBelongID
+
+
+
+
+ Reverse1
+
+
+
+
+ Reverse2
+
+
+
+
+ Reverse3
+
+
+
+
+ Reverse4
+
+
+
+
+ Reverse5
+
+
+
+
+ Reverse6
+
+
+
+
+ Reverse7
+
+
+
+
+ Reverse8
+
+
+
+
+ Reverse9
+
+
+
+
+ ReverseI1
+
+
+
- Desc:负责人
- Default:
- Nullable:True
+ ReverseI2
-
+
- Desc:排序
- Default:
- Nullable:True
+ Ghra_Job (Model)
-
+
- Desc:部门状态(0正常 1停用)
- Default:0
- Nullable:True
+ JobID
-
+
- Desc:删除标志(0代表存在 2代表删除)
- Default:0
- Nullable:True
+ JobNo
-
+
- Desc:创建者
- Default:
- Nullable:True
+ JobName
-
+
- Desc:创建时间
- Default:
- Nullable:True
+ JobType
-
+
- Desc:更新者
- Default:
- Nullable:True
+ JobType2
-
+
- Desc:更新时间
- Default:
- Nullable:True
+ MKey
-
+
- 用户团队表
+ DataBelongID
-
+
- ID
+ RemarkSz
-
+
- HttpContext.TraceIdentifier 事件链路ID(获取或设置一个唯一标识符,用于在跟踪日志中表示此请求。)
+ SortNo
-
+
- 时间
+ IsDefault
-
+
- 线程
+ ReverseI1
-
+
- 等级
+ ReverseI2
-
+
- 记录器
+ Reverse1
-
+
- 日志类型
+ Reverse2
-
+
- 数据类型
+ Reverse3
-
+
- 错误信息
+ Reverse4
-
+
- 异常
+ Reverse5
-
+
+
+ Reverse6
+
+
+
+
+ Reverse7
+
+
+
+
+ Reverse8
+
+
+
+
+ Reverse9
+
+
+
+
+ Ghra_Staff (Model)
+
+
+
+
+ StaffID
+
+
+
+
+ StaffNo
+
+
+
+
+ StaffName
+
+
+
+
+ StaffEname
+
+
+
+
+ PinYinName
+
+
+
+
+ 首次入职日
+
+
+
+
+ Indate
+
+
+
+
+ OutDate
+
+
+
+
+ SalaryEndDate
+
+
+
+
+ ProbationEndDate
+
+
+
+
+ RegularDate
+
+
+
+
+ DeptID
+
+
+
+
+ DataBelongID
+
+
+
+
+ TitleID
+
+
+
+
+ GradeID
+
+
+
+
+ JobID
+
+
+
+
+ LegalCompanyID
+
+
+
+
+ WorkPlaceID
+
+
+
+
+ CostCenterID
+
+
+
+
+ ZoneID
+
+
+
+
+ StaffType1
+
+
+
+
+ StaffType2
+
+
+
+
+ StaffType3
+
+
+
+
+ StaffType4
+
+
+
+
+ StaffType5
+
+
+
+
+ ManagerID
+
+
+
+
+ 默认角色,用,号分割
+
+
+
- 年级 (Model)
+ IdCardNo
-
+
- TitleID
+ Email
-
+
- 编号
+ Mobile
-
+
- 名称
+ Gender
-
+
- MKey
+ PhotoUrl
-
+
- DataBelongID
+ RemarkSz
-
+
- Reverse1
+ ToDoType
-
+
- Reverse2
+ WorkID
-
+
- Reverse3
+ WorkState
-
+
- Reverse4
+ IsRelease
-
+
- Reverse5
+ SortNo
-
+
- Reverse6
+ IsDefault
-
+
- Reverse7
+ Reverse1
-
+
- Reverse8
+ Reverse2
-
+
- Reverse9
+ Reverse3
-
+
- ReverseI1
+ Reverse4
-
+
- ReverseI2
+ Reverse5
-
+
- Ghra_Job (Model)
+ Reverse6
-
+
- JobID
+ Reverse7
-
+
- JobNo
+ Reverse8
-
+
- JobName
+ Reverse9
-
+
- JobType
+ ChangeI1
-
+
- JobType2
+ ChangeI2
-
+
- MKey
+ ChangeI3
-
+
- DataBelongID
+ Nation
-
+
- RemarkSz
+ NationNo
-
+
- SortNo
+ NativePlace
-
+
- IsDefault
+ MaritalStatus
-
+
- ReverseI1
+ NowAddress
-
+
- ReverseI2
+ PoliticStatus
-
+
- Reverse1
+ RegisteredType
-
+
- Reverse2
+ Birthday
-
+
- Reverse3
+ EduDegree
-
+
- Reverse4
+ UrgentContact
-
+
- Reverse5
+ UrgentContactTel
-
+
- Reverse6
+ PreJobSeniority
-
+
- Reverse7
+ InUnion
-
+
- Reverse8
+ DiseaseStation
-
+
- Reverse9
+ OnJobCheckUp
-
+
- Ghra_Staff (Model)
+ DiseaseCheckUp
-
+
- StaffID
+ ManagerID2
-
+
- StaffNo
+ TaxID
-
+
- StaffName
+ PeriodMasterID
-
+
- StaffEname
+ OvertimeRuleID
-
+
- PinYinName
+ RegisteredPlace
-
+
- 首次入职日
+ RegisteredAddress
-
+
- Indate
+ HomeAddress
-
+
- OutDate
+ BankAccount
-
+
- SalaryEndDate
+ UrgentContactAddress
-
+
- ProbationEndDate
+ UrgentRelation
-
+
- RegularDate
+ Urgent2Contact
-
+
- DeptID
+ Urgent2ContactTel
-
+
- DataBelongID
+ Urgent2ContactAddress
-
+
- TitleID
+ Urgent2Relation
-
+
- GradeID
+ Introducer
-
+
- JobID
+ AttendCheckType
-
+
- LegalCompanyID
+ OTExemption
-
+
- WorkPlaceID
+ OldStaffNo
-
+
- CostCenterID
+ Reverse10
-
+
- ZoneID
+ Reverse11
-
+
- StaffType1
+ Reverse12
-
+
- StaffType2
+ Reverse13
-
+
- StaffType3
+ Reverse14
-
+
- StaffType4
+ Reverse15
-
+
- StaffType5
+ Reverse16
-
+
- ManagerID
+ ChangeI4
-
+
- 默认角色,用,号分割
+ ChangeI5
-
+
- IdCardNo
+ ChangeI6
-
+
- Email
+ ChangeS1
-
+