master
xiaochanghai 6 months ago
parent 7eb94b65c2
commit 448b3e150b
  1. 9
      Model/Tiobon.Web.pdm
  2. 6
      Tiobon.Core.Api/Controllers/Ghrh/Ghrh_ResumeController.cs
  3. 17
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  4. 3
      Tiobon.Core.IServices/Ghrh/IGhrh_ResumeServices.cs
  5. 3
      Tiobon.Core.Model/Base/Ghrh/Ghrh_HumanRequest.Dto.Base.cs
  6. 5
      Tiobon.Core.Model/Models/Ghrh/Ghrh_HumanRequest.cs
  7. 24
      Tiobon.Core.Model/View/Ghrh/Ghrh_HumanRequest.Dto.View.cs
  8. 2
      Tiobon.Core.Model/ViewModels/Extend/ResumeTemplateGroupColumn.cs
  9. 8
      Tiobon.Core.Services/CommonServices.cs
  10. 60
      Tiobon.Core.Services/Ghrh/Ghrh_HumanRequestServices.cs
  11. 480
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?PowerDesigner AppLocale="UTF16" ID="{C294868A-C3F3-41AD-98CC-78B6D4E0CC40}" Label="" LastModificationDate="1734491172" Name="Tiobon" Objects="2787" Symbols="112" Target="Microsoft SQL Server 2008" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="15.0.0.2613"?> <?PowerDesigner AppLocale="UTF16" ID="{C294868A-C3F3-41AD-98CC-78B6D4E0CC40}" Label="" LastModificationDate="1734507072" Name="Tiobon" Objects="2787" Symbols="114" Target="Microsoft SQL Server 2008" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="15.0.0.2613"?>
<!-- do not edit this file --> <!-- do not edit this file -->
<Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object"> <Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object">
@ -11249,7 +11249,7 @@ LABL 0 Arial Unicode MS,8,N</a:FontList>
<a:Code>SystemManager12</a:Code> <a:Code>SystemManager12</a:Code>
<a:CreationDate>1728522772</a:CreationDate> <a:CreationDate>1728522772</a:CreationDate>
<a:Creator>Administrator</a:Creator> <a:Creator>Administrator</a:Creator>
<a:ModificationDate>1734490374</a:ModificationDate> <a:ModificationDate>1734507072</a:ModificationDate>
<a:Modifier>Administrator</a:Modifier> <a:Modifier>Administrator</a:Modifier>
<a:DisplayPreferences>[DisplayPreferences] <a:DisplayPreferences>[DisplayPreferences]
@ -39811,11 +39811,10 @@ Ghra_staff_InsureBase
<a:Code>GradeId</a:Code> <a:Code>GradeId</a:Code>
<a:CreationDate>1730425965</a:CreationDate> <a:CreationDate>1730425965</a:CreationDate>
<a:Creator>Administrator</a:Creator> <a:Creator>Administrator</a:Creator>
<a:ModificationDate>1734422692</a:ModificationDate> <a:ModificationDate>1734507068</a:ModificationDate>
<a:Modifier>Administrator</a:Modifier> <a:Modifier>Administrator</a:Modifier>
<a:Comment>职等ID</a:Comment> <a:Comment>职等ID</a:Comment>
<a:DataType>nvarchar(2000)</a:DataType> <a:DataType>int</a:DataType>
<a:Length>2000</a:Length>
</o:Column> </o:Column>
<o:Column Id="o2314"> <o:Column Id="o2314">
<a:ObjectID>E257966A-1186-4977-9600-6BE72E214473</a:ObjectID> <a:ObjectID>E257966A-1186-4977-9600-6BE72E214473</a:ObjectID>

@ -509,4 +509,10 @@ public class Ghrh_ResumeController : BaseController<IGhrh_ResumeServices, Ghrh_R
public async Task<ServiceResult<string>> OfferDownLoad(long id, long templateId, [FromBody] Dictionary<string, string> extFields) => await _service.OfferDownLoad(id, templateId, extFields); public async Task<ServiceResult<string>> OfferDownLoad(long id, long templateId, [FromBody] Dictionary<string, string> extFields) => await _service.OfferDownLoad(id, templateId, extFields);
#endregion #endregion
#region 同步数据至人事资料
[HttpPost, Route("SyncToStaff/{id}")]
public async Task<bool> SyncToStaff(long id) => await _service.SyncToStaff(id);
#endregion
} }

