孤兰 2 months ago
commit 22b85a0627
  1. 6378
      Model/Tiobon.Web.pdm
  2. 11
      Tiobon.Core.Api/Controllers/Ghre/Ghre_ExamRecordController.cs
  3. 62
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  4. 7
      Tiobon.Core.Api/Tiobon.Core.xml
  5. 3
      Tiobon.Core.Common/Helper/DateTimeHelper.cs
  6. 2
      Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs
  7. 16
      Tiobon.Core.Model/Base/Ghre/Ghre_ExternalTrainApplyOrder_Boltone.Dto.Base.cs
  8. 8
      Tiobon.Core.Model/Base/Ghre/Ghre_Request.Dto.Base.cs
  9. 8
      Tiobon.Core.Model/Base/Ghre/Ghre_StudyRecord.Dto.Base.cs
  10. 8
      Tiobon.Core.Model/Base/Ghre/Ghre_SurveyQuestion.Dto.Base.cs
  11. 3
      Tiobon.Core.Model/Base/Ghrh/Ghrh_ResumeEduBG.Dto.Base.cs
  12. 1
      Tiobon.Core.Model/Base/Ghrh/Ghrh_ResumeTraining.Dto.Base.cs
  13. 4
      Tiobon.Core.Model/Consts.cs
  14. 2
      Tiobon.Core.Model/Edit/Ghrh/Ghrh_ResumeEduBG.Dto.EditInput.cs
  15. 4
      Tiobon.Core.Model/Edit/Ghrh/Ghrh_ResumeTraining.Dto.EditInput.cs
  16. 2
      Tiobon.Core.Model/Insert/Ghre/Ghre_StudyRule.Dto.InsertInput.cs
  17. 615
      Tiobon.Core.Model/Models/Ghre/Ghre_ExternalTrainApplyOrder_Boltone.cs
  18. 8
      Tiobon.Core.Model/Models/Ghre/Ghre_Request.cs
  19. 8
      Tiobon.Core.Model/Models/Ghre/Ghre_StudyRecord.cs
  20. 8
      Tiobon.Core.Model/Models/Ghre/Ghre_SurveyQuestion.cs
  21. 9
      Tiobon.Core.Model/View/Ghrh/Ghrh_ResumeEduBG.Dto.View.cs
  22. 4
      Tiobon.Core.Model/View/Ghrh/Ghrh_ResumeLicence.Dto.View.cs
  23. 6
      Tiobon.Core.Model/View/Ghrh/Ghrh_ResumeTraining.Dto.View.cs
  24. 2
      Tiobon.Core.Model/View/Ghrh/Ghrh_ResumeWorkExp.Dto.View.cs
  25. 3
      Tiobon.Core.Model/ViewModels/Extend/Ghre_ExamRecordExtend.cs
  26. 6
      Tiobon.Core.Model/ViewModels/Extend/InsertGhre_SurveyExtend.cs
  27. 10
      Tiobon.Core.Services/CommonServices.cs
  28. 2
      Tiobon.Core.Services/Ghra/Ghra_StaffServices.cs
  29. 24
      Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
  30. 84
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs
  31. 20
      Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs
  32. 4
      Tiobon.Core.Services/Ghre/Ghre_RequestServices.cs
  33. 32
      Tiobon.Core.Services/Ghre/Ghre_StudyRecordServices.cs
  34. 25
      Tiobon.Core.Services/Ghre/Ghre_StudyRuleServices.cs
  35. 26
      Tiobon.Core.Services/Ghre/Ghre_SurveyServices.cs
  36. 6
      Tiobon.Core.Services/Ghre/Ghre_TitleSkill_BoltoneServices.cs
  37. 42
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeEduBGServices.cs
  38. 48
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeLicenceServices.cs
  39. 44
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeTrainingServices.cs
  40. 46
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeWorkExpServices.cs
  41. 52
      Tiobon.Core/Tiobon.Core.Model.xml
  42. 7
      Tiobon.Core/Tiobon.Core.xml

File diff suppressed because it is too large Load Diff

@ -280,4 +280,15 @@ public class Ghre_ExamRecordController : BaseController<IGhre_ExamRecordServices
{
return await _service.SubmitAttachment(examRecordId, attachments);
}
/// <summary>
/// 查询考试组
/// </summary>
/// <param name="examRecordId"></param>
/// <returns></returns>
[HttpPost("QueryGroups/{examRecordId}")]
public async Task<ServiceResult<List<ExamGroup>>> QueryGroups(long examRecordId)
{
return await _service.QueryGroups(examRecordId);
}
}

@ -5740,6 +5740,16 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExternalTrainApplyOrder_BoltoneBase.SchoolName1">
<summary>
SchoolName1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExternalTrainApplyOrder_BoltoneBase.CourseName1">
<summary>
CourseName1
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_MultipleTitleBase">
<summary>
多岗维护 (Dto.Base)
@ -7345,6 +7355,11 @@
系统内置
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_RequestBase.OutSideOrg">
<summary>
外训机构
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_RequiredCourseBase">
<summary>
必选修查询 (Dto.Base)
@ -8115,6 +8130,11 @@
是否发放学分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordBase.CompleteStatus">
<summary>
完成状态
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_StudyRecordDetailBase">
<summary>
培训记录明细 (Dto.Base)
@ -9020,6 +9040,11 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_SurveyQuestionBase.WordCloudKeywords">
<summary>
词云图关键字
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_SurveyRecordBase">
<summary>
Ghre_SurveyRecord (Dto.Base)
@ -13890,7 +13915,7 @@
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_ResumeTrainingBase.ReverseI2">
<member name="P:Tiobon.Core.Model.Models.Ghrh_ResumeTrainingBase.IsPass1">
<summary>
预留字段12
</summary>
@ -24352,6 +24377,16 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExternalTrainApplyOrder_Boltone.SchoolName1">
<summary>
SchoolName1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExternalTrainApplyOrder_Boltone.CourseName1">
<summary>
CourseName1
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_MultipleTitle">
<summary>
多岗维护 (Model)
@ -25937,6 +25972,11 @@
系统内置
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Request.OutSideOrg">
<summary>
外训机构
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_RequiredCourse">
<summary>
必选修查询 (Model)
@ -26637,6 +26677,11 @@
是否发放学分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecord.CompleteStatus">
<summary>
完成状态
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_StudyRecordDetail">
<summary>
培训记录明细 (Model)
@ -27542,6 +27587,11 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_SurveyQuestion.WordCloudKeywords">
<summary>
词云图关键字
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_SurveyRecord">
<summary>
Ghre_SurveyRecord (Model)
@ -39513,6 +39563,11 @@
必修规则
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_EXAM_STAFF_SOURCE.MANUAL_ELECTIVE">
<summary>
手动选修
</summary>
</member>
<member name="T:Tiobon.Core.Model.Consts.DIC_TRAINING_STUDY_RULE_TRAIN_TYPE">
<summary>
培训规则种类
@ -40398,6 +40453,11 @@
图标
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyQuestionExtendBase.WordCloudKeywords">
<summary>
词云图关键字
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyQuestionExtendBase.RemarkSz">
<summary>
备注

@ -1101,6 +1101,13 @@
<param name="examRecordId"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_ExamRecordController.QueryGroups(System.Int64)">
<summary>
查询考试组
</summary>
<param name="examRecordId"></param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordDetailController">
<summary>
Ghre_ExamRecordDetail(Controller)

