| 1234567891011121314151617181920 |
- -- =============================================================================
- -- S8 订单计划交付超期:近30天灰度草案规则(enabled=0,仅配置留痕,不执行/不建单/不通知)
- -- 前提:v_s8_order_delivery_watch 已建(1.0.177.sql);TIMEOUT evaluator 列名契约已修(9a1d08603)。
- -- 安全:enabled=0 被调度三处过滤 + 全局 S8:Scheduler:Enabled 默认 false,绝不执行。
- -- 幂等:rule_code 非唯一索引,用 NOT EXISTS 守卫;id 无自增,用派生表 MAX(id)+1。
- -- 不启用、不建异常、不发通知;不改其它规则/异常/通知数据。
- -- =============================================================================
- INSERT INTO ado_s8_watch_rule
- (id, tenant_id, factory_id, rule_code, scene_code, data_source_id, watch_object_type, source_object_type,
- severity, poll_interval_seconds, enabled, rule_type, rule_mechanism, stage_code, order_flow_code,
- trigger_count_required, recover_count_required, consecutive_failure_count, expression, params_json, created_at, updated_at)
- SELECT
- m.next_id, 1, 1, 'RULE_S1_ORDER_DELIVERY_DUE_GRAY30_DATE_DELAY', 'S1', 1, 'ORDER', 'ORDER',
- 'FOLLOW', 60, 0, 'TIMEOUT', 'DATE', 'S1', NULL,
- 1, 1, 0,
- 'SELECT order_no AS source_object_id, order_no AS related_object_code, customer_name AS related_object_name, plan_delivery_date AS due_at, delivery_status AS status FROM v_s8_order_delivery_watch WHERE plan_delivery_date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND plan_delivery_date < NOW() AND delivery_status NOT IN (''COMPLETED'')',
- '{"dueAtField":"plan_delivery_date","statusField":"delivery_status","completedStates":["COMPLETED"],"graceMinutes":0,"objectIdField":"order_no","objectCodeField":"order_no","objectNameField":"customer_name","exceptionTypeCode":"ORDER_DUE_DATE_DELAY","objectLabel":"订单交付","metricLabel":"计划交付超期","unit":"分钟","thresholdDisplay":"超期即触发"}',
- NOW(), NOW()
- FROM (SELECT IFNULL(MAX(id), 0) + 1 AS next_id FROM ado_s8_watch_rule) m
- WHERE NOT EXISTS (SELECT 1 FROM ado_s8_watch_rule w WHERE w.rule_code = 'RULE_S1_ORDER_DELIVERY_DUE_GRAY30_DATE_DELAY');
|