@ -20549,7 +20549,7 @@
<member name="P:Tiobon.Core.Model.Models.Ghrh_HumanRequest.GradeId"> <member name="P:Tiobon.Core.Model.Models.Ghrh_HumanRequest.GradeId">
<summary> <summary>
职等ID 职等ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_HumanRequest.RequestCount"> <member name="P:Tiobon.Core.Model.Models.Ghrh_HumanRequest.RequestCount">
<summary> <summary>
@ -27682,6 +27682,11 @@
部门 部门
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_HumanRequestDto.JobName">
<summary>
职称
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_HumanRequestDto.TitleName"> <member name="P:Tiobon.Core.Model.Models.Ghrh_HumanRequestDto.TitleName">
<summary> <summary>
岗位 岗位
@ -27702,6 +27707,16 @@
部门负责人邮箱 部门负责人邮箱
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_HumanRequestDto.InOrOutLabel">
<summary>
编制内外
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghrh_HumanRequestDto.GenderLabel">
<summary>
性别
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghrh_HumanRequestDetailDto"> <member name="T:Tiobon.Core.Model.Models.Ghrh_HumanRequestDetailDto">
<summary> <summary>
人力需求维护明细(Dto.View1) 人力需求维护明细(Dto.View1)

@ -79,4 +79,7 @@ public interface IGhrh_ResumeServices : IBaseServices<Ghrh_Resume, Ghrh_ResumeDt
Task<ServiceResult<List<ResumeLog>>> Log(long id); Task<ServiceResult<List<ResumeLog>>> Log(long id);
Task<ServiceResult<string>> OfferDownLoad(long id, long templateId, Dictionary<string, string> extFields); Task<ServiceResult<string>> OfferDownLoad(long id, long templateId, Dictionary<string, string> extFields);
Task<bool> SyncToStaff(long id);
} }

@ -70,8 +70,7 @@ public class Ghrh_HumanRequestBase
/// <summary> /// <summary>
/// 职等ID /// 职等ID
/// </summary> /// </summary>
[Display(Name = "GradeId"), Description("职等ID"), MaxLength(2000, ErrorMessage = "职等ID 不能超过 2000 个字符")] public int? GradeId { get; set; }
public string GradeId { get; set; }
/// <summary> /// <summary>
/// 需求人数 /// 需求人数

@ -70,9 +70,8 @@ public class Ghrh_HumanRequest : BasePoco
/// <summary> /// <summary>
/// 职等ID /// 职等ID
/// </summary> /// </summary>
[Display(Name = "GradeId"), Description("职等ID"), MaxLength(2000, ErrorMessage = "职等ID 不能超过 2000 个字符")] public int? GradeId { get; set; }
public string GradeId { get; set; }
/// <summary> /// <summary>
/// 需求人数 /// 需求人数

@ -37,14 +37,14 @@ public class Ghrh_HumanRequestDto : Ghrh_HumanRequest
/// </summary> /// </summary>
public string DeptName { get; set; } public string DeptName { get; set; }
///// <summary> /// <summary>
///// 归属部门 /// 职称
///// </summary> /// </summary>
//public string BelongDeptName { get; set; } public string JobName { get; set; }
/// <summary> /// <summary>
/// 岗位 /// 岗位
/// </summary> /// </summary>
public string TitleName { get; set; } public string TitleName { get; set; }
/// <summary> /// <summary>
@ -62,4 +62,14 @@ public class Ghrh_HumanRequestDto : Ghrh_HumanRequest
/// </summary> /// </summary>
public string DeptManagerEmail { get; set; } public string DeptManagerEmail { get; set; }
/// <summary>
/// 编制内外
/// </summary>
public string InOrOutLabel { get; set; }
/// <summary>
/// 性别
/// </summary>
public string GenderLabel { get; set; }
} }

@ -33,6 +33,8 @@ public class ResumeFormColumn1
public string GroupType { get; set; } public string GroupType { get; set; }
public string ColumnType { get; set; } public string ColumnType { get; set; }
public string MapTableName { get; set; }
public string MapColumnName { get; set; }
} }

@ -1791,6 +1791,14 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault(); toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD4YN"; if (toolbar != null) toolbar.fnKey = "TBD4YN";
break; break;
case "F_ManReqMainten":
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD1YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD2YN";
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) toolbar.fnKey = "TBD3YN";
break;
case "F_AnnualManpower": case "F_AnnualManpower":
var config = await Db.Queryable<Ghrh_Config>().Where(x => x.ConfigCode == "ESS_Recruit_Year_Human_Start_Month").FirstAsync(); var config = await Db.Queryable<Ghrh_Config>().Where(x => x.ConfigCode == "ESS_Recruit_Year_Human_Start_Month").FirstAsync();

@ -1,4 +1,6 @@
namespace Tiobon.Core.Services; using System.Collections.Generic;
namespace Tiobon.Core.Services;
/// <summary> /// <summary>
/// 人力需求维护 (服务) /// 人力需求维护 (服务)
@ -12,16 +14,30 @@ public class Ghrh_HumanRequestServices : BaseServices<Ghrh_HumanRequest, Ghrh_Hu
base.BaseDal = dal; base.BaseDal = dal;
base._caching = caching; base._caching = caching;
} }
#region 字典映射、全称、单位转换等
/// <summary>
/// 字典映射、全称、单位转换等
/// </summary>
/// <param name="view"></param>
private async Task SetLabel(Ghrh_HumanRequestDto x)
{
if (x != null)
{
x.GenderLabel = await GetParaLabel("Gender", x.Gender);
x.InOrOutLabel = await GetParaLabel("ResumeBudgetTypr", x.InOrOut);
}
}
#endregion
public override async Task<ServicePageResult<Ghrh_HumanRequestDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) public override async Task<ServicePageResult<Ghrh_HumanRequestDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
{ {
var result = await base.QueryFilterPage(filter, condition, IsEnable); var result = await base.QueryFilterPage(filter, condition, IsEnable);
var entitys = result.result.DT_TableDataT1; var entitys = result.result.DT_TableDataT1;
var deptIds = entitys.Where(x => x.DeptId != null).Select(x => x.DeptId).ToList(); var deptIds = entitys.Where(x => x.DeptId != null).Select(x => x.DeptId).ToList();
//var titleIds = entitys.Where(x => x.TitleId != null).Select(x => x.TitleId).ToList();
var gradeIds = entitys.Where(x => x.GradeId != null).Select(x => x.GradeId).ToList(); var gradeIds = entitys.Where(x => x.GradeId != null).Select(x => x.GradeId).ToList();
var jobIds = entitys.Where(x => x.JobId != null).Select(x => x.JobId).ToList();
var titleIds = entitys.Where(x => x.TitleId != null).Select(x => x.TitleId).ToList(); var titleIds = entitys.Where(x => x.TitleId != null).Select(x => x.TitleId).ToList();
//deptIds.AddRange(entitys.Where(x => x.BelongDeptId != null).Select(x => x.BelongDeptId).ToList());
if (deptIds.Any()) if (deptIds.Any())
{ {
var depts = await Db.Queryable<Ghro_Dept>().Where(x => deptIds.Contains(x.DeptID)).ToListAsync(); var depts = await Db.Queryable<Ghro_Dept>().Where(x => deptIds.Contains(x.DeptID)).ToListAsync();
@ -29,7 +45,6 @@ public class Ghrh_HumanRequestServices : BaseServices<Ghrh_HumanRequest, Ghrh_Hu
entitys.ForEach(rule => entitys.ForEach(rule =>
{ {
rule.DeptName = depts.FirstOrDefault(o => rule.DeptId == o.DeptID)?.DeptName; rule.DeptName = depts.FirstOrDefault(o => rule.DeptId == o.DeptID)?.DeptName;
//rule.BelongDeptName = depts.FirstOrDefault(o => rule.BelongDeptId == o.DeptID)?.DeptName;
}); });
} }
@ -43,26 +58,29 @@ public class Ghrh_HumanRequestServices : BaseServices<Ghrh_HumanRequest, Ghrh_Hu
}); });
} }
//if (gradeIds.Any()) if (gradeIds.Any())
//{ {
// var grades = await Db.Queryable<Ghra_Grade>().Where(x => gradeIds.Contains(x.GradeID)).ToListAsync(); var grades = await Db.Queryable<Ghra_Grade>().Where(x => gradeIds.Contains(x.GradeID)).ToListAsync();
// entitys.ForEach(rule =>
// {
// rule.GradeName = grades.FirstOrDefault(o => rule.GradeId == o.GradeID)?.GradeName;
// });
//}
//if (jobIds.Any()) entitys.ForEach(rule =>
//{ {
// var jobs = await Db.Queryable<Ghra_Job>().Where(x => jobIds.Contains(x.JobID)).ToListAsync(); rule.GradeName = grades.FirstOrDefault(o => rule.GradeId == o.GradeID)?.GradeName;
});
}
// entitys.ForEach(rule => if (jobIds.Any())
// { {
// rule.JobName = jobs.FirstOrDefault(o => rule.JobId == o.JobID)?.JobName; var jobs = await Db.Queryable<Ghra_Job>().Where(x => jobIds.Contains(x.JobID)).ToListAsync();
// });
//}
entitys.ForEach(rule =>
{
rule.JobName = jobs.FirstOrDefault(o => rule.JobId == o.JobID)?.JobName;
});
}
entitys.ForEach(async x =>
{
await SetLabel(x);
});
result.result.DT_TableDataT1 = entitys; result.result.DT_TableDataT1 = entitys;
return result; return result;
} }

