配合前端对接开班接口

master
xiaochanghai 4 months ago
parent 0669df261f
commit 8cc1a484dc
  1. 6
      Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs
  2. 18
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 14
      Tiobon.Core.Api/Tiobon.Core.xml
  4. 10
      Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs
  5. 7
      Tiobon.Core.Model/Base/Ghre/Ghre_OpenClassFee.Dto.Base.cs
  6. 7
      Tiobon.Core.Model/Models/Ghre/Ghre_OpenClassFee.cs
  7. 13
      Tiobon.Core.Model/View/Ghre/Ghre_OpenClassStaff.Dto.View.cs
  8. 2
      Tiobon.Core.Services/Ghre/Ghre_OpenClassFeeServices.cs
  9. 23
      Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs
  10. 39
      Tiobon.Core.Services/Ghre/Ghre_OpenClassStaffServices.cs
  11. 208
      Tiobon.Core.Services/Ghrh/Ghrh_ResumeServices.cs
  12. 18
      Tiobon.Core/Tiobon.Core.Model.xml
  13. 14
      Tiobon.Core/Tiobon.Core.xml

@ -33,7 +33,7 @@ public class Ghre_OpenClassController : BaseController<IGhre_OpenClassServices,
/// <param name="Id">开班ID</param> /// <param name="Id">开班ID</param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("QueryStaff/{Id}")] [HttpPost, Route("QueryStaff/{Id}")]
public async Task<List<Ghre_OpenClassStaffDto>> QueryStaff(long Id) => await _service.QueryStaff(Id); public async Task<ServiceResult<List<Ghre_OpenClassStaffDto>>> QueryStaff(long Id) => await _service.QueryStaff(Id);
#endregion #endregion
#region 费用 #region 费用
@ -43,7 +43,7 @@ public class Ghre_OpenClassController : BaseController<IGhre_OpenClassServices,
/// <param name="Id">开班ID</param> /// <param name="Id">开班ID</param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("QueryGroupFee/{Id}")] [HttpPost, Route("QueryGroupFee/{Id}")]
public async Task<List<Ghre_OpenClassFeeDto>> QueryGroupFee(long Id) => await _service.QueryGroupFee(Id); public async Task<ServiceResult<List<Ghre_OpenClassFeeDto>>> QueryGroupFee(long Id) => await _service.QueryGroupFee(Id);
/// <summary> /// <summary>
/// 查询个人费用 /// 查询个人费用
@ -51,6 +51,6 @@ public class Ghre_OpenClassController : BaseController<IGhre_OpenClassServices,
/// <param name="Id">开班ID</param> /// <param name="Id">开班ID</param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("QueryPersonalFee/{Id}")] [HttpPost, Route("QueryPersonalFee/{Id}")]
public async Task<List<Ghre_OpenClassFeeDto>> QueryPersonalFee(long Id) => await _service.QueryPersonalFee(Id); public async Task<ServiceResult<List<Ghre_OpenClassFeeDto>>> QueryPersonalFee(long Id) => await _service.QueryPersonalFee(Id);
#endregion #endregion
} }

@ -5115,9 +5115,9 @@
员工ID 员工ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.ItemId"> <member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.ItemCode">
<summary> <summary>
费用项目ID 费用项目
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.Amount"> <member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.Amount">
@ -19846,9 +19846,9 @@
员工ID 员工ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.ItemId"> <member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.ItemCode">
<summary> <summary>
费用项目ID 费用项目
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.Amount"> <member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.Amount">
@ -29927,6 +29927,16 @@
修改信息 修改信息
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassStaffDto.StaffNo">
<summary>
工号
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassStaffDto.StaffName">
<summary>
姓名
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_QuestionDto"> <member name="T:Tiobon.Core.Model.Models.Ghre_QuestionDto">
<summary> <summary>
题目(Dto.View) 题目(Dto.View)

