Обновить dags/fin_porfel.py
This commit is contained in:
parent
c44863c23b
commit
0c5486ce61
|
|
@ -36,7 +36,8 @@ def upsert_list_fin_portfel(**kwargs):
|
||||||
engine = get_db_engine()
|
engine = get_db_engine()
|
||||||
query = """
|
query = """
|
||||||
select distinct
|
select distinct
|
||||||
osv.schet as schet
|
osv.uid_dogovor
|
||||||
|
, osv.schet as schet
|
||||||
, osv.subkonto2 as subkonto2
|
, osv.subkonto2 as subkonto2
|
||||||
, null as summa_dogovora
|
, null as summa_dogovora
|
||||||
, null as percent_value
|
, null as percent_value
|
||||||
|
|
@ -50,9 +51,29 @@ def upsert_list_fin_portfel(**kwargs):
|
||||||
df = pd.read_sql(query, engine)
|
df = pd.read_sql(query, engine)
|
||||||
with engine.begin() as conn:
|
with engine.begin() as conn:
|
||||||
if not df.empty:
|
if not df.empty:
|
||||||
conn.execute("CREATE TEMP TABLE temp_fin_porfel (schet text null, subkonto2 text null, summa_dogovora text null, percent_value text null)")
|
conn.execute("CREATE TEMP TABLE temp_fin_porfel (uid_dogovor text null, schet text null, subkonto2 text null, summa_dogovora text null, percent_value text null)")
|
||||||
df.to_sql('temp_fin_porfel', con=conn, if_exists='append', index=False, method='multi')
|
df.to_sql('temp_fin_porfel', con=conn, if_exists='append', index=False, method='multi')
|
||||||
conn.execute("INSERT INTO public.fin_porfel (schet, subkonto2, summa_dogovora, percent_value) SELECT distinct schet, subkonto2, summa_dogovora, percent_value FROM temp_fin_porfel")
|
conn.execute("""
|
||||||
|
INSERT INTO public.fin_porfel (uid_dogovor, schet, subkonto2, summa_dogovora, percent_value)
|
||||||
|
SELECT DISTINCT
|
||||||
|
uid_dogovor
|
||||||
|
, schet
|
||||||
|
, subkonto2
|
||||||
|
, summa_dogovora
|
||||||
|
, percent_value
|
||||||
|
FROM temp_fin_porfel
|
||||||
|
ON CONFLICT (uid_dogovor, schet)
|
||||||
|
DO UPDATE SET
|
||||||
|
subkonto2 = EXCLUDED.subkonto2,
|
||||||
|
summa_dogovora = EXCLUDED.summa_dogovora,
|
||||||
|
percent_value = EXCLUDED.percent_value
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
conn.execute("""
|
||||||
|
UPDATE public.fin_porfel fp
|
||||||
|
SET fp.id = row_nubmer() over (order by uid_dogovor, schet, summa_dogovora)
|
||||||
|
"""
|
||||||
|
)
|
||||||
return 'Список обновлен.'
|
return 'Список обновлен.'
|
||||||
else:
|
else:
|
||||||
return 'Обновлять нечего.'
|
return 'Обновлять нечего.'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue