perf(sql): фокус сателлитов, AHR_LIMIT и OTCH9F в v_form2_view (AURORA-1850)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
8f82f5fb9b
commit
6b17d7c076
@ -1125,6 +1125,8 @@ BEGIN
|
|||||||
LEFT JOIN agg a ON a.root_id = lt.id
|
LEFT JOIN agg a ON a.root_id = lt.id
|
||||||
LEFT JOIN v3.form_limit fl
|
LEFT JOIN v3.form_limit fl
|
||||||
ON fl.template_id = lt.id AND fl.budget_form_id = p_form_id
|
ON fl.template_id = lt.id AND fl.budget_form_id = p_form_id
|
||||||
|
WHERE p_focus_lines IS NULL
|
||||||
|
OR lt.id = ANY(v3._limit_template_path_set(p_focus_lines))
|
||||||
ORDER BY lt.sort_order;
|
ORDER BY lt.sort_order;
|
||||||
RETURN;
|
RETURN;
|
||||||
END IF;
|
END IF;
|
||||||
@ -1135,7 +1137,7 @@ BEGIN
|
|||||||
SELECT
|
SELECT
|
||||||
'INPUT'::VARCHAR,
|
'INPUT'::VARCHAR,
|
||||||
0,
|
0,
|
||||||
ROW_NUMBER() OVER (ORDER BY rd.id) AS sort_order,
|
sk._rn AS sort_order,
|
||||||
jsonb_build_object(
|
jsonb_build_object(
|
||||||
'id', rd.id,
|
'id', rd.id,
|
||||||
'line_id', rd.line_id,
|
'line_id', rd.line_id,
|
||||||
@ -1157,11 +1159,17 @@ BEGIN
|
|||||||
'total', COALESCE(rd.actual_oct,0)+COALESCE(rd.actual_nov,0)+COALESCE(rd.actual_dec,0)),
|
'total', COALESCE(rd.actual_oct,0)+COALESCE(rd.actual_nov,0)+COALESCE(rd.actual_dec,0)),
|
||||||
'comment', rd.comment
|
'comment', rd.comment
|
||||||
)
|
)
|
||||||
FROM v3.rent_detail rd
|
FROM (
|
||||||
JOIN v3.budget_line bl ON bl.id = rd.line_id
|
SELECT rds.id, ROW_NUMBER() OVER (ORDER BY rds.id) AS _rn
|
||||||
JOIN v3.vsp v ON v.id = rd.vsp_id
|
FROM v3.rent_detail rds
|
||||||
WHERE bl.budget_form_id = p_form_id
|
JOIN v3.budget_line bl ON bl.id = rds.line_id
|
||||||
ORDER BY rd.id;
|
JOIN v3.vsp vs ON vs.id = rds.vsp_id
|
||||||
|
WHERE bl.budget_form_id = p_form_id
|
||||||
|
) sk
|
||||||
|
JOIN v3.rent_detail rd ON rd.id = sk.id
|
||||||
|
JOIN v3.vsp v ON v.id = rd.vsp_id
|
||||||
|
WHERE p_focus_lines IS NULL OR rd.id = ANY(p_focus_lines)
|
||||||
|
ORDER BY sk._rn;
|
||||||
RETURN;
|
RETURN;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
@ -1171,7 +1179,7 @@ BEGIN
|
|||||||
SELECT
|
SELECT
|
||||||
'INPUT'::VARCHAR,
|
'INPUT'::VARCHAR,
|
||||||
0,
|
0,
|
||||||
ROW_NUMBER() OVER (ORDER BY ud.id) AS sort_order,
|
sk._rn AS sort_order,
|
||||||
jsonb_build_object(
|
jsonb_build_object(
|
||||||
'id', ud.id,
|
'id', ud.id,
|
||||||
'line_id', ud.line_id,
|
'line_id', ud.line_id,
|
||||||
@ -1193,11 +1201,17 @@ BEGIN
|
|||||||
'total', COALESCE(ud.actual_oct,0)+COALESCE(ud.actual_nov,0)+COALESCE(ud.actual_dec,0)),
|
'total', COALESCE(ud.actual_oct,0)+COALESCE(ud.actual_nov,0)+COALESCE(ud.actual_dec,0)),
|
||||||
'comment', ud.comment
|
'comment', ud.comment
|
||||||
)
|
)
|
||||||
FROM v3.utility_detail ud
|
FROM (
|
||||||
JOIN v3.budget_line bl ON bl.id = ud.line_id
|
SELECT uds.id, ROW_NUMBER() OVER (ORDER BY uds.id) AS _rn
|
||||||
JOIN v3.vsp v ON v.id = ud.vsp_id
|
FROM v3.utility_detail uds
|
||||||
WHERE bl.budget_form_id = p_form_id
|
JOIN v3.budget_line bl ON bl.id = uds.line_id
|
||||||
ORDER BY ud.id;
|
JOIN v3.vsp vs ON vs.id = uds.vsp_id
|
||||||
|
WHERE bl.budget_form_id = p_form_id
|
||||||
|
) sk
|
||||||
|
JOIN v3.utility_detail ud ON ud.id = sk.id
|
||||||
|
JOIN v3.vsp v ON v.id = ud.vsp_id
|
||||||
|
WHERE p_focus_lines IS NULL OR ud.id = ANY(p_focus_lines)
|
||||||
|
ORDER BY sk._rn;
|
||||||
RETURN;
|
RETURN;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
@ -1207,7 +1221,7 @@ BEGIN
|
|||||||
SELECT
|
SELECT
|
||||||
'INPUT'::VARCHAR,
|
'INPUT'::VARCHAR,
|
||||||
0,
|
0,
|
||||||
ROW_NUMBER() OVER (ORDER BY sd.id) AS sort_order,
|
sk._rn AS sort_order,
|
||||||
jsonb_build_object(
|
jsonb_build_object(
|
||||||
'id', sd.id,
|
'id', sd.id,
|
||||||
'line_id', sd.line_id,
|
'line_id', sd.line_id,
|
||||||
@ -1229,11 +1243,17 @@ BEGIN
|
|||||||
'total', COALESCE(sd.actual_oct,0)+COALESCE(sd.actual_nov,0)+COALESCE(sd.actual_dec,0)),
|
'total', COALESCE(sd.actual_oct,0)+COALESCE(sd.actual_nov,0)+COALESCE(sd.actual_dec,0)),
|
||||||
'comment', sd.comment
|
'comment', sd.comment
|
||||||
)
|
)
|
||||||
FROM v3.security_detail sd
|
FROM (
|
||||||
JOIN v3.budget_line bl ON bl.id = sd.line_id
|
SELECT sds.id, ROW_NUMBER() OVER (ORDER BY sds.id) AS _rn
|
||||||
JOIN v3.vsp v ON v.id = sd.vsp_id
|
FROM v3.security_detail sds
|
||||||
WHERE bl.budget_form_id = p_form_id
|
JOIN v3.budget_line bl ON bl.id = sds.line_id
|
||||||
ORDER BY sd.id;
|
JOIN v3.vsp vs ON vs.id = sds.vsp_id
|
||||||
|
WHERE bl.budget_form_id = p_form_id
|
||||||
|
) sk
|
||||||
|
JOIN v3.security_detail sd ON sd.id = sk.id
|
||||||
|
JOIN v3.vsp v ON v.id = sd.vsp_id
|
||||||
|
WHERE p_focus_lines IS NULL OR sd.id = ANY(p_focus_lines)
|
||||||
|
ORDER BY sk._rn;
|
||||||
RETURN;
|
RETURN;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
@ -1275,6 +1295,11 @@ BEGIN
|
|||||||
OVER w_prev, 0) AS cum_da_60415
|
OVER w_prev, 0) AS cum_da_60415
|
||||||
FROM v3.fixed_asset_report far
|
FROM v3.fixed_asset_report far
|
||||||
WHERE far.budget_form_id = p_form_id
|
WHERE far.budget_form_id = p_form_id
|
||||||
|
AND (p_focus_lines IS NULL OR EXISTS (
|
||||||
|
SELECT 1 FROM v3.fixed_asset_report ff
|
||||||
|
WHERE ff.id = ANY(p_focus_lines)
|
||||||
|
AND ff.expense_item_id IS NOT DISTINCT FROM far.expense_item_id
|
||||||
|
AND ff.equipment_name IS NOT DISTINCT FROM far.equipment_name))
|
||||||
WINDOW w AS (PARTITION BY far.budget_form_id, far.expense_item_id, far.equipment_name
|
WINDOW w AS (PARTITION BY far.budget_form_id, far.expense_item_id, far.equipment_name
|
||||||
ORDER BY far.month),
|
ORDER BY far.month),
|
||||||
w_prev AS (PARTITION BY far.budget_form_id, far.expense_item_id, far.equipment_name
|
w_prev AS (PARTITION BY far.budget_form_id, far.expense_item_id, far.equipment_name
|
||||||
@ -1292,7 +1317,7 @@ BEGIN
|
|||||||
SELECT
|
SELECT
|
||||||
'INPUT'::VARCHAR,
|
'INPUT'::VARCHAR,
|
||||||
0,
|
0,
|
||||||
ROW_NUMBER() OVER (ORDER BY eff.expense_item_id, eff.month) AS sort_order,
|
sk._rn AS sort_order,
|
||||||
jsonb_build_object(
|
jsonb_build_object(
|
||||||
'id', eff.id,
|
'id', eff.id,
|
||||||
'expense_item_id', ei.id,
|
'expense_item_id', ei.id,
|
||||||
@ -1332,7 +1357,14 @@ BEGIN
|
|||||||
)
|
)
|
||||||
FROM eff
|
FROM eff
|
||||||
JOIN v3.expense_item ei ON ei.id = eff.expense_item_id
|
JOIN v3.expense_item ei ON ei.id = eff.expense_item_id
|
||||||
ORDER BY eff.expense_item_id, eff.month;
|
JOIN (
|
||||||
|
SELECT fs.id,
|
||||||
|
ROW_NUMBER() OVER (ORDER BY fs.expense_item_id, fs.month, fs.id) AS _rn
|
||||||
|
FROM v3.fixed_asset_report fs
|
||||||
|
JOIN v3.expense_item eis ON eis.id = fs.expense_item_id
|
||||||
|
WHERE fs.budget_form_id = p_form_id
|
||||||
|
) sk ON sk.id = eff.id
|
||||||
|
ORDER BY sk._rn;
|
||||||
RETURN;
|
RETURN;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user