85 lines
3.3 KiB
C#
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);
|
|
}
|
|
|
|
}
|
|
}
|