201 lines
4.6 KiB
SQL
201 lines
4.6 KiB
SQL
\pset pager off
|
|
|
|
\echo '=== 1. Objetos v0.3.10 ==='
|
|
|
|
SELECT
|
|
to_regclass(
|
|
'mv_loss_intelligence.context_review_case_policies'
|
|
) AS policy_table,
|
|
to_regclass(
|
|
'mv_loss_intelligence.context_review_cases'
|
|
) AS cases_table,
|
|
to_regclass(
|
|
'mv_loss_intelligence.context_review_case_evidence'
|
|
) AS evidence_table,
|
|
to_regclass(
|
|
'mv_loss_intelligence.context_review_case_reviews'
|
|
) AS reviews_table,
|
|
to_regclass(
|
|
'mv_loss_intelligence.context_review_case_builder_state'
|
|
) AS state_table,
|
|
to_regclass(
|
|
'mv_reports_ucepsa_prod.li_context_review_case_history_v1'
|
|
) AS history_view,
|
|
to_regclass(
|
|
'mv_reports_ucepsa_prod.li_context_review_case_backlog_v1'
|
|
) AS backlog_view,
|
|
to_regclass(
|
|
'mv_reports_ucepsa_prod.li_context_review_case_evidence_v1'
|
|
) AS evidence_view,
|
|
to_regclass(
|
|
'mv_reports_ucepsa_prod.li_context_review_case_builder_health_v1'
|
|
) AS health_view,
|
|
to_regclass(
|
|
'mv_reports_ucepsa_prod.li_canonical_context_readiness_gate_v2'
|
|
) AS readiness_v2_view;
|
|
|
|
\echo '=== 2. Salud del constructor ==='
|
|
|
|
SELECT *
|
|
FROM
|
|
mv_reports_ucepsa_prod
|
|
.li_context_review_case_builder_health_v1;
|
|
|
|
\echo '=== 3. Evidencias no pertenecen a varios casos ==='
|
|
|
|
SELECT COUNT(*) AS evidence_link_duplicates
|
|
FROM (
|
|
SELECT
|
|
episode_id,
|
|
COUNT(*) AS n
|
|
FROM
|
|
mv_loss_intelligence.context_review_case_evidence
|
|
GROUP BY episode_id
|
|
HAVING COUNT(*) > 1
|
|
) duplicated;
|
|
|
|
\echo '=== 4. Episodios recientes con revisión no quedan sin caso ==='
|
|
|
|
SELECT COUNT(*) AS review_episodes_without_case
|
|
FROM
|
|
mv_reports_ucepsa_prod
|
|
.li_shopfloor_context_incident_history_v1 h
|
|
WHERE h.review_required
|
|
AND (
|
|
h.episode_status = 'OPEN'
|
|
OR h.first_seen_at >=
|
|
now() - interval '30 days'
|
|
)
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM
|
|
mv_loss_intelligence.context_review_case_evidence e
|
|
WHERE e.episode_id =
|
|
h.episode_id
|
|
);
|
|
|
|
\echo '=== 5. Conflicto 7/8/9 agrupado en un caso raíz ==='
|
|
|
|
SELECT
|
|
COUNT(
|
|
DISTINCT case_id
|
|
) AS root_case_count_7_8_9,
|
|
COUNT(*) AS evidence_count_7_8_9
|
|
FROM
|
|
mv_loss_intelligence.context_review_case_evidence
|
|
WHERE episode_id IN (
|
|
7,
|
|
8,
|
|
9
|
|
);
|
|
|
|
\echo '=== 6. Detalle del caso raíz 7/8/9 ==='
|
|
|
|
SELECT DISTINCT
|
|
c.case_id,
|
|
c.case_family,
|
|
c.machine_id,
|
|
c.case_title,
|
|
c.question_text,
|
|
c.case_status,
|
|
c.max_severity,
|
|
c.linked_evidence_count,
|
|
c.episode_ids,
|
|
c.production_orders,
|
|
c.odoo_workorder_ids,
|
|
c.review_owner,
|
|
c.review_status,
|
|
c.official_eligible
|
|
FROM
|
|
mv_reports_ucepsa_prod
|
|
.li_context_review_case_history_v1 c
|
|
JOIN
|
|
mv_loss_intelligence.context_review_case_evidence e
|
|
ON e.case_id =
|
|
c.case_id
|
|
WHERE e.episode_id IN (
|
|
7,
|
|
8,
|
|
9
|
|
);
|
|
|
|
\echo '=== 7. Backlog humano por caso raíz ==='
|
|
|
|
SELECT
|
|
backlog_rank,
|
|
case_id,
|
|
case_status,
|
|
max_severity,
|
|
machine_id,
|
|
case_title,
|
|
linked_evidence_count,
|
|
production_orders,
|
|
odoo_workorder_ids,
|
|
review_owner,
|
|
review_status,
|
|
question_text
|
|
FROM
|
|
mv_reports_ucepsa_prod
|
|
.li_context_review_case_backlog_v1
|
|
ORDER BY backlog_rank
|
|
LIMIT 50;
|
|
|
|
\echo '=== 8. Readiness v2 ==='
|
|
|
|
SELECT
|
|
machine_id,
|
|
pending_review_count
|
|
AS pending_episode_review_count,
|
|
pending_root_case_count,
|
|
pending_critical_root_case_count,
|
|
oldest_pending_root_case_hours,
|
|
builder_health_status,
|
|
technical_gate_pass,
|
|
review_gate_pass,
|
|
readiness_status,
|
|
next_action,
|
|
ready_for_official_ledger,
|
|
official_ledger_eligible
|
|
FROM
|
|
mv_reports_ucepsa_prod
|
|
.li_canonical_context_readiness_gate_v2
|
|
ORDER BY machine_id;
|
|
|
|
\echo '=== 9. READY v2 coherente ==='
|
|
|
|
SELECT COUNT(*) AS ready_v2_gate_mismatches
|
|
FROM
|
|
mv_reports_ucepsa_prod
|
|
.li_canonical_context_readiness_gate_v2
|
|
WHERE readiness_status =
|
|
'READY_FOR_CONTROLLED_SHADOW'
|
|
AND NOT (
|
|
technical_gate_pass
|
|
AND observation_gate_pass
|
|
AND review_gate_pass
|
|
AND coverage_gate_pass
|
|
);
|
|
|
|
\echo '=== 10. Nada oficial ==='
|
|
|
|
SELECT
|
|
(
|
|
SELECT COUNT(*)
|
|
FROM
|
|
mv_loss_intelligence.context_review_cases
|
|
WHERE official_eligible
|
|
) AS official_case_rows,
|
|
(
|
|
SELECT COUNT(*)
|
|
FROM
|
|
mv_reports_ucepsa_prod
|
|
.li_canonical_context_readiness_gate_v2
|
|
WHERE ready_for_official_ledger
|
|
OR official_ledger_eligible
|
|
) AS official_gate_rows,
|
|
(
|
|
SELECT COUNT(*)
|
|
FROM
|
|
mv_reports_ucepsa_prod.li_operator_stop_queue_v2
|
|
) AS official_operator_queue_rows;
|