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; /// 薪资配置-账期(CONFZQ):考勤统计的「前缫出勤天数」 [ApiController] [Route("api/payroll/confzq")] [Authorize] public class ConfZqController : ControllerBase { private readonly IConfZqService _svc; public ConfZqController(IConfZqService svc) => _svc = svc; private IActionResult Fail(ServiceException ex) => StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); [HttpGet("")] public async Task List([FromQuery] int? year = null) => Ok(ApiResult>.Ok(await _svc.GetListAsync(year))); [HttpGet("{year:int}/{month:int}")] public async Task Get(int year, int month) => Ok(ApiResult.Ok(await _svc.GetByYearMonthAsync(year, month))); [HttpPost("")] public async Task Save([FromBody] ConfZqDto dto) { try { return Ok(ApiResult.Ok(new { id = await _svc.SaveAsync(dto) }, "保存成功")); } catch (ServiceException ex) { return Fail(ex); } } [HttpDelete("{id:long}")] public async Task Delete(long id) { try { await _svc.DeleteAsync(id); return Ok(ApiResult.Ok(null, "删除成功")); } catch (ServiceException ex) { return Fail(ex); } } } /// 薪资配置-职工(CONFEMPLOYEE):法定假小时数 / 是否学工 [ApiController] [Route("api/payroll/confemployee")] [Authorize] public class ConfEmployeeController : ControllerBase { private readonly IConfEmployeeService _svc; public ConfEmployeeController(IConfEmployeeService svc) => _svc = svc; private IActionResult Fail(ServiceException ex) => StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); [HttpGet("")] public async Task List([FromQuery] long? employeeId = null, [FromQuery] long? worktypeId = null) => Ok(ApiResult>.Ok(await _svc.GetListAsync(employeeId, worktypeId))); [HttpPost("")] public async Task Save([FromBody] ConfEmployeeDto dto) { try { return Ok(ApiResult.Ok(new { id = await _svc.SaveAsync(dto) }, "保存成功")); } catch (ServiceException ex) { return Fail(ex); } } [HttpDelete("{id:long}")] public async Task Delete(long id) { try { await _svc.DeleteAsync(id); return Ok(ApiResult.Ok(null, "删除成功")); } catch (ServiceException ex) { return Fail(ex); } } } /// 岗位胜任考核:考核结果决定加班费单价档位 [ApiController] [Route("api/payroll/gwsrkh")] [Authorize] public class GwsrkhController : ControllerBase { private readonly IGwsrkhService _svc; public GwsrkhController(IGwsrkhService svc) => _svc = svc; private IActionResult Fail(ServiceException ex) => StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); [HttpGet("")] public async Task List([FromQuery] int year, [FromQuery] int month, [FromQuery] long depId = 0) => Ok(ApiResult>.Ok(await _svc.GetListAsync(year, month, depId))); [HttpPost("")] public async Task Save([FromBody] GwsrkhDto dto) { try { return Ok(ApiResult.Ok(new { id = await _svc.SaveAsync(dto) }, "保存成功")); } catch (ServiceException ex) { return Fail(ex); } } [HttpDelete("{id:long}")] public async Task Delete(long id) { try { await _svc.DeleteAsync(id); return Ok(ApiResult.Ok(null, "删除成功")); } catch (ServiceException ex) { return Fail(ex); } } }