|
@@ -0,0 +1,27 @@
|
|
|
|
|
+-- AIDOP-S567-KPI-T8-SQL-CONFIG-MIGRATION-1:S5_L1_004 品类物料库存周转 收口迁移 CONFIG_SQL。
|
|
|
|
|
+-- 背景:S5/S6/S7 现有 9 个 KPI 中 8 个已是 CONFIG_SQL/MDP_LOCAL(读已准备好的 dwd_t8_*),
|
|
|
|
|
+-- 唯 S5_L1_004 仍 LEGACY_TVF(1.0.279.sql 当时判定"不迁",本批经 CTO 拍板按范式 A 收口)。
|
|
|
|
|
+-- 范式 A(与 8 个兄弟一致):TVF dbo.Rep_总账_存货_V3 保留为数据准备(BuildS5L1004 写 dwd_t8_material_inventory_turnover),
|
|
|
|
|
+-- 最终汇总(AVG(turnover_days))改由 MDP_LOCAL CONFIG_SQL 读该 dwd,不扩执行器、不直连 T8、不改任何业务公式。
|
|
|
|
|
+-- 等价性:legacy 现状 = AVG(turnover_days),当前 turnover_days 全 NULL → legacy 实跑 NO_DATA;
|
|
|
|
|
+-- CONFIG_SQL AVG(turnover_days) 同为 NO_DATA(逐项等价,见验收对账)。
|
|
|
|
|
+-- 表列 PascalCase(EnableUnderLine=false);租户=AIDOP 运行租户 797403760988229。
|
|
|
|
|
+-- 幂等:先把 v1 IsCurrent 置 0(保留 PUBLISHED 作回滚),再 INSERT ... WHERE NOT EXISTS 建 v2;重复执行影响行 0。
|
|
|
|
|
+-- 绑定参数由运行时注入:@tenant_id/@factory_id/@biz_date/@ztid(月度 KPI @biz_date=月末,DATE_FORMAT 取 YYYY-MM)。
|
|
|
|
|
+
|
|
|
|
|
+-- ① v1 LEGACY_TVF 退出当前生效(保留为回滚版本,PublishStatus 仍 PUBLISHED)
|
|
|
|
|
+UPDATE ado_smart_ops_kpi_calc_config
|
|
|
|
|
+SET `IsCurrent` = 0
|
|
|
|
|
+WHERE `MetricCode` = 'S5_L1_004' AND `TenantId` = 797403760988229 AND `VersionNo` = 1 AND `IsCurrent` = 1;
|
|
|
|
|
+
|
|
|
|
|
+-- ② v2 CONFIG_SQL 成为当前生效:读本地 dwd 月行 turnover_days 均值(排除 NULL),MDP_LOCAL 只读执行器
|
|
|
|
|
+INSERT INTO ado_smart_ops_kpi_calc_config
|
|
|
|
|
+ (`TenantId`,`MetricCode`,`ModuleCode`,`VersionNo`,`CalcEngineType`,`DataSourceCode`,`SqlScript`,`TimeoutSeconds`,`PublishStatus`,`IsCurrent`,`Remark`,`CreatedBy`,`CreatedAt`)
|
|
|
|
|
+SELECT 797403760988229,'S5_L1_004','S5',2,'CONFIG_SQL','MDP_LOCAL',
|
|
|
|
|
+'SELECT ROUND(AVG(turnover_days), 4) AS metric_value, COUNT(*) AS numerator_value
|
|
|
|
|
+FROM dwd_t8_material_inventory_turnover
|
|
|
|
|
+WHERE tenant_id = @tenant_id AND factory_id = @factory_id
|
|
|
|
|
+ AND biz_month = DATE_FORMAT(@biz_date, ''%Y-%m'') AND source_ztid = @ztid
|
|
|
|
|
+ AND turnover_days IS NOT NULL',
|
|
|
|
|
+30,'PUBLISHED',1,'CONFIG_SQL:读 dwd 月行 turnover_days 均值(排除 NULL),1:1 复刻 legacy AVG(turnover_days);TVF 仅作数据准备;turnover_days 全 NULL 时→NO_DATA,与 legacy 现状同为 NO_DATA','system',NOW()
|
|
|
|
|
+FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM ado_smart_ops_kpi_calc_config WHERE `MetricCode`='S5_L1_004' AND `TenantId`=797403760988229 AND `VersionNo`=2);
|