配合前端对接开班接口

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. 27
      Tiobon.Core.Services/Ghre/Ghre_OpenClassStaffServices.cs
  11. 204
      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>
/// <returns></returns>
[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
#region 费用
@ -43,7 +43,7 @@ public class Ghre_OpenClassController : BaseController<IGhre_OpenClassServices,
/// <param name="Id">开班ID</param>
/// <returns></returns>
[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>
/// 查询个人费用
@ -51,6 +51,6 @@ public class Ghre_OpenClassController : BaseController<IGhre_OpenClassServices,
/// <param name="Id">开班ID</param>
/// <returns></returns>
[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
}

@ -5115,9 +5115,9 @@
员工ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.ItemId">
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.ItemCode">
<summary>
费用项目ID
费用项目
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.Amount">
@ -19846,9 +19846,9 @@
员工ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.ItemId">
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.ItemCode">
<summary>
费用项目ID
费用项目
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.Amount">
@ -29927,6 +29927,16 @@
修改信息
</summary>
</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">
<summary>
题目(Dto.View)

@ -1160,6 +1160,20 @@
<param name="Id">开班ID</param>
<returns></returns>
</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">
<summary>
开班费用(Controller)

@ -1,13 +1,15 @@
namespace Tiobon.Core.IServices;
using Tiobon.Core.Model;
namespace Tiobon.Core.IServices;
/// <summary>
/// 开班管理(自定义服务接口)
/// </summary>
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
*
*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.
*
@ -34,9 +34,10 @@ public class Ghre_OpenClassFeeBase
public int? StaffId { get; set; }
/// <summary>
/// 费用项目ID
/// 费用项目
/// </summary>
public long? ItemId { get; set; }
[Display(Name = "ItemCode"), Description("费用项目"), MaxLength(32, ErrorMessage = "费用项目 不能超过 32 个字符")]
public string ItemCode { get; set; }
/// <summary>
/// 金额

@ -6,7 +6,7 @@
*
* 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.
*
@ -35,9 +35,10 @@ public class Ghre_OpenClassFee : BasePoco
public int? StaffId { get; set; }
/// <summary>
/// 费用项目ID
/// 费用项目
/// </summary>
public long? ItemId { get; set; }
[Display(Name = "ItemCode"), Description("费用项目"), MaxLength(32, ErrorMessage = "费用项目 不能超过 32 个字符")]
public string ItemCode { get; set; }
/// <summary>
/// 金额

@ -31,4 +31,17 @@ public class Ghre_OpenClassStaffDto : Ghre_OpenClassStaff
/// 修改信息
/// </summary>
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];
//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;
}

@ -82,8 +82,17 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas
public override async Task<long> Add(InsertGhre_OpenClassInput entity)
{
entity.LinkId = entity.LinkType == "Course" ? entity.CourseId : entity.CourseSceneId;
var result = await base.Add(entity);
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;
}
@ -112,23 +121,23 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas
}
#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}'");
return result.result.DT_TableDataT1;
return ServiceResult<List<Ghre_OpenClassStaffDto>>.OprateSuccess("查询成功!", result.result.DT_TableDataT1);
}
#endregion
#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");
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");
return result.result.DT_TableDataT1;
return ServiceResult<List<Ghre_OpenClassFeeDto>>.OprateSuccess("查询成功!", result.result.DT_TableDataT1);
}
#endregion
}

@ -20,14 +20,41 @@ public class Ghre_OpenClassStaffServices : BaseServices<Ghre_OpenClassStaff, Ghr
var result = await base.QueryFilterPage(filter, condition, IsEnable);
if (result.result.DT_TableDataT1.Any())
{
var staffIds = result.result.DT_TableDataT1.Select(x => x.StaffId).Distinct().ToList();
var staffs = await Db.Queryable<Ghra_Staff>()
.LeftJoin<Ghro_Dept>((o, cus) => o.DeptID == cus.DeptID)//多个条件用&&
.LeftJoin<Ghra_Title>((o, cus, oritem) => o.TitleID == oritem.TitleID)
.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;
}
}

@ -4963,7 +4963,7 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1
try
{
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;
}
@ -5339,109 +5339,109 @@ WHERE A.IsEnable = 1 AND C.IsEnable = 1
#endregion
#region 薪资项目同步
if (companyNo == "ShiHua")
{
if (applyOrder != null && inTime != null && applyOrder.ProbationSalary != null)
if (applyOrder.ProbationSalary > 0)
{
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;
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}',
23, --
1130, --
0,'Todo',1,'',
1,2,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);
sql = @"UPDATE A
SET A.Reverse1 = b.SalaryItemNo,
A.UpdateTime = getdate (),
A.UpdateProg = 'SyncToStaff'
FROM Ghrh_OfferApplyOrderSalary A
JOIN Ghrc_SalaryItem b ON A.SalaryItemId = b.SalaryItemID
WHERE A.Reverse1 IS NULL";
// if (companyNo == "ShiHua")
// {
// if (applyOrder != null && inTime != null && applyOrder.ProbationSalary != null)
// if (applyOrder.ProbationSalary > 0)
// {
// var salaryConfig = await Db.Queryable<Ghrh_Config>().Where(x => x.ConfigCode == "ESS_Recruit_Custom_Check_In_Apply_Salary").FirstAsync();
// var TempOrOfficial = salaryConfig?.ConfigValue ?? "Temp";
await Db.Ado.ExecuteCommandAsync(sql);
// var IsEnable = 2;
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);
}
}
// 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}',
// 23, --
// 1130, --
// 0,'Todo',1,'',
// 1,2,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);
// sql = @"UPDATE A
// SET A.Reverse1 = b.SalaryItemNo,
// A.UpdateTime = getdate (),
// A.UpdateProg = 'SyncToStaff'
// FROM Ghrh_OfferApplyOrderSalary A
// JOIN Ghrc_SalaryItem b ON A.SalaryItemId = b.SalaryItemID
// WHERE A.Reverse1 IS NULL";
// await Db.Ado.ExecuteCommandAsync(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
}
await Db.Ado.CommitTranAsync();

@ -5115,9 +5115,9 @@
员工ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.ItemId">
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.ItemCode">
<summary>
费用项目ID
费用项目
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFeeBase.Amount">
@ -19846,9 +19846,9 @@
员工ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.ItemId">
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.ItemCode">
<summary>
费用项目ID
费用项目
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_OpenClassFee.Amount">
@ -29927,6 +29927,16 @@
修改信息
</summary>
</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">
<summary>
题目(Dto.View)

@ -1160,6 +1160,20 @@
<param name="Id">开班ID</param>
<returns></returns>
</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">
<summary>
开班费用(Controller)

Loading…
Cancel
Save