@ -1160,6 +1160,20 @@
<param name="Id">开班ID</param> <param name="Id">开班ID</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_OpenClassController.QueryGroupFee(System.Int64)">
<summary>
查询团体费用
</summary>
<param name="Id">开班ID</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_OpenClassController.QueryPersonalFee(System.Int64)">
<summary>
查询个人费用
</summary>
<param name="Id">开班ID</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassFeeController"> <member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassFeeController">
<summary> <summary>
开班费用(Controller) 开班费用(Controller)

@ -1,13 +1,15 @@
namespace Tiobon.Core.IServices; using Tiobon.Core.Model;
namespace Tiobon.Core.IServices;
/// <summary> /// <summary>
/// 开班管理(自定义服务接口) /// 开班管理(自定义服务接口)
/// </summary> /// </summary>
public interface IGhre_OpenClassServices : IBaseServices<Ghre_OpenClass, Ghre_OpenClassDto, InsertGhre_OpenClassInput, EditGhre_OpenClassInput> public interface IGhre_OpenClassServices : IBaseServices<Ghre_OpenClass, Ghre_OpenClassDto, InsertGhre_OpenClassInput, EditGhre_OpenClassInput>
{ {
Task<List<Ghre_OpenClassStaffDto>> QueryStaff(long Id); Task<ServiceResult<List<Ghre_OpenClassStaffDto>>> QueryStaff(long Id);
Task<List<Ghre_OpenClassFeeDto>> QueryGroupFee(long Id); Task<ServiceResult<List<Ghre_OpenClassFeeDto>>> QueryGroupFee(long Id);
Task<List<Ghre_OpenClassFeeDto>> QueryPersonalFee(long Id); Task<ServiceResult<List<Ghre_OpenClassFeeDto>>> QueryPersonalFee(long Id);
} }

@ -6,7 +6,7 @@
* *
* Ver * Ver
* *
*V0.01 2025/2/8 14:57:45 SimonHsiao *V0.01 2025/2/11 13:34:32 SimonHsiao
* *
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
* *
@ -34,9 +34,10 @@ public class Ghre_OpenClassFeeBase
public int? StaffId { get; set; } public int? StaffId { get; set; }
/// <summary> /// <summary>
/// 费用项目ID /// 费用项目
/// </summary> /// </summary>
public long? ItemId { get; set; } [Display(Name = "ItemCode"), Description("费用项目"), MaxLength(32, ErrorMessage = "费用项目 不能超过 32 个字符")]
public string ItemCode { get; set; }
/// <summary> /// <summary>
/// 金额 /// 金额

@ -6,7 +6,7 @@
* *
* Ver * Ver
* *
*V0.01 2025/2/8 14:57:45 SimonHsiao *V0.01 2025/2/11 13:34:32 SimonHsiao
* *
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved. * Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
* *
@ -35,9 +35,10 @@ public class Ghre_OpenClassFee : BasePoco
public int? StaffId { get; set; } public int? StaffId { get; set; }
/// <summary> /// <summary>
/// 费用项目ID /// 费用项目
/// </summary> /// </summary>
public long? ItemId { get; set; } [Display(Name = "ItemCode"), Description("费用项目"), MaxLength(32, ErrorMessage = "费用项目 不能超过 32 个字符")]
public string ItemCode { get; set; }
/// <summary> /// <summary>
/// 金额 /// 金额

@ -31,4 +31,17 @@ public class Ghre_OpenClassStaffDto : Ghre_OpenClassStaff
/// 修改信息 /// 修改信息
/// </summary> /// </summary>
public string UpdateDataInfo { get; set; } public string UpdateDataInfo { get; set; }
/// <summary>
/// 工号
/// </summary>
public string StaffNo { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string StaffName { get; set; }
public DateTime? Indate { get; set; }
public string TitleName { get; set; }
public string DeptName { get; set; }
public string Email { get; set; }
} }

