Files
kunshan-bzfm-mes-backend/DOAN.Admin.WebApi/Controllers/MES/Group/AchievementController.cs
qianhao.xu 218a1ce86a 1
2025-02-21 13:04:44 +08:00

85 lines
3.3 KiB
C#

using DOAN.Admin.WebApi.Filters;
using DOAN.Model.MES.Group.Dto;
using DOAN.Model.MES.order.Dto;
using DOAN.Service.MES.Group.IService;
using Infrastructure.Converter;
using Microsoft.AspNetCore.Mvc;
namespace DOAN.Admin.WebApi.Controllers.MES.Group
{
/// <summary>
/// 员工绩效
/// </summary>
[Verify]
[Route("mes/groupManagement/Achievement")]
public class AchievementController : BaseController
{
private readonly IAchievementService _achievementService;
public AchievementController(IAchievementService achievementService)
{
_achievementService = achievementService;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
[HttpPost("test")]
[AllowAnonymous]
public IActionResult Test([FromBody] TestQuery parm)
{
parm.JobDatetime= parm.JobDatetime.ToLocalTime();
return SUCCESS(parm.JobDatetime);
}
/// <summary>
/// 获取y工绩效列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("get_staff_achievement_list")]
public IActionResult GetstaffAchievementList([FromBody]AchievementQueryDto parm)
{
parm.JobDatetime[0]= DOANConvertDate.ConvertLocalDateTime(parm.JobDatetime[0]);
parm.JobDatetime[1]= DOANConvertDate.ConvertLocalDateTime(parm.JobDatetime[1]);
var response = _achievementService.GetstaffAchievementList(parm);
return SUCCESS(response);
}
/// <summary>
/// 员工绩效excel导出
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
[HttpGet("export")]
[Log(Title = "员工绩效导出", BusinessType = BusinessType.EXPORT)]
[AllowAnonymous]
public IActionResult UserExport([FromQuery] AchievementQueryDto parm)
{
var data = _achievementService.GetstaffAchievementList(parm);
// 创建一个字典来映射属性名和中文标题
var columnMapping = new Dictionary<string, string>
{
{ nameof(AchievementDto.Id), "ID" },
{ nameof(AchievementDto.Worker), "员工" },
{ nameof(AchievementDto.MaterialUse), "物料领用" },
{ nameof(AchievementDto.MechanicalProcessing), "机械加工" },
{ nameof(AchievementDto.MiddleCheck), "中间检查" },
{ nameof(AchievementDto.Handgrind), "手工研磨" },
{ nameof(AchievementDto.Machinegrind), "机研磨" },
{ nameof(AchievementDto.Finegrind), "精研磨" },
{ nameof(AchievementDto.WarehouseInspection), "入库检查" },
{ nameof(AchievementDto.Shipment), "出货" }
};
// 将数据转换为字典列表,以便 MiniExcel 可以识别列名
var rows = data.Select(dto => columnMapping.ToDictionary(
mapping => mapping.Value, // 使用中文标题作为列名
mapping => dto.GetType().GetProperty(mapping.Key).GetValue(dto, null)
)).ToList();
var result = ExportExcelMini(rows, "staff", "员工绩效");
return ExportExcel(result.Item2, result.Item1);
}
}
}