@ -222,6 +222,9 @@ public class DateTimeHelper
/// <returns></returns>
public static string ConvertToSecondString(object dateTime)
{
if (dateTime == null)
return "";
if (string.IsNullOrEmpty(Convert.ToString(dateTime)))
{
return "";

@ -36,4 +36,6 @@ public interface IGhre_ExamRecordServices : IBaseServices<Ghre_ExamRecord, Ghre_
/// </summary>
/// <returns></returns>
Task<ServiceResult> IssueCertificate();
Task<ServiceResult<List<ExamGroup>>> QueryGroups(long examRecordId);
}

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2025/4/11 11:35:25 SimonHsiao
*V0.01 2025/4/25 12:00:26 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
@ -319,6 +319,19 @@ public class Ghre_ExternalTrainApplyOrder_BoltoneBase
/// </summary>
public int? ReverseI2 { get; set; }
/// <summary>
/// SchoolName1
/// </summary>
[Display(Name = "SchoolName1"), Description("SchoolName1"), MaxLength(128, ErrorMessage = "SchoolName1 不能超过 128 个字符")]
public string SchoolName1 { get; set; }
/// <summary>
/// CourseName1
/// </summary>
[Display(Name = "CourseName1"), Description("CourseName1"), MaxLength(128, ErrorMessage = "CourseName1 不能超过 128 个字符")]
public string CourseName1 { get; set; }
public List<Ghre_Attachment1> ExternalAttachments { get; set; } = new List<Ghre_Attachment1>();
public List<Ghre_Attachment1> ContractAttachments { get; set; } = new List<Ghre_Attachment1>();
@ -328,3 +341,4 @@ public class Ghre_ExternalTrainApplyOrder_BoltoneBase
public string AttachmentTemplateLink { get; set; } = "/Advanced/files/外训申请附件.zip"
;
}

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2025/4/8 11:44:56 SimonHsiao
*V0.01 2025/4/25 15:13:56 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
@ -322,4 +322,10 @@ public class Ghre_RequestBase
/// 系统内置
/// </summary>
public int? BuiltIn { get; set; }
/// <summary>
/// 外训机构
/// </summary>
[Display(Name = "OutSideOrg"), Description("外训机构"), MaxLength(128, ErrorMessage = "外训机构 不能超过 128 个字符")]
public string OutSideOrg { get; set; }
}

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2025/3/26 16:46:15 SimonHsiao
*V0.01 2025/4/29 11:11:35 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
@ -234,4 +234,10 @@ public class Ghre_StudyRecordBase
/// 是否发放学分
/// </summary>
public bool? IsIssueCredit { get; set; }
/// <summary>
/// 完成状态
/// </summary>
[Display(Name = "CompleteStatus"), Description("完成状态"), MaxLength(32, ErrorMessage = "完成状态 不能超过 32 个字符")]
public string CompleteStatus { get; set; }
}

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2025/4/1 15:14:42 SimonHsiao
*V0.01 2025/4/27 11:47:54 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
@ -154,4 +154,10 @@ public class Ghre_SurveyQuestionBase
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
/// <summary>
/// 词云图关键字
/// </summary>
[Display(Name = "WordCloudKeywords"), Description("词云图关键字"), MaxLength(2000, ErrorMessage = "词云图关键字 不能超过 2000 个字符")]
public string WordCloudKeywords { get; set; }
}

@ -141,4 +141,7 @@ public class Ghrh_ResumeEduBGBase
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
public int? IsGraduate1 { get; set; }
}

@ -140,5 +140,6 @@ public class Ghrh_ResumeTrainingBase
/// <summary>
/// 预留字段12
/// </summary>
public int? IsPass1 { get; set; }
public int? ReverseI2 { get; set; }
}

@ -152,6 +152,10 @@ public class Consts
/// 必修规则
/// </summary>
public const string STUDY_RULE_REQUIRED = "StudyRuleRequired";
/// <summary>
/// 手动选修
/// </summary>
public const string MANUAL_ELECTIVE = "ManualElective";
}
#endregion

@ -24,5 +24,5 @@ namespace Tiobon.Core.Model.Models;
public class EditGhrh_ResumeEduBGInput : Ghrh_ResumeEduBGBase
{
public List<Ghre_Attachment> AttachmentIDs { get; set; }
public List<Ghre_Attachment> AttachmentIDs { get; set; } = new List<Ghre_Attachment>();
}

@ -13,7 +13,7 @@
*  
* SimonHsiao
*
*/
*/
namespace Tiobon.Core.Model.Models;
@ -24,4 +24,6 @@ namespace Tiobon.Core.Model.Models;
public class EditGhrh_ResumeTrainingInput : Ghrh_ResumeTrainingBase
{
public List<Ghre_Attachment> AttachmentIDs { get; set; }
}

