优化同步数据至人事资料

master
xiaochanghai 6 months ago
parent 1b383365c8
commit 07c213079f
  1. 294
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs

@ -1,10 +1,11 @@
using DinkToPdf; using DinkToPdf;
using DinkToPdf.Contracts; using DinkToPdf.Contracts;
using Google.Protobuf.WellKnownTypes;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using System.Collections.Generic; using System.ComponentModel;
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;
@ -3807,7 +3808,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
var type = sendOfferConfig?.ConfigValue ?? "Fast"; var type = sendOfferConfig?.ConfigValue ?? "Fast";
var formColumns = await QueryResumeFormColumn(); var formColumns = await QueryResumeFormColumn();
formColumns = formColumns.Where(x => x.MapTableName.IsNotEmptyOrNull() && x.MapColumnName.IsNotEmptyOrNull()).ToList(); formColumns = formColumns.Where(x => x.MapColumnName.IsNotEmptyOrNull()).ToList();
int staffId = 0; int staffId = 0;
@ -3854,40 +3855,54 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
await Update(entity, ["IsSyncToStaff", "StaffId"]); await Update(entity, ["IsSyncToStaff", "StaffId"]);
#region 家庭关系 #region 家庭关系
var list = new List<Dictionary<string, object>>(); //var list = new List<Dictionary<string, object>>();
//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 familys = await _ghrh_ResumeHomeServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id); var familys = await _ghrh_ResumeHomeServices.QueryDto(x => x.ResumeId != null && x.ResumeId == id);
for (int i = 0; i < familys.Count; i++) for (int i = 0; i < familys.Count; i++)
{ {
var family = familys[i]; var family = familys[i];
var staffEduBG = new Ghra_StaffSocialRelation() Dictionary<string, object> staffFamily = new();
{ staffFamily.Add("StaffID", staffId);
StaffID = staffId, staffFamily.Add("CreateBy", App.User.ID);
RelationType = family.RelationType, staffFamily.Add("CreateTime", DateTime.Now);
RelationName = family.RelationName, staffFamily.Add("CreateProg", null);
IDCardNo = family.IDCardNo, staffFamily.Add("CreateIP", null);
Gender = family.Gender, formColumns.Where(x => x.GroupType == "Family" && x.ColumnName != "AttachmentIDs").ToList()
Birthday = family.Birth, .ForEach(x =>
CompanyName = family.WorkCompany, {
//DeptName = family.WorkCompany, staffFamily.Add(x.MapColumnName, family.GetPropertyValue(x.ColumnName));
RelationAddress = family.RelationAddress, });
RelationTel = family.Telephone,
Reverse1 = family.RelationAge, var staffSocialRelation = await Db.Insertable(staffFamily).AS("Ghra_StaffSocialRelation").ExecuteReturnIdentityAsync();
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()) if (formColumns.Where(x => x.GroupType == "Family" && x.ColumnName == "AttachmentIDs").Any())
{ {
attachments.ForEach(x => var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == family.Id.ObjToString()).ToListAsync();
if (attachments.Any())
{ {
x.CreateTime = DateTime.Now; attachments.ForEach(x =>
x.TableName = "Ghra_StaffSocialRelation"; {
x.StaffID = staffId; x.CreateTime = DateTime.Now;
x.TableKeyID = staffSocialRelation; x.TableName = "Ghra_StaffSocialRelation";
}); x.StaffID = staffId;
await Db.Insertable(attachments).ExecuteReturnIdentityAsync(); x.TableKeyID = staffSocialRelation;
});
await Db.Insertable(attachments).ExecuteReturnIdentityAsync();
}
} }
} }
#endregion #endregion
@ -3898,30 +3913,48 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < educations.Count; i++) for (int i = 0; i < educations.Count; i++)
{ {
var education = educations[i]; var education = educations[i];
var staffEduBG = new Ghra_StaffEduBG() //var staffEduBG = new Ghra_StaffEduBG()
{ //{
StaffID = staffId, // StaffID = staffId,
BeginDate = education.BeginDate.ObjToString(), // BeginDate = education.BeginDate.ObjToString(),
EndDate = education.EndDate.ObjToString(), // EndDate = education.EndDate.ObjToString(),
SchoolName = education.SchoolName, // SchoolName = education.SchoolName,
DeptName = education.DeptName, // DeptName = education.DeptName,
DegreeLevel = education.DegreeLevel, // DegreeLevel = education.DegreeLevel,
IsGraduate = education.IsGraduate == true ? 1 : 0, // IsGraduate = education.IsGraduate == true ? 1 : 0,
RemarkSz = education.RemarkSz // RemarkSz = education.RemarkSz
}; //};
var staffEduBGId = await Db.Insertable(staffEduBG).ExecuteReturnIdentityAsync(); Dictionary<string, object> staffEduBG = new();
var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == education.Id.ObjToString()).ToListAsync(); staffEduBG.Add("StaffID", staffId);
staffEduBG.Add("CreateBy", App.User.ID);
staffEduBG.Add("CreateTime", DateTime.Now);
staffEduBG.Add("CreateProg", null);
staffEduBG.Add("CreateIP", null);
formColumns.Where(x => x.GroupType == "Education" && x.ColumnName != "AttachmentIDs").ToList()
.ForEach(x =>
{
if (x.MapColumnName != "IsGraduate")
staffEduBG.Add(x.MapColumnName, education.GetPropertyValue(x.ColumnName));
else
staffEduBG.Add(x.MapColumnName, education.GetPropertyValue(x.ColumnName).ObjToBool() == true ? 1 : 0);
});
var staffEduBGId = await Db.Insertable(staffEduBG).AS("Ghra_StaffEduBG").ExecuteReturnIdentityAsync();
if (attachments.Any()) if (formColumns.Where(x => x.GroupType == "Education" && x.ColumnName == "AttachmentIDs").Any())
{ {
attachments.ForEach(x => var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == education.Id.ObjToString()).ToListAsync();
if (attachments.Any())
{ {
x.CreateTime = DateTime.Now; attachments.ForEach(x =>
x.TableName = "Ghra_StaffEduBG"; {
x.StaffID = staffId; x.CreateTime = DateTime.Now;
x.TableKeyID = staffEduBGId; x.TableName = "Ghra_StaffEduBG";
}); x.StaffID = staffId;
await Db.Insertable(attachments).ExecuteReturnIdentityAsync(); x.TableKeyID = staffEduBGId;
});
await Db.Insertable(attachments).ExecuteReturnIdentityAsync();
}
} }
} }
#endregion #endregion
@ -3931,31 +3964,33 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < workExps.Count; i++) for (int i = 0; i < workExps.Count; i++)
{ {
var workExp = workExps[i]; var workExp = workExps[i];
var staffEduBG = new Ghra_StaffWorkExp() Dictionary<string, object> staffWorkExp = new();
staffWorkExp.Add("StaffID", staffId);
staffWorkExp.Add("CreateBy", App.User.ID);
staffWorkExp.Add("CreateTime", DateTime.Now);
staffWorkExp.Add("CreateProg", null);
staffWorkExp.Add("CreateIP", null);
formColumns.Where(x => x.GroupType == "WorkExp" && x.ColumnName != "AttachmentIDs").ToList()
.ForEach(x =>
{
staffWorkExp.Add(x.MapColumnName, workExp.GetPropertyValue(x.ColumnName));
});
var staffworkExpId = await Db.Insertable(staffWorkExp).AS("Ghra_StaffWorkExp").ExecuteReturnIdentityAsync();
if (formColumns.Where(x => x.GroupType == "WorkExp" && x.ColumnName == "AttachmentIDs").Any())
{ {
StaffID = staffId, var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == workExp.Id.ObjToString()).ToListAsync();
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()) if (attachments.Any())
{
attachments.ForEach(x =>
{ {
x.CreateTime = DateTime.Now; attachments.ForEach(x =>
x.TableName = "Ghra_StaffWorkExp"; {
x.StaffID = staffId; x.CreateTime = DateTime.Now;
x.TableKeyID = staffworkExpId; x.TableName = "Ghra_StaffWorkExp";
}); x.StaffID = staffId;
await Db.Insertable(attachments).ExecuteReturnIdentityAsync(); x.TableKeyID = staffworkExpId;
});
await Db.Insertable(attachments).ExecuteReturnIdentityAsync();
}
} }
} }
#endregion #endregion
@ -3965,31 +4000,36 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < Licences.Count; i++) for (int i = 0; i < Licences.Count; i++)
{ {
var licence = Licences[i]; var licence = Licences[i];
var staffEduBG = new Ghra_StaffLicence()
{
StaffID = staffId,
BeginDate = licence.BeginDate,
EndDate = licence.EndDate,
LicenceName = licence.LicenceName,
//LicenceLevel = licence.LicenceLevel,
//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()) Dictionary<string, object> staffLicences = new();
{ staffLicences.Add("StaffID", staffId);
attachments.ForEach(x => staffLicences.Add("CreateBy", App.User.ID);
staffLicences.Add("CreateTime", DateTime.Now);
staffLicences.Add("CreateProg", null);
staffLicences.Add("CreateIP", null);
formColumns.Where(x => x.GroupType == "Licence" && x.ColumnName != "AttachmentIDs").ToList()
.ForEach(x =>
{ {
x.CreateTime = DateTime.Now; staffLicences.Add(x.MapColumnName, licence.GetPropertyValue(x.ColumnName));
x.TableName = "Ghra_StaffLicence";
x.StaffID = staffId;
x.TableKeyID = staffLicenceId;
}); });
await Db.Insertable(attachments).ExecuteReturnIdentityAsync();
var staffLicenceId = await Db.Insertable(staffLicences).AS("Ghra_StaffLicence").ExecuteReturnIdentityAsync();
if (formColumns.Where(x => x.GroupType == "Licence" && x.ColumnName == "AttachmentIDs").Any())
{
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
@ -3999,32 +4039,52 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 AND C.Status = A.Status";
for (int i = 0; i < Trainings.Count; i++) for (int i = 0; i < Trainings.Count; i++)
{ {
var training = Trainings[i]; var training = Trainings[i];
var staffEduBG = new Ghra_StaffTraining() //var staffEduBG = new Ghra_StaffTraining()
{ //{
StaffID = staffId, // StaffID = staffId,
BeginDate = training.BeginDate, // BeginDate = training.BeginDate,
EndDate = training.EndDate, // EndDate = training.EndDate,
TrainingOrgName = training.TrainingOrgName, // TrainingOrgName = training.TrainingOrgName,
ClassHour = training.ClassHour, // ClassHour = training.ClassHour,
IsPass = training.IsPass == true ? 1 : 0, // IsPass = training.IsPass == true ? 1 : 0,
CourseName = training.CourseName, // CourseName = training.CourseName,
//ClassCredit = training.ClassCredit, // //ClassCredit = training.ClassCredit,
Reverse1 = training.Reverse1, // Reverse1 = training.Reverse1,
RemarkSz = training.RemarkSz // 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(); Dictionary<string, object> staffTraining = new();
staffTraining.Add("StaffID", staffId);
staffTraining.Add("CreateBy", App.User.ID);
staffTraining.Add("CreateTime", DateTime.Now);
staffTraining.Add("CreateProg", null);
staffTraining.Add("CreateIP", null);
formColumns.Where(x => x.GroupType == "Training" && x.ColumnName != "AttachmentIDs").ToList()
.ForEach(x =>
{
if (x.MapColumnName == "IsPasss")
staffTraining.Add(x.MapColumnName, training.GetPropertyValue(x.ColumnName).ObjToBool() == true ? 1 : 0);
else
staffTraining.Add(x.MapColumnName, training.GetPropertyValue(x.ColumnName));
});
if (attachments.Any())
var staffTrainingId = await Db.Insertable(staffTraining).AS("Ghra_StaffTraining").ExecuteReturnIdentityAsync();
if (formColumns.Where(x => x.GroupType == "Training" && x.ColumnName == "AttachmentIDs").Any())
{ {
attachments.ForEach(x => var attachments = await Db.Queryable<Ghrs_Attachment>().Where(x => x.TableName == training.Id.ObjToString()).ToListAsync();
if (attachments.Any())
{ {
x.CreateTime = DateTime.Now; attachments.ForEach(x =>
x.TableName = "Ghra_StaffTraining"; {
x.StaffID = staffId; x.CreateTime = DateTime.Now;
x.TableKeyID = staffTrainingId; x.TableName = "Ghra_StaffTraining";
}); x.StaffID = staffId;
await Db.Insertable(attachments).ExecuteReturnIdentityAsync(); x.TableKeyID = staffTrainingId;
});
await Db.Insertable(attachments).ExecuteReturnIdentityAsync();
}
} }
} }
#endregion #endregion

Loading…
Cancel
Save