@ -24,7 +24,7 @@ public class Ghre_OpenClassFeeServices : BaseServices<Ghre_OpenClassFee, Ghre_Op
var DT_TableDataT1 = result.result.DT_TableDataT1[i]; var DT_TableDataT1 = result.result.DT_TableDataT1[i];
//DT_TableDataT1.Source = DT_TableDataT1.Source == "Backend" ? "后台新增" : "报名"; //DT_TableDataT1.Source = DT_TableDataT1.Source == "Backend" ? "后台新增" : "报名";
//DT_TableDataT1.OpenClassType = await GetParaLabel("TrainingOpenClassType", result.result.DT_TableDataT1[i].OpenClassType); DT_TableDataT1.ItemCode = await GetParaLabel("TrainOpenClassFee", result.result.DT_TableDataT1[i].ItemCode);
result.result.DT_TableDataT1[i] = DT_TableDataT1; result.result.DT_TableDataT1[i] = DT_TableDataT1;
} }

@ -82,8 +82,17 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas
public override async Task<long> Add(InsertGhre_OpenClassInput entity) public override async Task<long> Add(InsertGhre_OpenClassInput entity)
{ {
entity.LinkId = entity.LinkType == "Course" ? entity.CourseId : entity.CourseSceneId; entity.LinkId = entity.LinkType == "Course" ? entity.CourseId : entity.CourseSceneId;
var result = await base.Add(entity);
entity.Status = "Temporary"; entity.Status = "Temporary";
var prefixTemp = string.Empty;
if (entity.LinkType == "Course")
prefixTemp = (await Db.Queryable<Ghre_Course>().FirstAsync(x => x.Id == entity.CourseId))?.CourseNo;
else
prefixTemp = (await Db.Queryable<Ghre_CourseScene>().FirstAsync(x => x.Id == entity.CourseSceneId))?.SceneNo;
prefixTemp = prefixTemp + "K";
entity.OpenClassNo = await GenerateContinuousSequence("Ghre_OpenClass", "OpenClassNo", prefixTemp, prefixTemp.Length + 4, 4);
var result = await base.Add(entity);
return result; return result;
} }
@ -112,23 +121,23 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas
} }
#region 学员 #region 学员
public async Task<List<Ghre_OpenClassStaffDto>> QueryStaff(long Id) public async Task<ServiceResult<List<Ghre_OpenClassStaffDto>>> QueryStaff(long Id)
{ {
var result = await _ghre_OpenClassStaffServices.QueryFilterPage(new QueryBody(), $"OpenClassId='{Id}'"); var result = await _ghre_OpenClassStaffServices.QueryFilterPage(new QueryBody(), $"OpenClassId='{Id}'");
return result.result.DT_TableDataT1; return ServiceResult<List<Ghre_OpenClassStaffDto>>.OprateSuccess("查询成功!", result.result.DT_TableDataT1);
} }
#endregion #endregion
#region 费用 #region 费用
public async Task<List<Ghre_OpenClassFeeDto>> QueryGroupFee(long Id) public async Task<ServiceResult<List<Ghre_OpenClassFeeDto>>> QueryGroupFee(long Id)
{ {
var result = await _ghre_OpenClassFeeServices.QueryFilterPage(new QueryBody(), $"OpenClassId='{Id}' AND StaffId IS NULL"); var result = await _ghre_OpenClassFeeServices.QueryFilterPage(new QueryBody(), $"OpenClassId='{Id}' AND StaffId IS NULL");
return result.result.DT_TableDataT1; return ServiceResult<List<Ghre_OpenClassFeeDto>>.OprateSuccess("查询成功!", result.result.DT_TableDataT1);
} }
public async Task<List<Ghre_OpenClassFeeDto>> QueryPersonalFee(long Id) public async Task<ServiceResult<List<Ghre_OpenClassFeeDto>>> QueryPersonalFee(long Id)
{ {
var result = await _ghre_OpenClassFeeServices.QueryFilterPage(new QueryBody(), $"OpenClassId='{Id}' AND StaffId IS NOT NULL"); var result = await _ghre_OpenClassFeeServices.QueryFilterPage(new QueryBody(), $"OpenClassId='{Id}' AND StaffId IS NOT NULL");
return result.result.DT_TableDataT1; return ServiceResult<List<Ghre_OpenClassFeeDto>>.OprateSuccess("查询成功!", result.result.DT_TableDataT1);
} }
#endregion #endregion
} }