@ -22,7 +22,7 @@ namespace Tiobon.Core.Model.Models;
/// </summary>
public class InsertGhre_StudyRuleInput : Ghre_StudyRuleBase
{
public List<int> Staffs { get; set; }
public List<int> Staffs { get; set; }
public List<int> ZoneIds { get; set; }

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2025/4/11 11:35:25 SimonHsiao
*V0.01 2025/4/25 12:00:26 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
@ -18,308 +18,319 @@ using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using SqlSugar;
namespace Tiobon.Core.Model.Models
namespace Tiobon.Core.Model.Models;
/// <summary>
/// 外训申请_宝连通 (Model)
/// </summary>
[SugarTable("Ghre_ExternalTrainApplyOrder_Boltone", "Ghre_ExternalTrainApplyOrder_Boltone"), Entity(TableCnName = "外训申请_宝连通", TableName = "Ghre_ExternalTrainApplyOrder_Boltone")]
public class Ghre_ExternalTrainApplyOrder_Boltone : BasePoco
{
/// <summary>
/// 外训申请_宝连通 (Model)
/// </summary>
[SugarTable("Ghre_ExternalTrainApplyOrder_Boltone", "Ghre_ExternalTrainApplyOrder_Boltone"), Entity(TableCnName = "外训申请_宝连通", TableName = "Ghre_ExternalTrainApplyOrder_Boltone")]
public class Ghre_ExternalTrainApplyOrder_Boltone : BasePoco
{
/// <summary>
/// 发起时间
/// </summary>
public DateTime? ApplicantTime { get; set; }
/// <summary>
/// 发起人ID
/// </summary>
public int? ApplicantId { get; set; }
/// <summary>
/// 发起人部门ID
/// </summary>
public int? ApplicantDeptId { get; set; }
/// <summary>
/// 培训类型
/// </summary>
[Display(Name = "TrainType"), Description("培训类型"), MaxLength(32, ErrorMessage = "培训类型 不能超过 32 个字符")]
public string TrainType { get; set; }
/// <summary>
/// 受训人员
/// </summary>
public int? StaffId { get; set; }
/// <summary>
/// 培训开始时间
/// </summary>
public DateTime? BeginTime { get; set; }
/// <summary>
/// 培训结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 培训地点
/// </summary>
[Display(Name = "Address"), Description("培训地点"), MaxLength(256, ErrorMessage = "培训地点 不能超过 256 个字符")]
public string Address { get; set; }
/// <summary>
/// 培训机构
/// </summary>
public long? SchoolId { get; set; }
/// <summary>
/// 课程ID
/// </summary>
public long? CourseId { get; set; }
/// <summary>
/// 课程大纲
/// </summary>
[Display(Name = "CourseOutline"), Description("课程大纲"), MaxLength(2000, ErrorMessage = "课程大纲 不能超过 2000 个字符")]
public string CourseOutline { get; set; }
/// <summary>
/// 受训目的
/// </summary>
[Display(Name = "TrainGoal"), Description("受训目的"), MaxLength(2000, ErrorMessage = "受训目的 不能超过 2000 个字符")]
public string TrainGoal { get; set; }
/// <summary>
/// 费用
/// </summary>
[Display(Name = "Cost"), Description("费用"), Column(TypeName = "decimal(20,2)")]
public decimal? Cost { get; set; }
/// <summary>
/// 是否签订服务协议
/// </summary>
[Display(Name = "IsSignContract"), Description("是否签订服务协议"), MaxLength(32, ErrorMessage = "是否签订服务协议 不能超过 32 个字符")]
public string IsSignContract { get; set; }
/// <summary>
/// 服务协议
/// </summary>
[Display(Name = "ContractContent"), Description("服务协议"), MaxLength(2000, ErrorMessage = "服务协议 不能超过 2000 个字符")]
public string ContractContent { get; set; }
/// <summary>
/// 服务协议开始日期
/// </summary>
public DateTime? ContractBeginTime { get; set; }
/// <summary>
/// 服务协议结束日期
/// </summary>
public DateTime? ContractEndTime { get; set; }
/// <summary>
/// 培训结果
/// </summary>
[Display(Name = "TrainResult"), Description("培训结果"), MaxLength(2000, ErrorMessage = "培训结果 不能超过 2000 个字符")]
public string TrainResult { get; set; }
/// <summary>
/// 证件类型
/// </summary>
[Display(Name = "CertificateType"), Description("证件类型"), MaxLength(32, ErrorMessage = "证件类型 不能超过 32 个字符")]
public string CertificateType { get; set; }
/// <summary>
/// 证件编号
/// </summary>
[Display(Name = "CertificateNo"), Description("证件编号"), MaxLength(256, ErrorMessage = "证件编号 不能超过 256 个字符")]
public string CertificateNo { get; set; }
/// <summary>
/// 证件有效开始日期
/// </summary>
public DateTime? CertificateBeginTime { get; set; }
/// <summary>
/// 证件有效结束日期
/// </summary>
public DateTime? CertificateEndTime { get; set; }
/// <summary>
/// 培训机构评价
/// </summary>
[Display(Name = "SchoolEval"), Description("培训机构评价"), MaxLength(100, ErrorMessage = "培训机构评价 不能超过 100 个字符")]
public string SchoolEval { get; set; }
/// <summary>
/// 培训成果确认
/// </summary>
[Display(Name = "SchoolOutcomeConfirm"), Description("培训成果确认"), MaxLength(32, ErrorMessage = "培训成果确认 不能超过 32 个字符")]
public string SchoolOutcomeConfirm { get; set; }
/// <summary>
/// WorkID
/// </summary>
public int? WorkID { get; set; }
/// <summary>
/// WorkNo
/// </summary>
[Display(Name = "WorkNo"), Description("WorkNo"), MaxLength(100, ErrorMessage = "WorkNo 不能超过 100 个字符")]
public string WorkNo { get; set; }
/// <summary>
/// ToDoType
/// </summary>
[Display(Name = "ToDoType"), Description("ToDoType"), MaxLength(100, ErrorMessage = "ToDoType 不能超过 100 个字符")]
public string ToDoType { get; set; }
/// <summary>
/// BatchSID
/// </summary>
[Display(Name = "BatchSID"), Description("BatchSID"), MaxLength(100, ErrorMessage = "BatchSID 不能超过 100 个字符")]
public string BatchSID { get; set; }
/// <summary>
/// WorkState
/// </summary>
public int? WorkState { get; set; }
/// <summary>
/// ShiftID
/// </summary>
public int? ShiftID { get; set; }
/// <summary>
/// ConfirmUserID
/// </summary>
public int? ConfirmUserID { get; set; }
/// <summary>
/// ConfirmTime
/// </summary>
public DateTime? ConfirmTime { get; set; }
/// <summary>
/// ConfirmComment
/// </summary>
[Display(Name = "ConfirmComment"), Description("ConfirmComment"), MaxLength(2000, ErrorMessage = "ConfirmComment 不能超过 2000 个字符")]
public string ConfirmComment { get; set; }
/// <summary>
/// 同意人
/// </summary>
public long? AgreeUserId { get; set; }
/// <summary>
/// 同意时间
/// </summary>
public DateTime? AgreeTime { get; set; }
/// <summary>
/// 同意理由
/// </summary>
[Display(Name = "AgreeReason"), Description("同意理由"), MaxLength(2000, ErrorMessage = "同意理由 不能超过 2000 个字符")]
public string AgreeReason { get; set; }
/// <summary>
/// 拒绝人
/// </summary>
public long? RefuseUserId { get; set; }
/// <summary>
/// 拒绝时间
/// </summary>
public DateTime? RefuseTime { get; set; }
/// <summary>
/// 拒绝理由
/// </summary>
[Display(Name = "RefuseReason"), Description("拒绝理由"), MaxLength(2000, ErrorMessage = "拒绝理由 不能超过 2000 个字符")]
public string RefuseReason { 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; }
}
/// 发起时间
/// </summary>
public DateTime? ApplicantTime { get; set; }
/// <summary>
/// 发起人ID
/// </summary>
public int? ApplicantId { get; set; }
/// <summary>
/// 发起人部门ID
/// </summary>
public int? ApplicantDeptId { get; set; }
/// <summary>
/// 培训类型
/// </summary>
[Display(Name = "TrainType"), Description("培训类型"), MaxLength(32, ErrorMessage = "培训类型 不能超过 32 个字符")]
public string TrainType { get; set; }
/// <summary>
/// 受训人员
/// </summary>
public int? StaffId { get; set; }
/// <summary>
/// 培训开始时间
/// </summary>
public DateTime? BeginTime { get; set; }
/// <summary>
/// 培训结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 培训地点
/// </summary>
[Display(Name = "Address"), Description("培训地点"), MaxLength(256, ErrorMessage = "培训地点 不能超过 256 个字符")]
public string Address { get; set; }
/// <summary>
/// 培训机构
/// </summary>
public long? SchoolId { get; set; }
/// <summary>
/// 课程ID
/// </summary>
public long? CourseId { get; set; }
/// <summary>
/// 课程大纲
/// </summary>
[Display(Name = "CourseOutline"), Description("课程大纲"), MaxLength(2000, ErrorMessage = "课程大纲 不能超过 2000 个字符")]
public string CourseOutline { get; set; }
/// <summary>
/// 受训目的
/// </summary>
[Display(Name = "TrainGoal"), Description("受训目的"), MaxLength(2000, ErrorMessage = "受训目的 不能超过 2000 个字符")]
public string TrainGoal { get; set; }
/// <summary>
/// 费用
/// </summary>
[Display(Name = "Cost"), Description("费用"), Column(TypeName = "decimal(20,2)")]
public decimal? Cost { get; set; }
/// <summary>
/// 是否签订服务协议
/// </summary>
[Display(Name = "IsSignContract"), Description("是否签订服务协议"), MaxLength(32, ErrorMessage = "是否签订服务协议 不能超过 32 个字符")]
public string IsSignContract { get; set; }
/// <summary>
/// 服务协议
/// </summary>
[Display(Name = "ContractContent"), Description("服务协议"), MaxLength(2000, ErrorMessage = "服务协议 不能超过 2000 个字符")]
public string ContractContent { get; set; }
/// <summary>
/// 服务协议开始日期
/// </summary>
public DateTime? ContractBeginTime { get; set; }
/// <summary>
/// 服务协议结束日期
/// </summary>
public DateTime? ContractEndTime { get; set; }
/// <summary>
/// 培训结果
/// </summary>
[Display(Name = "TrainResult"), Description("培训结果"), MaxLength(2000, ErrorMessage = "培训结果 不能超过 2000 个字符")]
public string TrainResult { get; set; }
/// <summary>
/// 证件类型
/// </summary>
[Display(Name = "CertificateType"), Description("证件类型"), MaxLength(32, ErrorMessage = "证件类型 不能超过 32 个字符")]
public string CertificateType { get; set; }
/// <summary>
/// 证件编号
/// </summary>
[Display(Name = "CertificateNo"), Description("证件编号"), MaxLength(256, ErrorMessage = "证件编号 不能超过 256 个字符")]
public string CertificateNo { get; set; }
/// <summary>
/// 证件有效开始日期
/// </summary>
public DateTime? CertificateBeginTime { get; set; }
/// <summary>
/// 证件有效结束日期
/// </summary>
public DateTime? CertificateEndTime { get; set; }
/// <summary>
/// 培训机构评价
/// </summary>
[Display(Name = "SchoolEval"), Description("培训机构评价"), MaxLength(100, ErrorMessage = "培训机构评价 不能超过 100 个字符")]
public string SchoolEval { get; set; }
/// <summary>
/// 培训成果确认
/// </summary>
[Display(Name = "SchoolOutcomeConfirm"), Description("培训成果确认"), MaxLength(32, ErrorMessage = "培训成果确认 不能超过 32 个字符")]
public string SchoolOutcomeConfirm { get; set; }
/// <summary>
/// WorkID
/// </summary>
public int? WorkID { get; set; }
/// <summary>
/// WorkNo
/// </summary>
[Display(Name = "WorkNo"), Description("WorkNo"), MaxLength(100, ErrorMessage = "WorkNo 不能超过 100 个字符")]
public string WorkNo { get; set; }
/// <summary>
/// ToDoType
/// </summary>
[Display(Name = "ToDoType"), Description("ToDoType"), MaxLength(100, ErrorMessage = "ToDoType 不能超过 100 个字符")]
public string ToDoType { get; set; }
/// <summary>
/// BatchSID
/// </summary>
[Display(Name = "BatchSID"), Description("BatchSID"), MaxLength(100, ErrorMessage = "BatchSID 不能超过 100 个字符")]
public string BatchSID { get; set; }
/// <summary>
/// WorkState
/// </summary>
public int? WorkState { get; set; }
/// <summary>
/// ShiftID
/// </summary>
public int? ShiftID { get; set; }
/// <summary>
/// ConfirmUserID
/// </summary>
public int? ConfirmUserID { get; set; }
/// <summary>
/// ConfirmTime
/// </summary>
public DateTime? ConfirmTime { get; set; }
/// <summary>
/// ConfirmComment
/// </summary>
[Display(Name = "ConfirmComment"), Description("ConfirmComment"), MaxLength(2000, ErrorMessage = "ConfirmComment 不能超过 2000 个字符")]
public string ConfirmComment { get; set; }
/// <summary>
/// 同意人
/// </summary>
public long? AgreeUserId { get; set; }
/// <summary>
/// 同意时间
/// </summary>
public DateTime? AgreeTime { get; set; }
/// <summary>
/// 同意理由
/// </summary>
[Display(Name = "AgreeReason"), Description("同意理由"), MaxLength(2000, ErrorMessage = "同意理由 不能超过 2000 个字符")]
public string AgreeReason { get; set; }
/// <summary>
/// 拒绝人
/// </summary>
public long? RefuseUserId { get; set; }
/// <summary>
/// 拒绝时间
/// </summary>
public DateTime? RefuseTime { get; set; }
/// <summary>
/// 拒绝理由
/// </summary>
[Display(Name = "RefuseReason"), Description("拒绝理由"), MaxLength(2000, ErrorMessage = "拒绝理由 不能超过 2000 个字符")]
public string RefuseReason { 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; }
/// <summary>
/// SchoolName1
/// </summary>
[Display(Name = "SchoolName1"), Description("SchoolName1"), MaxLength(128, ErrorMessage = "SchoolName1 不能超过 128 个字符")]
public string SchoolName1 { get; set; }
/// <summary>
/// CourseName1
/// </summary>
[Display(Name = "CourseName1"), Description("CourseName1"), MaxLength(128, ErrorMessage = "CourseName1 不能超过 128 个字符")]
public string CourseName1 { get; set; }
}

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2025/4/8 11:44:56 SimonHsiao
*V0.01 2025/4/25 15:13:56 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
@ -323,4 +323,10 @@ public class Ghre_Request : BasePoco
/// 系统内置
/// </summary>
public int? BuiltIn { get; set; }
/// <summary>
/// 外训机构
/// </summary>
[Display(Name = "OutSideOrg"), Description("外训机构"), MaxLength(128, ErrorMessage = "外训机构 不能超过 128 个字符")]
public string OutSideOrg { get; set; }
}

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2025/3/26 16:46:15 SimonHsiao
*V0.01 2025/4/29 11:11:35 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
@ -235,4 +235,10 @@ public class Ghre_StudyRecord : BasePoco
/// 是否发放学分
/// </summary>
public bool? IsIssueCredit { get; set; }
/// <summary>
/// 完成状态
/// </summary>
[Display(Name = "CompleteStatus"), Description("完成状态"), MaxLength(32, ErrorMessage = "完成状态 不能超过 32 个字符")]
public string CompleteStatus { get; set; }
}

