using Admin.NET.Plugin.AiDOP.Dto.S8; using Admin.NET.Plugin.AiDOP.Service.S8; namespace Admin.NET.Plugin.AiDOP.Controllers.S8; [ApiController] [Route("api/aidop/s8/dashboard")] [NonUnify] public class AdoS8DashboardController : ControllerBase { private readonly S8DashboardService _svc; private readonly S8DashboardCellDataService _cellSvc; public AdoS8DashboardController(S8DashboardService svc, S8DashboardCellDataService cellSvc) { _svc = svc; _cellSvc = cellSvc; } [HttpGet("overview")] public async Task OverviewAsync([FromQuery] long tenantId = 1, [FromQuery] long factoryId = 1) => Ok(await _svc.GetOverviewAsync(tenantId, factoryId)); [HttpGet("trends")] public async Task TrendsAsync([FromQuery] long tenantId = 1, [FromQuery] long factoryId = 1, [FromQuery] int days = 14) => Ok(await _svc.GetTrendsAsync(tenantId, factoryId, days)); [HttpGet("distributions")] public async Task DistributionsAsync([FromQuery] long tenantId = 1, [FromQuery] long factoryId = 1) => Ok(await _svc.GetDistributionsAsync(tenantId, factoryId)); [HttpGet("quick-exceptions")] public async Task QuickExceptionsAsync([FromQuery] long tenantId = 1, [FromQuery] long factoryId = 1, [FromQuery] string mode = "latest") => Ok(await _svc.GetQuickExceptionsAsync(tenantId, factoryId, mode)); [HttpGet("dept-backlog")] public async Task DeptBacklogAsync([FromQuery] long tenantId = 1, [FromQuery] long factoryId = 1) => Ok(await _svc.GetDeptBacklogAsync(tenantId, factoryId)); [HttpGet("dim-trends")] public async Task DimTrendsAsync( [FromQuery] long tenantId = 1, [FromQuery] long factoryId = 1, [FromQuery] string dim = "object", [FromQuery] int days = 14) => Ok(await _svc.GetDimTrendsAsync(tenantId, factoryId, dim, days)); /// /// 按配置获取单个大屏卡片的数据。配置来源 ado_s8_dashboard_cell_config。 /// [HttpGet("cell-data")] public async Task CellDataAsync([FromQuery] AdoS8CellDataQueryDto q) { try { return Ok(await _cellSvc.GetAsync(q)); } catch (S8BizException ex) { return BadRequest(new { message = ex.Message }); } } }