From 7b9879e5d1c1db1d28cdce2bbac69c14b51abb8f Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Wed, 4 Sep 2024 14:15:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Ghrs/Ghrs_MenuController.cs | 14 + Tiobon.Core.Api/Tiobon.Core.Model.xml | 785 +++ Tiobon.Core.Api/Tiobon.Core.xml | 5 + .../Ghrs/IGhrs_MenuServices.cs | 12 + .../Base/Ghrs/Ghrs_Menu.Dto.Base.cs | 445 ++ .../Edit/Ghrs/Ghrs_Menu.Dto.EditInput.cs | 27 + .../Insert/Ghrs/Ghrs_Menu.Dto.InsertInput.cs | 27 + Tiobon.Core.Model/Models/Ghrs/Ghrs_Menu.cs | 448 ++ .../View/Ghrs/Ghrs_Menu.Dto.View.cs | 34 + Tiobon.Core.Services/BASE/BaseServices.cs | 242 +- .../Ghre/Ghre_CertificateServices.cs | 7 +- .../Ghre/Ghre_CreditPointServices.cs | 8 + .../Ghre/Ghre_RequiredCourseServices.cs | 6 + .../Ghre/Ghre_StudyRecordServices.cs | 10 +- .../Ghrs/Ghrs_MenuServices.cs | 23 + Tiobon.Core/Tiobon.Core.Model.xml | 5638 ++++++++++------- Tiobon.Core/Tiobon.Core.xml | 10 + 17 files changed, 5394 insertions(+), 2347 deletions(-) create mode 100644 Tiobon.Core.Api/Controllers/Ghrs/Ghrs_MenuController.cs create mode 100644 Tiobon.Core.IServices/Ghrs/IGhrs_MenuServices.cs create mode 100644 Tiobon.Core.Model/Base/Ghrs/Ghrs_Menu.Dto.Base.cs create mode 100644 Tiobon.Core.Model/Edit/Ghrs/Ghrs_Menu.Dto.EditInput.cs create mode 100644 Tiobon.Core.Model/Insert/Ghrs/Ghrs_Menu.Dto.InsertInput.cs create mode 100644 Tiobon.Core.Model/Models/Ghrs/Ghrs_Menu.cs create mode 100644 Tiobon.Core.Model/View/Ghrs/Ghrs_Menu.Dto.View.cs create mode 100644 Tiobon.Core.Services/Ghrs/Ghrs_MenuServices.cs 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 - + - Mobile + ChangeS2 - + - Gender + ChangeS3 - + - PhotoUrl + ExpectTitleID - + - RemarkSz + ExpectDeptID - + - ToDoType + ConfirmUserID - + - WorkID + ConfirmTime - + - WorkState + ConfirmComment - + - IsRelease + IsInsure - + - SortNo + IsFund - + - IsDefault + SeniorityBegin - + - Reverse1 + IDCardBegin - + - Reverse2 + IDCardEnd - + - Reverse3 + GraduateDate - + - Reverse4 + EmploymentDate - + - Reverse5 + PreJoinDate - + - Reverse6 + IsCalSalary - + - Reverse7 + InsureAccountID - + - Reverse8 + FundAccountID - + - Reverse9 + InsureDate - + - ChangeI1 + InsureBase - + - ChangeI2 + FundBase - + - ChangeI3 + IsInInsure - + - Nation + InInsureAccountNo - + - NationNo + AttachmentIDs - + - NativePlace + IDCardOrg - + - MaritalStatus + SalaryReportType - + - NowAddress + IsSalaryPay - + - PoliticStatus + Ghra_StaffLicence (Model) - + - RegisteredType + 证件ID - + - Birthday + 员工ID - + - EduDegree + BeginDate - + - UrgentContact + EndDate - + - UrgentContactTel + LicenceTypeID - + - PreJobSeniority + LicenceName - + - InUnion + LicenceLevel - + - DiseaseStation + LicenceNo - + - OnJobCheckUp + LicenceUnit - + - DiseaseCheckUp + LicenceInitialDate - + - ManagerID2 + LicenceReviewDate - + - TaxID + LicencePayType - + - PeriodMasterID + RemarkSz - + - OvertimeRuleID + SortNo - + - RegisteredPlace + IsDefault - + - RegisteredAddress + AttachmentIDs - + - HomeAddress + Reverse1 - + - BankAccount + Reverse2 - + - UrgentContactAddress + Reverse3 - + - UrgentRelation + Reverse4 - + - Urgent2Contact + Reverse5 - + - Urgent2ContactTel + Ghra_Title (Model) - + - Urgent2ContactAddress + TitleID - + - Urgent2Relation + TitleNo - + - Introducer + TitleName - + - AttendCheckType + MKey - + - OTExemption + DataBelongID - + - OldStaffNo + DeptID - + - Reverse10 + TitleTypeID - + - Reverse11 + TitleLevelID - + - Reverse12 + TitleQualifiy - + - Reverse13 + TitleDesc - + - Reverse14 + RemarkSz - + - Reverse15 + SortNo - + - Reverse16 + IsDefault - + - ChangeI4 + Reverse1 - + - ChangeI5 + Reverse2 - + - ChangeI6 + Reverse3 - + - ChangeS1 + Reverse4 - + - ChangeS2 + Reverse5 - + - ChangeS3 + Reverse6 - + - ExpectTitleID + Reverse7 - + - ExpectDeptID + Reverse8 - + - ConfirmUserID + Reverse9 - + - ConfirmTime + ReverseI1 - + - ConfirmComment + ReverseI2 - + - IsInsure + ReverseI3 - + - IsFund + ReverseI4 - + - SeniorityBegin + 厂区 (Model) - + - IDCardBegin + ZoneID - + - IDCardEnd + ZoneNo - + - GraduateDate + ZoneName - + - EmploymentDate + MKey - + - PreJoinDate + DataBelongID - + - IsCalSalary + RemarkSz - + - InsureAccountID + SortNo - + - FundAccountID + IsDefault - + - InsureDate + Reverse1 - + - InsureBase + Reverse2 - + - FundBase + Reverse3 - + - IsInInsure + Reverse4 - + - InInsureAccountNo + Reverse5 - + - AttachmentIDs + Reverse6 - + - IDCardOrg + Reverse7 - + - SalaryReportType + Reverse8 - + - IsSalaryPay + Reverse9 - + - Ghra_StaffLicence (Model) + 附件 (Model) - + - 证件ID + 附件编号 - + - 员工ID + 附件名称 - + - BeginDate + 附件名称 - + - EndDate + 表名 - + - LicenceTypeID + 表主键 - + - LicenceName + 员工ID - + - LicenceLevel + 附件类型 - + - LicenceNo + 附件分组ID - + - LicenceUnit + 附件文件名 - + - LicenceInitialDate + 附件 - - - LicenceReviewDate + 附件扩展名 - + - LicencePayType + 附件大小 - + - RemarkSz + 物理路径 - + - SortNo + 相对路径 - + - IsDefault + 缩略图路径 - + - AttachmentIDs + 文件路径 - + - Reverse1 + 公司ID - + - Reverse2 + 备注 - + - Reverse3 + 排序 - + - Reverse4 + 默认标志 - + - Reverse5 + 预留字段1 - + - Ghra_Title (Model) + 预留字段2 - + - TitleID + 预留字段3 - + - TitleNo + 预留字段4 - + - TitleName + 预留字段5 - + - MKey + 预留字段6 - + - DataBelongID + 预留字段7 - + - DeptID + 预留字段8 - + - TitleTypeID + 预留字段9 - + - TitleLevelID + 预留字段10 - + - TitleQualifiy + 预留字段11 - + - TitleDesc + 预留字段12 - + - RemarkSz + 培训记录 (Model) - + - SortNo + 员工ID - + - IsDefault + 课程快照ID - + - Reverse1 + 课程ID - + - Reverse2 + 证书类型 - + - Reverse3 + 证书Url - + - Reverse4 + 颁发日期 - + - Reverse5 + 有效期 - + - Reverse6 + 结束时间 - + - Reverse7 + 颁发来源 - + - Reverse8 + 备注 - + - Reverse9 + 默认标志 - + - ReverseI1 + 预留字段1 - + - ReverseI2 + 预留字段2 - + - ReverseI3 + 预留字段3 - + - ReverseI4 + 预留字段4 - + - 厂区 (Model) + 预留字段5 - + - ZoneID + 预留字段6 - + - ZoneNo + 预留字段7 - + - ZoneName + 预留字段8 - + - MKey + 预留字段9 - + - DataBelongID + 预留字段10 - + - RemarkSz + 预留字段11 - + - SortNo + 预留字段12 - + - IsDefault + 培训证书规则 (Model) - + - Reverse1 + 规则类型 - + - Reverse2 + 规则编号 - + - Reverse3 + 证书名称 - + - Reverse4 + 课程场景ID - + - Reverse5 + 课程ID - + - Reverse6 + 有效期类型 - + - Reverse7 + 固定数 - + - Reverse8 + 固定类型 - + - Reverse9 + 有效期 - + - 附件 (Model) + 发放规则 - + - 附件编号 + 分数 - + - 附件名称 + 分数1 - + - 附件名称 + 备注 - + - 表名 + 默认标志 - + - 表主键 + 预留字段1 - + - 员工ID + 预留字段2 - + - 附件类型 + 预留字段3 - + - 附件分组ID + 预留字段4 - + - 附件文件名 + 预留字段5 - + - 附件 + 预留字段6 + + - 附件扩展名 + 预留字段7 - + - 附件大小 + 预留字段8 - + - 物理路径 + 预留字段9 - + - 相对路径 + 预留字段10 - + - 缩略图路径 + 预留字段11 - + - 文件路径 + 预留字段12 - + - 公司ID + 课程 (Model) - + - 备注 + 课程编号 - + - 排序 + 课程名称 - + - 默认标志 + 课程分类ID - + - 预留字段1 + 课程场景ID - + - 预留字段2 - + 课件ID + - + - 预留字段3 + 标准课时 - + - 预留字段4 + 学分 - + - 预留字段5 + 课程负责人 - + - 预留字段6 + 课程负责人部门ID - + - 预留字段7 + 内/外训 - + - 预留字段8 + 讲师ID - + - 预留字段9 + 讲师部门ID - + - 预留字段10 + 培训机构ID - + - 预留字段11 + 培训机构讲师ID - + - 预留字段12 + 市场价格 - + - 培训记录 (Model) + 收费方式,天数、时间、项目 - + - 员工ID + 是否公开课 - + - 课程快照ID + 培训有效期(月) - + - 课程ID + 试卷ID - + - 证书类型 + 反馈单ID - + - 证书Url + 封面图 - + - 颁发日期 + 课程大纲 - + - 有效期 + 课前准备 - + - 结束时间 + 发布时间 - + - 颁发来源 + 备注 - + - 备注 + 排序 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - - - 培训证书规则 (Model) - - - - - 规则类型 - - - - - 规则编号 - - - - - 证书名称 - - - - - 课程场景ID - - - - - 课程ID - - - + - 有效期类型 + 状态 - + - 固定数 + 是否使用默认封面 - + - 固定类型 + 默认封面图Name - + - 有效期 + 课程分类 (Model) - + - 发放规则 + 分类编号 - + - 分数 + 分类名称 - + - 分数1 + 备注 - + - 备注 + 排序 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - 课程 (Model) + 课程场景 (Model) - + - 课程编号 + 场景编号 - + - 课程名称 + 场景名称 - + - 课程分类ID + 课程ID - + - 课程场景ID + 课程 - + - 课件ID - + 备注 + - + - 标准课时 + 排序 - + - 学分 + 默认标志 - + - 课程负责人 + 预留字段1 - + - 课程负责人部门ID + 预留字段2 - + - 内/外训 + 预留字段3 - + - 讲师ID + 预留字段4 + + + + + 预留字段5 + + + + + 预留字段6 + + + + + 预留字段7 + + + + + 预留字段8 - + - 讲师部门ID + 预留字段9 - + - 培训机构ID + 预留字段10 - + - 培训机构讲师ID + 预留字段11 - + - 市场价格 + 预留字段12 - + - 收费方式,天数、时间、项目 + Ghre_CourseSnap (Model) - + - 是否公开课 + 课程ID - + - 培训有效期(月) + 课程编号 - + - 试卷ID + 课程名称 - + - 反馈单ID + 课程分类ID - + - 封面图 + 课程分类 - + - 课程大纲 + 课程场景ID - + - 课前准备 + 课程场景 - + - 发布时间 + 课件ID - + - 备注 + 标准课时 - + - 排序 + 学分 - + - 默认标志 + 课程负责人 - + - 预留字段1 + 课程负责人部门ID - + - 预留字段2 + 内/外训 - + - 预留字段3 + 讲师ID - + - 预留字段4 + 讲师部门ID - + - 预留字段5 + 培训机构ID - + - 预留字段6 + 培训机构讲师ID - + - 预留字段7 + 市场价格 - + - 预留字段8 + 收费方式,天数、时间、项目 - + - 预留字段9 + 是否公开课 - + - 预留字段10 + 培训有效期(月) - + - 预留字段11 + 试卷ID - + - 预留字段12 + 反馈单ID - + - 状态 + 封面图 - + 是否使用默认封面 - + 默认封面图Name - + - 课程分类 (Model) + 课程大纲 - + - 分类编号 + 课前准备 - + - 分类名称 + 状态 - + 备注 - + 排序 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - 课程场景 (Model) + CourseClass1 - + - 场景编号 + 课件 (Model) - + - 场景名称 + 课件编号 - + + + 课件名称 + + + + + 版本号 + + + 课程ID - + 课程 - + + + 分钟 + + + + + 时 + + + + + 来源 + + + + + 链接 + + + 备注 - + 排序 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - - - Ghre_CourseSnap (Model) - - - - - 课程ID - - - - - 课程编号 - - - + - 课程名称 + 课件附件 (Model) - + - 课程分类ID + 课件ID - + - 课程分类 + 附件名 - + - 课程场景ID + 扩展名 - + - 课程场景 + 路径 - + - 课件ID + 大小 - + - 标准课时 + 是否允许下载 - + - 学分 + 备注 - + - 课程负责人 + 默认标志 - + - 课程负责人部门ID + 预留字段1 - + - 内/外训 + 预留字段2 - + - 讲师ID + 预留字段3 - + - 讲师部门ID + 预留字段4 - + - 培训机构ID + 预留字段5 - + - 培训机构讲师ID + 预留字段6 - + - 市场价格 + 预留字段7 - + - 收费方式,天数、时间、项目 + 预留字段8 - + - 是否公开课 + 预留字段9 - + - 培训有效期(月) + 预留字段10 - + - 试卷ID + 预留字段11 - + - 反馈单ID + 预留字段12 - + - 封面图 + 学分记录 (Model) - + - 是否使用默认封面 + 员工ID - + - 默认封面图Name + 课程ID - + - 课程大纲 + 课程快照ID - + - 课前准备 + 考试ID - + - 状态 + 获得日期 - + - 备注 + 获得学分 - + - 排序 + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - CourseClass1 + 考试 (Model) - + - 课件 (Model) + 关联类型 - + - 课件编号 + 课程场景ID - + - 课件名称 + 课程ID - + - 版本号 + 试卷ID - + - 课程ID + 封面图片URL - + - 课程 + 考试编号 - + - 分钟 + 考试名称 - + - 时 + 日期类型 - + - 来源 + 开始时间 - + - 链接 + 结束时间 - + - 备注 + 学完多久 - + - 排序 + 考试形式 - + + + 是否关联开班 + + + + + 开班ID + + + + + 状态 + + + + + 线下考试地点 + + + + + 备注 + + + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - 课件附件 (Model) + 是否使用默认封面 - + - 课件ID + 默认封面图Name - + + + 考试通知记录 (Model) + + + - 附件名 + 试卷ID - + - 扩展名 + 发送类型 - + - 路径 + 通知设置 - + - 大小 + 通知范围 - + - 是否允许下载 + 是否第一次打开 - + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - 学分记录 (Model) + 试卷 (Model) - + - 员工ID + 试卷编号 - + - 课程ID + 试卷名称 - + - 课程快照ID + 答题时长 - + - 考试ID + 评分方式 - + - 获得日期 + 卷面总分 - + - 获得学分 + 及格分 - + - 备注 + 重考次数 - + - 默认标志 + 关联类型 - + - 预留字段1 + 关联ID - + - 预留字段2 + 关联次数 - + - 预留字段3 + 封面图片URL - + - 预留字段4 + 封面图片背景 - + - 预留字段5 + 试卷风格 - + - 预留字段6 + 出题方式 - + - 预留字段7 + 状态 - + - 预留字段8 + 备注 - + - 预留字段9 + 默认标志 - + - 预留字段10 + 预留字段1 - + - 预留字段11 + 预留字段2 - + - 预留字段12 + 预留字段3 - + - 考试 (Model) + 预留字段4 - + - 关联类型 + 预留字段5 - + - 课程场景ID + 预留字段6 - + - 课程ID + 预留字段7 - + - 试卷ID + 预留字段8 - + - 封面图片URL + 预留字段9 - + - 考试编号 + 预留字段10 - + - 考试名称 + 预留字段11 - + - 日期类型 + 预留字段12 - + - 开始时间 + 试卷配置 (Model) - + - 结束时间 + 试卷ID - + - 学完多久 + 课程ID - + - 考试形式 + 排序号 - + - 是否关联开班 + 难易程度 - + - 开班ID + 题目类型 - + - 状态 + 题目内容ID - + - 线下考试地点 + 数量 - + + + 分值 + + + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - - - 是否使用默认封面 - - - - - 默认封面图Name - - - + - 考试通知记录 (Model) + 试卷题目 (Model) - + 试卷ID - + - 发送类型 + 题目ID - + - 通知设置 + 试卷配置ID - + - 通知范围 + 排序号 - + - 是否第一次打开 + 分值 - + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - 试卷 (Model) + 考试记录 (Model) - + - 试卷编号 + 试卷ID - + - 试卷名称 + 培训记录ID - + - 答题时长 + 员工ID - + - 评分方式 + 课程快照ID - + - 卷面总分 + 试卷ID - + - 及格分 + 得分 - + - 重考次数 + 调整得分 - + - 关联类型 + 考试日期 - + - 关联ID + 开始时间 - + - 关联次数 + 结束时间 - + - 封面图片URL + 实际开始时间 - + - 封面图片背景 + 实际结束时间 - + - 试卷风格 + 重考次数 - + - 出题方式 + 状态 - + - 状态 + 评分状态 - + + + 评语 + + + + + 是否合格 + + + + + 来源 + + + + + 是否查看试卷 + + + + + 查看试卷时间 + + + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - - - 试卷配置 (Model) - - - - - 试卷ID - - - - - 课程ID - - - + - 排序号 + Ghre_ExamRecordAnswer (Model) - + - 难易程度 + 答题记录ID - + - 题目类型 + 答题记录明细ID - + - 题目内容ID + 题目答案ID - + - 数量 + 答案内容 - + - 分值 + 排序号 - + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - 试卷题目 (Model) + Ghre_ExamRecordDetail (Model) - + + + 答题记录ID + + + 试卷ID - + + + 试卷题目ID + + + 题目ID - + - 试卷配置ID + 员工ID - + - 排序号 + 得分 + + + + + 调整得分 + + + + + 是否正确 - + - 分值 + 排序号 - + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - 考试记录 (Model) + Ghre_ExamStaff (Model) - + 试卷ID - + - 培训记录ID + 员工ID - + 员工ID - + - 课程快照ID + 来源 - + - 试卷ID + 备注 - + - 得分 + 默认标志 - + - 调整得分 + 预留字段1 - + - 考试日期 + 预留字段2 - + - 开始时间 + 预留字段3 - + - 结束时间 + 预留字段4 - + - 实际开始时间 + 预留字段5 - + - 实际结束时间 + 预留字段6 - + - 重考次数 + 预留字段7 - + - 状态 + 预留字段8 - + - 评分状态 + 预留字段9 - + - 评语 + 预留字段10 - + - 是否合格 + 预留字段11 - + - 来源 + 预留字段12 - + - 是否查看试卷 + 题目 (Model) - + - 查看试卷时间 + 课程Id - + + + 题目编号 + + + + + 难易程度 + + + + + 题目类型 + + + + + 题目内容 + + + + + 题目解析 + + + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - Ghre_ExamRecordAnswer (Model) + 题目答案 (Model) - + - 答题记录ID + 题目ID - + - 答题记录明细ID + 题目编号 - + - 题目答案ID + 答案内容 - + - 答案内容 + 是否为正确答案 - + + + 图片地址 + + + + + 图片宽度 + + + + + 图片宽度 + + + 排序号 - + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - Ghre_ExamRecordDetail (Model) + 必选修查询 (Model) - + - 答题记录ID + 员工ID - + - 试卷ID + 课程ID - + - 试卷题目ID + 必修分类 - + - 题目ID + 课程状态 - + - 员工ID + 学习状态 - + - 得分 + 必须到期日 - + - 调整得分 + 考试时间 - + - 是否正确 + 是否合格 - + - 排序号 + 获得学分 - + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - Ghre_ExamStaff (Model) + 培训机构 (Model) - + - 试卷ID + 机构编号 - + - 员工ID + 机构名称 - + - 员工ID + 联系人 - + - 来源 + 手机号码 - + + + 邮箱 + + + + + 地址 + + + + + 生效日期 + + + + + 失效日期 + + + + + 开票信息 + + + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - - - 题目 (Model) - - - + - 课程Id + 培训机构附件 (Model) - + - 题目编号 + 机构ID - + - 难易程度 + 编号 - + - 题目类型 + 名称 - + - 题目内容 + 生效日期 - + - 题目解析 + 失效日期 - + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - 题目答案 (Model) + 培训记录 (Model) - + - 题目ID + 员工ID - + - 题目编号 + 考试ID - + - 答案内容 + 课程快照ID - + - 是否为正确答案 + 课程ID - + - 图片地址 + 课程场景ID - + - 图片宽度 + 必选修规则ID - + - 图片宽度 + 加入时间 - + + + 课程结束时间 + + + + + 课程结束时间 + + + + + 开始时间 + + + + + 结束时间 + + + + + 学习进度 + + + + + 学习时长(分钟) + + + + + 课程标准时长(分钟) + + + + + 课程类型 + + + + + 课程状态 + + + + + 学习状态 + + + - 排序号 + 年度 - + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - + - 必选修查询 (Model) + 必选修规则 (Model) - + - 员工ID + 规则类型 - + + + 培训种类 + + + 课程ID - + - 必修分类 + 课程场景ID - + - 课程状态 + 厂区 - + - 学习状态 + 部门 - + - 必须到期日 + 职称 - + - 考试时间 + 职等 - + - 是否合格 + 岗位 - + - 获得学分 + 年度 - + + + 完成期限 + + + 备注 - + + + 结果 + + + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - - - 培训机构 (Model) - - - - - 机构编号 - - - + - 机构名称 + 规则编号 - + - 联系人 + 规则名称 - + - 手机号码 + 必选修规则结果 (Model) - + - 邮箱 + 必选修规则ID - + - 地址 + 人员ID - + - 生效日期 + 工号 - + - 失效日期 + 员工姓名 - + - 开票信息 + 状态 - + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - - - 培训机构附件 (Model) - - - - - 机构ID - - - + - 编号 + 必选修规则人员 (Model) - + - 名称 + 必选修规则ID - + - 生效日期 + 人员 - + - 失效日期 + 员工姓名 - + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - - - 预留字段11 - - - - - 预留字段12 - - - - - 培训记录 (Model) - - - - - 员工ID - - - - - 考试ID - - - + - 课程快照ID + 预留字段11 - + - 课程ID + 预留字段12 - + - 课程场景ID + Ghre_Teacher (Model) - + - 必选修规则ID + 机构Id - + - 加入时间 + 部门ID - + - 课程结束时间 + 员工ID - + - 课程结束时间 + 讲师分类 - + - 开始时间 + 机构编号 - + - 结束时间 + 机构名称 - + - 学习进度 + 员工照片 - + - 学习时长(分钟) + 性别 - + - 课程标准时长(分钟) + 邮箱 - + - 课程类型 + 手机号码 - + - 课程状态 + 讲师等级 - + - 学习状态 + 课时费 - + - 年度 + 擅长领域 - + 备注 - + 默认标志 - + 预留字段1 - + 预留字段2 - + 预留字段3 - + 预留字段4 - + 预留字段5 - + 预留字段6 - + 预留字段7 - + 预留字段8 - + 预留字段9 - + 预留字段10 - + 预留字段11 - + 预留字段12 - - - 必选修规则 (Model) - - - - - 规则类型 - - - + - 培训种类 + Ghre_TeacherAttachment (Model) - + - 课程ID + 机构ID - + - 课程场景ID + 编号 - + - 厂区 + 名称 - + - 部门 + 生效日期 - + - 职称 + 失效日期 - + - 职等 + 备注 - + - 岗位 + 默认标志 - + - 年度 + 预留字段1 - + - 完成期限 + 预留字段2 - + - 备注 + 预留字段3 - + - 结果 + 预留字段4 - + - 默认标志 + 预留字段5 - + - 预留字段1 + 预留字段6 - + - 预留字段2 + 预留字段7 - + - 预留字段3 + 预留字段8 - + - 预留字段4 + 预留字段9 - + - 预留字段5 + 预留字段10 - + - 预留字段6 + 预留字段11 - + - 预留字段7 + 预留字段12 - + - 预留字段8 + 任务日志表 - + - 预留字段9 + 任务ID - + - 预留字段10 + 任务耗时 - + - 预留字段11 + 执行结果(0-失败 1-成功) - + - 预留字段12 + 运行时间 - + - 规则编号 + 结束时间 - + - 规则名称 + 执行参数 - + - 必选修规则结果 (Model) + 异常信息 - + - 必选修规则ID + 异常堆栈 - + - 人员ID + 任务名称 - + - 工号 + 任务分组 - + - 员工姓名 + 任务计划表 - + - 状态 + 任务名称 - + - 备注 + 任务分组 - + - 默认标志 + 任务运行时间表达式 - + - 预留字段1 + 任务所在DLL对应的程序集名称 - + - 预留字段2 + 任务所在类 - + - 预留字段3 + 任务描述 - + - 预留字段4 + 执行次数 - + - 预留字段5 + 开始时间 - + - 预留字段6 + 结束时间 - + - 预留字段7 + 触发器类型(0、simple 1、cron) - + - 预留字段8 + 执行间隔时间, 秒为单位 - + - 预留字段9 + 循环执行次数 - + - 预留字段10 + 已循环次数 - + - 预留字段11 + 是否启动 - + - 预留字段12 + 执行传参 - + - 必选修规则人员 (Model) + 任务内存中的状态 - + - 必选修规则ID + Ghro_Dept (Model) - + - 人员 + DeptID - + - 员工姓名 + DeptNo - + - 备注 + DeptName - + - 默认标志 + DeptEname - + - 预留字段1 + BeginDate - + - 预留字段2 + EndDate - + - 预留字段3 + DataBelongID - + - 预留字段4 + Mkey - + - 预留字段5 + DeptType - + - 预留字段6 + DeptType1 - + - 预留字段7 + DeptType2 - + - 预留字段8 + DeptLevel - + - 预留字段9 + DeptManagerID - + - 预留字段10 + DeptManagerID2 - + - 预留字段11 + DeptAssID - + - 预留字段12 + ParentDeptID - + - Ghre_Teacher (Model) + ParentDeptID2 - + - 机构Id + RemarkSz - + - 部门ID + SortNo - + - 员工ID + IsDefault - + - 讲师分类 + AttachmentIDs - + - 机构编号 + Reverse1 - + - 机构名称 + Reverse2 - + - 员工照片 + Reverse3 - + - 性别 + Reverse4 - + - 邮箱 + Reverse5 - + - 手机号码 + DisplayDirection - + - 讲师等级 + DeptColor - + - 课时费 + DeptIcon - + - 擅长领域 + ShortName - + - 备注 + DeptDataType - + - 默认标志 + Ghrs_Attachment (Model) - + - 预留字段1 + Ghr附件记录ID - + - 预留字段2 + 文件编号 - + - 预留字段3 + 说明 - + - 预留字段4 + 英文说明 - + - 预留字段5 + TableName - + - 预留字段6 + TableKeyID - + - 预留字段7 + StaffID - + - 预留字段8 + 文件类别 (基本资料/证照/加班/请假....) - + - 预留字段9 + AttachmentGroupID - + - 预留字段10 + 文件名 - + - 预留字段11 + AttachBinary - - - 预留字段12 + 扩展名 - + - Ghre_TeacherAttachment (Model) + 大小 - + - 机构ID + 物理路径 - + - 编号 + 相对路径 - + - 名称 + ThumbnailPath - + - 生效日期 + 附件网页链接地址 - + - 失效日期 + 备注 - + - 备注 + SortNo - + - 默认标志 + IsDefault - + - 预留字段1 + CompanyID - + - 预留字段2 + ReverseN1 - + - 预留字段3 + ReverseD1 - + - 预留字段4 + Reverse1 - + - 预留字段5 + Reverse2 - + - 预留字段6 + Reverse3 - + - 预留字段7 + Reverse4 - + - 预留字段8 + Reverse5 - + - 预留字段9 + Ghrs_DataRoleDetail (Model) - + - 预留字段10 + DataRoleDetailId - + - 预留字段11 + DataRoleId - + - 预留字段12 + DataTypeID - + - 任务日志表 + DataID - + - 任务ID + DataNo - + - 任务耗时 + IncludeSub - + - 执行结果(0-失败 1-成功) + TableName - + - 运行时间 + TableIDName - + - 结束时间 + RemarkSz - + - 执行参数 + SortNo - + - 异常信息 + IsDefault - + - 异常堆栈 + Reverse1 - + - 任务名称 + Reverse2 - + - 任务分组 + Reverse3 - + - 任务计划表 + Reverse4 - + - 任务名称 + Reverse5 - + - 任务分组 + Ghrs_Menu (Model) - + - 任务运行时间表达式 + MenuId - + - 任务所在DLL对应的程序集名称 + MenuNo - + - 任务所在类 + MenuName - + - 任务描述 + MKey - + - 执行次数 + IconType - + - 开始时间 + MenuUrl - + - 结束时间 + MenuComponent - + - 触发器类型(0、simple 1、cron) + ParentMenuId - + - 执行间隔时间, 秒为单位 + MenuType - + - 循环执行次数 + MenuType2 - + - 已循环次数 + FormType - + - 是否启动 + DataPrivType - + - 执行传参 + FlowID - + - 任务内存中的状态 + MenuColDisplayType - + - Ghro_Dept (Model) + MenuGroupTitle - + - DeptID + QueryProcedure - + - DeptNo + EditProcedure - + - DeptName + IUDProcedure - + - DeptEname + IsSTDMenu - + - BeginDate + IsWaterMark - + - EndDate + IsPWDAgain - + - DataBelongID + IsFromExcel - + - Mkey + IsToExcel - + - DeptType + IsNew - + - DeptType1 + IsDetail - + - DeptType2 + IsUpdate - + - DeptLevel + IsDel - + - DeptManagerID + IsQuery - + - DeptManagerID2 + IsPrint - + - DeptAssID + IsLog - + - ParentDeptID + IsManual - + - ParentDeptID2 + IsCopy - + - RemarkSz + IsTBD1 - + - SortNo + TBD1MKey - + - IsDefault + IsTBD2 - + - AttachmentIDs + TBD2MKey - + - Reverse1 + IsTBD3 - + - Reverse2 + TBD3MKey - + - Reverse3 + IsTBD4 - + - Reverse4 + TBD4MKey - + - Reverse5 + IsTBD5 - + - DisplayDirection + TBD5MKey - + - DeptColor + IsTBD6 - + - DeptIcon + TBD6MKey - + - ShortName + IsTBD7 - + - DeptDataType + TBD7MKey - + - Ghrs_Attachment (Model) + IsTBD8 - + - Ghr附件记录ID + TBD8MKey - + - 文件编号 + IsTBD9 - + - 说明 + TBD9MKey - + - 英文说明 + IsTBD10 - + - TableName + TBD10MKey - + - TableKeyID + IsTBD11 - + - StaffID + TBD11MKey - + - 文件类别 (基本资料/证照/加班/请假....) + IsTBD12 - + - AttachmentGroupID + TBD12MKey - + - 文件名 + IsTBD13 - + - AttachBinary + TBD13MKey + + - 扩展名 + IsTBD14 - + - 大小 + TBD14MKey - + - 物理路径 + IsTBD15 - + - 相对路径 + TBD15MKey - + - ThumbnailPath + RemarkSz - + - 附件网页链接地址 + SortNo - + - 备注 + IsDefault - + - SortNo + Reverse1 - + - IsDefault + Reverse2 - + - CompanyID + Reverse3 - + - ReverseN1 + Reverse4 - + - ReverseD1 + Reverse5 - + - Reverse1 + Reverse6 - + - Reverse2 + Reverse7 - + - Reverse3 + Reverse8 - + - Reverse4 + Reverse9 - + - Reverse5 + AppUrl @@ -13477,6 +14427,36 @@ 修改信息 + + + Ghrs_DataRoleDetail(Dto.View) + + + + + 创建信息 + + + + + 修改信息 + + + + + Ghrs_Menu(Dto.View) + + + + + 创建信息 + + + + + 修改信息 + + Ghrs_ParaDetail(Dto.View) diff --git a/Tiobon.Core/Tiobon.Core.xml b/Tiobon.Core/Tiobon.Core.xml index 559d88b5..6b2743c6 100644 --- a/Tiobon.Core/Tiobon.Core.xml +++ b/Tiobon.Core/Tiobon.Core.xml @@ -1070,6 +1070,16 @@ Ghrs_Attachment(Controller) + + + Ghrs_DataRoleDetail(Controller) + + + + + Ghrs_Menu(Controller) + + Ghrs_ParaDetail(Controller)