人证对照表新增Excel导入,新增手动录入

master
xiaochanghai 6 months ago
parent 22fee85c40
commit 093743bbac
  1. 18
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  2. BIN
      Tiobon.Core.Api/wwwroot/files/import/1871744379090243584/Ghre_Certificate.xlsx
  3. 279
      Tiobon.Core.Model/Base/Ghre/Ghre_Certificate.Dto.Base.cs
  4. 15
      Tiobon.Core.Model/Models/Ghre/Ghre_Certificate.cs
  5. 6
      Tiobon.Core.Services/Ghre/Ghre_CertificateServices.cs
  6. 18
      Tiobon.Core/Tiobon.Core.Model.xml

@ -2202,7 +2202,12 @@
</member> </member>
<member name="T:Tiobon.Core.Model.Models.Ghre_CertificateBase"> <member name="T:Tiobon.Core.Model.Models.Ghre_CertificateBase">
<summary> <summary>
培训记录 (Dto.Base) 培训证书 (Dto.Base)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.CertificateRuleId">
<summary>
培训证书规则ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.StaffId"> <member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.StaffId">
@ -2247,7 +2252,7 @@
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.AwardSource"> <member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.AwardSource">
<summary> <summary>
来源 来源
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.RemarkSz"> <member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.RemarkSz">
@ -15718,7 +15723,12 @@
</member> </member>
<member name="T:Tiobon.Core.Model.Models.Ghre_Certificate"> <member name="T:Tiobon.Core.Model.Models.Ghre_Certificate">
<summary> <summary>
培训记录 (Model) 培训证书 (Model)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.CertificateRuleId">
<summary>
培训证书规则ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.StaffId"> <member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.StaffId">
@ -15763,7 +15773,7 @@
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.AwardSource"> <member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.AwardSource">
<summary> <summary>
来源 来源
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.RemarkSz"> <member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.RemarkSz">