@ -6,7 +6,7 @@
*
* Ver
*
*V0.01 2025/4/1 15:14:42 SimonHsiao
*V0.01 2025/4/27 11:47:54 SimonHsiao
*
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
@ -155,4 +155,10 @@ public class Ghre_SurveyQuestion : BasePoco
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
/// <summary>
/// 词云图关键字
/// </summary>
[Display(Name = "WordCloudKeywords"), Description("词云图关键字"), MaxLength(2000, ErrorMessage = "词云图关键字 不能超过 2000 个字符")]
public string WordCloudKeywords { get; set; }
}

@ -39,8 +39,11 @@ public class Ghrh_ResumeEduBGDto : Ghrh_ResumeEduBG
public string EndDate1 { get; set; }
public string IsGraduateLabel { get; set; }
public string StaffName { get; set; }
public string StaffName { get; set; }
public int? IsGraduate1 { get; set; }
public List<Ghrs_Attachment> AttachmentIDs { get; set; } = new List<Ghrs_Attachment>();
public List<ResumeAttachment> AttachmentIDs { get; set; }
}

@ -15,8 +15,6 @@
*
*/
using Tiobon.Core.Model.ViewModels.Extend;
namespace Tiobon.Core.Model.Models;
/// <summary>
@ -33,7 +31,7 @@ public class Ghrh_ResumeLicenceDto : Ghrh_ResumeLicence
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
public List<ResumeAttachment> AttachmentIDs { get; set; }
public List<Ghrs_Attachment> AttachmentIDs { get; set; }
/// <summary>
/// 生效日
/// </summary>

@ -33,7 +33,7 @@ public class Ghrh_ResumeTrainingDto : Ghrh_ResumeTraining
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
public List<ResumeAttachment> AttachmentIDs { get; set; }
public List<Ghrs_Attachment> AttachmentIDs { get; set; }
/// <summary>
/// 开始日期
/// </summary>
@ -49,4 +49,8 @@ public class Ghrh_ResumeTrainingDto : Ghrh_ResumeTraining
/// </summary>
public string IsPassLabel { get; set; }
public string StaffName { get; set; }
public int? IsPass1 { get; set; }
}

@ -39,6 +39,6 @@ public class Ghrh_ResumeWorkExpDto : Ghrh_ResumeWorkExp
public string EndDate1 { get; set; }
public List<ResumeAttachment> AttachmentIDs { get; set; }
public List<Ghrs_Attachment> AttachmentIDs { get; set; } = new List<Ghrs_Attachment>();
public string StaffName { get; set; }
}

@ -121,7 +121,8 @@ public class ExamGroup
{
public long? GroupId { get; set; }
public long? ExamRecordId { get; set; }
public DateTime? ExamTime { get; set; }
public string ExamTime { get; set; }
public decimal Score { get; set; }
}
public class CommentData

@ -178,6 +178,12 @@ public class Ghre_SurveyQuestionExtendBase
[Display(Name = "QuestionIcon"), Description("图标"), MaxLength(32, ErrorMessage = "图标 不能超过 32 个字符")]
public string QuestionIcon { get; set; }
/// <summary>
/// 词云图关键字
/// </summary>
[Display(Name = "WordCloudKeywords"), Description("词云图关键字"), MaxLength(2000, ErrorMessage = "词云图关键字 不能超过 2000 个字符")]
public string WordCloudKeywords { get; set; }
/// <summary>
/// 备注
/// </summary>

@ -4290,9 +4290,7 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
var dict1 = JsonHelper.JsonToObj<Ghre_ExternalTrainApplyOrder_BoltoneBase>(json);
//dict.RequestNo = await GenerateContinuousSequence("Ghrh_HumanRequest", "RequestNo", "R");
id = await Db.Insertable(dict).ExecuteReturnSnowflakeIdAsync();
sql = $"SELECT ISNULL(MAX(id)+1,1) FROM Ghre_ExternalTrainApplyOrder_Boltone WHERE Id !='{id}' and len(Id) !=19";
var id1 = await Db.Ado.GetLongAsync(sql);
sql = $"UPDATE Ghre_ExternalTrainApplyOrder_Boltone SET Id={id1} WHERE Id ='{id}'";
@ -4356,6 +4354,7 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
case "Apply":
case "BatchApply":
#region 写入数据,并判断是否有错误
string json = param.jsonParam.ToString();
var dict = JsonHelper.JsonToObj<Ghre_TrainFeeApplyOrder_Boltone>(json);
@ -4363,6 +4362,11 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
//dict.RequestNo = await GenerateContinuousSequence("Ghrh_HumanRequest", "RequestNo", "R");
id = await Db.Insertable(dict).ExecuteReturnSnowflakeIdAsync();
//var StaffUserId = await Db.Queryable<Ghrs_User>().Where(x => x.UserStaffID == dict.TeacherId).Select(x => x.UserId).FirstAsync();
//if (StaffUserId > 0)
// param.userId = StaffUserId;
sql = $"SELECT ISNULL(MAX(id)+1,1) FROM Ghre_TrainFeeApplyOrder_Boltone WHERE Id !='{id}' and len(Id) !=19";
var id1 = await Db.Ado.GetLongAsync(sql);
sql = $"UPDATE Ghre_TrainFeeApplyOrder_Boltone SET Id={id1} WHERE Id ='{id}'";

