【牛尾】培训计划新增Excel导出

master
xiaochanghai 2 weeks ago
parent a393c5fc4e
commit 962e7af081
  1. BIN
      Lib/Tiobon.Core.Base.dll
  2. BIN
      Lib/Tiobon.Core.Model.Entity.dll
  3. 137
      Lib/Tiobon.Core.Model.Entity.xml
  4. 1
      Tiobon.CodeGenerator/Program.cs
  5. 6
      Tiobon.CodeGenerator/Tiobon.CodeGenerator.csproj
  6. 10
      Tiobon.Core.Api/Controllers/Ghre/Ghre_PlanController.cs
  7. 1
      Tiobon.Core.Api/GlobalUsings.cs
  8. 3
      Tiobon.Core.Api/Tiobon.Core.Api.csproj
  9. 6
      Tiobon.Core.Common/Attribute/QueryFilter.cs
  10. 2
      Tiobon.Core.Common/HttpContextUser/AspNetUser.cs
  11. 2
      Tiobon.Core.Common/HttpContextUser/IUser.cs
  12. 6
      Tiobon.Core.Common/Tiobon.Core.Common.csproj
  13. 3
      Tiobon.Core.Extensions/Tiobon.Core.Extensions.csproj
  14. 1
      Tiobon.Core.Gateway/Controllers/UserController.cs
  15. 6
      Tiobon.Core.Gateway/Tiobon.Core.Gateway.csproj
  16. 4
      Tiobon.Core.IServices/Ghre/IGhre_PlanServices.cs
  17. 9
      Tiobon.Core.IServices/GlobalUsings.cs
  18. 3
      Tiobon.Core.IServices/Tiobon.Core.IServices.csproj
  19. 6
      Tiobon.Core.Jobs/Tiobon.Core.Jobs.csproj
  20. 3
      Tiobon.Core.Model/ApiResponse.cs
  21. 1
      Tiobon.Core.Model/GlobalUsings.cs
  22. 263
      Tiobon.Core.Model/ServiceResult.cs
  23. 6
      Tiobon.Core.Model/Tiobon.Core.Model.csproj
  24. 285
      Tiobon.Core.Model/ViewModels/Menu.cs
  25. 1
      Tiobon.Core.Repository/BASE/BaseRepository.cs
  26. 1
      Tiobon.Core.Repository/BASE/IBaseRepository.cs
  27. 6
      Tiobon.Core.Repository/Tiobon.Core.Repository.csproj
  28. 46
      Tiobon.Core.Services/Ghre/Ghre_PlanServices.cs
  29. 1
      Tiobon.Core.Services/Ghre/Ghre_StudyRecordServices.cs
  30. 2
      Tiobon.Core.Services/GlobalUsings.cs
  31. 3
      Tiobon.Core.Services/Tiobon.Core.Services.csproj
  32. 1
      Tiobon.Core.Tasks/QuartzNet/ISchedulerCenter.cs
  33. 1
      Tiobon.Core.Tasks/QuartzNet/SchedulerCenterServer.cs
  34. 3
      Tiobon.Core.Tasks/Tiobon.Core.Tasks.csproj
  35. 3
      Tiobon.Core.Tests/Tiobon.Core.Tests.csproj
  36. 129
      Tiobon.Core/Tiobon.Core.Model.xml
  37. 19
      Tiobon.Core/Tiobon.Core.xml

Binary file not shown.

Binary file not shown.

