Обновить dags/OSV.py
This commit is contained in:
parent
ad448bebd2
commit
f3abfafa96
208
dags/OSV.py
208
dags/OSV.py
|
|
@ -34,20 +34,31 @@ def get_db_engine():
|
|||
def read_data_1C(**kwargs):
|
||||
params = {"СписокСчетов": ["66","66.01","66.02", "66.03","66.04","66.21","66.22","66.23","66.24", "67","67.01","67.02", "67.03","67.04","67.21","67.22","67.23","67.24"]}
|
||||
query = """ВЫБРАТЬ
|
||||
ОстаткиИОбороты.Счет,
|
||||
ОстаткиИОбороты.Субконто1,
|
||||
ОстаткиИОбороты.Субконто2,
|
||||
ОстаткиИОбороты.Организация,
|
||||
ОстаткиИОбороты.СуммаОборот,
|
||||
ОстаткиИОбороты.СуммаОборотДт,
|
||||
ОстаткиИОбороты.СуммаОборотКт,
|
||||
ОстаткиИОбороты.СуммаКонечныйОстаток,
|
||||
ОстаткиИОбороты.СуммаКонечныйОстатокДт,
|
||||
ОстаткиИОбороты.СуммаКонечныйОстатокКт,
|
||||
ОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокДт,
|
||||
ОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокКт
|
||||
ОстаткиОбороты.Счет,
|
||||
ОстаткиОбороты.Субконто1,
|
||||
ОстаткиОбороты.Субконто2,
|
||||
ОстаткиОбороты.Организация,
|
||||
ОстаткиОбороты.СуммаОборот,
|
||||
ОстаткиОбороты.СуммаОборотДт,
|
||||
ОстаткиОбороты.СуммаОборотКт,
|
||||
ОстаткиОбороты.СуммаКонечныйОстаток,
|
||||
ОстаткиОбороты.СуммаКонечныйОстатокДт,
|
||||
ОстаткиОбороты.СуммаКонечныйОстатокКт,
|
||||
ОстаткиОбороты.СуммаКонечныйРазвернутыйОстатокДт,
|
||||
ОстаткиОбороты.СуммаКонечныйРазвернутыйОстатокКт,
|
||||
// Добавляем поля договоров
|
||||
Договоры.Ссылка КАК Договор,
|
||||
Договоры.Владелец КАК Контрагент,
|
||||
Договоры.Номер КАК НомерДоговора,
|
||||
Договоры.Дата КАК ДатаДоговора,
|
||||
Договоры.СрокДействия КАК СрокДействияДоговора
|
||||
ИЗ
|
||||
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты КАК ОстаткиИОбороты
|
||||
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(,,,
|
||||
,
|
||||
Счет В (&СписокСчетов)
|
||||
) КАК ОстаткиОбороты
|
||||
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК Договоры
|
||||
ПО ОстаткиОбороты.Субконто2 = Договоры.Ссылка
|
||||
ГДЕ
|
||||
ОстаткиИОбороты.Счет.Код В (&СписокСчетов)
|
||||
"""
|
||||
|
|
@ -64,96 +75,97 @@ 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'
|
||||
print(df)
|
||||
# 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',
|
||||
# # 'Субконто3': 'subkonto3',
|
||||
# 'Организация': 'organizaciya',
|
||||
# # 'Валюта': 'valyuta',
|
||||
|
||||
# Суммовые остатки и обороты
|
||||
# 'СуммаНачальныйОстаток': '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'
|
||||
# # Суммовые остатки и обороты
|
||||
# # 'СуммаНачальныйОстаток': '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',
|
||||
# # Валютные остатки и обороты
|
||||
# # 'ВалютнаяСуммаНачальныйОстаток': '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'
|
||||
}
|
||||
# # Количественные остатки и обороты
|
||||
# # 'КоличествоНачальныйОстаток': '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'
|
||||
# }
|
||||
|
||||
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
|
||||
# , 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',
|
||||
|
|
|
|||
Loading…
Reference in New Issue