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
5709ac09ce
commit
b2d0df756a
@ -1125,6 +1125,8 @@ BEGIN
|
||||
LEFT JOIN agg a ON a.root_id = lt.id
|
||||
LEFT JOIN v3.form_limit fl
|
||||
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;
|
||||
RETURN;
|
||||
END IF;
|
||||
@ -1135,7 +1137,7 @@ BEGIN
|
||||
SELECT
|
||||
'INPUT'::VARCHAR,
|
||||
0,
|
||||
ROW_NUMBER() OVER (ORDER BY rd.id) AS sort_order,
|
||||
sk._rn AS sort_order,
|
||||
jsonb_build_object(
|
||||
'id', rd.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)),
|
||||
'comment', rd.comment
|
||||
)
|
||||
FROM v3.rent_detail rd
|
||||
JOIN v3.budget_line bl ON bl.id = rd.line_id
|
||||
JOIN v3.vsp v ON v.id = rd.vsp_id
|
||||
WHERE bl.budget_form_id = p_form_id
|
||||
ORDER BY rd.id;
|
||||
FROM (
|
||||
SELECT rds.id, ROW_NUMBER() OVER (ORDER BY rds.id) AS _rn
|
||||
FROM v3.rent_detail rds
|
||||
JOIN v3.budget_line bl ON bl.id = rds.line_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;
|
||||
END IF;
|
||||
|
||||
@ -1171,7 +1179,7 @@ BEGIN
|
||||
SELECT
|
||||
'INPUT'::VARCHAR,
|
||||
0,
|
||||
ROW_NUMBER() OVER (ORDER BY ud.id) AS sort_order,
|
||||
sk._rn AS sort_order,
|
||||
jsonb_build_object(
|
||||
'id', ud.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)),
|
||||
'comment', ud.comment
|
||||
)
|
||||
FROM v3.utility_detail ud
|
||||
JOIN v3.budget_line bl ON bl.id = ud.line_id
|
||||
JOIN v3.vsp v ON v.id = ud.vsp_id
|
||||
WHERE bl.budget_form_id = p_form_id
|
||||
ORDER BY ud.id;
|
||||
FROM (
|
||||
SELECT uds.id, ROW_NUMBER() OVER (ORDER BY uds.id) AS _rn
|
||||
FROM v3.utility_detail uds
|
||||
JOIN v3.budget_line bl ON bl.id = uds.line_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;
|
||||
END IF;
|
||||
|
||||
@ -1207,7 +1221,7 @@ BEGIN
|
||||
SELECT
|
||||
'INPUT'::VARCHAR,
|
||||
0,
|
||||
ROW_NUMBER() OVER (ORDER BY sd.id) AS sort_order,
|
||||
sk._rn AS sort_order,
|
||||
jsonb_build_object(
|
||||
'id', sd.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)),
|
||||
'comment', sd.comment
|
||||
)
|
||||
FROM v3.security_detail sd
|
||||
JOIN v3.budget_line bl ON bl.id = sd.line_id
|
||||
JOIN v3.vsp v ON v.id = sd.vsp_id
|
||||
WHERE bl.budget_form_id = p_form_id
|
||||
ORDER BY sd.id;
|
||||
FROM (
|
||||
SELECT sds.id, ROW_NUMBER() OVER (ORDER BY sds.id) AS _rn
|
||||
FROM v3.security_detail sds
|
||||
JOIN v3.budget_line bl ON bl.id = sds.line_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;
|
||||
END IF;
|
||||
|
||||
@ -1275,6 +1295,11 @@ BEGIN
|
||||
OVER w_prev, 0) AS cum_da_60415
|
||||
FROM v3.fixed_asset_report far
|
||||
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
|
||||
ORDER BY far.month),
|
||||
w_prev AS (PARTITION BY far.budget_form_id, far.expense_item_id, far.equipment_name
|
||||
@ -1292,7 +1317,7 @@ BEGIN
|
||||
SELECT
|
||||
'INPUT'::VARCHAR,
|
||||
0,
|
||||
ROW_NUMBER() OVER (ORDER BY eff.expense_item_id, eff.month) AS sort_order,
|
||||
sk._rn AS sort_order,
|
||||
jsonb_build_object(
|
||||
'id', eff.id,
|
||||
'expense_item_id', ei.id,
|
||||
@ -1332,7 +1357,14 @@ BEGIN
|
||||
)
|
||||
FROM eff
|
||||
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;
|
||||
END IF;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user