孤兰 2 months ago
commit 845e867351
  1. 10943
      Model/Tiobon.Web.pdm
  2. 24
      Tiobon.Core.Api/Controllers/Ghre/Ghre_TitleSkill_BoltoneController.cs
  3. 245
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  4. 5
      Tiobon.Core.Api/Tiobon.Core.xml
  5. 13
      Tiobon.Core.IServices/Ghre/IGhre_TitleSkill_BoltoneServices.cs
  6. 137
      Tiobon.Core.Model/Base/Ghre/Ghre_TitleSkill_Boltone.Dto.Base.cs
  7. 26
      Tiobon.Core.Model/Edit/Ghre/Ghre_TitleSkill_Boltone.Dto.EditInput.cs
  8. 26
      Tiobon.Core.Model/Insert/Ghre/Ghre_TitleSkill_Boltone.Dto.InsertInput.cs
  9. 138
      Tiobon.Core.Model/Models/Ghre/Ghre_TitleSkill_Boltone.cs
  10. 3
      Tiobon.Core.Model/View/Ghra/Ghra_Staff.Dto.View.cs
  11. 51
      Tiobon.Core.Model/View/Ghre/Ghre_TitleSkill_Boltone.Dto.View.cs
  12. 18
      Tiobon.Core.Services/Ghra/Ghra_StaffServices.cs
  13. 3
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs
  14. 2
      Tiobon.Core.Services/Ghre/Ghre_PlanServices.cs
  15. 231
      Tiobon.Core.Services/Ghre/Ghre_TitleSkill_BoltoneServices.cs
  16. 15
      Tiobon.Core.Services/Ghrh/Ghrh_YearHumanSettingsServices.cs
  17. 255
      Tiobon.Core/Tiobon.Core.Model.xml
  18. 12
      Tiobon.Core/Tiobon.Core.xml

File diff suppressed because it is too large Load Diff

@ -0,0 +1,24 @@
using Tiobon.Core.Model.ViewModels.Extend;
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// 岗位技能_宝连通(Controller)
/// </summary>
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
public class Ghre_TitleSkill_BoltoneController : BaseController<IGhre_TitleSkill_BoltoneServices, Ghre_TitleSkill_Boltone, Ghre_TitleSkill_BoltoneDto, InsertGhre_TitleSkill_BoltoneInput, EditGhre_TitleSkill_BoltoneInput>
{
public Ghre_TitleSkill_BoltoneController(IGhre_TitleSkill_BoltoneServices service) : base(service)
{
}
#region 状态修改
[HttpPost("QueryMatrix")]
public async Task<dynamic> QueryMatrix(string status, [FromBody] QueryBody filter)
{
return await _service.QueryMatrix(filter);
}
#endregion
}

