1.0.279.sql 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. -- AIDOP-KPI-SQL-CONFIG-MIGRATION-EXISTING-1:其余已实现 KPI 的 SQL 配置化迁移种子。
  2. -- 提交时 rename 为正式 1.0.<next>.sql 并注册 csproj Copy 条目(不预占版本号)。
  3. -- 表列 PascalCase(EnableUnderLine=false);租户=AIDOP 运行租户 797403760988229(S5/S6/S7 KPI 落库租户)。
  4. -- 幂等:每条 INSERT ... WHERE NOT EXISTS(MetricCode+TenantId+VersionNo 唯一键)。
  5. -- 引擎口径:
  6. -- · 普通 KPI(S5_L1_002/003、S7_L1_001/002/003):v1 LEGACY_CODE(回滚基线,IsCurrent=0)
  7. -- + v2 CONFIG_SQL(迁移目标,IsCurrent=1,读已准备好的 dwd_*,与 legacy 逐项等价)。
  8. -- · S5_L1_004:仅 v1 LEGACY_TVF(IsCurrent=1,登记 TVF 名/引擎;不建 CONFIG_SQL、不经只读执行器)。
  9. -- CONFIG_SQL 结果契约:单行、metric_value 必需(NULL→NO_DATA)、可选 numerator/denominator/result_message。
  10. -- 绑定参数由运行时注入:@tenant_id/@factory_id/@biz_date/@ztid(月度 KPI @biz_date=月末,用 DATE_FORMAT 取 YYYY-MM)。
  11. -- ───────────────────────── S5_L1_002 物料上线满足率(日)─────────────────────────
  12. INSERT INTO ado_smart_ops_kpi_calc_config
  13. (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
  14. SELECT 797403760988229,'S5_L1_002','S5',1,'LEGACY_CODE',NULL,NULL,30,'PUBLISHED',0,'legacy 代码路径(回滚基线):均值-of-逐单比率×100','system',NOW()
  15. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S5_L1_002' AND `TenantId`=797403760988229 AND `VersionNo`=1);
  16. INSERT INTO ado_smart_ops_kpi_calc_config
  17. (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
  18. SELECT 797403760988229,'S5_L1_002','S5',2,'CONFIG_SQL','MDP_LOCAL',
  19. 'SELECT ROUND(AVG(fulfillment_rate) * 100, 4) AS metric_value, COUNT(*) AS numerator_value
  20. FROM dwd_t8_material_online_fulfillment
  21. WHERE tenant_id = @tenant_id AND factory_id = @factory_id AND biz_date = @biz_date AND source_ztid = @ztid
  22. AND fulfillment_rate IS NOT NULL',
  23. 30,'PUBLISHED',1,'CONFIG_SQL:读 dwd 逐单 fulfillment_rate(0~1) 均值×100,1:1 复刻 legacy','system',NOW()
  24. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S5_L1_002' AND `TenantId`=797403760988229 AND `VersionNo`=2);
  25. -- ───────────────────────── S5_L1_003 物料仓储人效(月)─────────────────────────
  26. INSERT INTO ado_smart_ops_kpi_calc_config
  27. (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
  28. SELECT 797403760988229,'S5_L1_003','S5',1,'LEGACY_CODE',NULL,NULL,30,'PUBLISHED',0,'legacy 代码路径(回滚基线):SUM(slzx)/仓管人数','system',NOW()
  29. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S5_L1_003' AND `TenantId`=797403760988229 AND `VersionNo`=1);
  30. INSERT INTO ado_smart_ops_kpi_calc_config
  31. (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
  32. SELECT 797403760988229,'S5_L1_003','S5',2,'CONFIG_SQL','MDP_LOCAL',
  33. 'SELECT ROUND(online_qty / NULLIF(warehouse_headcount, 0), 4) AS metric_value,
  34. online_qty AS numerator_value, warehouse_headcount AS denominator_value,
  35. denominator_status AS result_message
  36. FROM dwd_t8_material_warehouse_efficiency
  37. WHERE tenant_id = @tenant_id AND factory_id = @factory_id
  38. AND biz_month = DATE_FORMAT(@biz_date, ''%Y-%m'') AND source_ztid = @ztid',
  39. 30,'PUBLISHED',1,'CONFIG_SQL:读 dwd 月行 online_qty/仓管人数,headcount 空/0→NO_DATA(msg=NO_HEADCOUNT)','system',NOW()
  40. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S5_L1_003' AND `TenantId`=797403760988229 AND `VersionNo`=2);
  41. -- ───────────────────────── S7_L1_001 订单发货周期(日)─────────────────────────
  42. INSERT INTO ado_smart_ops_kpi_calc_config
  43. (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
  44. SELECT 797403760988229,'S7_L1_001','S7',1,'LEGACY_CODE',NULL,NULL,30,'PUBLISHED',0,'legacy 代码路径(回滚基线):AVG(cycle_days)','system',NOW()
  45. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S7_L1_001' AND `TenantId`=797403760988229 AND `VersionNo`=1);
  46. INSERT INTO ado_smart_ops_kpi_calc_config
  47. (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
  48. SELECT 797403760988229,'S7_L1_001','S7',2,'CONFIG_SQL','MDP_LOCAL',
  49. 'SELECT ROUND(AVG(cycle_days), 4) AS metric_value, COUNT(*) AS numerator_value
  50. FROM dwd_t8_order_shipment_cycle
  51. WHERE tenant_id = @tenant_id AND factory_id = @factory_id AND biz_date = @biz_date AND source_ztid = @ztid
  52. AND cycle_days IS NOT NULL',
  53. 30,'PUBLISHED',1,'CONFIG_SQL:读 dwd 逐单 cycle_days 均值(排除 null),1:1 复刻 legacy','system',NOW()
  54. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S7_L1_001' AND `TenantId`=797403760988229 AND `VersionNo`=2);
  55. -- ───────────────────────── S7_L1_002 订单发货满足率(日)─────────────────────────
  56. INSERT INTO ado_smart_ops_kpi_calc_config
  57. (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
  58. SELECT 797403760988229,'S7_L1_002','S7',1,'LEGACY_CODE',NULL,NULL,30,'PUBLISHED',0,'legacy 代码路径(回滚基线):均值-of-逐单比率(已×100)','system',NOW()
  59. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S7_L1_002' AND `TenantId`=797403760988229 AND `VersionNo`=1);
  60. INSERT INTO ado_smart_ops_kpi_calc_config
  61. (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
  62. SELECT 797403760988229,'S7_L1_002','S7',2,'CONFIG_SQL','MDP_LOCAL',
  63. 'SELECT ROUND(AVG(fulfillment_rate), 4) AS metric_value, COUNT(*) AS numerator_value
  64. FROM dwd_t8_order_shipment_fulfillment
  65. WHERE tenant_id = @tenant_id AND factory_id = @factory_id AND biz_date = @biz_date AND source_ztid = @ztid
  66. AND fulfillment_rate IS NOT NULL',
  67. 30,'PUBLISHED',1,'CONFIG_SQL:读 dwd 逐单 fulfillment_rate(已×100) 均值,不再×100,1:1 复刻 legacy','system',NOW()
  68. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S7_L1_002' AND `TenantId`=797403760988229 AND `VersionNo`=2);
  69. -- ───────────────────────── S7_L1_003 成品仓储人效(月)─────────────────────────
  70. INSERT INTO ado_smart_ops_kpi_calc_config
  71. (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
  72. SELECT 797403760988229,'S7_L1_003','S7',1,'LEGACY_CODE',NULL,NULL,30,'PUBLISHED',0,'legacy 代码路径(回滚基线):SUM(slzx)/仓管人数','system',NOW()
  73. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S7_L1_003' AND `TenantId`=797403760988229 AND `VersionNo`=1);
  74. INSERT INTO ado_smart_ops_kpi_calc_config
  75. (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
  76. SELECT 797403760988229,'S7_L1_003','S7',2,'CONFIG_SQL','MDP_LOCAL',
  77. 'SELECT ROUND(shipment_qty / NULLIF(warehouse_headcount, 0), 4) AS metric_value,
  78. shipment_qty AS numerator_value, warehouse_headcount AS denominator_value,
  79. denominator_status AS result_message
  80. FROM dwd_t8_finished_warehouse_efficiency
  81. WHERE tenant_id = @tenant_id AND factory_id = @factory_id
  82. AND biz_month = DATE_FORMAT(@biz_date, ''%Y-%m'') AND source_ztid = @ztid',
  83. 30,'PUBLISHED',1,'CONFIG_SQL:读 dwd 月行 shipment_qty/仓管人数,headcount 空/0→NO_DATA(msg=NO_HEADCOUNT)','system',NOW()
  84. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S7_L1_003' AND `TenantId`=797403760988229 AND `VersionNo`=2);
  85. -- ───────────────────────── S5_L1_004 品类物料库存周转(保留 LEGACY_TVF)─────────────────────────
  86. INSERT INTO ado_smart_ops_kpi_calc_config
  87. (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
  88. SELECT 797403760988229,'S5_L1_004','S5',1,'LEGACY_TVF','T8_TVF',NULL,60,'PUBLISHED',1,'保留 LEGACY_TVF:SQL Server TVF dbo.Rep_总账_存货_V3(@ztid,普通,正常,起期,止期),D1/D2×30;不迁 CONFIG_SQL、不经只读执行器','system',NOW()
  89. FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S5_L1_004' AND `TenantId`=797403760988229 AND `VersionNo`=1);