AdoS8DashboardController.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Admin.NET.Plugin.AiDOP.Dto.S8;
  2. using Admin.NET.Plugin.AiDOP.Service.S8;
  3. namespace Admin.NET.Plugin.AiDOP.Controllers.S8;
  4. [ApiController]
  5. [Route("api/aidop/s8/dashboard")]
  6. [NonUnify]
  7. public class AdoS8DashboardController : ControllerBase
  8. {
  9. private readonly S8DashboardService _svc;
  10. private readonly S8DashboardCellDataService _cellSvc;
  11. public AdoS8DashboardController(S8DashboardService svc, S8DashboardCellDataService cellSvc)
  12. {
  13. _svc = svc;
  14. _cellSvc = cellSvc;
  15. }
  16. [HttpGet("overview")]
  17. public async Task<IActionResult> OverviewAsync([FromQuery] long tenantId = 1, [FromQuery] long factoryId = 1) =>
  18. Ok(await _svc.GetOverviewAsync(tenantId, factoryId));
  19. [HttpGet("trends")]
  20. public async Task<IActionResult> TrendsAsync([FromQuery] long tenantId = 1, [FromQuery] long factoryId = 1,
  21. [FromQuery] int days = 14) =>
  22. Ok(await _svc.GetTrendsAsync(tenantId, factoryId, days));
  23. [HttpGet("distributions")]
  24. public async Task<IActionResult> DistributionsAsync([FromQuery] long tenantId = 1, [FromQuery] long factoryId = 1) =>
  25. Ok(await _svc.GetDistributionsAsync(tenantId, factoryId));
  26. [HttpGet("quick-exceptions")]
  27. public async Task<IActionResult> QuickExceptionsAsync([FromQuery] long tenantId = 1, [FromQuery] long factoryId = 1,
  28. [FromQuery] string mode = "latest") =>
  29. Ok(await _svc.GetQuickExceptionsAsync(tenantId, factoryId, mode));
  30. [HttpGet("dept-backlog")]
  31. public async Task<IActionResult> DeptBacklogAsync([FromQuery] long tenantId = 1, [FromQuery] long factoryId = 1) =>
  32. Ok(await _svc.GetDeptBacklogAsync(tenantId, factoryId));
  33. [HttpGet("dim-trends")]
  34. public async Task<IActionResult> DimTrendsAsync(
  35. [FromQuery] long tenantId = 1,
  36. [FromQuery] long factoryId = 1,
  37. [FromQuery] string dim = "object",
  38. [FromQuery] int days = 14) =>
  39. Ok(await _svc.GetDimTrendsAsync(tenantId, factoryId, dim, days));
  40. /// <summary>
  41. /// 按配置获取单个大屏卡片的数据。配置来源 ado_s8_dashboard_cell_config。
  42. /// </summary>
  43. [HttpGet("cell-data")]
  44. public async Task<IActionResult> CellDataAsync([FromQuery] AdoS8CellDataQueryDto q)
  45. {
  46. try { return Ok(await _cellSvc.GetAsync(q)); }
  47. catch (S8BizException ex) { return BadRequest(new { message = ex.Message }); }
  48. }
  49. }