-- ============================================================================
-- 1.0.399.sql：S8 S9 KPI 平台默认目标值初始化（纯数据 UPDATE）
--
-- 批次：S8-CONFIG-GLOBAL-ROW-SEMANTICS-AND-KPI-TARGET-1
-- 用途：把 S9 Result KPI 的「平台默认目标值」写入 DB，使 DB 成为目标值的唯一事实源。
--
-- 背景：目标值此前只存在于 C# `_demoBaselineMap`（95/95/98/95）与内联字面量（90.0m），
--       而 ado_s8_monitor_metric.default_target_ratio 列虽早已存在却 13 行全 NULL。
--       本批已把读取路径切到 DB（工厂覆盖 > 平台默认，未配置返回 null 不做常量兜底），
--       因此必须由本脚本完成平台默认值的权威初始化，否则页面目标值会全部变成「待配置」。
--
-- 红线：
--   SCHEMA CHANGE = NO ／ DDL = NO —— 全文件只有 UPDATE，无 CREATE/ALTER/DROP/TRUNCATE/DELETE。
--   只更新平台默认行（tenant_id=0 AND factory_id=0），不触碰任何工厂覆盖行。
--   幂等：附加 `default_target_ratio IS NULL` 守卫，重复执行不改已有值，
--         也不会覆盖运维/业务后续调整过的平台默认目标。
--
-- 数值来源：本批之前 C# 硬编码的既有目标值，逐项等值搬迁，不新增、不调整业务口径：
--   ORDER_DELIVERY_RATE    95   （原 _demoBaselineMap）
--   PO_DELIVERY_RATE       95   （原 _demoBaselineMap）
--   IQC_PASS_RATE          98   （原 _demoBaselineMap）
--   WO_COMPLETION_RATE     95   （原 _demoBaselineMap）
--   ORDER_FLOW_CYCLE_RATIO 90   （原 C# 内联 90.0m）
--
-- 不在本脚本范围（刻意不做）：
--   - KPI 当前值 92/88/96/90 —— 不是配置项，不写入本列，不删除，不改动。
--   - enabled 列 —— 5 行当前为 0，但 Result KPI 读取路径不过滤 Enabled；
--     改动它会影响 monitor-options 下拉可选项，超出本批范围，留待业务确认。
-- ============================================================================

UPDATE `ado_s8_monitor_metric`
SET `default_target_ratio` = 95.00, `updated_at` = NOW()
WHERE `tenant_id` = 0 AND `factory_id` = 0
  AND `metric_code` = 'ORDER_DELIVERY_RATE'
  AND `default_target_ratio` IS NULL;

UPDATE `ado_s8_monitor_metric`
SET `default_target_ratio` = 95.00, `updated_at` = NOW()
WHERE `tenant_id` = 0 AND `factory_id` = 0
  AND `metric_code` = 'PO_DELIVERY_RATE'
  AND `default_target_ratio` IS NULL;

UPDATE `ado_s8_monitor_metric`
SET `default_target_ratio` = 98.00, `updated_at` = NOW()
WHERE `tenant_id` = 0 AND `factory_id` = 0
  AND `metric_code` = 'IQC_PASS_RATE'
  AND `default_target_ratio` IS NULL;

UPDATE `ado_s8_monitor_metric`
SET `default_target_ratio` = 95.00, `updated_at` = NOW()
WHERE `tenant_id` = 0 AND `factory_id` = 0
  AND `metric_code` = 'WO_COMPLETION_RATE'
  AND `default_target_ratio` IS NULL;

UPDATE `ado_s8_monitor_metric`
SET `default_target_ratio` = 90.00, `updated_at` = NOW()
WHERE `tenant_id` = 0 AND `factory_id` = 0
  AND `metric_code` = 'ORDER_FLOW_CYCLE_RATIO'
  AND `default_target_ratio` IS NULL;

-- 验收查询（人工执行，脚本本身不依赖）：
--   SELECT metric_code, default_target_ratio
--   FROM ado_s8_monitor_metric
--   WHERE tenant_id = 0 AND factory_id = 0 AND mechanism = 'RATIO' AND is_result_kpi = 1
--   ORDER BY sort_no;
--   期望 5 行：95.00 / 95.00 / 98.00 / 95.00 / 90.00，且其余 8 行 default_target_ratio 保持 NULL。
