AdoS8MonitoringController.cs 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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/monitoring")]
  6. [NonUnify]
  7. public class AdoS8MonitoringController : ControllerBase
  8. {
  9. private readonly S8MonitoringService _svc;
  10. public AdoS8MonitoringController(S8MonitoringService svc)
  11. {
  12. _svc = svc;
  13. }
  14. /// <summary>
  15. /// 异常监控汇总——供 4 个监控页顶部徽标和模块汇总表使用。
  16. /// sceneCode 不传时返回全部模块聚合(综合全景页)。
  17. /// </summary>
  18. [HttpGet("summary")]
  19. public async Task<IActionResult> GetSummaryAsync([FromQuery] AdoS8MonitoringSummaryQueryDto q)
  20. => Ok(await _svc.GetSummaryAsync(q));
  21. /// <summary>
  22. /// 9宫格数据:S1-S7 订单健康分布 + S8业务类别汇总 + S9部门汇总。
  23. /// </summary>
  24. [HttpGet("order-grid")]
  25. public async Task<IActionResult> GetOrderGridAsync([FromQuery] string? period = null)
  26. => Ok(await _svc.GetOrderGridAsync(period: period));
  27. /// <summary>
  28. /// S8-DELIVERY-PAGE-TYPE-TOTAL-ALIGN-1:Delivery 页近 N 日交付异常趋势。
  29. /// 口径 module_code IN (S1,S7) AND exception_type_code IN
  30. /// (ORDER_DUE_DATE_DELAY / PRODUCT_DESIGN_DELAY / DELIVERY_DELAY_WARNING)。
  31. /// </summary>
  32. [HttpGet("delivery-trend")]
  33. public async Task<IActionResult> GetDeliveryTrendAsync(long tenantId = 1, long factoryId = 1, int days = 7, string? period = null)
  34. => Ok(await _svc.GetDeliveryTrendAsync(tenantId, factoryId, days, period));
  35. /// <summary>
  36. /// S8-PRODUCTION-PAGE-TYPE-TITLE-AND-TREND-ALIGN-1:Production 页近 N 日生产异常趋势。
  37. /// 口径 module_code IN (S2,S6) AND exception_type_code IN
  38. /// (EQUIP_FAULT / MFG_MATERIAL_ABNORMAL / MFG_QUALITY_ABNORMAL / BODY_PRODUCTION_DELAY_WARNING)。
  39. /// </summary>
  40. [HttpGet("production-trend")]
  41. public async Task<IActionResult> GetProductionTrendAsync(long tenantId = 1, long factoryId = 1, int days = 7, string? period = null)
  42. => Ok(await _svc.GetProductionTrendAsync(tenantId, factoryId, days, period));
  43. /// <summary>
  44. /// S8-PROD-SUPPLY-TREND-CHART-REPLACE-DUPLICATE-SECTION-1:Supply 页近 N 日供应异常趋势。
  45. /// 口径 module_code IN (S3,S4,S5) AND exception_type_code IN 7 类供应异常。
  46. /// </summary>
  47. [HttpGet("supply-trend")]
  48. public async Task<IActionResult> GetSupplyTrendAsync(long tenantId = 1, long factoryId = 1, int days = 7, string? period = null)
  49. => Ok(await _svc.GetSupplyTrendAsync(tenantId, factoryId, days, period));
  50. /// <summary>
  51. /// S8-SIDEBAR-TYPE-CARD-WINDOW-TOGGLE-1:专题页右侧异常类型卡同窗口同分母聚合。
  52. /// domain ∈ {DELIVERY, PRODUCTION, SUPPLY};window ∈ {LAST_24H(默认), LAST_7D};period 优先于 window。
  53. /// </summary>
  54. [HttpGet("domain-type-metrics")]
  55. public async Task<IActionResult> GetDomainTypeMetricsAsync(string domain, string window = "LAST_24H", string? period = null, long tenantId = 1, long factoryId = 1)
  56. => Ok(await _svc.GetDomainTypeMetricsAsync(domain, window, tenantId, factoryId, period));
  57. /// <summary>
  58. /// TASK-010:S9 卡片 QDC 四主线运营聚合(质量 / 交付 / 成本 / 库存)。
  59. /// </summary>
  60. [HttpGet("qdc-summary")]
  61. public async Task<IActionResult> GetQdcSummaryAsync(long tenantId = 1, long factoryId = 1, string? period = null)
  62. => Ok(await _svc.GetQdcSummaryAsync(tenantId, factoryId, period));
  63. /// <summary>
  64. /// TASK-012-S9-QDC-RATIO-MIGRATION-2:S9 result KPI summary(订单交付率/到货达成率/检验合格率/工单完工率)。
  65. /// 与 qdc-summary 是不同语义:本接口返回结果指标占位,待真实计算入口(RATIO-REAL-1)后续接入。
  66. /// </summary>
  67. [HttpGet("result-kpi-summary")]
  68. public async Task<IActionResult> GetResultKpiSummaryAsync(long tenantId = 1, long factoryId = 1)
  69. => Ok(await _svc.GetResultKpiSummaryAsync(tenantId, factoryId));
  70. }