Обновить dags/OSV.py

This commit is contained in:
bn_user 2025-09-05 12:57:43 +00:00
parent 2d9695eff3
commit b8530141cb
1 changed files with 58 additions and 87 deletions

View File

@ -71,96 +71,67 @@ def read_data_1C(**kwargs):
data_from_1c = response.json()
df = pd.DataFrame(data_from_1c['data'])
# engine = get_db_engine()
# table_name = 'oborotno_salbdovaya_vedomostb'
engine = get_db_engine()
table_name = 'oborotno_salbdovaya_vedomostb'
# field_mapping = {
# # Основные поля
# 'Счет': 'schet',
# 'Субконто1': 'subkonto1',
# 'Субконто2': 'subkonto2',
# # 'Субконто3': 'subkonto3',
# 'Организация': 'organizaciya',
# # 'Валюта': 'valyuta',
field_mapping = {
# Основные поля
'Счет': 'schet',
'Субконто1': 'subkonto1',
'Субконто2': 'subkonto2',
'Организация': 'organizaciya',
'Контрагент': 'kontagent',
'НомерДоговора': 'nomer',
'ДатаДоговора': 'date_bedin',
'СрокДействияДоговора': 'date_end',
# # Суммовые остатки и обороты
# # 'СуммаНачальныйОстаток': 'summa_nachalnyy_ostatok',
# # 'СуммаНачальныйОстатокДт': 'summa_nachalnyy_ostatok_dt',
# # 'СуммаНачальныйОстатокКт': 'summa_nachalnyy_ostatok_kt',
# # 'СуммаНачальныйРазвернутыйОстатокДт': 'summa_nachalnyy_razvernutyy_ostatok_dt',
# # 'СуммаНачальныйРазвернутыйОстатокКт': 'summa_nachalnyy_razvernutyy_ostatok_kt',
# 'СуммаОборот': 'summa_oborot',
# 'СуммаОборотДт': 'summa_oborot_dt',
# 'СуммаОборотКт': 'summa_oborot_kt',
# 'СуммаКонечныйОстаток': 'summa_konechnyy_ostatok',
# 'СуммаКонечныйОстатокДт': 'summa_konechnyy_ostatok_dt',
# 'СуммаКонечныйОстатокКт': 'summa_konechnyy_ostatok_kt',
# 'СуммаКонечныйРазвернутыйОстатокДт': 'summa_konechnyy_razvernutyy_ostatok_dt',
# 'СуммаКонечныйРазвернутыйОстатокКт': 'summa_konechnyy_razvernutyy_ostatok_kt'
# # Валютные остатки и обороты
# # 'ВалютнаяСуммаНачальныйОстаток': 'valyutnaya_summa_nachalnyy_ostatok',
# # 'ВалютнаяСуммаНачальныйОстатокДт': 'valyutnaya_summa_nachalnyy_ostatok_dt',
# # 'ВалютнаяСуммаНачальныйОстатокКт': 'valyutnaya_summa_nachalnyy_ostatok_kt',
# # 'ВалютнаяСуммаНачальныйРазвернутыйОстатокДт': 'valyutnaya_summa_nachalnyy_razvernutyy_ostatok_dt',
# # 'ВалютнаяСуммаНачальныйРазвернутыйОстатокКт': 'valyutnaya_summa_nachalnyy_razvernutyy_ostatok_kt',
# # 'ВалютнаяСуммаОборот': 'valyutnaya_summa_oborot',
# # 'ВалютнаяСуммаОборотДт': 'valyutnaya_summa_oborot_dt',
# # 'ВалютнаяСуммаОборотКт': 'valyutnaya_summa_oborot_kt',
# # 'ВалютнаяСуммаКонечныйОстаток': 'valyutnaya_summa_konechnyy_ostatok',
# # 'ВалютнаяСуммаКонечныйОстатокДт': 'valyutnaya_summa_konechnyy_ostatok_dt',
# # 'ВалютнаяСуммаКонечныйОстатокКт': 'valyutnaya_summa_konechnyy_ostatok_kt',
# # 'ВалютнаяСуммаКонечныйРазвернутыйОстатокДт': 'valyutnaya_summa_konechnyy_razvernutyy_ostatok_dt',
# # 'ВалютнаяСуммаКонечныйРазвернутыйОстатокКт': 'valyutnaya_summa_konechnyy_razvernutyy_ostatok_kt',
# # Количественные остатки и обороты
# # 'КоличествоНачальныйОстаток': 'kolichestvo_nachalnyy_ostatok',
# # 'КоличествоНачальныйОстатокДт': 'kolichestvo_nachalnyy_ostatok_dt',
# # 'КоличествоНачальныйОстатокКт': 'kolichestvo_nachalnyy_ostatok_kt',
# # 'КоличествоНачальныйРазвернутыйОстатокДт': 'kolichestvo_nachalnyy_razvernutyy_ostatok_dt',
# # 'КоличествоНачальныйРазвернутыйОстатокКт': 'kolichestvo_nachalnyy_razvernutyy_ostatok_kt',
# # 'КоличествоОборот': 'kolichestvo_oborot',
# # 'КоличествоОборотДт': 'kolichestvo_oborot_dt',
# # 'КоличествоОборотКт': 'kolichestvo_oborot_kt',
# # 'КоличествоКонечныйОстаток': 'kolichestvo_konechnyy_ostatok',
# # 'КоличествоКонечныйОстатокДт': 'kolichestvo_konechnyy_ostatok_dt',
# # 'КоличествоКонечныйОстатокКт': 'kolichestvo_konechnyy_ostatok_kt',
# # 'КоличествоКонечныйРазвернутыйОстатокДт': 'kolichestvo_konechnyy_razvernutyy_ostatok_dt',
# # 'КоличествоКонечныйРазвернутыйОстатокКт': 'kolichestvo_konechnyy_razvernutyy_ostatok_kt'
# }
# Суммовые остатки и обороты
'СуммаОборот': 'summa_oborot',
'СуммаОборотДт': 'summa_oborot_dt',
'СуммаОборотКт': 'summa_oborot_kt',
'СуммаКонечныйОстаток': 'summa_konechnyy_ostatok',
'СуммаКонечныйОстатокДт': 'summa_konechnyy_ostatok_dt',
'СуммаКонечныйОстатокКт': 'summa_konechnyy_ostatok_kt',
'СуммаКонечныйРазвернутыйОстатокДт': 'summa_konechnyy_razvernutyy_ostatok_dt',
'СуммаКонечныйРазвернутыйОстатокКт': 'summa_konechnyy_razvernutyy_ostatok_kt'
}
# df = df.rename(columns=field_mapping)
# with engine.begin() as conn:
# if not df.empty:
# conn.execute(f"CREATE TEMP TABLE temp_{table_name} AS SELECT * FROM public.{table_name} WHERE 1 = 0")
# df.to_sql(
# f'temp_{table_name}',
# con=conn,
# if_exists='append',
# index=False,
# method='multi'
# )
# conn.execute(f"DELETE FROM public.{table_name} where get_date = CURRENT_DATE::date::timestamp")
# conn.execute(f"""
# INSERT INTO public.{table_name}
# SELECT
# schet
# , subkonto1
# , subkonto2
# , organizaciya
# , summa_oborot
# , summa_oborot_dt
# , summa_oborot_kt
# , summa_konechnyy_ostatok
# , summa_konechnyy_ostatok_dt
# , summa_konechnyy_ostatok_kt
# , summa_konechnyy_razvernutyy_ostatok_dt
# , summa_konechnyy_razvernutyy_ostatok_kt
# , CURRENT_DATE::date::timestamp
# FROM temp_{table_name}
# --ON CONFLICT (schet, subkonto1, subkonto2, organizaciya)
# """
# )
df = df.rename(columns=field_mapping)
with engine.begin() as conn:
if not df.empty:
conn.execute(f"CREATE TEMP TABLE temp_{table_name} AS SELECT * FROM public.{table_name} WHERE 1 = 0")
df.to_sql(
f'temp_{table_name}',
con=conn,
if_exists='append',
index=False,
method='multi'
)
conn.execute(f"DELETE FROM public.{table_name} where get_date = CURRENT_DATE::date::timestamp")
conn.execute(f"""
INSERT INTO public.{table_name}
SELECT
schet
, subkonto1
, subkonto2
, organizaciya
, kontagent
, nomer
, date_bedin
, date_end
, summa_oborot
, summa_oborot_dt
, summa_oborot_kt
, summa_konechnyy_ostatok
, summa_konechnyy_ostatok_dt
, summa_konechnyy_ostatok_kt
, summa_konechnyy_razvernutyy_ostatok_dt
, summa_konechnyy_razvernutyy_ostatok_kt
, CURRENT_DATE::date::timestamp
FROM temp_{table_name}
--ON CONFLICT (schet, subkonto1, subkonto2, organizaciya)
"""
)
with DAG(
dag_id='data_download_from_1C_source',