From dde5ab2f3d4441d479b839367d8cd812ec071791 Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Thu, 16 Jan 2025 14:19:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E8=AF=95=E7=AE=A1=E7=90=86=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=B7=BB=E5=8A=A0=E4=BA=BA=E5=91=98=E5=B9=B6=E4=BA=A7?= =?UTF-8?q?=E7=94=9F=E5=AF=B9=E5=BA=94=E5=AD=A6=E4=B9=A0=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ghre/Ghre_ExamServices.cs | 111 ++++++++++-------- .../Ghrh/Ghrh_ResumeServices.cs | 89 ++++++++------ 2 files changed, 113 insertions(+), 87 deletions(-) diff --git a/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs b/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs index 423f3dba..52f60255 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs @@ -1131,6 +1131,9 @@ public class Ghre_ExamServices : BaseServices.OprateSuccess("修改成功!", id); } } @@ -1289,57 +1292,7 @@ public class Ghre_ExamServices : BaseServices x.ExamId == id && x.Source == Consts.DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED); - var inserts = new List(); - - var snap = await Db.Queryable().FirstAsync(x => x.CourseId == entity.CourseId); - var courseTime = Db.GetDate(); - var courseEndTime = courseTime.Date.AddMonths(snap?.ValidityPeriod ?? 1); - - #region 自动给学习记录匹配考试ID - var studyRecords = await Db.Queryable() - .WhereIF(!entity.CourseId.IsNull(), x => x.CourseId == entity.CourseId) - .WhereIF(!entity.CourseSceneId.IsNull(), x => x.CourseSceneId == entity.CourseSceneId) - .Where(x => x.ExamId == null).ToListAsync(); - studyRecords.ForEach(x => x.ExamId = entity.Id); - await Db.Updateable(studyRecords).UpdateColumns(it => new { it.ExamId }).ExecuteCommandAsync(); - #endregion - - if (entity.DateType == DicExamDateType.EXAM_DATE) - { - courseEndTime = entity.EndTime.Value.Date.AddDays(1); - courseTime = courseEndTime.AddDays(-(snap?.ValidityPeriod ?? 1)); - } - - for (int i = 0; i < staffs.Count; i++) - { - var staff = staffs[i]; - - var exist = await Db.Queryable() - .WhereIF(!entity.CourseId.IsNull(), x => x.CourseId == entity.CourseId) - .WhereIF(!entity.CourseSceneId.IsNull(), x => x.CourseSceneId == entity.CourseSceneId) - .Where(x => x.ExamId == id && x.StaffId == staff.StaffId).AnyAsync(); - - if (!exist) - inserts.Add(new Ghre_StudyRecord() - { - StaffId = staff.StaffId, - ExamId = id, - CourseSnapId = snap?.Id, - CourseId = entity.CourseId, - CourseSceneId = entity.CourseSceneId, - JoinTime = courseTime, - CourseBeginTime = courseTime.Date, - CourseEndTime = courseEndTime, - CourseType = DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED, - CourseStatus = Consts.DIC_STUDY_RECORD_COURSE_STATUS_IN, - StudyStatus = DIC_STUDY_RECORD_STUDY_STATUS.NO_JOIN - }); - } - if (inserts.Any()) - await Db.Insertable(inserts).ExecuteReturnSnowflakeIdListAsync(); - } + await GenerateStudy(id); #endregion if (status == DIC_EXAM_STATUS.RELEASED || status == DIC_EXAM_STATUS.DISABLED || status == DIC_EXAM_STATUS.DRAFT) @@ -1359,6 +1312,62 @@ public class Ghre_ExamServices : BaseServices x.ExamId == id && x.Source == Consts.DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED); + var inserts = new List(); + + var snap = await Db.Queryable().FirstAsync(x => x.CourseId == entity.CourseId); + var courseTime = Db.GetDate(); + var courseEndTime = courseTime.Date.AddMonths(snap?.ValidityPeriod ?? 1); + + #region 自动给学习记录匹配考试ID + var studyRecords = await Db.Queryable() + .WhereIF(!entity.CourseId.IsNull(), x => x.CourseId == entity.CourseId) + .WhereIF(!entity.CourseSceneId.IsNull(), x => x.CourseSceneId == entity.CourseSceneId) + .Where(x => x.ExamId == null).ToListAsync(); + studyRecords.ForEach(x => x.ExamId = entity.Id); + await Db.Updateable(studyRecords).UpdateColumns(it => new { it.ExamId }).ExecuteCommandAsync(); + #endregion + + if (entity.DateType == DicExamDateType.EXAM_DATE) + { + courseEndTime = entity.EndTime.Value.Date.AddDays(1); + courseTime = courseEndTime.AddDays(-(snap?.ValidityPeriod ?? 1)); + } + + for (int i = 0; i < staffs.Count; i++) + { + var staff = staffs[i]; + + var exist = await Db.Queryable() + .WhereIF(!entity.CourseId.IsNull(), x => x.CourseId == entity.CourseId) + .WhereIF(!entity.CourseSceneId.IsNull(), x => x.CourseSceneId == entity.CourseSceneId) + .Where(x => x.ExamId == id && x.StaffId == staff.StaffId).AnyAsync(); + + if (!exist) + inserts.Add(new Ghre_StudyRecord() + { + StaffId = staff.StaffId, + ExamId = id, + CourseSnapId = snap?.Id, + CourseId = entity.CourseId, + CourseSceneId = entity.CourseSceneId, + JoinTime = courseTime, + CourseBeginTime = courseTime.Date, + CourseEndTime = courseEndTime, + CourseType = DIC_EXAM_STAFF_SOURCE.MANUAL_REQUIRED, + CourseStatus = Consts.DIC_STUDY_RECORD_COURSE_STATUS_IN, + StudyStatus = DIC_STUDY_RECORD_STUDY_STATUS.NO_JOIN + }); + } + if (inserts.Any()) + await Db.Insertable(inserts).ExecuteReturnSnowflakeIdListAsync(); + } + #endregion + public async Task GetStatus(long id) { string sql = $@"SELECT A.RoleId, B.RoleNo, B.RoleName diff --git a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs index 57679eca..a5a20f0f 100644 --- a/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs +++ b/Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs @@ -776,6 +776,11 @@ ORDER BY A.SortNo ASC"; #region 查询简历是否存在 public async Task> CheckIsExist(EditGhrh_ResumeInput input) { + if (input.Mobile.IsNullOrEmpty()) + return ServiceResult.OprateFailed(await QueryLangValue("F_ResumeMaintenance_0228", "手机号不能为空!")); + if (input.StaffName.IsNullOrEmpty()) + return ServiceResult.OprateFailed(await QueryLangValue("F_ResumeMaintenance_0229", "姓名不能为空!")); + dynamic obj = new ExpandoObject(); obj.ApplicationStatus = "Hold"; long id = 0; @@ -793,11 +798,10 @@ ORDER BY A.SortNo ASC"; }); else { - if (resume.IdCardNo.IsNotEmptyOrNull() && input.IdCardNo.IsNullOrEmpty()) + if (input.IdCardNo.IsNullOrEmpty()) return ServiceResult.OprateFailed(await QueryLangValue("F_ResumeMaintenance_0147", "请输入身份证号码后六位!")); - if (resume.IdCardNo.IsNotEmptyOrNull() && input.IdCardNo.IsNotEmptyOrNull()) - resume = await QuerySingle(x => x.Mobile == input.Mobile && x.IdCardNo.Contains(input.IdCardNo)); + resume = await QuerySingle(x => x.Mobile == input.Mobile && x.IdCardNo.Contains(input.IdCardNo)); id = resume.Id; @@ -4884,6 +4888,8 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 int staffId = 0; + var sql = "SELECT Top 1 CompanyNo from Ghro_Company where IsEnable=1"; + var companyNo = await Db.Ado.GetStringAsync(sql); await Db.Ado.BeginTranAsync(); @@ -4911,6 +4917,14 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 dict.Add("IsEnable", 1); #endregion + if (companyNo == "ShiHua") + { + dict.Add("IsCalSalary", 1); + dict.Add("Reverse15", "N"); + dict.Add("Reverse13", "Y"); + dict.Add("TaxID", 1); + } + DateTime? inTime = null; long? applyOrderId = null; var applyOrder = await Db.Queryable().Where(x => x.ResumeId == id || x.IdCardNo == entity.IdCardNo).FirstAsync(); @@ -4944,7 +4958,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 staffId = await Db.Insertable(dict).AS("Ghra_Staff").ExecuteReturnIdentityAsync(); if (staffId > 0) { - string sql = $"update Ghra_Staff set Indate='{inTime}' where StaffID={staffId} and Indate is null"; + sql = $"update Ghra_Staff set Indate='{inTime}' where StaffID={staffId} and Indate is null"; if (inTime != null) await Db.Ado.ExecuteCommandAsync(sql); if (type != "Fast") @@ -5226,19 +5240,21 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 #endregion #region 薪资项目同步 - if (applyOrder != null && inTime != null && applyOrder.ProbationSalary != null) - if (applyOrder.ProbationSalary > 0) - { - var salaryConfig = await Db.Queryable().Where(x => x.ConfigCode == "ESS_Recruit_Custom_Check_In_Apply_Salary").FirstAsync(); - var TempOrOfficial = salaryConfig?.ConfigValue ?? "Temp"; + if (companyNo == "ShiHua") + { + if (applyOrder != null && inTime != null && applyOrder.ProbationSalary != null) + if (applyOrder.ProbationSalary > 0) + { + var salaryConfig = await Db.Queryable().Where(x => x.ConfigCode == "ESS_Recruit_Custom_Check_In_Apply_Salary").FirstAsync(); + var TempOrOfficial = salaryConfig?.ConfigValue ?? "Temp"; - var IsEnable = 2; + var IsEnable = 2; - sql = $"SELECT SalaryChangeID FROM Ghrc_SalaryChange WHERE IsEnable>=1 and StaffID='{staffId}' and ChangeDate = '{inTime.Value.Date}'"; - var SalaryChangeID = await Db.Ado.SqlQueryAsync(sql); - if (SalaryChangeID.Any()) - { - var sql1 = @$"UPDATE Ghrc_SalaryChange + sql = $"SELECT SalaryChangeID FROM Ghrc_SalaryChange WHERE IsEnable>=1 and StaffID='{staffId}' and ChangeDate = '{inTime.Value.Date}'"; + var SalaryChangeID = await Db.Ado.SqlQueryAsync(sql); + if (SalaryChangeID.Any()) + { + var sql1 = @$"UPDATE Ghrc_SalaryChange SET IsEnable = 0, UpdateBy = {App.User.ID}, UpdateTime = GETDATE (), @@ -5251,10 +5267,10 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 UpdateTime = GETDATE (), UpdateProg = 'SyncToStaff' WHERE SalaryChangeID = {SalaryChangeID[0]} AND IsEnable >= 1;"; - await Db.Ado.ExecuteCommandAsync(sql1); - } + await Db.Ado.ExecuteCommandAsync(sql1); + } - sql = @$"open symmetric key GHR50AesKey decryption by certificate TiobonGHRCer; + sql = @$"open symmetric key GHR50AesKey decryption by certificate TiobonGHRCer; INSERT INTO [dbo].[Ghrc_SalaryChange] ( StaffID,WorkNo, ChangeDate, @@ -5276,9 +5292,9 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 Declare @N_SCID int = SCOPE_IDENTITY() select @N_SCID"; - var @N_SCID = await Db.Ado.GetIntAsync(sql); + var @N_SCID = await Db.Ado.GetIntAsync(sql); - sql = @"UPDATE A + sql = @"UPDATE A SET A.Reverse1 = b.SalaryItemNo, A.UpdateTime = getdate (), A.UpdateProg = 'SyncToStaff' @@ -5286,23 +5302,23 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 JOIN Ghrc_SalaryItem b ON A.SalaryItemId = b.SalaryItemID WHERE A.Reverse1 IS NULL"; - await Db.Ado.ExecuteCommandAsync(sql); + await Db.Ado.ExecuteCommandAsync(sql); - var items = await Db.Queryable().Where(x => x.OrderId == applyOrder.Id).ToListAsync(); + var items = await Db.Queryable().Where(x => x.OrderId == applyOrder.Id).ToListAsync(); - var S02 = items.Where(x => x.Reverse1 == "S02").FirstOrDefault()?.Amount ?? 0; - var S03 = items.Where(x => x.Reverse1 == "S03").FirstOrDefault()?.Amount ?? 0; - var S04 = items.Where(x => x.Reverse1 == "S04").FirstOrDefault()?.Amount ?? 0; - var S05 = items.Where(x => x.Reverse1 == "S05").FirstOrDefault()?.Amount ?? 0; - var S06 = items.Where(x => x.Reverse1 == "S06").FirstOrDefault()?.Amount ?? 0; - var S21 = items.Where(x => x.Reverse1 == "S21").FirstOrDefault()?.Amount ?? 0; - var S22 = items.Where(x => x.Reverse1 == "S22").FirstOrDefault()?.Amount ?? 0; - var S23 = items.Where(x => x.Reverse1 == "S23").FirstOrDefault()?.Amount ?? 0; - var S66 = items.Where(x => x.Reverse1 == "S66").FirstOrDefault()?.Amount ?? 0; - var S68 = items.Where(x => x.Reverse1 == "S68").FirstOrDefault()?.Amount ?? 0; - var S70 = items.Where(x => x.Reverse1 == "S70").FirstOrDefault()?.Amount ?? 0; + var S02 = items.Where(x => x.Reverse1 == "S02").FirstOrDefault()?.Amount ?? 0; + var S03 = items.Where(x => x.Reverse1 == "S03").FirstOrDefault()?.Amount ?? 0; + var S04 = items.Where(x => x.Reverse1 == "S04").FirstOrDefault()?.Amount ?? 0; + var S05 = items.Where(x => x.Reverse1 == "S05").FirstOrDefault()?.Amount ?? 0; + var S06 = items.Where(x => x.Reverse1 == "S06").FirstOrDefault()?.Amount ?? 0; + var S21 = items.Where(x => x.Reverse1 == "S21").FirstOrDefault()?.Amount ?? 0; + var S22 = items.Where(x => x.Reverse1 == "S22").FirstOrDefault()?.Amount ?? 0; + var S23 = items.Where(x => x.Reverse1 == "S23").FirstOrDefault()?.Amount ?? 0; + var S66 = items.Where(x => x.Reverse1 == "S66").FirstOrDefault()?.Amount ?? 0; + var S68 = items.Where(x => x.Reverse1 == "S68").FirstOrDefault()?.Amount ?? 0; + var S70 = items.Where(x => x.Reverse1 == "S70").FirstOrDefault()?.Amount ?? 0; - sql = @$"open symmetric key GHR50AesKey decryption by certificate TiobonGHRCer; + sql = @$"open symmetric key GHR50AesKey decryption by certificate TiobonGHRCer; Declare @Regular_SalaryDetail table (SalaryItemNo nvarchar(100), Amount Decimal(18,2)) insert into @Regular_SalaryDetail select 'S02',{S02} @@ -5324,8 +5340,9 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1 from @Regular_SalaryDetail a inner join Ghrc_SalaryItem b on a.SalaryItemNo = b.SalaryItemNo where b.IsEnable = 1 and ISNULL(a.Amount,0) > 0"; - await Db.Ado.ExecuteCommandAsync(sql); - } + await Db.Ado.ExecuteCommandAsync(sql); + } + } #endregion } await Db.Ado.CommitTranAsync();