-- ============================================================================= -- S8 订单交付超期监控向导:真实数据源登记 -- 作用:将 ORDER_DELIVERY 监控对象的源表切换为数据中台真实发货宽表 dwd_ship_trans -- (经受控只读视图 v_s8_order_delivery_watch 收敛)。 -- 前提(已拍板):单客户私有云,S8(租户 1)经受控只读视图读取数据中台业务租户 -- 797403760988229 的订单交付数据。 -- 安全级别:仅登记字典;不创建 watch_rule、不启用 watch_rule、不触发调度器、不自动建异常单。 -- ============================================================================= -- 1) 受控视图:锚定业务租户 797403760988229;每 order_no 折叠到最新 stat_date(1 行/单)。 -- plan_delivery_date 取 MIN(最早到期行代表订单超期); -- delivery_status 采用“全部行 COMPLETED 才算 COMPLETED,否则 OPEN”。 CREATE OR REPLACE VIEW v_s8_order_delivery_watch AS SELECT t.order_no AS order_no, MAX(t.customer_name) AS customer_name, MIN(t.plan_delivery_date) AS plan_delivery_date, CASE WHEN SUM(t.delivery_status = 'COMPLETED') = COUNT(*) THEN 'COMPLETED' ELSE 'OPEN' END AS delivery_status FROM dwd_ship_trans t JOIN ( SELECT order_no, MAX(stat_date) AS max_stat FROM dwd_ship_trans WHERE tenant_id = 797403760988229 GROUP BY order_no ) latest ON t.order_no = latest.order_no AND t.stat_date = latest.max_stat WHERE t.tenant_id = 797403760988229 GROUP BY t.order_no; -- 2) 监控对象 ORDER_DELIVERY:源表切换到受控视图(baseline 口径 tenant_id=0 / factory_id=0)。 UPDATE ado_s8_monitor_object SET source_table = 'v_s8_order_delivery_watch', updated_at = NOW() WHERE tenant_id = 0 AND factory_id = 0 AND object_code = 'ORDER_DELIVERY'; -- 3) 监控指标 ORDER_DUE_AT:字段映射切真实列 + 完成态口径 + 稳定业务键(order_no)。 -- enabled = 1 仅表示字典可见、向导可选;监控启用的安全闸门落在 watch_rule 层。 UPDATE ado_s8_monitor_metric SET due_at_field = 'plan_delivery_date', status_field = 'delivery_status', default_completed_states = 'COMPLETED', object_id_field = 'order_no', object_code_field = 'order_no', object_name_field = 'customer_name', metric_name = '计划交付超期', enabled = 1, updated_at = NOW() WHERE tenant_id = 0 AND factory_id = 0 AND object_code = 'ORDER_DELIVERY' AND metric_code = 'ORDER_DUE_AT';