@ -2,7 +2,9 @@
using DinkToPdf.Contracts; using DinkToPdf.Contracts;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using System.Collections.Generic;
using System.IO.Compression; using System.IO.Compression;
using Tiobon.Core.Common.DB.Dapper.Extensions;
using static Tiobon.Core.Model.Consts; using static Tiobon.Core.Model.Consts;
namespace Tiobon.Core.Services; namespace Tiobon.Core.Services;
@ -1191,11 +1193,12 @@ END";
} }
public async Task<List<ResumeFormColumn1>> QueryResumeFormColumn(long resumeTemplateID) public async Task<List<ResumeFormColumn1>> QueryResumeFormColumn(long resumeTemplateID = 0)
{ {
resumeTemplateID = await Db.Ado.GetLongAsync("select top 1 Id from Ghrh_ResumeTemplate where IsEnable=1 and IsPublish=1");
var sql = @$"DECLARE @ResumeTemplateID BIGINT = {resumeTemplateID} var sql = @$"DECLARE @ResumeTemplateID BIGINT = {resumeTemplateID}
SELECT A.ColumnName, A.ResumeInfoColumnName ColumnNameDesc, D.GroupType SELECT A.ColumnName, A.ResumeInfoColumnName ColumnNameDesc, D.GroupType, A.MapTableName, A.MapColumnName
FROM Ghrh_ResumeInfoColumn A FROM Ghrh_ResumeInfoColumn A
LEFT JOIN Ghrh_ResumeTemplateInfoGroupColumn B LEFT JOIN Ghrh_ResumeTemplateInfoGroupColumn B
ON B.ResumeInfoColumnID = A.ID ON B.ResumeInfoColumnID = A.ID
@ -2427,8 +2430,8 @@ END";
if (entity == null) if (entity == null)
return ServiceResult.OprateFailed("无效的简历ID!"); return ServiceResult.OprateFailed("无效的简历ID!");
if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.HasInterview || entity.Status != DIC_INTERVIEW_ORDER_STATUS.WaitRecommended) //if (entity.Status != DIC_INTERVIEW_ORDER_STATUS.HasInterview || entity.Status != DIC_INTERVIEW_ORDER_STATUS.WaitRecommended)
return ServiceResult.OprateFailed("只有在【已面试】、【待推荐】状态下,才能转入待发Offer!"); // return ServiceResult.OprateFailed("只有在【已面试】、【待推荐】状态下,才能转入待发Offer!");
if (await Db.Queryable<Ghrh_OfferApplyOrder>().AnyAsync(x => x.WorkState == 0 && x.ResumeId == id)) if (await Db.Queryable<Ghrh_OfferApplyOrder>().AnyAsync(x => x.WorkState == 0 && x.ResumeId == id))
return ServiceResult.OprateFailed("当前简历录用审批处于审批中,不可转入待发Offer!"); return ServiceResult.OprateFailed("当前简历录用审批处于审批中,不可转入待发Offer!");
@ -2436,9 +2439,13 @@ END";
await UpdateResumeStatus(entity, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer); await UpdateResumeStatus(entity, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer);
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
await UpdateInterviewOrderStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer); if (order != null)
await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer); {
await LogRecord(order.Id, "转入待发Offer!", id, null, "TransferWaitSendOffer");
await UpdateInterviewOrderStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer);
await UpdateInterviewRecordStatus(order, DIC_INTERVIEW_ORDER_STATUS.WaitSendOffer);
await LogRecord(order.Id, "转入待发Offer!", id, null, "TransferWaitSendOffer");
}
} }
return ServiceResult.OprateSuccess(); return ServiceResult.OprateSuccess();
@ -2784,9 +2791,8 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
var result = new ResumeScheduleInterviewResult(); var result = new ResumeScheduleInterviewResult();
var entity = await base.QueryById(id); var entity = await base.QueryById(id);
var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id); var order = await _ghrh_InterviewOrderServices.QuerySingle(x => x.ResumeId == id);
var records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
if (order.RequestId.IsNotEmptyOrNull()) if (order != null && order.RequestId.IsNotEmptyOrNull())
{ {
var request = await _ghrh_HumanRequestServices.QueryById(order.RequestId); var request = await _ghrh_HumanRequestServices.QueryById(order.RequestId);
result.RequestId = order.RequestId; result.RequestId = order.RequestId;
@ -2799,13 +2805,16 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
} }
else else
{ {
result.DeptName = order.HireDeptName; result.DeptName = order?.HireDeptName;
result.TitleName = order.HireTitleName; result.TitleName = order?.HireTitleName;
} }
result.ResumeStaffName = entity.StaffName; result.ResumeStaffName = entity.StaffName;
result.Times = new List<string>(); result.Times = new List<string>();
result.Staffs = new(); result.Staffs = new();
var records = new List<Ghrh_InterviewRecord>();
if (order != null) records = await _ghrh_InterviewRecordServices.Query(x => x.Round == order.Round && x.OrderId == order.Id);
if (records != null && records.Any()) if (records != null && records.Any())
{ {
var record = records.Where(x => x.PlanInterviewTime1 != null).FirstOrDefault(); var record = records.Where(x => x.PlanInterviewTime1 != null).FirstOrDefault();
@ -3786,275 +3795,264 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
/// <returns></returns> /// <returns></returns>
public async Task<bool> SyncToStaff(long id) public async Task<bool> SyncToStaff(long id)
{ {
try
var entity = await base.QueryById(id);
if (entity.IsSyncToStaff == true || await Db.Queryable<Ghra_Staff>().Where(x => x.IdCardNo == entity.IdCardNo).AnyAsync())
{ {
return false; var entity = await base.QueryById(id);
} if (entity.IsSyncToStaff == true || await Db.Queryable<Ghra_Staff>().Where(x => x.IdCardNo == entity.IdCardNo).AnyAsync())
//【简历库-录用-已发offer】配置按钮 {
var sendOfferConfig = await Db.Queryable<Ghrh_Config>().Where(x => x.ConfigCode == "ESS_Recruit_Custom_Transfer_Staff").FirstAsync(); return false;
}
//【简历库-录用-已发offer】配置按钮
var sendOfferConfig = await Db.Queryable<Ghrh_Config>().Where(x => x.ConfigCode == "ESS_Recruit_Custom_Transfer_Staff").FirstAsync();
var type = sendOfferConfig?.ConfigValue ?? "Fast"; var type = sendOfferConfig?.ConfigValue ?? "Fast";
var formColumns = await QueryResumeFormColumn();
#region 人事资料 formColumns = formColumns.Where(x => x.MapTableName.IsNotEmptyOrNull() && x.MapColumnName.IsNotEmptyOrNull()).ToList();
var staff = new Ghra_Staff();
staff.StaffName = entity.StaffName;
var aaa = entity.StaffName.GetTotalPingYin();
//staff.PinYinName = entity.StaffName.GetTotalPingYin();
staff.StaffEname = entity.StaffEname;
staff.PhotoUrl = entity.PhotoUrl;
staff.Nation = entity.Nation;
staff.Birthday = entity.Birthday;
staff.NativePlace = entity.NativePlace;
staff.Gender = entity.Gender;
staff.EduDegree = entity.EduDegree;
staff.MaritalStatus = entity.MaritalStatus;
staff.PoliticStatus = entity.PoliticStatus;
staff.Mobile = entity.Mobile;
staff.Email = entity.Email;
staff.Indate = DateTime.Now;
staff.Reverse3 = entity.CertificateType;
staff.IDCardBegin = entity.IDCardBegin;
staff.IDCardEnd = entity.IDCardEnd;
staff.IdCardNo = entity.IdCardNo;
staff.IDCardOrg = entity.IDCardOrg;
staff.RegisteredType = entity.RegisteredType;
staff.UrgentContact = entity.UrgentContact;
staff.UrgentContactTel = entity.UrgentContactTel;
staff.RegisteredPlace = entity.NowAddress;
staff.RegisteredAddress = entity.RegisteredAddress;
staff.NationNo = entity.NationNo;
//staff.FundAccountID = entity.FundAccountID;
staff.FundBase = entity.FundBase;
//staff.InInsureAccountNo = entity.InInsureAccountNo;
//staff.InsureAccountID = entity.InsureAccountID;
staff.InsureBase = entity.InsureBase;
staff.IsInsure = entity.IsInsure == true ? 1 : 0;
staff.IsFund = entity.IsFund == true ? 1 : 0;
//staff.IsStay = entity.IsStay;
//staff.CarNo = entity.CarNo;
//staff.TitleType = entity.TitleType;
//staff.StaffType1 = entity.StaffType1;
staff.IsRelease = 1;
staff.SortNo = 1;
staff.IsDefault = 1;
if (type == "Fast")
{
staff.IsEnable = 2;
staff.ToDoType = "ToDo";
}
else
staff.IsEnable = 1;
#endregion
var applyOrder = await Db.Queryable<Ghrh_OfferApplyOrder>().Where(x => x.ResumeId == id).FirstAsync(); int staffId = 0;
if (applyOrder != null)
{
staff.DeptID = applyOrder.DeptId;
staff.TitleID = applyOrder.TitleId;
staff.JobID = applyOrder.JobId;
staff.GradeID = applyOrder.GradeId;
}
var staffId = await Db.Insertable(staff).ExecuteReturnIdentityAsync();
if (staffId > 0) await Db.Ado.BeginTranAsync();
{
entity.IsSyncToStaff = true;
entity.StaffId = staffId;
await Update(entity, ["IsSyncToStaff", "StaffId"]);
#region 家庭关系
var familys = await _ghrh_ResumeHomeServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id);
for (int i = 0; i < familys.Count; i++)
{
var family = familys[i];
var staffEduBG = new Ghra_StaffSocialRelation()
{
StaffID = staffId,
RelationType = family.RelationType,
RelationName = family.RelationName,
IDCardNo = family.IDCardNo,
Gender = family.Gender,
Birthday = family.Birth,
CompanyName = family.WorkCompany,
//DeptName = family.WorkCompany,
RelationAddress = family.RelationAddress,
RelationTel = family.Telephone,
Reverse1 = family.RelationAge,
RemarkSz = family.RemarkSz
};
var staffSocialRelation = await Db.Insertable(staffEduBG).ExecuteReturnIdentityAsync();
var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == family.Id.ObjToString()).ToListAsync();
if (attachments.Any()) #region 人事资料
Dictionary<string, object> dict = new();
formColumns.Where(x => x.GroupType == "Base")
.ToList()
.ForEach(x =>
{ {
attachments.ForEach(x => dict.Add(x.MapColumnName, entity.GetPropertyValue(x.ColumnName));
{ });
x.CreateTime = DateTime.Now;
x.TableName = "Ghra_StaffSocialRelation"; dict.Add("IsRelease", 1);
x.StaffID = staffId; dict.Add("SortNo", 1);
x.TableKeyID = staffSocialRelation; dict.Add("IsDefault", 1);
});
await Db.Insertable(attachments).ExecuteReturnIdentityAsync(); if (type == "Fast")
} {
dict.Add("IsEnable", 2);
dict.Add("ToDoType", "ToDo");
} }
else
dict.Add("IsEnable", 1);
#endregion #endregion
#region 教育背景 var applyOrder = await Db.Queryable<Ghrh_OfferApplyOrder>().Where(x => x.ResumeId == id).FirstAsync();
var educations = await _ghrh_ResumeEduBGServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id); if (applyOrder != null)
{
dict.Add("DeptID", applyOrder.DeptId);
dict.Add("TitleID", applyOrder.TitleId);
dict.Add("JobID", applyOrder.JobId);
dict.Add("GradeID", applyOrder.GradeId);
}
for (int i = 0; i < educations.Count; i++) if (dict.Count > 0)
staffId = await Db.Insertable(dict).AS("Ghra_Staff").ExecuteReturnIdentityAsync();
if (staffId > 0)
{ {
var education = educations[i]; entity.IsSyncToStaff = true;
var staffEduBG = new Ghra_StaffEduBG() entity.StaffId = staffId;
{ await Update(entity, ["IsSyncToStaff", "StaffId"]);
StaffID = staffId,
BeginDate = education.BeginDate.ObjToString(), #region 家庭关系
EndDate = education.EndDate.ObjToString(), var list = new List<Dictionary<string, object>>();
SchoolName = education.SchoolName,
DeptName = education.DeptName,
DegreeLevel = education.DegreeLevel,
IsGraduate = education.IsGraduate == true ? 1 : 0,
RemarkSz = education.RemarkSz
};
var staffEduBGId = await Db.Insertable(staffEduBG).ExecuteReturnIdentityAsync();
var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == education.Id.ObjToString()).ToListAsync();
if (attachments.Any()) var familys = await _ghrh_ResumeHomeServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id);
for (int i = 0; i < familys.Count; i++)
{ {
attachments.ForEach(x => var family = familys[i];
var staffEduBG = new Ghra_StaffSocialRelation()
{ {
x.CreateTime = DateTime.Now; StaffID = staffId,
x.TableName = "Ghra_StaffEduBG"; RelationType = family.RelationType,
x.StaffID = staffId; RelationName = family.RelationName,
x.TableKeyID = staffEduBGId; IDCardNo = family.IDCardNo,
}); Gender = family.Gender,
await Db.Insertable(attachments).ExecuteReturnIdentityAsync(); Birthday = family.Birth,
CompanyName = family.WorkCompany,
//DeptName = family.WorkCompany,
RelationAddress = family.RelationAddress,
RelationTel = family.Telephone,
Reverse1 = family.RelationAge,
RemarkSz = family.RemarkSz
};
var staffSocialRelation = await Db.Insertable(staffEduBG).ExecuteReturnIdentityAsync();
var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == family.Id.ObjToString()).ToListAsync();
if (attachments.Any())
{
attachments.ForEach(x =>
{
x.CreateTime = DateTime.Now;
x.TableName = "Ghra_StaffSocialRelation";
x.StaffID = staffId;
x.TableKeyID = staffSocialRelation;
});
await Db.Insertable(attachments).ExecuteReturnIdentityAsync();
}
} }
} #endregion
#endregion
#region 工作经历 #region 教育背景
var workExps = await _ghrh_ResumeWorkExpServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id); var educations = await _ghrh_ResumeEduBGServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id);
for (int i = 0; i < workExps.Count; i++)
{
var workExp = workExps[i];
var staffEduBG = new Ghra_StaffWorkExp()
{
StaffID = staffId,
BeginDate = workExp.BeginDate,
EndDate = workExp.EndDate,
CompanyName = workExp.CompanyName,
TitleName = workExp.TitleName,
//IsCompany = workExp.IsCompany,
SalaryAmount = workExp.SalaryAmount,
SeparationReason = workExp.SeparationReason,
RemarkSz = workExp.RemarkSz
};
var staffworkExpId = await Db.Insertable(staffEduBG).ExecuteReturnIdentityAsync();
var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == workExp.Id.ObjToString()).ToListAsync();
if (attachments.Any()) for (int i = 0; i < educations.Count; i++)
{ {
attachments.ForEach(x => var education = educations[i];
var staffEduBG = new Ghra_StaffEduBG()
{ {
x.CreateTime = DateTime.Now; StaffID = staffId,
x.TableName = "Ghra_StaffWorkExp"; BeginDate = education.BeginDate.ObjToString(),
x.StaffID = staffId; EndDate = education.EndDate.ObjToString(),
x.TableKeyID = staffworkExpId; SchoolName = education.SchoolName,
}); DeptName = education.DeptName,
await Db.Insertable(attachments).ExecuteReturnIdentityAsync(); DegreeLevel = education.DegreeLevel,
IsGraduate = education.IsGraduate == true ? 1 : 0,
RemarkSz = education.RemarkSz
};
var staffEduBGId = await Db.Insertable(staffEduBG).ExecuteReturnIdentityAsync();
var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == education.Id.ObjToString()).ToListAsync();
if (attachments.Any())
{
attachments.ForEach(x =>
{
x.CreateTime = DateTime.Now;
x.TableName = "Ghra_StaffEduBG";
x.StaffID = staffId;
x.TableKeyID = staffEduBGId;
});
await Db.Insertable(attachments).ExecuteReturnIdentityAsync();
}
} }
} #endregion
#endregion
#region 证件 #region 工作经历
var Licences = await _ghrh_ResumeLicenceServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id); var workExps = await _ghrh_ResumeWorkExpServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id);
for (int i = 0; i < Licences.Count; i++) for (int i = 0; i < workExps.Count; i++)
{
var licence = Licences[i];
var staffEduBG = new Ghra_StaffLicence()
{ {
StaffID = staffId, var workExp = workExps[i];
BeginDate = licence.BeginDate, var staffEduBG = new Ghra_StaffWorkExp()
EndDate = licence.EndDate, {
LicenceName = licence.LicenceName, StaffID = staffId,
//LicenceLevel = licence.LicenceLevel, BeginDate = workExp.BeginDate,
//IsCompany = workExp.IsCompany, EndDate = workExp.EndDate,
LicenceNo = licence.LicenceNo, CompanyName = workExp.CompanyName,
//SeparationReason = licence.SeparationReason, TitleName = workExp.TitleName,
RemarkSz = licence.RemarkSz //IsCompany = workExp.IsCompany,
}; SalaryAmount = workExp.SalaryAmount,
var staffLicenceId = await Db.Insertable(staffEduBG).ExecuteReturnIdentityAsync(); SeparationReason = workExp.SeparationReason,
var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == licence.Id.ObjToString()).ToListAsync(); RemarkSz = workExp.RemarkSz
};
var staffworkExpId = await Db.Insertable(staffEduBG).ExecuteReturnIdentityAsync();
var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == workExp.Id.ObjToString()).ToListAsync();
if (attachments.Any())
{
attachments.ForEach(x =>
{
x.CreateTime = DateTime.Now;
x.TableName = "Ghra_StaffWorkExp";
x.StaffID = staffId;
x.TableKeyID = staffworkExpId;
});
await Db.Insertable(attachments).ExecuteReturnIdentityAsync();
}
}
#endregion
if (attachments.Any()) #region 证件
var Licences = await _ghrh_ResumeLicenceServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id);
for (int i = 0; i < Licences.Count; i++)
{ {
attachments.ForEach(x => var licence = Licences[i];
var staffEduBG = new Ghra_StaffLicence()
{ {
x.CreateTime = DateTime.Now; StaffID = staffId,
x.TableName = "Ghra_StaffLicence"; BeginDate = licence.BeginDate,
x.StaffID = staffId; EndDate = licence.EndDate,
x.TableKeyID = staffLicenceId; LicenceName = licence.LicenceName,
}); //LicenceLevel = licence.LicenceLevel,
await Db.Insertable(attachments).ExecuteReturnIdentityAsync(); //IsCompany = workExp.IsCompany,
LicenceNo = licence.LicenceNo,
//SeparationReason = licence.SeparationReason,
RemarkSz = licence.RemarkSz
};
var staffLicenceId = await Db.Insertable(staffEduBG).ExecuteReturnIdentityAsync();
var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == licence.Id.ObjToString()).ToListAsync();
if (attachments.Any())
{
attachments.ForEach(x =>
{
x.CreateTime = DateTime.Now;
x.TableName = "Ghra_StaffLicence";
x.StaffID = staffId;
x.TableKeyID = staffLicenceId;
});
await Db.Insertable(attachments).ExecuteReturnIdentityAsync();
}
} }
} #endregion
#endregion
#region 简历培训记录 #region 简历培训记录
var Trainings = await _ghrh_ResumeTrainingServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id); var Trainings = await _ghrh_ResumeTrainingServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id);
for (int i = 0; i < Trainings.Count; i++) for (int i = 0; i < Trainings.Count; i++)
{
var training = Trainings[i];
var staffEduBG = new Ghra_StaffTraining()
{ {
StaffID = staffId, var training = Trainings[i];
BeginDate = training.BeginDate, var staffEduBG = new Ghra_StaffTraining()
EndDate = training.EndDate, {
TrainingOrgName = training.TrainingOrgName, StaffID = staffId,
ClassHour = training.ClassHour, BeginDate = training.BeginDate,
IsPass = training.IsPass == true ? 1 : 0, EndDate = training.EndDate,
CourseName = training.CourseName, TrainingOrgName = training.TrainingOrgName,
//ClassCredit = training.ClassCredit, ClassHour = training.ClassHour,
Reverse1 = training.Reverse1, IsPass = training.IsPass == true ? 1 : 0,
RemarkSz = training.RemarkSz CourseName = training.CourseName,
}; //ClassCredit = training.ClassCredit,
var staffTrainingId = await Db.Insertable(staffEduBG).ExecuteReturnIdentityAsync(); Reverse1 = training.Reverse1,
var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == training.Id.ObjToString()).ToListAsync(); RemarkSz = training.RemarkSz
};
var staffTrainingId = await Db.Insertable(staffEduBG).ExecuteReturnIdentityAsync();
var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == training.Id.ObjToString()).ToListAsync();
if (attachments.Any())
{
attachments.ForEach(x =>
{
x.CreateTime = DateTime.Now;
x.TableName = "Ghra_StaffTraining";
x.StaffID = staffId;
x.TableKeyID = staffTrainingId;
});
await Db.Insertable(attachments).ExecuteReturnIdentityAsync();
}
}
#endregion
if (attachments.Any()) #region 附件
var attachments1 = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == id.ObjToString()).ToListAsync();
if (attachments1.Any())
{ {
attachments.ForEach(x => attachments1.ForEach(x =>
{ {
x.CreateTime = DateTime.Now; x.CreateTime = DateTime.Now;
x.TableName = "Ghra_StaffTraining"; x.TableName = "Ghra_staff";
x.StaffID = staffId; x.StaffID = staffId;
x.TableKeyID = staffTrainingId; x.TableKeyID = staffId;
}); });
await Db.Insertable(attachments).ExecuteReturnIdentityAsync(); await Db.Insertable(attachments1).ExecuteReturnIdentityAsync();
} }
#endregion
} }
#endregion await Db.Ado.CommitTranAsync();
#region 附件 return true;
var attachments1 = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == id.ObjToString()).ToListAsync(); }
if (attachments1.Any()) catch (Exception)
{ {
attachments1.ForEach(x => await Db.Ado.RollbackTranAsync();
{ throw;
x.CreateTime = DateTime.Now;
x.TableName = "Ghra_staff";
x.StaffID = staffId;
x.TableKeyID = staffId;
});
await Db.Insertable(attachments1).ExecuteReturnIdentityAsync();
}
#endregion
} }
return true;
} }
#endregion #endregion
} }
Loading…
Cancel
Save