@ -61,7 +61,7 @@ public class Ghra_StaffServices : BaseServices<Ghra_Staff, Ghra_StaffDto, Insert
if (dept != null)
entity.DeptName = dept.DeptName;
dept = await Db.Queryable<Ghro_Dept>().Where(x => x.ParentDeptID == entity.DeptId).FirstAsync();
dept = await Db.Queryable<Ghro_Dept>().Where(x => x.DeptID == dept.ParentDeptID).FirstAsync();
if (dept != null)
entity.ParentDeptName = dept.DeptName;
}

@ -28,7 +28,6 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
RefAsync<int> totalCount = 0;
string sql = @"SELECT *
FROM (SELECT A.*,
D.SceneName + ' (' + D.SceneNo + ')' CourseSceneName,
E.CourseWareName + ' (' + E.CourseWareNo + ')' CourseWareName,
F.StaffName + ' (' + F.StaffNo + ')' ManagerStaffName,
G.UserName CreateName,
@ -39,7 +38,6 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
END TeacherName,
ISNULL (A.UpdateTime, A.CreateTime) CreateTime1
FROM Ghre_Course A
LEFT JOIN Ghre_CourseScene D ON A.CourseSceneId = D.Id
LEFT JOIN Ghre_CourseWare E ON A.CourseWareId = E.Id
LEFT JOIN Ghra_Staff F ON A.ManagerId = F.StaffID
LEFT JOIN Ghrs_User G ON A.CreateBy = G.UserId
@ -161,11 +159,11 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
courseSceneIds = courseSceneIds.Concat(JsonConvert.DeserializeObject<List<long>>(x)).ToList();
});
data.ForEach(x =>
{
if (x.CourseSceneId != null)
courseSceneIds.Add(x.CourseSceneId.Value);
});
//data.ForEach(x =>
//{
// if (x.CourseSceneId != null)
// courseSceneIds.Add(x.CourseSceneId.Value);
//});
courseSceneIds = courseSceneIds.Distinct().ToList();
var courseScenes = await Db.Queryable<Ghre_CourseScene>().Where(x => courseSceneIds.Contains(x.Id)).ToListAsync();
@ -188,11 +186,11 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
}
}
else if (x.CourseSceneId != null)
{
var courseScene = courseScenes.Where(a => a.Id == x.CourseSceneId).ToList();
x.CourseSceneName = string.Join(",", courseScene.Select(a => a.SceneName + " (" + a.SceneNo + ")"));
}
//else if (x.CourseSceneId != null)
//{
// var courseScene = courseScenes.Where(a => a.Id == x.CourseSceneId).ToList();
// x.CourseSceneName = string.Join(",", courseScene.Select(a => a.SceneName + " (" + a.SceneNo + ")"));
//}
x.BuiltInLabel = x.BuiltIn == 1 ? "是" : "否";
});
@ -691,7 +689,7 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
sql += $"AND ( CourseNo like '%{keyWords}%' or CourseName like '%{keyWords}%')";
if (linkId.HasValue)
sql += $" AND CourseSceneId='{linkId}'";
sql += $" AND (CourseSceneId='{linkId}' or CourseSceneIds like '%{linkId}%')";
sql += $" ORDER BY UpdateTime DESC, CreateTime DESC";
dt = await Db.Ado.GetDataTableAsync(sql);

@ -463,6 +463,15 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
await Db.Updateable(record).ExecuteCommandAsync();
await Db.Updateable(details).ExecuteCommandAsync();
var groupId = details.First()?.GroupId;
var group = await Db.Queryable<Ghre_ExamRecordGroup>().Where(x => x.Id == groupId).FirstAsync();
if (group != null)
{
group.Score = record.Score;
await Db.Updateable(group).UpdateColumns(it => new { it.Score }, true)
.ExecuteCommandAsync();
}
return ServiceResult.OprateSuccess("提交成功!");
}
@ -813,7 +822,7 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
extend.ExamEndDate = DateTimeHelper.ConvertToDayString(record.EndTime);
}
extend.ExamStatus = record.Status;
extend.TotalScore = record.TotalScore;
extend.TotalScore = details.Where(x => x.Score != null).Sum(x => x.Score);
extend.Id = record.Id;
extend.CourseName = record.CourseName;
extend.CanRetake = true;
@ -882,15 +891,23 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
}
#endregion
extend.Groups = await Db.Queryable<Ghre_ExamRecordGroup>()
.OrderByDescending(x => x.ExamTime)
.Where(x => x.ExamRecordId == record.Id)
var Groups = await Db.Queryable<Ghre_ExamRecordGroup>()
.OrderByDescending(x => x.ExamTime)
.Where(x => x.ExamRecordId == record.Id)
.Select(x => new
{
GroupId = x.Id,
x.ExamRecordId,
x.ExamTime,
x.Score
}).ToListAsync();
extend.Groups = Groups
.Select(x => new ExamGroup()
{
GroupId = x.Id,
GroupId = x.GroupId,
ExamRecordId = x.ExamRecordId,
ExamTime = x.ExamTime,
}).ToListAsync();
ExamTime = x.ExamTime.ObjToString() + (x.Score != null ? $"得分:{x.Score}" : ""),
}).ToList();
return ServiceResult<QueryExam>.OprateSuccess("查询成功!", extend);
}
@ -1016,11 +1033,11 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
//多次考试成绩认定,Latest,最新分数; Highest,最高分数; Lowest,最低分数
var ScoreRecognition = exam.ScoreRule ?? "Latest";
if (exampaper.ScoreMethod == DIC_EXAM_PAPER_SCORE_METHOD.SYSTEM && ScoreRecognition != "Latest")
{
sql = $@"UPDATE Ghre_ExamRecordDetail SET IsEnable=2 WHERE ExamRecordId='{record.Id}';
UPDATE Ghre_ExamRecordAnswer SET IsEnable=2 WHERE ExamRecordId='{record.Id}';";
}
//if (exampaper.ScoreMethod == DIC_EXAM_PAPER_SCORE_METHOD.SYSTEM && ScoreRecognition != "Latest")
//{
// sql = $@"UPDATE Ghre_ExamRecordDetail SET IsEnable=2 WHERE ExamRecordId='{record.Id}';
// UPDATE Ghre_ExamRecordAnswer SET IsEnable=2 WHERE ExamRecordId='{record.Id}';";
//}
await Db.Ado.ExecuteCommandAsync(sql);
var questionIds = answers.Select(x => x.QuestionId).ToList();
@ -1158,20 +1175,24 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
}
#endregion
group.Score = record.Score;
await Db.Updateable(group).UpdateColumns(it => new { it.Score }, true)
.ExecuteCommandAsync();
#region 多次考试成绩认定
if (exampaper.ScoreMethod == DIC_EXAM_PAPER_SCORE_METHOD.SYSTEM && (ScoreRecognition == "Highest" || ScoreRecognition == "Lowest"))
{
if ((ScoreRecognition == "Highest" && record.Score < lastScore) || ScoreRecognition == "Lowest" && record.Score > lastScore)
{
record.Score = lastScore;
sql = $@"UPDATE Ghre_ExamRecordDetail SET IsEnable=0 WHERE ExamRecordId='{record.Id}';
UPDATE Ghre_ExamRecordAnswer SET IsEnable=0 WHERE ExamRecordId='{record.Id}';";
//sql = $@"UPDATE Ghre_ExamRecordDetail SET IsEnable=0 WHERE ExamRecordId='{record.Id}';
// UPDATE Ghre_ExamRecordAnswer SET IsEnable=0 WHERE ExamRecordId='{record.Id}';";
await Db.Ado.ExecuteCommandAsync(sql);
//await Db.Ado.ExecuteCommandAsync(sql);
sql = $@"UPDATE Ghre_ExamRecordDetail SET IsEnable=1 WHERE IsEnable=2 AND ExamRecordId='{record.Id}';
UPDATE Ghre_ExamRecordAnswer SET IsEnable=1 WHERE IsEnable=2 AND ExamRecordId='{record.Id}';";
await Db.Ado.ExecuteCommandAsync(sql);
//sql = $@"UPDATE Ghre_ExamRecordDetail SET IsEnable=1 WHERE IsEnable=2 AND ExamRecordId='{record.Id}';
// UPDATE Ghre_ExamRecordAnswer SET IsEnable=1 WHERE IsEnable=2 AND ExamRecordId='{record.Id}';";
//await Db.Ado.ExecuteCommandAsync(sql);
}
#region 处理最终得分
@ -1655,4 +1676,31 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
return ServiceResult.OprateSuccess("发放成功!");
}
#endregion
#region 查询考试组
public async Task<ServiceResult<List<ExamGroup>>> QueryGroups(long examRecordId)
{
var Groups = await Db.Queryable<Ghre_ExamRecordGroup>()
.OrderByDescending(x => x.ExamTime)
.Where(x => x.ExamRecordId == examRecordId)
.Select(x => new
{
GroupId = x.Id,
x.ExamRecordId,
x.ExamTime,
x.Score
}).ToListAsync();
var groups = Groups
.Select(x => new ExamGroup()
{
GroupId = x.GroupId,
ExamRecordId = x.ExamRecordId,
ExamTime = x.ExamTime.ObjToString() + (x.Score != null ? $"得分:{x.Score}" : ""),
}).ToList();
return ServiceResult<List<ExamGroup>>.OprateSuccess("成功!", groups);
}
#endregion
}

