新增开班管理学员导出Excel接口

master
xiaochanghai 4 months ago
parent 2c9ee38e47
commit b4d2186b79
  1. 20
      Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs
  2. 14
      Tiobon.Core.Api/Tiobon.Core.xml
  3. 4
      Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs
  4. 5
      Tiobon.Core.IServices/Ghre/IGhre_OpenClassStaffServices.cs
  5. 2
      Tiobon.Core.Model/View/Ghre/Ghre_OpenClassStaff.Dto.View.cs
  6. 61
      Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs
  7. 9
      Tiobon.Core.Services/Ghre/Ghre_OpenClassStaffServices.cs

@ -54,6 +54,14 @@ public class Ghre_OpenClassController : BaseController<IGhre_OpenClassServices,
/// <returns></returns>
[HttpPost, Route("DeleteStaff/{Id}")]
public async Task<ServiceResult> DeleteStaff(long Id, [FromBody] List<int> staffIds) => await _service.DeleteStaff(Id, staffIds);
/// <summary>
/// 学员导出
/// </summary>
/// <param name="Id">开班ID</param>
/// <returns></returns>
[HttpPost, Route("ExportStaff/{Id}")]
public async Task<ServiceResult<ExcelData>> ExportStaff(long Id) => await _service.ExportStaff(Id);
#endregion
#region 费用
@ -163,8 +171,6 @@ public class Ghre_OpenClassController : BaseController<IGhre_OpenClassServices,
public async Task<ServiceResult> CancelClose([FromBody] List<long> Ids) => await _service.UpdateStatus(Ids, "Opening");
#endregion
#region 成绩
/// <summary>
/// 查询成绩
@ -174,4 +180,14 @@ public class Ghre_OpenClassController : BaseController<IGhre_OpenClassServices,
[HttpPost, Route("QueryScore/{Id}")]
public async Task<ServiceResult<List<Ghre_OpenClassScore>>> QueryScore(long Id) => await _service.QueryScore(Id);
#endregion
#region 报名
/// <summary>
/// 报名
/// </summary>
/// <param name="Id">开班ID</param>
/// <returns></returns>
[HttpPost, Route("CheckIn/{Id}")]
public async Task<ServiceResult> CheckIn(long Id) => await _service.CheckIn(Id);
#endregion
}

@ -1104,6 +1104,13 @@
<param name="staffIds">员工ID列表</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_OpenClassController.ExportStaff(System.Int64)">
<summary>
学员导出
</summary>
<param name="Id">开班ID</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_OpenClassController.QueryGroupFee(System.Int64)">
<summary>
查询团体费用
@ -1155,6 +1162,13 @@
<param name="Id">开班ID</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_OpenClassController.CheckIn(System.Int64)">
<summary>
报名
</summary>
<param name="Id">开班ID</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_OpenClassFeeController">
<summary>
开班费用(Controller)

@ -27,4 +27,8 @@ public interface IGhre_OpenClassServices : IBaseServices<Ghre_OpenClass, Ghre_Op
Task<ServiceResult> UpdateStatus(List<long> ids, string status, string source = null);
Task<ServiceResult<List<Ghre_OpenClassScore>>> QueryScore(long Id);
Task<ServiceResult> CheckIn(long Id);
Task<ServiceResult<ExcelData>> ExportStaff(long Id);
}

@ -1,8 +1,11 @@
namespace Tiobon.Core.IServices;
using System.Data;
namespace Tiobon.Core.IServices;
/// <summary>
/// 开班学员(自定义服务接口)
/// </summary>
public interface IGhre_OpenClassStaffServices : IBaseServices<Ghre_OpenClassStaff, Ghre_OpenClassStaffDto, InsertGhre_OpenClassStaffInput, EditGhre_OpenClassStaffInput>
{
DataTable ToDataTable1(List<Ghre_OpenClassStaffDto> list, Dictionary<string, string> fieldDescs = null, params string[] propertyName);
}

@ -40,7 +40,7 @@ public class Ghre_OpenClassStaffDto : Ghre_OpenClassStaff
/// 姓名
/// </summary>
public string StaffName { get; set; }
public DateTime? Indate { get; set; }
public string Indate { get; set; }
public string TitleName { get; set; }
public string DeptName { get; set; }
public string Email { get; set; }

