新增工资/仓储/生产日报等模块,移除旧考勤模块
- 新增 PayRoll(工资)、Wms(仓储)、Prod(车速/缫丝/考勤/丝片检测/丝片台账/纤检日报/质量日报) 模块 - 新增对应 Domain 实体、Application DTO/Service、Api Controller 与前端页面 - 移除旧 Attendance 考勤模块(Controller/Service/Entity/DTO 及 5 个前端页面),由 Prod/Kaoqin 取代 - 调整路由、仪表盘、Lsjl 流丝记录实体与服务 - 更新业务种子数据与 DbSeeder - 补充工作进度文档 14-27
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
using F9WebAiTest.Application.Common;
|
||||
using F9WebAiTest.Application.Dtos.Prod;
|
||||
using F9WebAiTest.Application.Services.Prod;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace F9WebAiTest.Api.Controllers.Prod;
|
||||
|
||||
/// <summary>煮茧日报(生产-前缫):主表 + 机组 / 班次 / 机组班次</summary>
|
||||
[ApiController]
|
||||
[Route("api/prod/zjrb")]
|
||||
[Authorize]
|
||||
public class ZjrbController : ControllerBase
|
||||
{
|
||||
private readonly IZjrbService _svc;
|
||||
public ZjrbController(IZjrbService svc) => _svc = svc;
|
||||
|
||||
// ---------- 查询 ----------
|
||||
|
||||
/// <summary>日报列表(账期起止 + 车间 + 庄口/规格关键字)</summary>
|
||||
[HttpGet("list")]
|
||||
public async Task<IActionResult> GetPaged([FromQuery] DateTime dateFrom, [FromQuery] DateTime dateTo,
|
||||
[FromQuery] long depId = 0, [FromQuery] string like = "", [FromQuery] int pageIndex = 1,
|
||||
[FromQuery] int pageSize = 20)
|
||||
=> Ok(ApiResult<PageResult<ZjrbReadDto_View>>.Ok(
|
||||
await _svc.GetPagedAsync(dateFrom, dateTo, depId, like ?? string.Empty, pageIndex, pageSize)));
|
||||
|
||||
/// <summary>某条日报的机组明细</summary>
|
||||
[HttpGet("{id}/jizus")]
|
||||
public async Task<IActionResult> GetJizus(long id)
|
||||
{
|
||||
try { return Ok(ApiResult<List<ZjrbJizuDto>>.Ok(await _svc.GetJizuListAsync(id))); }
|
||||
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult<object>.Fail(ex.Message, ex.Code)); }
|
||||
}
|
||||
|
||||
/// <summary>修改回填(主表 + 班次 + 机组 + 机组班次)</summary>
|
||||
[HttpGet("{id}")]
|
||||
public async Task<IActionResult> GetForEdit(long id)
|
||||
{
|
||||
try { return Ok(ApiResult<ZjrbSaveDto>.Ok(await _svc.GetForEditAsync(id))); }
|
||||
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult<object>.Fail(ex.Message, ex.Code)); }
|
||||
}
|
||||
|
||||
/// <summary>新增默认值:按上一日结存带出上存、每桶茧量、工艺落丝桶数,并按机组车台生成机组行</summary>
|
||||
[HttpGet("defaults")]
|
||||
public async Task<IActionResult> GetDefaults([FromQuery] DateTime date, [FromQuery] long depId,
|
||||
[FromQuery] long gyzkId, [FromQuery] string guige = "")
|
||||
{
|
||||
try { return Ok(ApiResult<ZjrbSaveDto>.Ok(await _svc.BuildDefaultsAsync(date, depId, gyzkId, guige))); }
|
||||
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult<object>.Fail(ex.Message, ex.Code)); }
|
||||
}
|
||||
|
||||
// ---------- 保存 / 删除 ----------
|
||||
|
||||
[HttpPost("save")]
|
||||
public async Task<IActionResult> Save([FromBody] ZjrbSaveDto dto)
|
||||
{
|
||||
try
|
||||
{
|
||||
var id = await _svc.SaveAsync(dto);
|
||||
return Ok(ApiResult<object>.Ok(new { id }, "保存成功"));
|
||||
}
|
||||
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult<object>.Fail(ex.Message, ex.Code)); }
|
||||
}
|
||||
|
||||
[HttpDelete("{id}")]
|
||||
public async Task<IActionResult> Delete(long id)
|
||||
{
|
||||
try
|
||||
{
|
||||
await _svc.DeleteAsync(id);
|
||||
return Ok(ApiResult<object>.Ok(null, "删除成功"));
|
||||
}
|
||||
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult<object>.Fail(ex.Message, ex.Code)); }
|
||||
}
|
||||
|
||||
// ---------- 计算缫丝时长 ----------
|
||||
|
||||
/// <summary>按「日期 + 车间」整日重算机组缫丝时长(单班 9 小时 / 双班 18 小时,按茧量比例分配)</summary>
|
||||
[HttpPost("calculate-saosi-hours")]
|
||||
public async Task<IActionResult> CalculateSaosiHours([FromQuery] DateTime date, [FromQuery] long depId)
|
||||
{
|
||||
try
|
||||
{
|
||||
var changed = await _svc.CalculateJizuSaosiHoursAsync(date, depId);
|
||||
return Ok(ApiResult<object>.Ok(changed, changed > 0 ? $"已更新 {changed} 条机组缫丝时长" : "缫丝时长无变化"));
|
||||
}
|
||||
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult<object>.Fail(ex.Message, ex.Code)); }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user