@ -20,13 +20,40 @@ public class Ghre_OpenClassStaffServices : BaseServices<Ghre_OpenClassStaff, Ghr
var result = await base.QueryFilterPage(filter, condition, IsEnable); var result = await base.QueryFilterPage(filter, condition, IsEnable);
for (int i = 0; i < result.result.DT_TableDataT1.Count; i++) if (result.result.DT_TableDataT1.Any())
{ {
var DT_TableDataT1 = result.result.DT_TableDataT1[i]; var staffIds = result.result.DT_TableDataT1.Select(x => x.StaffId).Distinct().ToList();
var staffs = await Db.Queryable<Ghra_Staff>()
DT_TableDataT1.Source = DT_TableDataT1.Source == "Backend" ? "后台新增" : "报名"; .LeftJoin<Ghro_Dept>((o, cus) => o.DeptID == cus.DeptID)//多个条件用&&
.LeftJoin<Ghra_Title>((o, cus, oritem) => o.TitleID == oritem.TitleID)
result.result.DT_TableDataT1[i] = DT_TableDataT1; .Where(o => staffIds.Contains(o.StaffID))
.Select((o, cus, oritem) => new
{
o.StaffID,
o.StaffNo,
o.StaffName,
o.Indate,
o.Email,
oritem.TitleName,
cus.DeptName
})
.ToListAsync();
for (int i = 0; i < result.result.DT_TableDataT1.Count; i++)
{
var DT_TableDataT1 = result.result.DT_TableDataT1[i];
DT_TableDataT1.Source = DT_TableDataT1.Source == "Backend" ? "后台新增" : "报名";
var staff = staffs.Where(x => x.StaffID == DT_TableDataT1.StaffId).FirstOrDefault();
DT_TableDataT1.StaffNo = staff?.StaffNo;
DT_TableDataT1.StaffName = staff?.StaffName;
DT_TableDataT1.Indate = staff?.Indate;
DT_TableDataT1.TitleName = staff?.TitleName;
DT_TableDataT1.DeptName = staff?.DeptName;
DT_TableDataT1.DeptName = staff?.Email;
result.result.DT_TableDataT1[i] = DT_TableDataT1;
}
} }
return result; return result;
} }

