AdoS8MonitoringController.cs 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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-SUPPLY-PAGE-TYPE-TOTAL-ALIGN-1:Supply 页近 N 日供应异常趋势。
  45. /// 口径 module_code IN (S3,S4,S5) AND exception_type_code IN 11 类供应异常
  46. /// (供应商回复交期 / 供应商发货 / 供应商交付延期预警 / 仓库收货 / IQC 检验 / 仓库上架 /
  47. /// 仓库工单备料 / 仓库工单发料 / 采购执行延期 / 物料库存 / 库存周转)。
  48. /// </summary>
  49. [HttpGet("supply-trend")]
  50. public async Task<IActionResult> GetSupplyTrendAsync(long tenantId = 1, long factoryId = 1, int days = 7, string? period = null)
  51. => Ok(await _svc.GetSupplyTrendAsync(tenantId, factoryId, days, period));
  52. /// <summary>
  53. /// S8-SIDEBAR-TYPE-CARD-WINDOW-TOGGLE-1:专题页右侧异常类型卡同窗口同分母聚合。
  54. /// domain ∈ {DELIVERY, PRODUCTION, SUPPLY};window ∈ {LAST_24H(默认), LAST_7D};period 优先于 window。
  55. /// </summary>
  56. [HttpGet("domain-type-metrics")]
  57. public async Task<IActionResult> GetDomainTypeMetricsAsync(string domain, string window = "LAST_24H", string? period = null, long tenantId = 1, long factoryId = 1)
  58. => Ok(await _svc.GetDomainTypeMetricsAsync(domain, window, tenantId, factoryId, period));
  59. /// <summary>
  60. /// TASK-010:S9 卡片 QDC 四主线运营聚合(质量 / 交付 / 成本 / 库存)。
  61. /// </summary>
  62. [HttpGet("qdc-summary")]
  63. public async Task<IActionResult> GetQdcSummaryAsync(long tenantId = 1, long factoryId = 1, string? period = null)
  64. => Ok(await _svc.GetQdcSummaryAsync(tenantId, factoryId, period));
  65. /// <summary>
  66. /// TASK-012-S9-QDC-RATIO-MIGRATION-2:S9 result KPI summary(订单交付率/到货达成率/检验合格率/工单完工率)。
  67. /// 与 qdc-summary 是不同语义:本接口返回结果指标占位,待真实计算入口(RATIO-REAL-1)后续接入。
  68. /// </summary>
  69. [HttpGet("result-kpi-summary")]
  70. public async Task<IActionResult> GetResultKpiSummaryAsync(long tenantId = 1, long factoryId = 1)
  71. => Ok(await _svc.GetResultKpiSummaryAsync(tenantId, factoryId));
  72. }