@ -801,6 +801,8 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
{
var input = new DefaultGhre_ExamInput();
var companyCode = await QueryCompanyCode();
#region baseColumns
var baseColumns = new List<DefaultGhre_ExamColumn>
{
@ -949,7 +951,7 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
label = "考试成绩规则",
field = "ScoreRule",
elementType = "ApiSelect",
required = false,
required = true,
multipleSelect = false,
editable = true,
dataSource = "TBParaDetail_Train_TrainScoreRule"
@ -959,7 +961,7 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
label = "学习完成规则",
field = "StudyFinishedRule",
elementType = "ApiSelect",
required = false,
required= companyCode == "Viavi"?false: true,
multipleSelect = false,
editable = true,
dataSource = "TBParaDetail_Train_TrainStudyFinishedRule"
@ -969,7 +971,7 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
label = "是否允许查看答案和解析",
field = "IsViewResult",
elementType = "RadioBox",
required = false,
required = true,
multipleSelect = false,
editable = true
},
@ -978,7 +980,7 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
label = " 查看答案和解析后,是否允许重新考试",
field = "IsAfterViewResultRetake",
elementType = "RadioBox",
required = false,
required = true,
multipleSelect = false,
editable = true
},
@ -993,7 +995,6 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
}
};
var companyCode = await QueryCompanyCode();
if (companyCode == "Viavi")
baseColumns = baseColumns.Where(x => x.field != "ExamMode1").ToList();
#endregion
@ -1071,6 +1072,7 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
var staffTableData = await QueryStaff1(Id);
pageData.staffTableData = staffTableData.Data;
}
else input.pageData.ScoreRule = "Highest";
#endregion
input.baseColumns = baseColumns;
@ -1133,12 +1135,14 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
data.ForEach(x =>
{
if (x.DataSource.IsNull())
x.DataSource = Consts.DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED;
x.DataSource = DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED;
if (x.DataSource == Consts.DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED)
if (x.DataSource == DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED)
x.DataSourceLabel = "手动必修";
else if (x.DataSource == Consts.DIC_EXAM_STAFF_SOURCE.STUDY_RULE_REQUIRED)
else if (x.DataSource == DIC_EXAM_STAFF_SOURCE.STUDY_RULE_REQUIRED)
x.DataSourceLabel = "必修规则";
else if (x.DataSource == DIC_EXAM_STAFF_SOURCE.MANUAL_ELECTIVE)
x.DataSourceLabel = "手动选修";
});
return ServiceResult<List<StaffTableData>>.OprateSuccess("查询成功!", data);

@ -693,7 +693,7 @@ FROM Ghre_Request A
CreateProg,
DeptNo,
StaffNo,
LastUpdateDate,TrainStaffId,TrainClass,InOrOut)
LastUpdateDate,TrainStaffId,TrainClass,InOrOut,OutSideOrg)
SELECT A.Id,
A.RequestSource,
c.DeptName,
@ -714,7 +714,7 @@ FROM Ghre_Request A
SELECT ',' + S.StaffNo
FROM OPENJSON(A.TrainStaffId) WITH (TrainStaffId INT '$') AS JsonData
INNER JOIN Ghra_Staff S ON JsonData.TrainStaffId = S.StaffID
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS StaffNames,A.TrainClass,A.InOrOut
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS StaffNames,A.TrainClass,A.InOrOut,OutSideOrg
FROM Ghre_Request A
LEFT JOIN [120.26.205.42].[GhrUshio].[dbo].Ghre_GHR50Request B
ON B.RequestID = A.Id

@ -1,12 +1,9 @@
using Microsoft.Extensions.Logging;
using MongoDB.Driver.Linq;
using NPOI.HSSF.UserModel;
using NPOI.SS.Formula.Functions;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using Tiobon.Core.Model.Models;
using static System.Runtime.InteropServices.JavaScript.JSType;
using static Tiobon.Core.DataAccess.ReportHelper;
using static Tiobon.Core.Model.Consts;
@ -268,12 +265,6 @@ public class Ghre_StudyRecordServices : BaseServices<Ghre_StudyRecord, Ghre_Stud
public override async Task<long> Add(InsertGhre_StudyRecordInput entity)
{
if (await Db.Queryable<Ghre_StudyRecord>()
.WhereIF(!entity.CourseId.IsNullOrEmpty(), x => x.CourseId == entity.CourseId)
.WhereIF(!entity.CourseSceneId.IsNullOrEmpty(), x => x.CourseSceneId == entity.CourseSceneId)
.AnyAsync(x => x.StaffId == entity.StaffId))
throw new Exception("该用户存在相同学习记录!");
if (entity.BeginTime != null && entity.EndTime != null)
{
if (entity.EndTime < entity.BeginTime)
@ -287,6 +278,14 @@ public class Ghre_StudyRecordServices : BaseServices<Ghre_StudyRecord, Ghre_Stud
entity.CourseBeginTime = entity.BeginTime;
entity.CourseEndTime = entity.EndTime;
}
if (await Db.Queryable<Ghre_StudyRecord>()
.WhereIF(!entity.CourseId.IsNullOrEmpty(), x => x.CourseId == entity.CourseId)
.WhereIF(!entity.CourseSceneId.IsNullOrEmpty(), x => x.CourseSceneId == entity.CourseSceneId)
.Where(x => (x.CourseBeginTime <= entity.CourseBeginTime && x.CourseEndTime >= entity.CourseBeginTime) || (x.CourseBeginTime <= entity.CourseEndTime && x.CourseEndTime >= entity.CourseEndTime))
.AnyAsync(x => x.StaffId == entity.StaffId))
throw new Exception("该用户存在相同学习记录!");
entity.StudyStatus = "HasFinish";
var snap = await Db.Queryable<Ghre_CourseSnap>().FirstAsync(x => x.CourseId == entity.CourseId);
@ -719,8 +718,8 @@ public class Ghre_StudyRecordServices : BaseServices<Ghre_StudyRecord, Ghre_Stud
AdjustScore = AdjustScore ?? 0,
IsPass = isPass == "是" ? true : false,
ExamDate = dtExamDate,
BeginTime = dtCourseBeginTime,
EndTime = dtCourseEndTime,
CourseBeginTime = dtCourseBeginTime,
CourseEndTime = dtCourseEndTime,
RemarkSz = remarkSz,
CourseType = "ExcelImport"
};
@ -1682,6 +1681,17 @@ WHERE A.Id = '{id}'";
StudyStatus = DIC_STUDY_RECORD_STUDY_STATUS.NO_JOIN,
ExamId = exam?.Id
});
if (exam != null)
{
var insertStaff = new Ghre_ExamStaff()
{
ExamId = exam?.Id,
StaffId = staffId,
Source = DIC_EXAM_STAFF_SOURCE.MANUAL_ELECTIVE
};
await Db.Insertable(insertStaff).ExecuteReturnSnowflakeIdAsync();
}
}
return ServiceResult.OprateSuccess("加入成功!");
}