@ -4963,7 +4963,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1
try try
{ {
var entity = await base.QueryById(id); var entity = await base.QueryById(id);
if (entity.IsSyncToStaff == true || await Db.Queryable<Ghra_Staff>().Where(x => x.IdCardNo == entity.IdCardNo).AnyAsync()) if (entity.IsSyncToStaff == true || await Db.Queryable<Ghra_Staff>().Where(x => x.IdCardNo == entity.IdCardNo && x.OutDate == null).AnyAsync())
{ {
return false; return false;
} }
@ -5339,109 +5339,109 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1
#endregion #endregion
#region 薪资项目同步 #region 薪资项目同步
if (companyNo == "ShiHua") // if (companyNo == "ShiHua")
{ // {
if (applyOrder != null && inTime != null && applyOrder.ProbationSalary != null) // if (applyOrder != null && inTime != null && applyOrder.ProbationSalary != null)
if (applyOrder.ProbationSalary > 0) // if (applyOrder.ProbationSalary > 0)
{ // {
var salaryConfig = await Db.Queryable<Ghrh_Config>().Where(x => x.ConfigCode == "ESS_Recruit_Custom_Check_In_Apply_Salary").FirstAsync(); // 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 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}'"; // 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); // var SalaryChangeID = await Db.Ado.SqlQueryAsync<string>(sql);
if (SalaryChangeID.Any()) // if (SalaryChangeID.Any())
{ // {
var sql1 = @$"UPDATE Ghrc_SalaryChange // var sql1 = @$"UPDATE Ghrc_SalaryChange
SET IsEnable = 0, // SET IsEnable = 0,
UpdateBy = {App.User.ID}, // UpdateBy = {App.User.ID},
UpdateTime = GETDATE (), // UpdateTime = GETDATE (),
UpdateProg = 'SyncToStaff' // UpdateProg = 'SyncToStaff'
WHERE SalaryChangeID = {SalaryChangeID[0]} AND IsEnable >= 1; // WHERE SalaryChangeID = {SalaryChangeID[0]} AND IsEnable >= 1;
UPDATE Ghrc_SalaryChangeDetail // UPDATE Ghrc_SalaryChangeDetail
SET IsEnable = 0, // SET IsEnable = 0,
UpdateBy = {App.User.ID}, // UpdateBy = {App.User.ID},
UpdateTime = GETDATE (), // UpdateTime = GETDATE (),
UpdateProg = 'SyncToStaff' // UpdateProg = 'SyncToStaff'
WHERE SalaryChangeID = {SalaryChangeID[0]} AND IsEnable >= 1;"; // 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] // INSERT INTO [dbo].[Ghrc_SalaryChange]
( StaffID,WorkNo, // ( StaffID,WorkNo,
ChangeDate, // ChangeDate,
ChangeTypeID , // ChangeTypeID ,
ChangeReasonID , ChangeFlag, // ChangeReasonID , ChangeFlag,
ToDoType,WorkState,RemarkSz, // ToDoType,WorkState,RemarkSz,
SortNo,IsEnable,IsDefault,OperateLogID, // SortNo,IsEnable,IsDefault,OperateLogID,
CreateBy,CreateTime,CreateProg, // CreateBy,CreateTime,CreateProg,
TotalAmount // TotalAmount
) // )
select {staffId},null, // select {staffId},null,
'{inTime.Value.Date}', // '{inTime.Value.Date}',
23, -- // 23, --
1130, -- // 1130, --
0,'Todo',1,'', // 0,'Todo',1,'',
1,2,0,0, // 1,2,0,0,
{App.User.ID},GETDATE(), 'SyncToStaff', // {App.User.ID},GETDATE(), 'SyncToStaff',
dbo.FS_EncryptByKey({applyOrder?.ProbationSalary ?? 0}) // dbo.FS_EncryptByKey({applyOrder?.ProbationSalary ?? 0})
Declare @N_SCID int = SCOPE_IDENTITY() // Declare @N_SCID int = SCOPE_IDENTITY()
select @N_SCID"; // 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, // SET A.Reverse1 = b.SalaryItemNo,
A.UpdateTime = getdate (), // A.UpdateTime = getdate (),
A.UpdateProg = 'SyncToStaff' // A.UpdateProg = 'SyncToStaff'
FROM Ghrh_OfferApplyOrderSalary A // FROM Ghrh_OfferApplyOrderSalary A
JOIN Ghrc_SalaryItem b ON A.SalaryItemId = b.SalaryItemID // JOIN Ghrc_SalaryItem b ON A.SalaryItemId = b.SalaryItemID
WHERE A.Reverse1 IS NULL"; // WHERE A.Reverse1 IS NULL";
await Db.Ado.ExecuteCommandAsync(sql); // await Db.Ado.ExecuteCommandAsync(sql);
var items = await Db.Queryable<Ghrh_OfferApplyOrderSalary>().Where(x => x.OrderId == applyOrder.Id).ToListAsync(); // 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 S02 = items.Where(x => x.Reverse1 == "S02").FirstOrDefault()?.Amount ?? 0;
var S03 = items.Where(x => x.Reverse1 == "S03").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 S04 = items.Where(x => x.Reverse1 == "S04").FirstOrDefault()?.Amount ?? 0;
var S05 = items.Where(x => x.Reverse1 == "S05").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 S06 = items.Where(x => x.Reverse1 == "S06").FirstOrDefault()?.Amount ?? 0;
var S21 = items.Where(x => x.Reverse1 == "S21").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 S22 = items.Where(x => x.Reverse1 == "S22").FirstOrDefault()?.Amount ?? 0;
var S23 = items.Where(x => x.Reverse1 == "S23").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 S66 = items.Where(x => x.Reverse1 == "S66").FirstOrDefault()?.Amount ?? 0;
var S68 = items.Where(x => x.Reverse1 == "S68").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 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)) // Declare @Regular_SalaryDetail table (SalaryItemNo nvarchar(100), Amount Decimal(18,2))
insert into @Regular_SalaryDetail //insert into @Regular_SalaryDetail
select 'S02',{S02} //select 'S02',{S02}
union all select 'S03',{S03} //union all select 'S03',{S03}
union all select 'S04',{S04} //union all select 'S04',{S04}
union all select 'S05',{S05} //union all select 'S05',{S05}
union all select 'S06',{S06} //union all select 'S06',{S06}
union all select 'S21',{S21} //union all select 'S21',{S21}
union all select 'S22',{S22} //union all select 'S22',{S22}
union all select 'S23',{S23} //union all select 'S23',{S23}
union all select 'S66',{S66} //union all select 'S66',{S66}
union all select 'S68',{S68} //union all select 'S68',{S68}
union all select 'S70',{S70} //union all select 'S70',{S70}
insert into ghrc_salaryChangeDetail(SalaryChangeID,StaffID,ChangeDate,SalaryItemID,Amount,CurrencyID,Createby,CreateProg, //insert into ghrc_salaryChangeDetail(SalaryChangeID,StaffID,ChangeDate,SalaryItemID,Amount,CurrencyID,Createby,CreateProg,
Reverse1,IsEnable ) // Reverse1,IsEnable )
select {@N_SCID},{staffId},'{inTime.Value.Date}',b.SalaryItemID,dbo.FS_EncryptByKey(a.Amount) Amount,2, //select {@N_SCID},{staffId},'{inTime.Value.Date}',b.SalaryItemID,dbo.FS_EncryptByKey(a.Amount) Amount,2,
{App.User.ID}, 'SyncToStaff', // {App.User.ID}, 'SyncToStaff',
null, {IsEnable} IsEnable // null, {IsEnable} IsEnable
from @Regular_SalaryDetail a inner join Ghrc_SalaryItem b on a.SalaryItemNo = b.SalaryItemNo //from @Regular_SalaryDetail a inner join Ghrc_SalaryItem b on a.SalaryItemNo = b.SalaryItemNo
where b.IsEnable = 1 //where b.IsEnable = 1
and ISNULL(a.Amount,0) > 0"; //and ISNULL(a.Amount,0) > 0";
await Db.Ado.ExecuteCommandAsync(sql); // await Db.Ado.ExecuteCommandAsync(sql);
} // }
} // }
#endregion #endregion
} }
await Db.Ado.CommitTranAsync(); await Db.Ado.CommitTranAsync();