@ -1,4 +1,6 @@
namespace Tiobon.Core.Services;
using NPOI.XWPF.UserModel;
namespace Tiobon.Core.Services;
/// <summary>
/// 开班管理 (服务)
@ -241,6 +243,37 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas
.ExecuteCommandAsync();
return ServiceResult.OprateSuccess();
}
public async Task<ServiceResult<ExcelData>> ExportStaff(long Id)
{
var result1 = await _ghre_OpenClassStaffServices.QueryFilterPage(new QueryBody(), $"OpenClassId='{Id}'");
var result = new ExcelData();
result.fileName = $"开班学员{DateTimeHelper.ConvertToSecondString1(DateTime.Now)}.xlsx";
var fieldDescs = new Dictionary<string, string>
{
{ "StaffNo", "工号" },
{ "StaffName", "姓名" },
{ "DeptName", "部门" },
{ "TitleName", "岗位" },
{ "Indate", "入职日期" },
{ "Email", "邮箱" },
{ "Source", "数据来源" }
};
var dt = _ghre_OpenClassStaffServices.ToDataTable1(result1.result.DT_TableDataT1, fieldDescs, null);
// 获取所有列名
var dtColumns = dt.Columns;
var id = SnowFlakeSingle.instance.getID();
var physicsPath = $"{Environment.CurrentDirectory}{Path.DirectorySeparatorChar}wwwroot";
var path = $"{$"{Path.DirectorySeparatorChar}files{Path.DirectorySeparatorChar}export{Path.DirectorySeparatorChar}{id}{Path.DirectorySeparatorChar}"}";
if (!Directory.Exists(physicsPath + path))
Directory.CreateDirectory(physicsPath + path);
path = path + result.fileName;
NPOIHelper.ExportExcel(dt, "开班学员", "sheet1", physicsPath + path);
result.filePath = "/Advanced" + path;
return ServiceResult<ExcelData>.OprateSuccess("导出成功", result);
}
#endregion
#region 费用
@ -389,8 +422,6 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas
}
#endregion
#region 成绩
public async Task<ServiceResult<List<Ghre_OpenClassScore>>> QueryScore(long Id)
@ -421,4 +452,28 @@ WHERE B.OpenClassId = '{Id}'";
return ServiceResult<List<Ghre_OpenClassScore>>.OprateSuccess("查询成功!", entitys);
}
#endregion
#region 报名
/// <summary>
/// 报名
/// </summary>
/// <param name="Id">开班ID</param>
/// <returns></returns>
public async Task<ServiceResult> CheckIn(long Id)
{
if (!await base.AnyAsync(x => x.Id == Id))
return ServiceResult.OprateSuccess("无效的开班ID!");
if (await Db.Queryable<Ghre_OpenClassStaff>().Where(x => x.StaffId == App.User.StaffId && x.OpenClassId == Id).AnyAsync())
return ServiceResult.OprateSuccess("已报名,请勿重复提交!");
var staff = new Ghre_OpenClassStaff()
{
StaffId = App.User.StaffId,
OpenClassId = Id,
Source = "CheckIn"
};
await Db.Insertable(staff).ExecuteReturnSnowflakeIdAsync();
return ServiceResult.OprateSuccess("报名成功!");
}
#endregion
}

@ -48,10 +48,10 @@ public class Ghre_OpenClassStaffServices : BaseServices<Ghre_OpenClassStaff, Ghr
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.Indate = DateTimeHelper.ConvertToDayString(staff?.Indate);
DT_TableDataT1.TitleName = staff?.TitleName;
DT_TableDataT1.DeptName = staff?.DeptName;
DT_TableDataT1.DeptName = staff?.Email;
DT_TableDataT1.Email = staff?.Email;
result.result.DT_TableDataT1[i] = DT_TableDataT1;
}
}
@ -66,4 +66,9 @@ public class Ghre_OpenClassStaffServices : BaseServices<Ghre_OpenClassStaff, Ghr
}
return await base.Add(listEntity);
}
public DataTable ToDataTable1(List<Ghre_OpenClassStaffDto> list, Dictionary<string, string> fieldDescs = null, params string[] propertyName)
{
return ToDataTable(list, fieldDescs, propertyName);
}
}
Loading…
Cancel
Save