@ -203,6 +203,19 @@ public class Ghre_StudyRuleServices : BaseServices<Ghre_StudyRule, Ghre_StudyRul
if (!entity.JobIds.IsNull() && entity.JobIds.Any())
entity.JobId = JsonHelper.ObjToJson(entity.JobIds);
var companyCode = await QueryCompanyCode();
if (companyCode != "Viavi")
if (entity.TrainType == "NewStaff")
{
if (!entity.ZoneIds.Any() &&
!entity.DeptIds.Any() &&
!entity.TitleIds.Any() &&
!entity.GradeIds.Any() &&
!entity.JobIds.Any())
throw new Exception("厂区、部门、职称、职等、岗位,至少填写任一个才能保存!");
}
var result = await base.Add(entity);
if (entity.Staffs != null && entity.Staffs.Any())
@ -239,6 +252,18 @@ public class Ghre_StudyRuleServices : BaseServices<Ghre_StudyRule, Ghre_StudyRul
if (!entity.JobIds.IsNull())
entity.JobId = JsonHelper.ObjToJson(entity.JobIds);
var companyCode = await QueryCompanyCode();
if (companyCode != "Viavi")
if (entity.TrainType == "NewStaff")
{
if (!entity.ZoneIds.Any() &&
!entity.DeptIds.Any() &&
!entity.TitleIds.Any() &&
!entity.GradeIds.Any() &&
!entity.JobIds.Any())
throw new Exception("厂区、部门、职称、职等、岗位,至少填写任一个才能保存!");
}
var result = await base.Update(Id, entity);
await _ghre_StudyRuleStaffServices.Delete(x => x.StudyRuleId == Id);