@ -0,0 +1,137 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Tiobon.Core.Model.Entity</name>
</assembly>
<members>
<member name="T:Tiobon.Core.Model.Entity.ServiceResult`1">
<summary>
服务层响应实体(泛型)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Entity.ServiceResult`1.Status">
<summary>
状态码
</summary>
</member>
<member name="P:Tiobon.Core.Model.Entity.ServiceResult`1.Success">
<summary>
操作是否成功
</summary>
</member>
<member name="P:Tiobon.Core.Model.Entity.ServiceResult`1.Message">
<summary>
返回信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Entity.ServiceResult`1.MessageDev">
<summary>
开发者信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Entity.ServiceResult`1.Data">
<summary>
返回数据集合
</summary>
</member>
<member name="M:Tiobon.Core.Model.Entity.ServiceResult`1.OprateSuccess(System.String)">
<summary>
返回成功
</summary>
<param name="message">消息</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Model.Entity.ServiceResult`1.OprateSuccess(System.String,`0)">
<summary>
返回成功
</summary>
<param name="message">消息</param>
<param name="data">数据</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Model.Entity.ServiceResult`1.OprateFailed(System.String)">
<summary>
返回失败
</summary>
<param name="message">消息</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Model.Entity.ServiceResult`1.OprateFailed(System.String,`0)">
<summary>
返回失败
</summary>
<param name="message">消息</param>
<param name="data">数据</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Model.Entity.ServiceResult`1.OprateSuccess(System.Boolean,System.String,`0)">
<summary>
返回消息
</summary>
<param name="success">失败/成功</param>
<param name="message">消息</param>
<param name="data">数据</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Model.Entity.ServiceResult">
<summary>
服务层响应实体
</summary>
</member>
<member name="P:Tiobon.Core.Model.Entity.ServiceResult.Status">
<summary>
状态码
</summary>
</member>
<member name="P:Tiobon.Core.Model.Entity.ServiceResult.Success">
<summary>
操作是否成功
</summary>
</member>
<member name="P:Tiobon.Core.Model.Entity.ServiceResult.Message">
<summary>
返回信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.Entity.ServiceResult.Data">
<summary>
返回数据集合
</summary>
</member>
<member name="M:Tiobon.Core.Model.Entity.ServiceResult.OprateSuccess(System.String)">
<summary>
操作成功
</summary>
<param name="msg"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Model.Entity.ServiceResult.OprateFailed(System.String,System.Int32)">
<summary>
操作失败
</summary>
<param name="msg"></param>
<param name="status"></param>
<returns></returns>
</member>
<member name="P:Tiobon.Core.Model.Entity.DT_TableDataT`1.DT_TableDataT1">
<summary>
返回数据
</summary>
</member>
<member name="T:Tiobon.Core.Model.Entity.ServicePageResult`1">
<summary>
服务层分页响应实体(泛型)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Entity.ServicePageResult`1.Success">
<summary>
操作是否成功
</summary>
</member>
<member name="P:Tiobon.Core.Model.Entity.ServicePageResult`1.message">
<summary>
返回信息
</summary>
</member>
</members>
</doc>

@ -6,6 +6,7 @@ using Tiobon.Core.Common.DB.Dapper.Extensions;
using Tiobon.Core.Common.Seed; using Tiobon.Core.Common.Seed;
using Tiobon.Core.Extensions; using Tiobon.Core.Extensions;
using Tiobon.Core.Model; using Tiobon.Core.Model;
using Tiobon.Core.Model.Entity;
namespace JianLian.HDIS.CodeGenerator; namespace JianLian.HDIS.CodeGenerator;
class Program class Program

@ -37,4 +37,10 @@
<ProjectReference Include="..\Tiobon.Core.Extensions\Tiobon.Core.Extensions.csproj" /> <ProjectReference Include="..\Tiobon.Core.Extensions\Tiobon.Core.Extensions.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup>
</Project> </Project>

@ -59,6 +59,16 @@ public class Ghre_PlanController : BaseController<IGhre_PlanServices, Ghre_Plan,
public async Task<ServicePageResult<UshioPlanReport>> QueryUshioPlan([FromBody] QueryBody body) => await _service.QueryUshioPlan(body); public async Task<ServicePageResult<UshioPlanReport>> QueryUshioPlan([FromBody] QueryBody body) => await _service.QueryUshioPlan(body);
#endregion #endregion
#region 牛尾报表导出
/// <summary>
/// 根据条件查询数据
/// </summary>
/// <param name="body">条件</param>
/// <returns></returns>
[HttpPost, Route("QueryUshioPlanReport/ExportExcel")]
public async Task<ServiceResult<ExcelData>> ExportUshioPlan([FromBody] QueryExport body) => await _service.ExportUshioPlan(body);
#endregion
#region 培训计划达成率——宝连通 #region 培训计划达成率——宝连通
/// <summary> /// <summary>
/// 培训计划达成率——宝连通 /// 培训计划达成率——宝连通

@ -17,3 +17,4 @@ global using Tiobon.Core.Repository.UnitOfWorks;
global using Tiobon.Core.SwaggerHelper; global using Tiobon.Core.SwaggerHelper;
global using static Tiobon.Core.Extensions.SwaggerSetup; global using static Tiobon.Core.Extensions.SwaggerSetup;
global using Tiobon.Core.Base.Helper; global using Tiobon.Core.Base.Helper;
global using Tiobon.Core.Model.Entity;

@ -134,6 +134,9 @@
<Reference Include="Tiobon.Core.Base"> <Reference Include="Tiobon.Core.Base">
<HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath> <HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath>
</Reference> </Reference>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ProjectExtensions> <ProjectExtensions>

@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations; using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Linq; using System.ComponentModel.DataAnnotations;
using Tiobon.Core.Model; using Tiobon.Core.Model.Entity;
namespace Tiobon.Core.Common; namespace Tiobon.Core.Common;

@ -3,7 +3,7 @@ using Microsoft.Extensions.Logging;
using System.IdentityModel.Tokens.Jwt; using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims; using System.Security.Claims;
using Tiobon.Core.Common.Swagger; using Tiobon.Core.Common.Swagger;
using Tiobon.Core.Model; using Tiobon.Core.Model.Entity;
namespace Tiobon.Core.Common.HttpContextUser; namespace Tiobon.Core.Common.HttpContextUser;

@ -1,5 +1,5 @@
using System.Security.Claims; using System.Security.Claims;
using Tiobon.Core.Model; using Tiobon.Core.Model.Entity;
namespace Tiobon.Core.Common.HttpContextUser; namespace Tiobon.Core.Common.HttpContextUser;

@ -60,4 +60,10 @@
<Folder Include="Static\" /> <Folder Include="Static\" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup>
</Project> </Project>

@ -45,6 +45,9 @@
<Reference Include="Tiobon.Core.Base"> <Reference Include="Tiobon.Core.Base">
<HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath> <HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath>
</Reference> </Reference>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
</Project> </Project>

@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Tiobon.Core.Model.Entity;
namespace Tiobon.Core.Gateway.Controllers namespace Tiobon.Core.Gateway.Controllers
{ {

@ -35,4 +35,10 @@
<ProjectReference Include="..\Tiobon.Core.Model\Tiobon.Core.Model.csproj" /> <ProjectReference Include="..\Tiobon.Core.Model\Tiobon.Core.Model.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup>
</Project> </Project>

@ -1,6 +1,4 @@
using Tiobon.Core.Common; using Tiobon.Core.Common;
using Tiobon.Core.Model;
using Tiobon.Core.Model.ViewModels.Extend;
namespace Tiobon.Core.IServices; namespace Tiobon.Core.IServices;
@ -16,4 +14,6 @@ public interface IGhre_PlanServices : IBaseServices<Ghre_Plan, Ghre_PlanDto, Ins
Task<ServicePageResult<UshioPlanReport>> QueryUshioPlan(QueryBody filter); Task<ServicePageResult<UshioPlanReport>> QueryUshioPlan(QueryBody filter);
Task<ServicePageResult<CompletionRateBLT>> QueryCompletionRateBLT(QueryBody filter); Task<ServicePageResult<CompletionRateBLT>> QueryCompletionRateBLT(QueryBody filter);
Task<ServiceResult<ExcelData>> ExportUshioPlan(QueryExport body);
} }

@ -1,4 +1,7 @@
global using Tiobon.Core.Base.IServices; global using Newtonsoft.Json.Linq;
global using Tiobon.Core.Model.Models; global using Tiobon.Core.Base.IServices;
global using Newtonsoft.Json.Linq;
global using Tiobon.Core.Model; global using Tiobon.Core.Model;
global using Tiobon.Core.Model.Entity;
global using Tiobon.Core.Model.Models;
global using Tiobon.Core.Model.ViewModels.Extend;

@ -21,6 +21,9 @@
<Reference Include="Tiobon.Core.Base"> <Reference Include="Tiobon.Core.Base">
<HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath> <HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath>
</Reference> </Reference>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
</Project> </Project>

@ -26,4 +26,10 @@
<ProjectReference Include="..\Tiobon.Core.Tasks\Tiobon.Core.Tasks.csproj" /> <ProjectReference Include="..\Tiobon.Core.Tasks\Tiobon.Core.Tasks.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup>
</Project> </Project>

@ -1,4 +1,5 @@
namespace Tiobon.Core.Model; 
namespace Tiobon.Core.Model;
public class ApiResponse public class ApiResponse
{ {

@ -3,3 +3,4 @@ global using System.ComponentModel;
global using System.ComponentModel.DataAnnotations; global using System.ComponentModel.DataAnnotations;
global using System.ComponentModel.DataAnnotations.Schema; global using System.ComponentModel.DataAnnotations.Schema;
global using Tiobon.Core.Model.Base; global using Tiobon.Core.Model.Base;
global using Tiobon.Core.Model.Entity;

@ -1,263 +0,0 @@
namespace Tiobon.Core.Model;
/// <summary>
/// 服务层响应实体(泛型)
/// </summary>
public class ServiceResult<T>
{
/// <summary>
/// 状态码
/// </summary>
public int Status { get; set; } = 200;
/// <summary>
/// 操作是否成功
/// </summary>
public bool Success { get; set; } = false;
/// <summary>
/// 返回信息
/// </summary>
public string Message { get; set; } = "";
/// <summary>
/// 开发者信息
/// </summary>
public string MessageDev { get; set; }
/// <summary>
/// 返回数据集合
/// </summary>
public T Data { get; set; }
public T result { get; set; }
/// <summary>
/// 返回成功
/// </summary>
/// <param name="message">消息</param>
/// <returns></returns>
public static ServiceResult<T> OprateSuccess(string message)
{
return OprateSuccess(true, message, default);
}
/// <summary>
/// 返回成功
/// </summary>
/// <param name="message">消息</param>
/// <param name="data">数据</param>
/// <returns></returns>
public static ServiceResult<T> OprateSuccess(string message, T data)
{
return OprateSuccess(true, message, data);
}
/// <summary>
/// 返回失败
/// </summary>
/// <param name="message">消息</param>
/// <returns></returns>
public static ServiceResult<T> OprateFailed(string message)
{
return OprateSuccess(false, message, default);
}
/// <summary>
/// 返回失败
/// </summary>
/// <param name="message">消息</param>
/// <param name="data">数据</param>
/// <returns></returns>
public static ServiceResult<T> OprateFailed(string message, T data)
{
return OprateSuccess(false, message, data);
}
/// <summary>
/// 返回消息
/// </summary>
/// <param name="success">失败/成功</param>
/// <param name="message">消息</param>
/// <param name="data">数据</param>
/// <returns></returns>
public static ServiceResult<T> OprateSuccess(bool success, string message, T data)
{
return new ServiceResult<T>() { Message = message, Data = data, Success = success };
}
}
/// <summary>
/// 服务层响应实体
/// </summary>
public class ServiceResult
{
/// <summary>
/// 状态码
/// </summary>
public int Status { get; set; } = 200;
/// <summary>
/// 操作是否成功
/// </summary>
public bool Success { get; set; } = false;
/// <summary>
/// 返回信息
/// </summary>
public string Message { get; set; } = "";
/// <summary>
/// 返回数据集合
/// </summary>
public object Data { get; set; }
/// <summary>
/// 操作成功
/// </summary>
/// <param name="msg"></param>
/// <returns></returns>
public static ServiceResult OprateSuccess(string msg = "操作成功")
{
return new ServiceResult
{
Message = msg,
Success = true,
Data = null
};
}
/// <summary>
/// 操作失败
/// </summary>
/// <param name="msg"></param>
/// <param name="status"></param>
/// <returns></returns>
public static ServiceResult OprateFailed(string msg = "操作失败", int status = 500)
{
return new ServiceResult
{
Message = msg,
Status = status,
Data = null,
};
}
}
//public class ServicePageResult<T>
//{
// /// <summary>
// /// 状态码
// /// </summary>
// public int Status { get; set; } = 200;
// /// <summary>
// /// 操作是否成功
// /// </summary>
// public bool Success { get; set; } = true;
// /// <summary>
// /// 返回信息
// /// </summary>
// public string Message { get; set; } = null;
// /// <summary>
// /// 当前页标
// /// </summary>
// public int Page { get; set; } = 1;
// /// <summary>
// /// 总页数
// /// </summary>
// public int PageCount => (int)Math.Ceiling((decimal)TotalCount / PageSize);
// /// <summary>
// /// 数据总数
// /// </summary>
// public int TotalCount { get; set; } = 0;
// /// <summary>
// /// 每页大小
// /// </summary>
// public int PageSize { set; get; } = 20;
// /// <summary>
// /// 返回数据
// /// </summary>
// public List<T> Data { get; set; }
// public ServicePageResult() { }
// public ServicePageResult(int page, int totalCount, int pageSize, List<T> data)
// {
// this.Page = page;
// this.TotalCount = totalCount;
// PageSize = pageSize;
// this.Data = data;
// }
// public PageModel<TOut> ConvertTo<TOut>()
// {
// return new PageModel<TOut>(Page, TotalCount, PageSize, default);
// }
// public PageModel<TOut> ConvertTo<TOut>(IMapper mapper)
// {
// var model = ConvertTo<TOut>();
// if (Data != null)
// {
// model.data = mapper.Map<List<TOut>>(Data);
// }
// return model;
// }
// public PageModel<TOut> ConvertTo<TOut>(IMapper mapper, Action<IMappingOperationOptions> options)
// {
// var model = ConvertTo<TOut>();
// if (Data != null)
// {
// model.data = mapper.Map<List<TOut>>(Data, options);
// }
// return model;
// }
//}
public class DT_TableDataT<T>
{
/// <summary>
/// 返回数据
/// </summary>
public List<T> DT_TableDataT1 { get; set; } = new List<T>();
public DT_TablePageInfoT DT_TablePageInfoT1 { get; set; } = new DT_TablePageInfoT();
public JM_TableColumnT1 JM_TableColumnT1 { get; set; } = new JM_TableColumnT1();
}
public class DT_TablePageInfoT
{
public int PageNum { get; set; }
public int PageSize { get; set; }
public int TotalCount { get; set; }
}
/// <summary>
/// 服务层分页响应实体(泛型)
/// </summary>
public class ServicePageResult<T>
{
public int code { get; set; } = 0;
public string type { get; set; } = "success";
/// <summary>
/// 操作是否成功
/// </summary>
public bool Success { get; set; } = true;
/// <summary>
/// 返回信息
/// </summary>
public string message { get; set; } = null;
public DT_TableDataT<T> result { get; set; }
public ServicePageResult(int page, int totalCount, int pageSize, List<T> data, string message = "查询成功!")
{
var result = new DT_TableDataT<T>();
result.DT_TableDataT1 = data;
result.DT_TablePageInfoT1.PageNum = page;
result.DT_TablePageInfoT1.PageSize = pageSize;
result.DT_TablePageInfoT1.TotalCount = totalCount;
this.message = message;
this.result = result;
}
}

@ -63,4 +63,10 @@
<Folder Include="Models\RootTkey\Interface\" /> <Folder Include="Models\RootTkey\Interface\" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup>
</Project> </Project>

@ -1,285 +0,0 @@
using Newtonsoft.Json.Linq;
namespace Tiobon.Core.Model;
public class MenuParam
{
public int langId { get; set; }
public string menuName { get; set; }
public string timestamp { get; set; }
public string token { get; set; }
public dynamic jsonParam { get; set; }
}
public class MenuReturn
{
public List<DT_SubMenu> DT_SubMenu { get; set; }
public List<DT_MenuColType> DT_MenuColType { get; set; }
}
public class DT_SubMenu
{
public string IconType { get; set; }
public string MenuGroupTitle { get; set; }
public string MenuName { get; set; }
public string MenuNo { get; set; }
public string MenuUrl { get; set; }
}
public class DT_MenuColType
{
public string MenuColType { get; set; }
}
public class ModuleParam
{
public int langId { get; set; }
public string menuName { get; set; }
public string timestamp { get; set; }
public string token { get; set; }
public ModulejsonParam jsonParam { get; set; }
private JObject _jsonParam;
public JObject jsonParam1
{
get { return _jsonParam; }
set
{
_jsonParam = value;
}
}
}
public class ModulejsonParam
{
public long? MasterId { get; set; }
}
public class ModuleReturn
{
public JM_PageControlT1 JM_PageControlT1 { get; set; } = new JM_PageControlT1();
public JM_TableColumnT1 JM_TableColumnT1 { get; set; } = new JM_TableColumnT1();
public List<DT_PageMutiMsg> DT_PageMutiMsg { get; set; }
public DT_Procedure DT_Procedure { get; set; } = new DT_Procedure();
}
public class ModuleESSReturn
{
public JM_PageControlT1 JM_PageControlT1 { get; set; } = new JM_PageControlT1();
public List<TableColumn> DT_TableColumnT1 { get; set; } = new List<TableColumn>();
public List<TableColumn> DT_TableDataSearchT1 { get; set; } = new List<TableColumn>();
public List<DT_PageMutiMsg> DT_PageMutiMsg { get; set; }
public DT_Procedure DT_Procedure { get; set; } = new DT_Procedure();
}
public class JM_PageControlT1
{
public List<Toolbar> Toolbar { get; set; }
}
public class Toolbar
{
public string fnKey { get; set; }
public string fnKeyValue { get; set; }
public string fnTitle { get; set; }
public string fnType { get; set; }
public string position { get; set; }
public string icon { get; set; }
public bool display { get; set; } = true;
}
public class JM_TableColumnT1
{
public List<TableColumn> TableColumn { get; set; }
}
public class TableColumn
{
public string PageSettingQueryId { get; set; }
public string elementType { get; set; }
public string field { get; set; }
public string label { get; set; }
public string Meky { get; set; }
public string multipleSelect { get; set; }
public string dataType { get; set; }
public bool? required { get; set; }
public string palceholder { get; set; }
public string dataSourceType { get; set; }
public string dataSource { get; set; }
public bool? sortable { get; set; }
public string sortOrder { get; set; }
public bool? defaultHidden { get; set; }
public bool? ConfigIsShow { get; set; }
public string filterable { get; set; }
public int width { get; set; }
public string align { get; set; }
public string fixed1 { get; set; }
public bool? @fixed { get; set; }
public bool? editable { get; set; }
public bool? searchable { get; set; }
public bool? searchRequired { get; set; }
public int? searchColumnSeq { get; set; }
public string multipleSearchValue { get; set; }
public string maxTagCount { get; set; }
public string selfDefine { get; set; }
public string selectUI { get; set; }
public string isPrimaryKey { get; set; }
public bool? isSorted { get; set; }
public bool? isHidden { get; set; }
public bool? isSearched { get; set; }
public int SortNo { get; set; }
public string searchOperator1 { get; set; }
public List<searchOperator> searchOperator { get; set; }
public object searchColumnDefaultValue { get; set; } = "";
public string AppColumnType { get; set; }
public int pageColumnID { get; set; }
public int IsRange { get; set; } = 0;
public string GroupName { get; set; }
}
public class searchOperator
{
public string @operator { get; set; }
public string operatorDesc { get; set; }
public string operatorIcon { get; set; }
}
public class TableColumn1
{
public string PageSettingQueryId { get; set; }
public string elementType { get; set; }
public string field { get; set; }
public string label { get; set; }
public string Meky { get; set; }
public string multipleSelect { get; set; }
public string dataType { get; set; }
public string required { get; set; }
public string palceholder { get; set; }
public string dataSourceType { get; set; }
public string dataSource { get; set; }
public string sortable { get; set; }
public string sortOrder { get; set; }
public string defaultHidden { get; set; }
public string ConfigIsShow { get; set; }
public string filterable { get; set; }
public int width { get; set; }
public string align { get; set; }
public bool? @fixed { get; set; }
public string fixed1 { get; set; }
public string editable { get; set; }
public string searchable { get; set; }
public string searchRequired { get; set; }
public int? searchColumnSeq { get; set; }
public string searchColumnSeq1 { get; set; }
public string multipleSearchValue { get; set; }
public string maxTagCount { get; set; }
public string selfDefine { get; set; }
public string selectUI { get; set; }
public string isPrimaryKey { get; set; }
public string isSorted { get; set; }
public string isHidden { get; set; }
public string isSearched { get; set; }
public int SortNo { get; set; }
public string searchOperator1 { get; set; }
public string searchColumnDefaultValue { get; set; }
public string AppColumnType { get; set; }
public int pageColumnID { get; set; }
}
public class DT_PageMutiMsg
{
public string field { get; set; }
public string label { get; set; }
}
public class DT_Procedure
{
public string EditProcedure { get; set; }
public string IUDProcedure { get; set; }
public string QueryProcedure { get; set; }
public string ImportExcel { get; set; }
public string DownExcelTemplate { get; set; }
public string ExportExcel { get; set; }
}
public class FlowParam
{
public string doType { get; set; }
public int? id { get; set; }
public FlowJsonParam jsonParam { get; set; }
public int langId { get; set; }
public string menuName { get; set; }
public string timestamp { get; set; }
public string token { get; set; }
public int? userId { get; set; }
}
public class FlowJsonParam
{
public int? FlowID { get; set; }
}
public class FlowReturn
{
public JM_PageFormT1 JM_PageFormT1 { get; set; } = new JM_PageFormT1();
public List<DT_PageMutiMsg> DT_PageMutiMsg { get; set; } = new List<DT_PageMutiMsg>();
public JM_PageFormActionsT1 JM_PageFormActionsT1 { get; set; } = new JM_PageFormActionsT1();
public FlowJM_TableColumnT1 JM_TableColumnT1 { get; set; } = new FlowJM_TableColumnT1();
public object DT_TableDataT1 { get; set; }
}
public class JM_PageFormActionsT1
{
public List<Toolbar> Toolbar { get; set; }
}
public class JM_PageFormT1
{
public List<PageForm> PageForm { get; set; } = new List<PageForm>();
}
public class PageForm
{
public string FlowPageStyle { get; set; }
public string RowDisplayType { get; set; }
public string apiName { get; set; }
public string disabled { get; set; }
public string labelAlign { get; set; }
public string labelCol { get; set; }
public int labelWidth { get; set; }
public string layout { get; set; }
public string pageTitle { get; set; }
}
public class FlowJM_TableColumnT1
{
public List<FlowTableColumn> TableColumn { get; set; }
}
public class FlowTableColumn
{
public bool canBatchPageDisplay { get; set; }
public int colNum { get; set; }
public int columnWidth { get; set; }
public string dataSource { get; set; }
public string dataType { get; set; }
public bool defaultHidden { get; set; }
public int dynamicShow { get; set; }
public bool editable { get; set; }
public string elementType { get; set; }
public string field { get; set; }
public bool isPrimaryKey { get; set; }
public int isSingleColumn { get; set; }
public string label { get; set; }
public bool @required { get; set; }
public bool multipleSelect { get; set; }
public int rowNum { get; set; }
public int? isFullWidth { get; set; }
public int? hasMarginLeft { get; set; }
public string GroupName { get; set; }
}
public class FlowCommitParam
{
public string doType { get; set; }
public int? id { get; set; }
public object jsonParam { get; set; }
public int langId { get; set; }
public string menuName { get; set; }
public string timestamp { get; set; }
public string token { get; set; }
public int? userId { get; set; }
}

@ -8,6 +8,7 @@ using Tiobon.Core.Common;
using Tiobon.Core.Common.DB; using Tiobon.Core.Common.DB;
using Tiobon.Core.IRepository.Base; using Tiobon.Core.IRepository.Base;
using Tiobon.Core.Model; using Tiobon.Core.Model;
using Tiobon.Core.Model.Entity;
using Tiobon.Core.Model.Models; using Tiobon.Core.Model.Models;
using Tiobon.Core.Model.Tenants; using Tiobon.Core.Model.Tenants;
using Tiobon.Core.Repository.UnitOfWorks; using Tiobon.Core.Repository.UnitOfWorks;

@ -3,6 +3,7 @@ using SqlSugar;
using System.Data; using System.Data;
using System.Linq.Expressions; using System.Linq.Expressions;
using Tiobon.Core.Common; using Tiobon.Core.Common;
using Tiobon.Core.Model.Entity;
namespace Tiobon.Core.IRepository.Base; namespace Tiobon.Core.IRepository.Base;

@ -27,4 +27,10 @@
<ProjectReference Include="..\Tiobon.Core.Model\Tiobon.Core.Model.csproj" /> <ProjectReference Include="..\Tiobon.Core.Model\Tiobon.Core.Model.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup>
</Project> </Project>

@ -384,6 +384,52 @@ public class Ghre_PlanServices : BaseServices<Ghre_Plan, Ghre_PlanDto, InsertGhr
} }
#region Excel导出
public async Task<ServiceResult<ExcelData>> ExportUshioPlan(QueryExport body)
{
QueryBody filter = new QueryBody();
filter.pageNum = 1;
filter.pageSize = 1000000;
filter.jsonParam = body.jsonParam;
filter.langId = body.langId;
filter.menuName = body.menuName;
var condition = "1=1";
if (body.exportSet.SelectRowKeys != null && body.exportSet.SelectRowKeys.Any())
condition += $" AND Id IN({string.Join(",", body.exportSet.SelectRowKeys)})";
var data = await QueryFilterPage(filter, condition, true);
var columns = data.result.JM_TableColumnT1.TableColumn;
var fieldDescs = new Dictionary<string, string>();
if (body.exportSet.ExFields.Any())
body.exportSet.ExFields.ForEach(x =>
{
if (columns.Any(o => o.field == x))
fieldDescs.Add(x, columns.FirstOrDefault(o => o.field == x)?.label);
});
else
fieldDescs = columns.ToDictionary(item => item.field, item => item.label);
var dt = ToDataTable(data.result.DT_TableDataT1, fieldDescs, null);
// 获取所有列名
var dtColumns = dt.Columns;
var id = SnowFlakeSingle.instance.getID();
var physicsPath = $"{Environment.CurrentDirectory}{Path.DirectorySeparatorChar}wwwroot";
var path = $"{$"/files/export/{id}/"}";
if (!Directory.Exists(physicsPath + path))
Directory.CreateDirectory(physicsPath + path);
path = path + body.exportSet.TitleName + ".xlsx";
NPOIHelper.ExportExcel(dt, body.exportSet.TitleName, "年度人力配置", physicsPath + path);
var result = new ExcelData();
result.filePath = "/Advanced" + path;
result.fileName = body.exportSet.TitleName + ".xlsx";
return ServiceResult<ExcelData>.OprateSuccess("导出成功", result);
}
#endregion
public override async Task<ServiceResult<string>> DownloadExcel(string menuName) public override async Task<ServiceResult<string>> DownloadExcel(string menuName)
{ {

@ -1,5 +1,4 @@
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using MongoDB.Driver.Linq;
using NPOI.HSSF.UserModel; using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel; using NPOI.SS.UserModel;
using NPOI.SS.Util; using NPOI.SS.Util;

@ -25,3 +25,5 @@ global using Tiobon.Core.Model.ViewModels.Extend;
global using Tiobon.Core.Services.BASE; global using Tiobon.Core.Services.BASE;
global using Tiobon.Core.Model.ViewModels; global using Tiobon.Core.Model.ViewModels;
global using Newtonsoft.Json; global using Newtonsoft.Json;
global using Tiobon.Core.Model.Entity;

@ -37,6 +37,9 @@
<Reference Include="Tiobon.Core.Base"> <Reference Include="Tiobon.Core.Base">
<HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath> <HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath>
</Reference> </Reference>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
</Project> </Project>

@ -1,4 +1,5 @@
using Tiobon.Core.Model; using Tiobon.Core.Model;
using Tiobon.Core.Model.Entity;
using Tiobon.Core.Model.Models; using Tiobon.Core.Model.Models;
using Tiobon.Core.Model.ViewModels; using Tiobon.Core.Model.ViewModels;

@ -6,6 +6,7 @@ using System.Reflection;
using Tiobon.Core.Common; using Tiobon.Core.Common;
using Tiobon.Core.Common.DB.Dapper; using Tiobon.Core.Common.DB.Dapper;
using Tiobon.Core.Model; using Tiobon.Core.Model;
using Tiobon.Core.Model.Entity;
using Tiobon.Core.Model.Models; using Tiobon.Core.Model.Models;
using Tiobon.Core.Model.ViewModels; using Tiobon.Core.Model.ViewModels;

@ -19,6 +19,9 @@
<Reference Include="Tiobon.Core.Base"> <Reference Include="Tiobon.Core.Base">
<HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath> <HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath>
</Reference> </Reference>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
</Project> </Project>

@ -54,6 +54,9 @@
<Reference Include="Tiobon.Core.Base"> <Reference Include="Tiobon.Core.Base">
<HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath> <HintPath>..\Lib\Tiobon.Core.Base.dll</HintPath>
</Reference> </Reference>
<Reference Include="Tiobon.Core.Model.Entity">
<HintPath>..\Lib\Tiobon.Core.Model.Entity.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions> <ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>

@ -42627,135 +42627,6 @@
查询条件( 例如:id = 1 and name = 小明) 查询条件( 例如:id = 1 and name = 小明)
</summary> </summary>
</member> </member>
<member name="T:Tiobon.Core.Model.ServiceResult`1">
<summary>
服务层响应实体(泛型)
</summary>
</member>
<member name="P:Tiobon.Core.Model.ServiceResult`1.Status">
<summary>
状态码
</summary>
</member>
<member name="P:Tiobon.Core.Model.ServiceResult`1.Success">
<summary>
操作是否成功
</summary>
</member>
<member name="P:Tiobon.Core.Model.ServiceResult`1.Message">
<summary>
返回信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.ServiceResult`1.MessageDev">
<summary>
开发者信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.ServiceResult`1.Data">
<summary>
返回数据集合
</summary>
</member>
<member name="M:Tiobon.Core.Model.ServiceResult`1.OprateSuccess(System.String)">
<summary>
返回成功
</summary>
<param name="message">消息</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Model.ServiceResult`1.OprateSuccess(System.String,`0)">
<summary>
返回成功
</summary>
<param name="message">消息</param>
<param name="data">数据</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Model.ServiceResult`1.OprateFailed(System.String)">
<summary>
返回失败
</summary>
<param name="message">消息</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Model.ServiceResult`1.OprateFailed(System.String,`0)">
<summary>
返回失败
</summary>
<param name="message">消息</param>
<param name="data">数据</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Model.ServiceResult`1.OprateSuccess(System.Boolean,System.String,`0)">
<summary>
返回消息
</summary>
<param name="success">失败/成功</param>
<param name="message">消息</param>
<param name="data">数据</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Model.ServiceResult">
<summary>
服务层响应实体
</summary>
</member>
<member name="P:Tiobon.Core.Model.ServiceResult.Status">
<summary>
状态码
</summary>
</member>
<member name="P:Tiobon.Core.Model.ServiceResult.Success">
<summary>
操作是否成功
</summary>
</member>
<member name="P:Tiobon.Core.Model.ServiceResult.Message">
<summary>
返回信息
</summary>
</member>
<member name="P:Tiobon.Core.Model.ServiceResult.Data">
<summary>
返回数据集合
</summary>
</member>
<member name="M:Tiobon.Core.Model.ServiceResult.OprateSuccess(System.String)">
<summary>
操作成功
</summary>
<param name="msg"></param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Model.ServiceResult.OprateFailed(System.String,System.Int32)">
<summary>
操作失败
</summary>
<param name="msg"></param>
<param name="status"></param>
<returns></returns>
</member>
<member name="P:Tiobon.Core.Model.DT_TableDataT`1.DT_TableDataT1">
<summary>
返回数据
</summary>
</member>
<member name="T:Tiobon.Core.Model.ServicePageResult`1">
<summary>
服务层分页响应实体(泛型)
</summary>
</member>
<member name="P:Tiobon.Core.Model.ServicePageResult`1.Success">
<summary>
操作是否成功
</summary>
</member>
<member name="P:Tiobon.Core.Model.ServicePageResult`1.message">
<summary>
返回信息
</summary>
</member>
<member name="T:Tiobon.Core.Model.Systems.DataBase.DataBaseReadType"> <member name="T:Tiobon.Core.Model.Systems.DataBase.DataBaseReadType">
<summary> <summary>
数据库读取类型 数据库读取类型

@ -176,21 +176,21 @@
<param name="commonServices"></param> <param name="commonServices"></param>
<param name="httpPollyHelper"></param> <param name="httpPollyHelper"></param>
</member> </member>
<member name="M:Tiobon.Core.Controllers.CommonController.GetMenuAsync(Tiobon.Core.Model.MenuParam)"> <member name="M:Tiobon.Core.Controllers.CommonController.GetMenuAsync(Tiobon.Core.Model.Entity.MenuParam)">
<summary> <summary>
获取菜单 获取菜单
</summary> </summary>
<param name="param"></param> <param name="param"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Controllers.CommonController.GetModuleInfoAsync(Tiobon.Core.Model.ModuleParam)"> <member name="M:Tiobon.Core.Controllers.CommonController.GetModuleInfoAsync(Tiobon.Core.Model.Entity.ModuleParam)">
<summary> <summary>
获取模块信息接口 获取模块信息接口
</summary> </summary>
<param name="param"></param> <param name="param"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Controllers.CommonController.GetESSModuleInfoAsync(Tiobon.Core.Model.ModuleParam)"> <member name="M:Tiobon.Core.Controllers.CommonController.GetESSModuleInfoAsync(Tiobon.Core.Model.Entity.ModuleParam)">
<summary> <summary>
获取模块信息接口 获取模块信息接口
</summary> </summary>
@ -222,14 +222,14 @@
<param name="langId">多语</param> <param name="langId">多语</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Controllers.CommonController.GetFlowInfoAsync(Tiobon.Core.Model.FlowParam)"> <member name="M:Tiobon.Core.Controllers.CommonController.GetFlowInfoAsync(Tiobon.Core.Model.Entity.FlowParam)">
<summary> <summary>
获取流程信息 获取流程信息
</summary> </summary>
<param name="param"></param> <param name="param"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Controllers.CommonController.CommitFlowAsync(Tiobon.Core.Model.FlowCommitParam)"> <member name="M:Tiobon.Core.Controllers.CommonController.CommitFlowAsync(Tiobon.Core.Model.Entity.FlowCommitParam)">
<summary> <summary>
流程提交处理 流程提交处理
</summary> </summary>
@ -910,7 +910,7 @@
考试(Controller) 考试(Controller)
</summary> </summary>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_ExamController.GetModuleInfo(Tiobon.Core.Model.ModuleParam)"> <member name="M:Tiobon.Core.Api.Controllers.Ghre_ExamController.GetModuleInfo(Tiobon.Core.Model.Entity.ModuleParam)">
<summary> <summary>
查询初始化数据 查询初始化数据
</summary> </summary>
@ -1370,6 +1370,13 @@
<param name="body">条件</param> <param name="body">条件</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_PlanController.ExportUshioPlan(Tiobon.Core.Common.QueryExport)">
<summary>
根据条件查询数据
</summary>
<param name="body">条件</param>
<returns></returns>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_PlanController.QueryCompletionRateBLT(Tiobon.Core.Common.QueryBody)"> <member name="M:Tiobon.Core.Api.Controllers.Ghre_PlanController.QueryCompletionRateBLT(Tiobon.Core.Common.QueryBody)">
<summary> <summary>
培训计划达成率——宝连通 培训计划达成率——宝连通

Loading…
Cancel
Save