SU2-33 | Очистка данных от пустых строк и столбцов

This commit is contained in:
ARLakhin
2026-04-20 23:40:48 +03:00
parent 44cd3993ac
commit c750e470d6
+22 -3
View File
@@ -30,14 +30,15 @@ class OrganisationsController < ApplicationController
statements_by_year_and_form = build_statements_by_year_and_form statements_by_year_and_form = build_statements_by_year_and_form
years = statements_by_year_and_form.keys.sort.reverse years = statements_by_year_and_form.keys.sort.reverse
grouped_rows = build_grouped_rows(statements_by_year_and_form, years) grouped_rows = clean_data(build_grouped_rows(statements_by_year_and_form, years))
@info_about_organisation = build_organization_payload(years) @info_about_organisation = build_organization_payload(years)
selected_doc = DOC_TYPES.fetch(@type_doc, DOC_TYPES[0]) selected_doc = DOC_TYPES.fetch(@type_doc, DOC_TYPES[0])
@doc_name = selected_doc[:title] @doc_name = selected_doc[:title]
@current_doc_info = @info_about_organisation[@doc_name]
@current_doc_info1 = grouped_rows[@doc_name] @current_doc_info1 = grouped_rows[@doc_name]
if !@current_doc_info1.values.first.nil?
@current_doc_info = @info_about_organisation[@doc_name][0..@current_doc_info1.values.first.size + 1]
end
end end
@@ -95,6 +96,24 @@ class OrganisationsController < ApplicationController
data data
end end
def clean_data(data)
data.transform_values do |doc_type_data|
rows = doc_type_data.reject do |_, values|
values.all? { |value| value == "-" || value.nil? || value == ""}
end
next {} if rows.empty?
column_count = rows.values.map(&:size).max
columns_to_keep = (0...column_count).select do |i|
rows.values.any? { |values| values[i] != "-" && !values[i].nil? && values[i] != ""}
end
rows.transform_values do |values|
columns_to_keep.map { |i| values[i]}
end
end
end
def build_statements_by_year_and_form def build_statements_by_year_and_form
grouped = Hash.new { |hash, key| hash[key] = {} } grouped = Hash.new { |hash, key| hash[key] = {} }