@ -1,5 +1,4 @@
using SqlSugar.Extensions;
using Tiobon.Core.IServices;
using System.Text.RegularExpressions;
namespace Tiobon.Core.Services;
@ -570,6 +569,29 @@ public class Ghre_SurveyServices : BaseServices<Ghre_Survey, Ghre_SurveyDto, Ins
o.Percent = $"0%";
});
}
else if (x.QuestionType == "ShortAnswer")
{
if (x.WordCloudKeywords.IsNotEmptyOrNull())
{
var recordOption = recordOptions.Where(a => a.SurveyQuestionId == x.Id).FirstOrDefault();
var KeywordList = x.WordCloudKeywords.Split(',');
x.Table = KeywordList.Select(x => new Ghre_SurveyStatisticQuestionTable
{
OptionContent = x,
Count = 0,
Percent1 = 0
}).ToList();
x.Table.ForEach(o =>
{
string keyword = o.OptionContent;
// 使用正则表达式匹配关键字(忽略大小写)
o.Count = Regex.Matches(recordOption.OptionContent, Regex.Escape(keyword), RegexOptions.None).Count;
});
}
}
else
{
x.Table = Mapper.Map(options.Where(o => o.SurveyQuestionId == x.Id)).ToANew<List<Ghre_SurveyStatisticQuestionTable>>();

@ -146,6 +146,8 @@ public class Ghre_TitleSkill_BoltoneServices : BaseServices<Ghre_TitleSkill_Bolt
});
condition += ")";
}
else
condition += $" AND 1!=1";
var result2 = await _staffServices.QueryFilterPage(filter, condition);
@ -165,6 +167,8 @@ public class Ghre_TitleSkill_BoltoneServices : BaseServices<Ghre_TitleSkill_Bolt
{
var column = result2.result.DT_TableDataT1[i];
column.Reverse16 = await GetParaLabel("R09", column.Reverse16);
var item1 = new JObject
{
new JProperty("StaffID", column.StaffID),
@ -172,7 +176,7 @@ public class Ghre_TitleSkill_BoltoneServices : BaseServices<Ghre_TitleSkill_Bolt
new JProperty("IndateLabel", column.IndateLabel),
new JProperty("StaffNo", column.StaffNo),
new JProperty("StaffName", column.StaffName),
new JProperty("StaffType1Label", column.StaffType1Label),
new JProperty("StaffType1Label", column.Reverse16),
new JProperty("TitleName", column.TitleName),
};
//× 生手 技能有效期内所对应课程还未分配或课程学习时长为0

@ -25,7 +25,7 @@ public class Ghrh_ResumeEduBGServices : BaseServices<Ghrh_ResumeEduBG, Ghrh_Resu
{
x.AttachmentIDs = attachments
.Where(o => o.TableName == x.Id.ToString())
.Select(o => new ResumeAttachment()
.Select(o => new Ghrs_Attachment()
{
AttachmentID = o.AttachmentID,
AttachFileExtension = o.AttachFileExtension,
@ -78,11 +78,20 @@ public class Ghrh_ResumeEduBGServices : BaseServices<Ghrh_ResumeEduBG, Ghrh_Resu
}
#endregion
public override async Task<long> Add(InsertGhrh_ResumeEduBGInput entity)
{
var result = await Add([entity]);
return result.First();
}
public override async Task<List<long>> Add(List<InsertGhrh_ResumeEduBGInput> listEntity)
{
var result = new List<long>();
for (int i = 0; i < listEntity.Count; i++)
{
listEntity[i].IsGraduate = listEntity[i].IsGraduate1 == 1 ? true : false;
var id = await base.Add(listEntity[i]);
if (listEntity[i].AttachmentIDs != null && listEntity[i].AttachmentIDs.Any())
{
@ -97,8 +106,39 @@ public class Ghrh_ResumeEduBGServices : BaseServices<Ghrh_ResumeEduBG, Ghrh_Resu
return result;
}
public override async Task<bool> Update(long Id, EditGhrh_ResumeEduBGInput editModel)
{
editModel.IsGraduate = editModel.IsGraduate1 == 1 ? true : false;
var result = await base.Update(Id, editModel);
if (editModel.AttachmentIDs != null && editModel.AttachmentIDs.Any())
{
await Db.Updateable<Ghrs_Attachment>()
.SetColumns(x => new Ghrs_Attachment() { TableName = null })
.Where(it => it.TableName == Id.ToString())
.ExecuteCommandAsync();
var ids = editModel.AttachmentIDs.Select(x => x.RelativePath).ToList();
await Db.Updateable<Ghrs_Attachment>()
.SetColumns(x => new Ghrs_Attachment() { TableName = Id.ToString() })
.Where(it => it.AttachmentID != null && ids.Contains(it.RelativePath))
.ExecuteCommandAsync();
}
return result;
}
public override async Task<ServiceFormResult<Ghrh_ResumeEduBGDto>> QueryForm(QueryForm body)
{
var result = await base.QueryForm(body);
result.result.DT_TableDataT1[0].AttachmentIDs = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == body.id.ObjToString()).ToListAsync();
result.result.DT_TableDataT1[0].IsGraduate1 = result.result.DT_TableDataT1[0].IsGraduate == true ? 1 : 0;
return result;
}
#region Excel导入
public override async Task<ServiceResult<string>> DownloadExcel(string menuName)
{

@ -1,4 +1,6 @@
namespace Tiobon.Core.Services;
using Tiobon.Core.Common.DB.Dapper.Extensions;
namespace Tiobon.Core.Services;
/// <summary>
/// 证件 (服务)
@ -24,7 +26,7 @@ public class Ghrh_ResumeLicenceServices : BaseServices<Ghrh_ResumeLicence, Ghrh_
await SetLabel(x);
x.AttachmentIDs = attachments
.Where(o => o.TableName == x.Id.ToString())
.Select(o => new ResumeAttachment()
.Select(o => new Ghrs_Attachment()
{
AttachmentID = o.AttachmentID,
AttachFileExtension = o.AttachFileExtension,
@ -55,6 +57,48 @@ public class Ghrh_ResumeLicenceServices : BaseServices<Ghrh_ResumeLicence, Ghrh_
}
return result;
}
public override async Task<long> Add(InsertGhrh_ResumeLicenceInput entity)
{
var result = await Add([entity]);
return result.First();
}
public override async Task<bool> Update(long Id, EditGhrh_ResumeLicenceInput editModel)
{
var result = await base.Update(Id, editModel);
if (editModel.AttachmentIDs != null && editModel.AttachmentIDs.Any())
{
await Db.Updateable<Ghrs_Attachment>()
.SetColumns(x => new Ghrs_Attachment() { TableName = null })
.Where(it => it.TableName == Id.ToString())
.ExecuteCommandAsync();
var ids = editModel.AttachmentIDs.Select(x => x.RelativePath).ToList();
await Db.Updateable<Ghrs_Attachment>()
.SetColumns(x => new Ghrs_Attachment() { TableName = Id.ToString() })
.Where(it => it.AttachmentID != null && ids.Contains(it.RelativePath))
.ExecuteCommandAsync();
}
return result;
}
public override async Task<ServiceFormResult<Ghrh_ResumeLicenceDto>> QueryForm(QueryForm body)
{
var result = await base.QueryForm(body);
result.result.DT_TableDataT1[0].AttachmentIDs = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == body.id.ObjToString()).ToListAsync();
return result;
}
#region 字典映射、全称、单位转换等
/// <summary>
/// 字典映射、全称、单位转换等

@ -24,7 +24,7 @@ public class Ghrh_ResumeTrainingServices : BaseServices<Ghrh_ResumeTraining, Ghr
await SetLabel(x);
x.AttachmentIDs = attachments
.Where(o => o.TableName == x.Id.ToString())
.Select(o => new ResumeAttachment()
.Select(o => new Ghrs_Attachment()
{
AttachmentID = o.AttachmentID,
AttachFileExtension = o.AttachFileExtension,
@ -77,6 +77,7 @@ public class Ghrh_ResumeTrainingServices : BaseServices<Ghrh_ResumeTraining, Ghr
var result = new List<long>();
for (int i = 0; i < listEntity.Count; i++)
{
listEntity[i].IsPass = listEntity[i].IsPass1 == 1 ? true : false;
var id = await base.Add(listEntity[i]);
if (listEntity[i].AttachmentIDs != null && listEntity[i].AttachmentIDs.Any())
{
@ -91,6 +92,47 @@ public class Ghrh_ResumeTrainingServices : BaseServices<Ghrh_ResumeTraining, Ghr
return result;
}
public override async Task<long> Add(InsertGhrh_ResumeTrainingInput entity)
{
var result = await Add([entity]);
return result.First();
}
public override async Task<bool> Update(long Id, EditGhrh_ResumeTrainingInput editModel)
{
editModel.IsPass = editModel.IsPass1 == 1 ? true : false;
var result = await base.Update(Id, editModel);
if (editModel.AttachmentIDs != null && editModel.AttachmentIDs.Any())
{
await Db.Updateable<Ghrs_Attachment>()
.SetColumns(x => new Ghrs_Attachment() { TableName = null })
.Where(it => it.TableName == Id.ToString())
.ExecuteCommandAsync();
var ids = editModel.AttachmentIDs.Select(x => x.RelativePath).ToList();
await Db.Updateable<Ghrs_Attachment>()
.SetColumns(x => new Ghrs_Attachment() { TableName = Id.ToString() })
.Where(it => it.AttachmentID != null && ids.Contains(it.RelativePath))
.ExecuteCommandAsync();
}
return result;
}
public override async Task<ServiceFormResult<Ghrh_ResumeTrainingDto>> QueryForm(QueryForm body)
{
var result = await base.QueryForm(body);
result.result.DT_TableDataT1[0].AttachmentIDs = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == body.id.ObjToString()).ToListAsync();
result.result.DT_TableDataT1[0].IsPass1 = result.result.DT_TableDataT1[0].IsPass == true ? 1 : 0;
return result;
}
#region Excel导入
public override async Task<ServiceResult<string>> DownloadExcel(string menuName)
{

@ -1,4 +1,7 @@
namespace Tiobon.Core.Services;
using Tiobon.Core.Common.DB.Dapper.Extensions;
using Tiobon.Core.Model.Models;
namespace Tiobon.Core.Services;
/// <summary>
/// 工作经历 (服务)
@ -24,7 +27,7 @@ public class Ghrh_ResumeWorkExpServices : BaseServices<Ghrh_ResumeWorkExp, Ghrh_
await SetLabel(x);
x.AttachmentIDs = attachments
.Where(o => o.TableName == x.Id.ToString())
.Select(o => new ResumeAttachment()
.Select(o => new Ghrs_Attachment()
{
AttachmentID = o.AttachmentID,
AttachFileExtension = o.AttachFileExtension,
@ -56,6 +59,45 @@ public class Ghrh_ResumeWorkExpServices : BaseServices<Ghrh_ResumeWorkExp, Ghrh_
return result;
}
public override async Task<long> Add(InsertGhrh_ResumeWorkExpInput entity)
{
var result = await Add([entity]);
return result.First();
}
public override async Task<bool> Update(long Id, EditGhrh_ResumeWorkExpInput editModel)
{
var result = await base.Update(Id, editModel);
if (editModel.AttachmentIDs != null && editModel.AttachmentIDs.Any())
{
await Db.Updateable<Ghrs_Attachment>()
.SetColumns(x => new Ghrs_Attachment() { TableName = null })
.Where(it => it.TableName == Id.ToString())
.ExecuteCommandAsync();
var ids = editModel.AttachmentIDs.Select(x => x.RelativePath).ToList();
await Db.Updateable<Ghrs_Attachment>()
.SetColumns(x => new Ghrs_Attachment() { TableName = Id.ToString() })
.Where(it => it.AttachmentID != null && ids.Contains(it.RelativePath))
.ExecuteCommandAsync();
}
return result;
}
public override async Task<ServiceFormResult<Ghrh_ResumeWorkExpDto>> QueryForm(QueryForm body)
{
var result = await base.QueryForm(body);
result.result.DT_TableDataT1[0].AttachmentIDs = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == body.id.ObjToString()).ToListAsync();
return result;
}
#region 字典映射、全称、单位转换等
/// <summary>
/// 字典映射、全称、单位转换等

@ -5740,6 +5740,16 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExternalTrainApplyOrder_BoltoneBase.SchoolName1">
<summary>
SchoolName1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExternalTrainApplyOrder_BoltoneBase.CourseName1">
<summary>
CourseName1
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_MultipleTitleBase">
<summary>
多岗维护 (Dto.Base)
@ -7345,6 +7355,11 @@
系统内置
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_RequestBase.OutSideOrg">
<summary>
外训机构
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_RequiredCourseBase">
<summary>
必选修查询 (Dto.Base)
@ -9020,6 +9035,11 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_SurveyQuestionBase.WordCloudKeywords">
<summary>
词云图关键字
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_SurveyRecordBase">
<summary>
Ghre_SurveyRecord (Dto.Base)
@ -13890,7 +13910,7 @@
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_ResumeTrainingBase.ReverseI2">
<member name="P:Tiobon.Core.Model.Models.Ghrh_ResumeTrainingBase.IsPass1">
<summary>
预留字段12
</summary>
@ -24352,6 +24372,16 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExternalTrainApplyOrder_Boltone.SchoolName1">
<summary>
SchoolName1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExternalTrainApplyOrder_Boltone.CourseName1">
<summary>
CourseName1
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_MultipleTitle">
<summary>
多岗维护 (Model)
@ -25937,6 +25967,11 @@
系统内置
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Request.OutSideOrg">
<summary>
外训机构
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_RequiredCourse">
<summary>
必选修查询 (Model)
@ -27542,6 +27577,11 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_SurveyQuestion.WordCloudKeywords">
<summary>
词云图关键字
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_SurveyRecord">
<summary>
Ghre_SurveyRecord (Model)
@ -39513,6 +39553,11 @@
必修规则
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_EXAM_STAFF_SOURCE.MANUAL_ELECTIVE">
<summary>
手动选修
</summary>
</member>
<member name="T:Tiobon.Core.Model.Consts.DIC_TRAINING_STUDY_RULE_TRAIN_TYPE">
<summary>
培训规则种类
@ -40398,6 +40443,11 @@
图标
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyQuestionExtendBase.WordCloudKeywords">
<summary>
词云图关键字
</summary>
</member>
<member name="P:Tiobon.Core.Model.ViewModels.Extend.Ghre_SurveyQuestionExtendBase.RemarkSz">
<summary>
备注

@ -1095,6 +1095,13 @@
<param name="examRecordId"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_ExamRecordController.QueryGroups(System.Int64)">
<summary>
查询考试组
</summary>
<param name="examRecordId"></param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordDetailController">
<summary>
Ghre_ExamRecordDetail(Controller)

Loading…
Cancel
Save