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

@ -6,154 +6,155 @@
*
* 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.
*
*  
* SimonHsiao
*
*/
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
*/
namespace Tiobon.Core.Model.Models;
namespace Tiobon.Core.Model.Models
/// <summary>
/// 培训证书 (Dto.Base)
/// </summary>
public class Ghre_CertificateBase
{
/// <summary>
/// 培训记录 (Dto.Base)
/// </summary>
public class Ghre_CertificateBase
{
/// <summary>
/// 员工ID
/// </summary>
public int? StaffId { get; set; }
/// <summary>
/// 课程快照ID
/// </summary>
public long? CourseSnapId { get; set; }
/// <summary>
/// 课程ID
/// </summary>
public long? CourseId { get; set; }
/// <summary>
/// 证书类型
/// </summary>
[Display(Name = "CertificateType"), Description("证书类型"), MaxLength(32, ErrorMessage = "证书类型 不能超过 32 个字符")]
public string CertificateType { get; set; }
/// <summary>
/// 证书Url
/// </summary>
[Display(Name = "CertificateUrl"), Description("证书Url"), MaxLength(128, ErrorMessage = "证书Url 不能超过 128 个字符")]
public string CertificateUrl { get; set; }
/// <summary>
/// 颁发日期
/// </summary>
public DateTime? AwardDate { get; set; }
/// <summary>
/// 有效期
/// </summary>
[Display(Name = "ValidityPeriod"), Description("有效期"), MaxLength(32, ErrorMessage = "有效期 不能超过 32 个字符")]
public string ValidityPeriod { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? ValidityPeriodTime { get; set; }
/// <summary>
/// 颁发来源
/// </summary>
[Display(Name = "AwardSource"), Description("颁发来源"), MaxLength(32, ErrorMessage = "颁发来源 不能超过 32 个字符")]
public string AwardSource { 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; }
}
/// 培训证书规则ID
/// </summary>
public long? CertificateRuleId { get; set; }
/// <summary>
/// 员工ID
/// </summary>
public int? StaffId { get; set; }
/// <summary>
/// 课程快照ID
/// </summary>
public long? CourseSnapId { get; set; }
/// <summary>
/// 课程ID
/// </summary>
public long? CourseId { get; set; }
/// <summary>
/// 证书类型
/// </summary>
[Display(Name = "CertificateType"), Description("证书类型"), MaxLength(32, ErrorMessage = "证书类型 不能超过 32 个字符")]
public string CertificateType { get; set; }
/// <summary>
/// 证书Url
/// </summary>
[Display(Name = "CertificateUrl"), Description("证书Url"), MaxLength(128, ErrorMessage = "证书Url 不能超过 128 个字符")]
public string CertificateUrl { get; set; }
/// <summary>
/// 颁发日期
/// </summary>
public DateTime? AwardDate { get; set; }
/// <summary>
/// 有效期
/// </summary>
[Display(Name = "ValidityPeriod"), Description("有效期"), MaxLength(32, ErrorMessage = "有效期 不能超过 32 个字符")]
public string ValidityPeriod { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? ValidityPeriodTime { get; set; }
/// <summary>
/// 颁奖来源
/// </summary>
[Display(Name = "AwardSource"), Description("颁奖来源"), MaxLength(32, ErrorMessage = "颁奖来源 不能超过 32 个字符")]
public string AwardSource { 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; }
}

@ -6,7 +6,7 @@
*
* 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.
*
@ -18,12 +18,17 @@ namespace Tiobon.Core.Model.Models;
/// <summary>
/// 培训记录 (Model)
/// 培训证书 (Model)
/// </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
{
/// <summary>
/// 培训证书规则ID
/// </summary>
public long? CertificateRuleId { get; set; }
/// <summary>
/// 员工ID
/// </summary>
@ -68,9 +73,9 @@ public class Ghre_Certificate : BasePoco
public DateTime? ValidityPeriodTime { get; set; }
/// <summary>
/// 颁来源
/// 颁来源
/// </summary>
[Display(Name = "AwardSource"), Description("颁发来源"), MaxLength(32, ErrorMessage = "颁发来源 不能超过 32 个字符")]
[Display(Name = "AwardSource"), Description("颁奖来源"), MaxLength(32, ErrorMessage = "颁奖来源 不能超过 32 个字符")]
public string AwardSource { get; set; }
/// <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();
if (staff == null)
{
comments.Add($"未查询到员工,工号或姓名填写错误!");
comments.Add($"未查询到员工,工号或姓名填写错误!");
data.ErrorCount++;
dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
isExistError = true;
@ -195,9 +195,9 @@ public class Ghre_CertificateServices : BaseServices<Ghre_Certificate, Ghre_Cert
isExistError = true;
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++;
// dt.Rows[i]["Comments"] = string.Join(";", comments.Select(a => a));
// isExistError = true;

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

Loading…
Cancel
Save