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; // ==================== 薪资配置-工艺庄口 ==================== /// 薪资配置-工艺庄口(挡车车头产量计算的丝量/单价/系数基准) [ApiController] [Route("api/payroll/confgyzk")] [Authorize] public class ConfGyzkController : ControllerBase { private readonly IConfGyzkService _svc; public ConfGyzkController(IConfGyzkService svc) => _svc = svc; [HttpGet("list")] public async Task GetList([FromQuery] int? year = null, [FromQuery] int? month = null) => Ok(ApiResult>.Ok(await _svc.GetListAsync(year, month))); [HttpGet("{id}")] public async Task GetForEdit(long id) { try { return Ok(ApiResult.Ok(await _svc.GetForEditAsync(id))); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpPost("save")] public async Task Save([FromBody] ConfGyzkSaveDto dto) { try { var id = await _svc.SaveAsync(dto); return Ok(ApiResult.Ok(new { id }, "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpDelete("{id}")] public async Task Delete(long id) { try { await _svc.DeleteAsync(id); return Ok(ApiResult.Ok(null, "删除成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } } // ==================== 薪资配置-工种 ==================== /// 薪资配置-工种/岗位(标准上班时长、标准出勤天数及各项金额) [ApiController] [Route("api/payroll/confgz")] [Authorize] public class ConfGzController : ControllerBase { private readonly IConfGzService _svc; public ConfGzController(IConfGzService svc) => _svc = svc; [HttpGet("list")] public async Task GetList() => Ok(ApiResult>.Ok(await _svc.GetListAsync())); [HttpGet("{id}")] public async Task GetForEdit(long id) { try { return Ok(ApiResult.Ok(await _svc.GetForEditAsync(id))); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpPost("save")] public async Task Save([FromBody] ConfGzSaveDto dto) { try { var id = await _svc.SaveAsync(dto); return Ok(ApiResult.Ok(new { id }, "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpDelete("{id}")] public async Task Delete(long id) { try { await _svc.DeleteAsync(id); return Ok(ApiResult.Ok(null, "删除成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } } // ==================== 薪资配置-挡车/车头岗位 ==================== /// 薪资配置-挡车/车头岗位(按绪数档的岗位基数金额、车头工金额) [ApiController] [Route("api/payroll/confdcg")] [Authorize] public class ConfDcgController : ControllerBase { private readonly IConfDcgService _svc; public ConfDcgController(IConfDcgService svc) => _svc = svc; [HttpGet("list")] public async Task GetList() => Ok(ApiResult>.Ok(await _svc.GetListAsync())); [HttpGet("{id}")] public async Task GetForEdit(long id) { try { return Ok(ApiResult.Ok(await _svc.GetForEditAsync(id))); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpPost("save")] public async Task Save([FromBody] ConfDcgSaveDto dto) { try { var id = await _svc.SaveAsync(dto); return Ok(ApiResult.Ok(new { id }, "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpDelete("{id}")] public async Task Delete(long id) { try { await _svc.DeleteAsync(id); return Ok(ApiResult.Ok(null, "删除成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } } // ==================== 挡车纤度奖扣 ==================== /// 挡车纤度奖扣(按规格 + 纤度配置野纤的奖励/扣款) [ApiController] [Route("api/payroll/dcxdjk")] [Authorize] public class DcxdjkController : ControllerBase { private readonly IDcxdjkService _svc; public DcxdjkController(IDcxdjkService svc) => _svc = svc; [HttpGet("list")] public async Task GetList([FromQuery] string guige = "") => Ok(ApiResult>.Ok(await _svc.GetListAsync(guige ?? string.Empty))); [HttpGet("{id}")] public async Task GetForEdit(long id) { try { return Ok(ApiResult.Ok(await _svc.GetForEditAsync(id))); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpPost("save")] public async Task Save([FromBody] DcxdjkSaveDto dto) { try { var id = await _svc.SaveAsync(dto); return Ok(ApiResult.Ok(new { id }, "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpDelete("{id}")] public async Task Delete(long id) { try { await _svc.DeleteAsync(id); return Ok(ApiResult.Ok(null, "删除成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } } // ==================== 薪资价格配置 ==================== /// 薪资价格配置(如「薪资.前缫」下的挡车工/车头工计件等级奖扣单价) [ApiController] [Route("api/payroll/xzjg")] [Authorize] public class XzjgController : ControllerBase { private readonly IXzjgService _svc; public XzjgController(IXzjgService svc) => _svc = svc; [HttpGet("list")] public async Task GetList([FromQuery] string group = "") => Ok(ApiResult>.Ok(await _svc.GetListAsync(group ?? string.Empty))); [HttpGet("{id}")] public async Task GetForEdit(long id) { try { return Ok(ApiResult.Ok(await _svc.GetForEditAsync(id))); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpPost("save")] public async Task Save([FromBody] XzjgSaveDto dto) { try { var id = await _svc.SaveAsync(dto); return Ok(ApiResult.Ok(new { id }, "保存成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } [HttpDelete("{id}")] public async Task Delete(long id) { try { await _svc.DeleteAsync(id); return Ok(ApiResult.Ok(null, "删除成功")); } catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult.Fail(ex.Message, ex.Code)); } } }