@ -6,7 +6,7 @@
* *
* Ver * Ver
* *
*V0.01 2024/7/16 16:52:58 SimonHsiao *V0.01 2024/12/25 10:29:10 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* *
@ -14,146 +14,147 @@
* SimonHsiao * SimonHsiao
* *
*/ */
using System.ComponentModel; namespace Tiobon.Core.Model.Models;
using System.ComponentModel.DataAnnotations;
namespace Tiobon.Core.Model.Models
/// <summary>
/// 培训证书 (Dto.Base)
/// </summary>
public class Ghre_CertificateBase
{ {
/// <summary> /// <summary>
/// 培训记录 (Dto.Base) /// 培训证书规则ID
/// </summary> /// </summary>
public class Ghre_CertificateBase public long? CertificateRuleId { get; set; }
{
/// <summary>
/// <summary> /// 员工ID
/// 员工ID /// </summary>
/// </summary> public int? StaffId { get; set; }
public int? StaffId { get; set; }
/// <summary>
/// <summary> /// 课程快照ID
/// 课程快照ID /// </summary>
/// </summary> public long? CourseSnapId { get; set; }
public long? CourseSnapId { get; set; }
/// <summary>
/// <summary> /// 课程ID
/// 课程ID /// </summary>
/// </summary> public long? CourseId { get; set; }
public long? CourseId { get; set; }
/// <summary>
/// <summary> /// 证书类型
/// 证书类型 /// </summary>
/// </summary> [Display(Name = "CertificateType"), Description("证书类型"), MaxLength(32, ErrorMessage = "证书类型 不能超过 32 个字符")]
[Display(Name = "CertificateType"), Description("证书类型"), MaxLength(32, ErrorMessage = "证书类型 不能超过 32 个字符")] public string CertificateType { get; set; }
public string CertificateType { get; set; }
/// <summary>
/// <summary> /// 证书Url
/// 证书Url /// </summary>
/// </summary> [Display(Name = "CertificateUrl"), Description("证书Url"), MaxLength(128, ErrorMessage = "证书Url 不能超过 128 个字符")]
[Display(Name = "CertificateUrl"), Description("证书Url"), MaxLength(128, ErrorMessage = "证书Url 不能超过 128 个字符")] public string CertificateUrl { get; set; }
public string CertificateUrl { get; set; }
/// <summary>
/// <summary> /// 颁发日期
/// 颁发日期 /// </summary>
/// </summary> public DateTime? AwardDate { get; set; }
public DateTime? AwardDate { get; set; }
/// <summary>
/// <summary> /// 有效期
/// 有效期 /// </summary>
/// </summary> [Display(Name = "ValidityPeriod"), Description("有效期"), MaxLength(32, ErrorMessage = "有效期 不能超过 32 个字符")]
[Display(Name = "ValidityPeriod"), Description("有效期"), MaxLength(32, ErrorMessage = "有效期 不能超过 32 个字符")] public string ValidityPeriod { get; set; }
public string ValidityPeriod { get; set; }
/// <summary>
/// <summary> /// 结束时间
/// 结束时间 /// </summary>
/// </summary> public DateTime? ValidityPeriodTime { get; set; }
public DateTime? ValidityPeriodTime { get; set; }
/// <summary>
/// <summary> /// 颁奖来源
/// 颁发来源 /// </summary>
/// </summary> [Display(Name = "AwardSource"), Description("颁奖来源"), MaxLength(32, ErrorMessage = "颁奖来源 不能超过 32 个字符")]
[Display(Name = "AwardSource"), Description("颁发来源"), MaxLength(32, ErrorMessage = "颁发来源 不能超过 32 个字符")] public string AwardSource { get; set; }
public string AwardSource { get; set; }
/// <summary>
/// <summary> /// 备注
/// 备注 /// </summary>
/// </summary> [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")] public string RemarkSz { get; set; }
public string RemarkSz { get; set; }
/// <summary>
/// <summary> /// 默认标志
/// 默认标志 /// </summary>
/// </summary> public int? IsDefault { get; set; }
public int? IsDefault { get; set; }
/// <summary>
/// <summary> /// 预留字段1
/// 预留字段1 /// </summary>
/// </summary> [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")] public string Reverse1 { get; set; }
public string Reverse1 { get; set; }
/// <summary>
/// <summary> /// 预留字段2
/// 预留字段2 /// </summary>
/// </summary> [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")] public string Reverse2 { get; set; }
public string Reverse2 { get; set; }
/// <summary>
/// <summary> /// 预留字段3
/// 预留字段3 /// </summary>
/// </summary> [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")] public string Reverse3 { get; set; }
public string Reverse3 { get; set; }
/// <summary>
/// <summary> /// 预留字段4
/// 预留字段4 /// </summary>
/// </summary> [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")] public string Reverse4 { get; set; }
public string Reverse4 { get; set; }
/// <summary>
/// <summary> /// 预留字段5
/// 预留字段5 /// </summary>
/// </summary> [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")] public string Reverse5 { get; set; }
public string Reverse5 { get; set; }
/// <summary>
/// <summary> /// 预留字段6
/// 预留字段6 /// </summary>
/// </summary> [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")] public string Reverse6 { get; set; }
public string Reverse6 { get; set; }
/// <summary>
/// <summary> /// 预留字段7
/// 预留字段7 /// </summary>
/// </summary> [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")] public string Reverse7 { get; set; }
public string Reverse7 { get; set; }
/// <summary>
/// <summary> /// 预留字段8
/// 预留字段8 /// </summary>
/// </summary> [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")] public string Reverse8 { get; set; }
public string Reverse8 { get; set; }
/// <summary>
/// <summary> /// 预留字段9
/// 预留字段9 /// </summary>
/// </summary> [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")] public string Reverse9 { get; set; }
public string Reverse9 { get; set; }
/// <summary>
/// <summary> /// 预留字段10
/// 预留字段10 /// </summary>
/// </summary> [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")] public string Reverse10 { get; set; }
public string Reverse10 { get; set; }
/// <summary>
/// <summary> /// 预留字段11
/// 预留字段11 /// </summary>
/// </summary> public int? ReverseI1 { get; set; }
public int? ReverseI1 { get; set; }
/// <summary>
/// <summary> /// 预留字段12
/// 预留字段12 /// </summary>
/// </summary> public int? ReverseI2 { get; set; }
public int? ReverseI2 { get; set; }
}
} }