@ -5115,9 +5115,9 @@
员工ID 员工ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.ItemId"> <member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.ItemCode">
<summary> <summary>
费用项目ID 费用项目
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.Amount"> <member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.Amount">
@ -19846,9 +19846,9 @@
员工ID 员工ID
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.ItemId"> <member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.ItemCode">
<summary> <summary>
费用项目ID 费用项目
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.Amount"> <member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.Amount">
@ -29927,6 +29927,16 @@
修改信息 修改信息
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassStaffDto.StaffNo">
<summary>
工号
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassStaffDto.StaffName">
<summary>
姓名
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_QuestionDto"> <member name="T:Tiobon.Core.Model.Models.Ghre_QuestionDto">
<summary> <summary>
题目(Dto.View) 题目(Dto.View)

@ -1160,6 +1160,20 @@
<param name="Id">开班ID</param> <param name="Id">开班ID</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_OpenClassController.QueryGroupFee(System.Int64)">
<summary>
查询团体费用
</summary>
<param name="Id">开班ID</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_OpenClassController.QueryPersonalFee(System.Int64)">
<summary>
查询个人费用
</summary>
<param name="Id">开班ID</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassFeeController"> <member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassFeeController">
<summary> <summary>
开班费用(Controller) 开班费用(Controller)

Loading…
Cancel
Save