@ -9780,6 +9780,111 @@
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase">
<summary>
岗位技能_宝连通 (Dto.Base)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.DeptId">
<summary>
部门ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.CourseId">
<summary>
课程ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.TitleId">
<summary>
岗位ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.RequiredElective">
<summary>
必/选修
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.EffectiveDate">
<summary>
生效日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.ExpiryDate">
<summary>
失效日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_UshioPlanBase">
<summary>
【牛尾】培训计划 (Dto.Base)
@ -16667,6 +16772,11 @@
培训讲师异动附件 (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_TitleSkill_BoltoneInput">
<summary>
岗位技能_宝连通 (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_UshioPlanInput">
<summary>
【牛尾】培训计划 (Dto.EditInput)
@ -17263,6 +17373,11 @@
培训讲师异动附件 (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_TitleSkill_BoltoneInput">
<summary>
岗位技能_宝连通 (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_UshioPlanInput">
<summary>
【牛尾】培训计划 (Dto.InsertInput)
@ -27332,6 +27447,111 @@
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone">
<summary>
岗位技能_宝连通 (Model)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.DeptId">
<summary>
部门ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.CourseId">
<summary>
课程ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.TitleId">
<summary>
岗位ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.RequiredElective">
<summary>
必/选修
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.EffectiveDate">
<summary>
生效日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.ExpiryDate">
<summary>
失效日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_UshioPlan">
<summary>
【牛尾】培训计划 (Model)
@ -36193,6 +36413,31 @@
修改信息
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneDto">
<summary>
岗位技能_宝连通(Dto.View1)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneDto.CreateDataInfo">
<summary>
创建信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneDto.UpdateDataInfo">
<summary>
修改信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneDto.EffectiveDate1">
<summary>
生效日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneDto.ExpiryDate1">
<summary>
失效日期
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_UshioPlanDto">
<summary>
【牛尾】培训计划(Dto.View1)

@ -1555,6 +1555,11 @@
<param name="status">status</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_TitleSkill_BoltoneController">
<summary>
岗位技能_宝连通(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_UshioPlanController">
<summary>
【牛尾】培训计划(Controller)

@ -0,0 +1,13 @@
using Tiobon.Core.Common;
using Tiobon.Core.Model.ViewModels.Extend;
using Tiobon.Core.Model;
namespace Tiobon.Core.IServices;
/// <summary>
/// 岗位技能_宝连通(自定义服务接口)
/// </summary>
public interface IGhre_TitleSkill_BoltoneServices : IBaseServices<Ghre_TitleSkill_Boltone, Ghre_TitleSkill_BoltoneDto, InsertGhre_TitleSkill_BoltoneInput, EditGhre_TitleSkill_BoltoneInput>
{
Task<dynamic> QueryMatrix(QueryBody filter);
}

@ -0,0 +1,137 @@
/* ,
* Ghre_TitleSkill_Boltone.cs
*
* N / A
* Ghre_TitleSkill_Boltone
*
* Ver
*
*V0.01 2025/4/17 17:45:28 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 岗位技能_宝连通 (Dto.Base)
/// </summary>
public class Ghre_TitleSkill_BoltoneBase
{
/// <summary>
/// 部门ID
/// </summary>
public int? DeptId { get; set; }
/// <summary>
/// 课程ID
/// </summary>
public long? CourseId { get; set; }
/// <summary>
/// 岗位ID
/// </summary>
public int? TitleId { get; set; }
/// <summary>
/// 必/选修
/// </summary>
[Display(Name = "RequiredElective"), Description("必/选修"), MaxLength(32, ErrorMessage = "必/选修 不能超过 32 个字符")]
public string RequiredElective { get; set; }
/// <summary>
/// 生效日期
/// </summary>
public DateTime? EffectiveDate { get; set; }
/// <summary>
/// 失效日期
/// </summary>
public DateTime? ExpiryDate { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -0,0 +1,26 @@
/* ,
* Ghre_TitleSkill_Boltone.cs
*
* N / A
* Ghre_TitleSkill_Boltone
*
* Ver
*
*V0.01 2025/4/17 16:24:41 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 岗位技能_宝连通 (Dto.EditInput)
/// </summary>
public class EditGhre_TitleSkill_BoltoneInput : Ghre_TitleSkill_BoltoneBase
{
}

@ -0,0 +1,26 @@
/* ,
* Ghre_TitleSkill_Boltone.cs
*
* N / A
* Ghre_TitleSkill_Boltone
*
* Ver
*
*V0.01 2025/4/17 16:24:41 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 岗位技能_宝连通 (Dto.InsertInput)
/// </summary>
public class InsertGhre_TitleSkill_BoltoneInput : Ghre_TitleSkill_BoltoneBase
{
}

@ -0,0 +1,138 @@
/* ,
* Ghre_TitleSkill_Boltone.cs
*
* N / A
* Ghre_TitleSkill_Boltone
*
* Ver
*
*V0.01 2025/4/17 17:45:28 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 岗位技能_宝连通 (Model)
/// </summary>
[SugarTable("Ghre_TitleSkill_Boltone", "Ghre_TitleSkill_Boltone"), Entity(TableCnName = "岗位技能_宝连通", TableName = "Ghre_TitleSkill_Boltone")]
public class Ghre_TitleSkill_Boltone : BasePoco
{
/// <summary>
/// 部门ID
/// </summary>
public int? DeptId { get; set; }
/// <summary>
/// 课程ID
/// </summary>
public long? CourseId { get; set; }
/// <summary>
/// 岗位ID
/// </summary>
public int? TitleId { get; set; }
/// <summary>
/// 必/选修
/// </summary>
[Display(Name = "RequiredElective"), Description("必/选修"), MaxLength(32, ErrorMessage = "必/选修 不能超过 32 个字符")]
public string RequiredElective { get; set; }
/// <summary>
/// 生效日期
/// </summary>
public DateTime? EffectiveDate { get; set; }
/// <summary>
/// 失效日期
/// </summary>
public DateTime? ExpiryDate { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}

@ -78,4 +78,7 @@ public class Ghra_StaffDto : Ghra_Staff
/// 职务
/// </summary>
public string JobName { get; set; }
public int? TitleId { get; set; }
public int? DeptId { get; set; }
}

@ -0,0 +1,51 @@
/* ,
* Ghre_TitleSkill_Boltone.cs
*
* N / A
* Ghre_TitleSkill_Boltone
*
* Ver
*
*V0.01 2025/4/17 16:24:41 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 岗位技能_宝连通(Dto.View1)
/// </summary>
public class Ghre_TitleSkill_BoltoneDto : Ghre_TitleSkill_Boltone
{
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
public string CourseName { get; set; }
public string DeptName { get; set; }
public string TitleName { get; set; }
/// <summary>
/// 生效日期
/// </summary>
public string EffectiveDate1 { get; set; }
/// <summary>
/// 失效日期
/// </summary>
public string ExpiryDate1 { get; set; }
public string ParentDeptName { get; set; }
}

@ -18,14 +18,28 @@ public class Ghra_StaffServices : BaseServices<Ghra_Staff, Ghra_StaffDto, Insert
}
public override async Task<ServicePageResult<Ghra_StaffDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
{
{
var result = await base.QueryFilterPage(filter, condition, IsEnable);
var deptIds = result.result.DT_TableDataT1.Where(x => x.DeptID != null).Select(x => x.DeptID.Value).ToList();
var depts = await Db.Queryable<Ghro_Dept>().Where(x => x.DeptID != null && deptIds.Contains(x.DeptID.Value)).ToListAsync();
var titleIds = result.result.DT_TableDataT1.Where(x => x.TitleID != null).Select(x => x.TitleID.Value).ToList();
var titles = await Db.Queryable<Ghra_Title>().Where(x => x.TitleID != null && titleIds.Contains(x.TitleID.Value)).ToListAsync();
for (int i = 0; i < result.result.DT_TableDataT1.Count; i++)
{
result.result.DT_TableDataT1[i].GenderLabel = await GetParaLabel("Gender", result.result.DT_TableDataT1[i].Gender);
result.result.DT_TableDataT1[i].IndateLabel = DateTimeHelper.ConvertToDayString(result.result.DT_TableDataT1[i].Indate);
result.result.DT_TableDataT1[i].StaffType1Label = await GetParaLabel(result.result.DT_TableDataT1[i].StaffType1);
result.result.DT_TableDataT1[i].StaffType2Label = await GetParaLabel(result.result.DT_TableDataT1[i].StaffType2);
if (result.result.DT_TableDataT1[i].DeptID != null)
result.result.DT_TableDataT1[i].DeptName = depts.Where(o => o.DeptID == result.result.DT_TableDataT1[i].DeptID).FirstOrDefault()?.DeptName;
if (result.result.DT_TableDataT1[i].TitleID != null)
result.result.DT_TableDataT1[i].TitleName = titles.Where(o => o.TitleID == result.result.DT_TableDataT1[i].TitleID).FirstOrDefault()?.TitleName;
}
return result;
}
@ -37,6 +51,8 @@ public class Ghra_StaffServices : BaseServices<Ghra_Staff, Ghra_StaffDto, Insert
if (entity != null)
{
entity.TitleId = entity.TitleID;
entity.DeptId = entity.DeptID;
var licences = await Db.Ado.SqlQueryAsync<Ghra_StaffLicenceDto>($"SELECT * FROM Ghra_StaffLicence WHERE StaffID='{id}' AND IsEnable=1");
//var licences = await _ghra_StaffLicenceServices.QueryDto(x => x.StaffID == id);

@ -364,7 +364,8 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
WHERE StaffID = {record.StaffId}";
extend.StaffInfo = await Db.Ado.SqlQuerySingleAsync<StaffInfo>(sql);
extend.StaffInfo.StaffScore = record.Score != null ? record.Score.Value : 0;
extend.StaffInfo.StaffScore = details.Sum(x => x.Score) ?? 0;
sql = @$"SELECT A.StaffNo,
A.StaffName,

@ -1,7 +1,5 @@
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using Tiobon.Core.Model.Models;
using static Tiobon.Core.DataAccess.ReportHelper;
using static Tiobon.Core.Model.Consts;
namespace Tiobon.Core.Services;

@ -0,0 +1,231 @@
using MySqlX.XDevAPI.Common;
using NPOI.SS.Formula.Functions;
using OfficeOpenXml.FormulaParsing;
using Org.BouncyCastle.Utilities;
using System.Collections.Generic;
namespace Tiobon.Core.Services;
/// <summary>
/// 岗位技能_宝连通 (服务)
/// </summary>
public class Ghre_TitleSkill_BoltoneServices : BaseServices<Ghre_TitleSkill_Boltone, Ghre_TitleSkill_BoltoneDto, InsertGhre_TitleSkill_BoltoneInput, EditGhre_TitleSkill_BoltoneInput>, IGhre_TitleSkill_BoltoneServices
{
private readonly IBaseRepository<Ghre_TitleSkill_Boltone> _dal;
private readonly ICommonServices _commonServices;
private readonly IGhra_StaffServices _staffServices;
public Ghre_TitleSkill_BoltoneServices(ICaching caching,
IBaseRepository<Ghre_TitleSkill_Boltone> dal,
IGhra_StaffServices staffServices,
ICommonServices commonServices)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
_staffServices = staffServices;
_commonServices = commonServices;
}
public override async Task<ServicePageResult<Ghre_TitleSkill_BoltoneDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
{
if (filter.orderBy == "EffectiveDate1")
filter.orderBy = "EffectiveDate";
if (filter.orderBy == "ExpiryDate1")
filter.orderBy = "ExpiryDate";
var result = await base.QueryFilterPage(filter, condition, IsEnable);
var DT_TableDataT1 = result.result.DT_TableDataT1;
var deptIds = DT_TableDataT1.Select(x => x.DeptId).Distinct().ToList();
var courseIds = DT_TableDataT1.Select(x => x.CourseId).Distinct().ToList();
var titleIds = DT_TableDataT1.Select(x => x.TitleId).Distinct().ToList();
var depts = await Db.Queryable<Ghro_Dept>().Where(x => deptIds.Contains(x.DeptID)).ToListAsync();
var deptIds1 = depts.Select(x => x.ParentDeptID).Distinct().ToList();
depts = await Db.Queryable<Ghro_Dept>().Where(x => deptIds.Contains(x.DeptID) || deptIds1.Contains(x.DeptID)).ToListAsync();
var courses = await Db.Queryable<Ghre_Course>().Where(x => courseIds.Contains(x.Id)).ToListAsync();
var courseScenes = await Db.Queryable<Ghre_CourseScene>().Where(x => courseIds.Contains(x.Id)).ToListAsync();
var titles = await Db.Queryable<Ghra_Title>().Where(x => titleIds.Contains(x.TitleID)).ToListAsync();
for (int i = 0; i < DT_TableDataT1.Count; i++)
{
if (DT_TableDataT1[i].CourseId.IsNotEmptyOrNull())
DT_TableDataT1[i].CourseName = courses.Where(x => x.Id == DT_TableDataT1[i].CourseId).Select(x => x.CourseName).FirstOrDefault();
if (DT_TableDataT1[i].CourseName.IsNullOrEmpty())
DT_TableDataT1[i].CourseName = courseScenes.Where(x => x.Id == DT_TableDataT1[i].CourseId).Select(x => x.SceneName).FirstOrDefault();
if (DT_TableDataT1[i].DeptId.IsNotEmptyOrNull())
{
var dept = depts.Where(x => x.DeptID == DT_TableDataT1[i].DeptId).FirstOrDefault();
DT_TableDataT1[i].DeptName = dept?.DeptName;
if (dept != null && dept.ParentDeptID.IsNotEmptyOrNull())
DT_TableDataT1[i].ParentDeptName = depts.Where(x => x.DeptID == dept.ParentDeptID).Select(X => X.DeptName).FirstOrDefault();
}
if (DT_TableDataT1[i].TitleId.IsNotEmptyOrNull())
DT_TableDataT1[i].TitleName = titles.Where(x => x.TitleID == DT_TableDataT1[i].TitleId).Select(x => x.TitleName).FirstOrDefault();
DT_TableDataT1[i].EffectiveDate1 = DateTimeHelper.ConvertToDayString(DT_TableDataT1[i].EffectiveDate);
DT_TableDataT1[i].ExpiryDate1 = DateTimeHelper.ConvertToDayString(DT_TableDataT1[i].ExpiryDate);
}
return result;
}
//public override async Task<long> Add(InsertGhre_TitleSkill_BoltoneInput entity)
//{
// if (entity.StaffId != null)
// entity.StaffIds = JsonHelper.ObjToJson(entity.StaffId.OrderBy(n => n).ToList());
// if (entity.StaffId.IsNotEmptyOrNull() && entity.StaffId.Count > 0)
// entity.TrainNum = entity.StaffId.Count;
// if (entity.Months != null)
// entity.Month = JsonHelper.ObjToJson(entity.Months.OrderBy(n => n).ToList());
// var result = await base.Add(entity);
// return result;
//}
//public override async Task<bool> Update(long Id, EditGhre_TitleSkill_BoltoneInput editModel)
//{
// if (editModel.StaffId != null)
// editModel.StaffIds = JsonHelper.ObjToJson(editModel.StaffId);
// if (editModel.StaffId.IsNotEmptyOrNull() && editModel.StaffId.Count > 0)
// editModel.TrainNum = editModel.StaffId.Count;
// if (editModel.Months != null)
// editModel.Month = JsonHelper.ObjToJson(editModel.Months.OrderBy(n => n).ToList());
// var result = await base.Update(Id, editModel);
// return result;
//}
//public override async Task<ServiceFormResult<Ghre_TitleSkill_BoltoneDto>> QueryForm(QueryForm body)
//{
// var result = await base.QueryForm(body);
// string StaffIds = result.result.DT_TableDataT1[0].StaffIds;
// string Month = result.result.DT_TableDataT1[0].Month;
// if (!string.IsNullOrWhiteSpace(StaffIds))
// result.result.DT_TableDataT1[0].StaffId = JsonConvert.DeserializeObject<List<int>>(StaffIds);
// if (!string.IsNullOrWhiteSpace(Month))
// result.result.DT_TableDataT1[0].Months = JsonConvert.DeserializeObject<List<string>>(Month);
// if (result.result.DT_TableDataT1[0].TrainNum != null && result.result.DT_TableDataT1[0].TrainDays != null)
// result.result.DT_TableDataT1[0].TotalDays = result.result.DT_TableDataT1[0].TrainNum * result.result.DT_TableDataT1[0].TrainDays;
// return result;
//}
public async Task<dynamic> QueryMatrix(QueryBody filter)
{
dynamic obj = new ExpandoObject();
dynamic result = new ExpandoObject();
var result2 = await _staffServices.QueryFilterPage(filter);
var DT_TableDataT1 = result2.result.DT_TableDataT1;
var param = new ModuleParam()
{
langId = filter.langId,
menuName = filter.menuName
};
var module = await _commonServices.GetModuleInfoAsync(param);
var titleSkills = await base.QueryFilterPage(new QueryBody()
{
menuName = "F_TitleSkill_Boltone",
pageNum = 1,
pageSize = 10000,
orderBy = ""
});
var columns = new JArray();
for (int i = 0; i < result2.result.DT_TableDataT1.Count; i++)
{
var column = result2.result.DT_TableDataT1[i];
var item1 = new JObject
{
new JProperty("StaffID", column.StaffID),
new JProperty("DeptName", column.DeptName),
new JProperty("IndateLabel", column.IndateLabel),
new JProperty("StaffNo", column.StaffNo),
new JProperty("StaffName", column.StaffName),
new JProperty("StaffType1Label", column.StaffType1Label),
new JProperty("TitleName", column.TitleName),
};
//× 生手 技能有效期内所对应课程还未分配或课程学习时长为0
//◑ 受训中 技能有效期内所对应课程学习时长大于0小时
//☆ 熟练工 技能有效期内所对应的课程学习状态为已完成(含必修、选修课程状态)
//★ 可带教 员工技能所对应的课程学习状态已完成,且通过讲师课程培训学习和考核
titleSkills.result.DT_TableDataT1.ForEach(item =>
{
var key = item.CourseId + "_" + item.DeptId + "_" + item.TitleId + "_" + item.RequiredElective;
//if (dict.ContainsKey(column.Id.ObjToString()))
//{
// var ids = dict[column.Id.ObjToString()];
// if (ids.Where(id => id == x.TitleID).Any())
// item.Add(new JProperty("Title_" + x.TitleNo, "✔"));
// else
// item.Add(new JProperty("Title_" + x.TitleNo, ""));
//}
//else
item1.Add(new JProperty(key, "★"));
});
columns.Add(item1);
}
var list = titleSkills.result.DT_TableDataT1.Select(x => new
{
Code = x.DeptId + "_" + x.TitleId + "_" + x.RequiredElective,
Name = x.DeptName + "(" + x.RequiredElective + ")",
x.CourseId,
x.CourseName,
x.DeptId,
x.DeptName,
x.TitleId,
x.TitleName,
x.RequiredElective,
}).ToList();
var group = list.GroupBy(x => new { x.Name })
.Select(x =>
new
{
x.Key.Name,
items = x.ToList()
}).ToList();
group = group.OrderBy(x => x.Name).ToList();
var demoColumn = module.Data.JM_TableColumnT1.TableColumn.Where(x => x.field == "Demo").FirstOrDefault();
group.ForEach(x =>
{
x.items.ForEach(item =>
{
var column1 = Mapper.Map(demoColumn).ToANew<TableColumn>();
column1.field = item.CourseId + "_" + item.DeptId + "_" + item.TitleId + "_" + item.RequiredElective;
column1.label = item.CourseName;
column1.GroupName = x.Name;
module.Data.JM_TableColumnT1.TableColumn.Add(column1);
});
});
module.Data.JM_TableColumnT1.TableColumn = module.Data.JM_TableColumnT1.TableColumn.Where(x => x.field != "Demo").ToList();
result.JM_TableColumnT1 = module.Data.JM_TableColumnT1;
result.DT_TablePageInfoT1 = result2.result.DT_TablePageInfoT1;
result.DT_TableDataT1 = columns;
obj.result = result;
obj.Success = true;
obj.code = "0";
obj.type = "success";
obj.message = "查询成功!";
return obj;
}
}

@ -60,6 +60,21 @@ public class Ghrh_YearHumanSettingsServices : BaseServices<Ghrh_YearHumanSetting
return result;
}
public override async Task<bool> Update(long Id, EditGhrh_YearHumanSettingsInput entity)
{
entity.WorkState = 1;
if (await Db.Queryable<Ghrh_YearHumanSettings>()
.WhereIF(entity.GradeId.IsNotEmptyOrNull(), x => x.GradeId == entity.GradeId)
.WhereIF(entity.JobId.IsNotEmptyOrNull(), x => x.JobId == entity.JobId)
.AnyAsync(x => x.Year == entity.Year && x.DeptId == entity.DeptId && x.TitleId == entity.TitleId && x.Id != Id))
throw new Exception($" {entity.Year}年度,已存在相同数据!");
var result = await base.Update(Id, entity);
return result;
}
public override async Task<ServicePageResult<Ghrh_YearHumanSettingsDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
{
var result = await base.QueryFilterPage(filter, $"WorkState = 1 AND dbo.[FUserDeptPriv] ({App.User.ID}, DeptId, getdate())=1", IsEnable);

@ -9780,6 +9780,111 @@
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase">
<summary>
岗位技能_宝连通 (Dto.Base)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.DeptId">
<summary>
部门ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.CourseId">
<summary>
课程ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.TitleId">
<summary>
岗位ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.RequiredElective">
<summary>
必/选修
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.EffectiveDate">
<summary>
生效日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.ExpiryDate">
<summary>
失效日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneBase.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_UshioPlanBase">
<summary>
【牛尾】培训计划 (Dto.Base)
@ -14745,6 +14850,11 @@
内置
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrp_PerformancePeriodTypeBase.StageItems_List">
<summary>
考核阶段名称
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrs_AttachmentBase">
<summary>
Ghrs_Attachment (Dto.Base)
@ -16657,6 +16767,11 @@
培训讲师异动附件 (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_TitleSkill_BoltoneInput">
<summary>
岗位技能_宝连通 (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_UshioPlanInput">
<summary>
【牛尾】培训计划 (Dto.EditInput)
@ -17253,6 +17368,11 @@
培训讲师异动附件 (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_TitleSkill_BoltoneInput">
<summary>
岗位技能_宝连通 (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_UshioPlanInput">
<summary>
【牛尾】培训计划 (Dto.InsertInput)
@ -27322,6 +27442,111 @@
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone">
<summary>
岗位技能_宝连通 (Model)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.DeptId">
<summary>
部门ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.CourseId">
<summary>
课程ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.TitleId">
<summary>
岗位ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.RequiredElective">
<summary>
必/选修
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.EffectiveDate">
<summary>
生效日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.ExpiryDate">
<summary>
失效日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_Boltone.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_UshioPlan">
<summary>
【牛尾】培训计划 (Model)
@ -36178,6 +36403,31 @@
修改信息
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneDto">
<summary>
岗位技能_宝连通(Dto.View1)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneDto.CreateDataInfo">
<summary>
创建信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneDto.UpdateDataInfo">
<summary>
修改信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneDto.EffectiveDate1">
<summary>
生效日期
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_TitleSkill_BoltoneDto.ExpiryDate1">
<summary>
失效日期
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_UshioPlanDto">
<summary>
【牛尾】培训计划(Dto.View1)
@ -37243,6 +37493,11 @@
修改信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrp_PerformancePeriodTypeDto.StageItems_List">
<summary>
考核阶段名称
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrs_AttachmentDto">
<summary>
Ghrs_Attachment(Dto.View)

@ -1555,6 +1555,11 @@
<param name="status">status</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_TitleSkill_BoltoneController">
<summary>
岗位技能_宝连通(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_UshioPlanController">
<summary>
【牛尾】培训计划(Controller)
@ -2185,6 +2190,13 @@
考核周期类别(Controller)
</summary>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghrp_PerformancePeriodTypeController.GetStageItems(System.String)">
<summary>
根据阶段数 获取对应阶段名称
</summary>
<param name="Stage">阶段</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghrs_AttachmentController">
<summary>
Ghrs_Attachment(Controller)

Loading…
Cancel
Save