@ -6,7 +6,7 @@
* *
* Ver * Ver
* *
*V0.01 2024/7/16 16:52:58 SimonHsiao *V0.01 2024/12/25 10:29:10 SimonHsiao
* *
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* *
@ -18,12 +18,17 @@ namespace Tiobon.Core.Model.Models;
/// <summary> /// <summary>
/// 培训记录 (Model) /// 培训证书 (Model)
/// </summary> /// </summary>
[SugarTable("Ghre_Certificate", "Ghre_Certificate"), Entity(TableCnName = "培训记录", TableName = "Ghre_Certificate")] [SugarTable("Ghre_Certificate", "Ghre_Certificate"), Entity(TableCnName = "Ghre_Certificate", TableName = "Ghre_Certificate")]
public class Ghre_Certificate : BasePoco public class Ghre_Certificate : BasePoco
{ {
/// <summary>
/// 培训证书规则ID
/// </summary>
public long? CertificateRuleId { get; set; }
/// <summary> /// <summary>
/// 员工ID /// 员工ID
/// </summary> /// </summary>
@ -68,9 +73,9 @@ public class Ghre_Certificate : BasePoco
public DateTime? ValidityPeriodTime { get; set; } public DateTime? ValidityPeriodTime { get; set; }
/// <summary> /// <summary>
/// 颁来源 /// 颁来源
/// </summary> /// </summary>
[Display(Name = "AwardSource"), Description("颁发来源"), MaxLength(32, ErrorMessage = "颁发来源 不能超过 32 个字符")] [Display(Name = "AwardSource"), Description("颁奖来源"), MaxLength(32, ErrorMessage = "颁奖来源 不能超过 32 个字符")]
public string AwardSource { get; set; } public string AwardSource { get; set; }
/// <summary> /// <summary>

@ -171,7 +171,7 @@ public class Ghre_CertificateServices : BaseServices<Ghre_Certificate, Ghre_Cert
var staff = await Db.Queryable<Ghra_Staff>().Where(x => x.StaffNo == StaffNo && x.StaffName == StaffName).FirstAsync(); var staff = await Db.Queryable<Ghra_Staff>().Where(x => x.StaffNo == StaffNo && x.StaffName == StaffName).FirstAsync();
if (staff == null) if (staff == null)
{ {
comments.Add($"未查询到员工,工号或姓名填写错误!"); comments.Add($"未查询到员工,工号或姓名填写错误!");
data.ErrorCount++; data.ErrorCount++;
dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
isExistError = true; isExistError = true;
@ -195,9 +195,9 @@ public class Ghre_CertificateServices : BaseServices<Ghre_Certificate, Ghre_Cert
isExistError = true; isExistError = true;
continue; continue;
} }
//if (await base.AnyAsync(x => x.CertificateRuleId == rule.Id && x.StaffId == ClassNo)) //if (await base.AnyAsync(x => x.CertificateRuleId == rule.Id && x.StaffId == staff.StaffID && x.CourseId == course.Id))
//{ //{
// comments.Add($"系统已存在相同编号名称人数据!"); // comments.Add($"系统已存在相同证照数据!");
// data.ErrorCount++; // data.ErrorCount++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a)); // dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true; // isExistError = true;

@ -2202,7 +2202,12 @@
</member> </member>
<member name="T:Tiobon.Core.Model.Models.Ghre_CertificateBase"> <member name="T:Tiobon.Core.Model.Models.Ghre_CertificateBase">
<summary> <summary>
培训记录 (Dto.Base) 培训证书 (Dto.Base)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.CertificateRuleId">
<summary>
培训证书规则ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.StaffId"> <member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.StaffId">
@ -2247,7 +2252,7 @@
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.AwardSource"> <member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.AwardSource">
<summary> <summary>
来源 来源
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.RemarkSz"> <member name="P:Tiobon.Core.Model.Models.Ghre_CertificateBase.RemarkSz">
@ -15718,7 +15723,12 @@
</member> </member>
<member name="T:Tiobon.Core.Model.Models.Ghre_Certificate"> <member name="T:Tiobon.Core.Model.Models.Ghre_Certificate">
<summary> <summary>
培训记录 (Model) 培训证书 (Model)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.CertificateRuleId">
<summary>
培训证书规则ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.StaffId"> <member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.StaffId">
@ -15763,7 +15773,7 @@
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.AwardSource"> <member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.AwardSource">
<summary> <summary>
来源 来源
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.RemarkSz"> <member name="P:Tiobon.Core.Model.Models.Ghre_Certificate.RemarkSz">

Loading…
Cancel
Save