fix: Add propertyName to caseJson for iframe form data
Problem: - Form was empty because propertyName was not passed to iframe - JavaScript code checked for injected.propertyName but it was undefined - Only case (normalized) was passed, not the original propertyName Solution: - Added propertyName to caseJson object that gets embedded in HTML - Now JavaScript code can access both case and propertyName - This allows the form to properly display data from send_to_form_approve.draft Files: - frontend/src/components/form/generateConfirmationFormHTML.ts: Added propertyName to caseJson
This commit is contained in:
62
docs/CHECK_DUPLICATES.sql
Normal file
62
docs/CHECK_DUPLICATES.sql
Normal file
@@ -0,0 +1,62 @@
|
||||
-- SQL запрос для проверки дубликатов claim_id в таблице clpr_claims
|
||||
-- Показывает записи с одинаковым claim_id в payload, но разными ID
|
||||
|
||||
-- 1. Найти все claim_id, которые встречаются более одного раза
|
||||
WITH claim_id_counts AS (
|
||||
SELECT
|
||||
payload->>'claim_id' AS claim_id,
|
||||
COUNT(*) AS count,
|
||||
array_agg(id ORDER BY updated_at DESC) AS ids,
|
||||
array_agg(updated_at ORDER BY updated_at DESC) AS updated_dates
|
||||
FROM clpr_claims
|
||||
WHERE payload->>'claim_id' IS NOT NULL
|
||||
GROUP BY payload->>'claim_id'
|
||||
HAVING COUNT(*) > 1
|
||||
)
|
||||
SELECT
|
||||
claim_id,
|
||||
count AS duplicate_count,
|
||||
ids AS record_ids,
|
||||
updated_dates,
|
||||
-- Показываем разницу во времени между записями
|
||||
updated_dates[1] - updated_dates[array_length(updated_dates, 1)] AS time_diff
|
||||
FROM claim_id_counts
|
||||
ORDER BY count DESC, claim_id
|
||||
LIMIT 20;
|
||||
|
||||
-- 2. Детальная информация о дубликатах (для конкретного claim_id)
|
||||
-- Замените 'YOUR_CLAIM_ID' на реальный claim_id
|
||||
/*
|
||||
SELECT
|
||||
id,
|
||||
payload->>'claim_id' AS claim_id,
|
||||
status_code,
|
||||
channel,
|
||||
created_at,
|
||||
updated_at,
|
||||
-- Показываем, есть ли send_to_form_approve в разных записях
|
||||
CASE
|
||||
WHEN payload->'send_to_form_approve' IS NOT NULL THEN 'YES'
|
||||
ELSE 'NO'
|
||||
END AS has_send_to_form_approve,
|
||||
-- Показываем размер payload для сравнения
|
||||
pg_column_size(payload) AS payload_size_bytes
|
||||
FROM clpr_claims
|
||||
WHERE payload->>'claim_id' = 'YOUR_CLAIM_ID'
|
||||
ORDER BY updated_at DESC;
|
||||
*/
|
||||
|
||||
-- 3. Статистика: сколько всего дубликатов
|
||||
SELECT
|
||||
COUNT(*) AS total_duplicate_claim_ids,
|
||||
SUM(count) AS total_duplicate_records
|
||||
FROM (
|
||||
SELECT
|
||||
payload->>'claim_id' AS claim_id,
|
||||
COUNT(*) AS count
|
||||
FROM clpr_claims
|
||||
WHERE payload->>'claim_id' IS NOT NULL
|
||||
GROUP BY payload->>'claim_id'
|
||||
HAVING COUNT(*) > 1
|
||||
) AS duplicates;
|
||||
|
||||
86
docs/DELETE_DUPLICATES_KEEP_SPECIFIC.sql
Normal file
86
docs/DELETE_DUPLICATES_KEEP_SPECIFIC.sql
Normal file
@@ -0,0 +1,86 @@
|
||||
-- SQL скрипт для удаления дубликатов claim_id
|
||||
-- Оставляет только запись с id = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'
|
||||
-- Удаляет все остальные записи с таким же claim_id в payload
|
||||
|
||||
-- ⚠️ ВНИМАНИЕ: Перед выполнением DELETE обязательно выполните SELECT ниже,
|
||||
-- чтобы увидеть, что будет удалено!
|
||||
|
||||
-- ============================================================================
|
||||
-- ШАГ 1: ПРОВЕРКА - Какие записи будут удалены?
|
||||
-- ============================================================================
|
||||
-- Выполните этот запрос ПЕРВЫМ, чтобы увидеть, что будет удалено:
|
||||
|
||||
SELECT
|
||||
id,
|
||||
payload->>'claim_id' AS claim_id,
|
||||
status_code,
|
||||
channel,
|
||||
created_at,
|
||||
updated_at,
|
||||
CASE
|
||||
WHEN id = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'::uuid THEN '✅ ОСТАВИТЬ'
|
||||
ELSE '❌ УДАЛИТЬ'
|
||||
END AS action,
|
||||
-- Показываем, есть ли send_to_form_approve
|
||||
CASE
|
||||
WHEN payload->'send_to_form_approve' IS NOT NULL THEN 'YES'
|
||||
ELSE 'NO'
|
||||
END AS has_send_to_form_approve,
|
||||
-- Размер payload
|
||||
pg_column_size(payload) AS payload_size_bytes
|
||||
FROM clpr_claims
|
||||
WHERE payload->>'claim_id' = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'
|
||||
ORDER BY updated_at DESC;
|
||||
|
||||
-- ============================================================================
|
||||
-- ШАГ 2: УДАЛЕНИЕ - Удаляем все записи, кроме нужной
|
||||
-- ============================================================================
|
||||
-- ⚠️ ВНИМАНИЕ: Этот запрос УДАЛИТ данные! Выполняйте только после проверки!
|
||||
|
||||
-- Вариант 1: Удалить все записи с таким claim_id, кроме нужной
|
||||
DELETE FROM clpr_claims
|
||||
WHERE payload->>'claim_id' = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'
|
||||
AND id != '0eb051ec-23a6-4e06-8b98-f02d20d35f68'::uuid
|
||||
RETURNING
|
||||
id,
|
||||
payload->>'claim_id' AS claim_id,
|
||||
status_code,
|
||||
created_at,
|
||||
updated_at;
|
||||
|
||||
-- ============================================================================
|
||||
-- ШАГ 3: ПРОВЕРКА - Убедиться, что осталась только одна запись
|
||||
-- ============================================================================
|
||||
-- После удаления выполните этот запрос, чтобы проверить результат:
|
||||
|
||||
SELECT
|
||||
id,
|
||||
payload->>'claim_id' AS claim_id,
|
||||
status_code,
|
||||
channel,
|
||||
created_at,
|
||||
updated_at,
|
||||
CASE
|
||||
WHEN payload->'send_to_form_approve' IS NOT NULL THEN 'YES'
|
||||
ELSE 'NO'
|
||||
END AS has_send_to_form_approve
|
||||
FROM clpr_claims
|
||||
WHERE payload->>'claim_id' = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'
|
||||
ORDER BY updated_at DESC;
|
||||
|
||||
-- Должна остаться только одна запись с id = '0eb051ec-23a6-4e06-8b98-f02d20d35f68'
|
||||
|
||||
-- ============================================================================
|
||||
-- АЛЬТЕРНАТИВНЫЙ ВАРИАНТ: Удалить по ID (если знаете конкретные ID дубликатов)
|
||||
-- ============================================================================
|
||||
/*
|
||||
-- Если вы знаете конкретные ID дубликатов, можно удалить их напрямую:
|
||||
DELETE FROM clpr_claims
|
||||
WHERE id IN (
|
||||
'uuid-дубликата-1',
|
||||
'uuid-дубликата-2',
|
||||
'uuid-дубликата-3'
|
||||
)
|
||||
RETURNING id, payload->>'claim_id' AS claim_id;
|
||||
*/
|
||||
|
||||
@@ -99,3 +99,4 @@ RETURNING
|
||||
============================================================================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user