using F9WebAiTest.Application.Common;
using F9WebAiTest.Application.Dtos.PayRoll;
using F9WebAiTest.Application.Services.PayRoll;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace F9WebAiTest.Api.Controllers.PayRoll;
/// 薪资计算-挡车/车头产量计算(对应 F9 薪资-挡车车头产量计算 CALCLDCCT)
[ApiController]
[Route("api/payroll/calcldcct")]
[Authorize]
public class CalcLdcctController : ControllerBase
{
private readonly ICalcLdcctService _svc;
public CalcLdcctController(ICalcLdcctService svc) => _svc = svc;
/// 列表(账期起止 + 部门 + 工种 + 姓名/庄口关键字)
[HttpGet("list")]
public async Task GetPaged([FromQuery] DateTime start, [FromQuery] DateTime end,
[FromQuery] long? depId = null, [FromQuery] long? worktypeId = null,
[FromQuery] string like = "", [FromQuery] int pageIndex = 1, [FromQuery] int pageSize = 50)
=> Ok(ApiResult>.Ok(
await _svc.GetPagedAsync(pageIndex, pageSize, start, end, depId, worktypeId, like ?? string.Empty)));
/// 一键计算(挡车工):整账期 + 部门 + 工种全量覆盖
[HttpPost("calc-dcg")]
public async Task CalcDcg([FromBody] CalcLdcctCalcDto dto)
{
try { return Ok(ApiResult.Ok(await _svc.CalcDcgAsync(dto), "计算完成")); }
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult