世华 薪资数据同步

master
xiaochanghai 6 months ago
parent c6f476fc0a
commit 5324cc6404
  1. 98
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs

@ -4068,7 +4068,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1
DateTime? inTime = null; DateTime? inTime = null;
long? applyOrderId = null; long? applyOrderId = null;
var applyOrder = await Db.Queryable<Ghrh_OfferApplyOrder>().Where(x => x.ResumeId == id).FirstAsync(); var applyOrder = await Db.Queryable<Ghrh_OfferApplyOrder>().Where(x => x.ResumeId == id || x.IdCardNo == entity.IdCardNo).FirstAsync();
if (applyOrder != null) if (applyOrder != null)
{ {
inTime = applyOrder.InDate; inTime = applyOrder.InDate;
@ -4363,9 +4363,95 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1
#endregion #endregion
#region 薪资项目同步 #region 薪资项目同步
if(applyOrderId != null) if (inTime != null)
{ {
var salaryConfig = await Db.Queryable<Ghrh_Config>().Where(x => x.ConfigCode == "ESS_Recruit_Custom_Check_In_Apply_Salary").FirstAsync();
var TempOrOfficial = salaryConfig?.ConfigValue ?? "Temp";
var IsEnable = 2;
var sql = $"SELECT SalaryChangeID FROM Ghrc_SalaryChange WHERE IsEnable>=1 and StaffID='{staffId}' and ChangeDate = '{inTime.Value.Date}'";
var SalaryChangeID = await Db.Ado.SqlQueryAsync<string>(sql);
if (SalaryChangeID.Any())
{
var sql1 = @$"UPDATE Ghrc_SalaryChange
SET IsEnable = 0,
UpdateBy = {App.User.ID},
UpdateTime = GETDATE (),
UpdateProg = 'SyncToStaff'
WHERE SalaryChangeID = {SalaryChangeID[0]} AND IsEnable >= 1;
UPDATE Ghrc_SalaryChangeDetail
SET IsEnable = 0,
UpdateBy = {App.User.ID},
UpdateTime = GETDATE (),
UpdateProg = 'SyncToStaff'
WHERE SalaryChangeID = {SalaryChangeID[0]} AND IsEnable >= 1;";
await Db.Ado.ExecuteCommandAsync(sql1);
}
sql = @$"open symmetric key GHR50AesKey decryption by certificate TiobonGHRCer;
INSERT INTO [dbo].[Ghrc_SalaryChange]
( StaffID,WorkNo,
ChangeDate,
ChangeTypeID ,
ChangeReasonID , ChangeFlag,
ToDoType,WorkState,RemarkSz,
SortNo,IsEnable,IsDefault,OperateLogID,
CreateBy,CreateTime,CreateProg,
TotalAmount
)
select {staffId},null,
'{inTime.Value.Date}',
30, --
1135, --
0,'Todo',1,'',
1,0,0,0,
{App.User.ID},GETDATE(), 'SyncToStaff',
dbo.FS_EncryptByKey({applyOrder?.ProbationSalary ?? 0})
Declare @N_SCID int = SCOPE_IDENTITY()
select @N_SCID";
var @N_SCID = await Db.Ado.GetIntAsync(sql);
var items = await Db.Queryable<Ghrh_OfferApplyOrderSalary>().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;
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}
union all select 'S03',{S03}
union all select 'S04',{S04}
union all select 'S05',{S05}
union all select 'S06',{S06}
union all select 'S21',{S21}
union all select 'S22',{S22}
union all select 'S23',{S23}
union all select 'S66',{S66}
union all select 'S68',{S68}
union all select 'S70',{S70}
insert into ghrc_salaryChangeDetail(SalaryChangeID,StaffID,ChangeDate,SalaryItemID,Amount,CurrencyID,Createby,CreateProg,
Reverse1,IsEnable )
select {@N_SCID},{staffId},'{inTime.Value.Date}',b.SalaryItemID,dbo.FS_EncryptByKey(a.Amount) Amount,2,
{App.User.ID}, 'SyncToStaff',
null, {IsEnable} IsEnable
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);
} }
#endregion #endregion
} }
@ -4373,10 +4459,10 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1
return true; return true;
} }
catch (Exception) catch (Exception E)
{ {
await Db.Ado.RollbackTranAsync(); await Db.Ado.RollbackTranAsync();
throw; throw E;
} }
} }
#endregion #endregion

Loading…
Cancel
Save