DorkasV / jira-to-github-issues

0 stars 0 forks source link

hovedsagsbehandler er dubbleret #63

Open sync-by-unito[bot] opened 4 months ago

sync-by-unito[bot] commented 4 months ago

Jeg har konstareret at der er visse (32 stk) lokaliteter i RM’s JAR, som har mere end een hovedsagsbehandler i databasen (tabellen r_forurening_sagsbehandler). Det kan ikke ses i brugerfladen, da den blot viser den første forekomst.

Dubletter betyder at diverse sql-udtræk giver dubletter i outputtet hvis ikke man tager hensyn til det. Desuden kan JAR formentlig give erindringer til den ‘forkerte’ sagshandler.

følgende sql finder dublet-poster i tabellen r_forurening_sagsbehandler for hovedssagsbehandler:

Select * from
(
SELECT     rfs.forurening_id,rfs.sagsbehandler_id,rfs.kode_id,
row_number() over (partition by rfs.forurening_id,el.pkid order by eb.slettet asc,eb.bruger_type desc,eb.pkid) as r
FROM         dbo.r_forurening_sagsbehandler  as rfs
            INNER JOIN
                      dbo.e_liste AS el 
                      ON rfs.kode_id = el.pkid 
            INNER JOIN
                      dbo.e_bruger as eb
                      ON rfs.sagsbehandler_id = eb.pkid
WHERE     (el.kode_type = 'Sagsbeh_type') AND (el.kode = '0003.010')
)  as q where r>1

Hvorvidt disse dubletter er opstået i nuværende JAR, eller det er et gammel levn er ikke til at se.

sync-by-unito[bot] commented 4 months ago

➤ Tom Birch Hansen commented:

Følgende SQL rydder op i dubletterne. Den prioriterer at beholde de brugere som ikke er slettet fremfor slettede.

begin transaction

-- laver temp-tabel med de poster (dubletter) som skal slettes select forurening_id,sagsbehandler_id,kode_id into #tmp_dubletter from ( SELECT rfs.forurening_id,rfs.sagsbehandler_id,rfs.kode_id, row_number() over (partition by rfs.forurening_id,el.pkid order by eb.slettet asc,eb.bruger_type desc,eb.pkid) as r FROM dbo.r_forurening_sagsbehandler as rfs INNER JOIN dbo.e_liste AS el ON rfs.kode_id = el.pkid INNER JOIN dbo.e_bruger as eb ON rfs.sagsbehandler_id = eb.pkid WHERE (el.kode_type = 'Sagsbeh_type') AND (el.kode = '0003.010') ) as q where r>1

-- indsætter til r_forurening_sagsbehandler, således at brugere som slettes, kommer til at fremgå som tidligere hovedsagsbehandler. INSERT INTO [dbo].[r_forurening_sagsbehandler] ([forurening_id] ,[sagsbehandler_id] ,[kode_id]) select i.forurening_id ,i.sagsbehandler_id ,(select pkid from dbo.e_liste where kode_type like '%Sagsbeh_type%' and kode='0003.011') -- tidligere hovedsagsbh from #tmp_dubletter as i where not exists -- sagsbehandleren må ikke allerede være 'tidligere hovedsagsbehandler': ( select 1 from dbo.r_forurening_sagsbehandler as q where q.forurening_id=i.forurening_id and q.sagsbehandler_id=i.sagsbehandler_id and q.kode_id=(select pkid from dbo.e_liste where kode_type like '%Sagsbeh_type%' and kode='0003.011') -- tidligere hovedsagsbh )

-- nu slettes hovedsagsbh-dubletterne delete from d -- select * from dbo.r_forurening_sagsbehandler as d where exists ( select 1 from #tmp_dubletter as q where d.forurening_id=q.forurening_id and d.kode_id=q.kode_id and d.sagsbehandler_id=q.sagsbehandler_id )

-- skriver til log tabel INSERT INTO [dbo].[script_log_gm] (db_version,pakke_version, [dato] ,[scriptnavn] ,[beskrivelse]) VALUES ('4.6.0','', getdate() ,'JAR-1696' ,'fjerner poster fra dbo.r_forurening_sagshandler hvor der for samme forurening_id findes flere sagshandlere som har kode for hovedsagsbehandler' )

drop table #tmp_dubletter commit transactionEfterfølgende kan vi undersøge om ny dubletter opstår, hvis ikke er der næppe grund til at undersøge disse issue yderligere.

sync-by-unito[bot] commented 4 months ago

➤ Peter Riis commented:

Region Sjælland har ikke nogle dubletter

sync-by-unito[bot] commented 4 months ago

➤ Marianna Engberg Pedersen commented:

Region H har kørt ovenstående script (dvs. scriptet under Description), og vi får intet output. → Region H har ikke nogle dubletter

sync-by-unito[bot] commented 4 months ago

➤ Tom Birch Hansen commented:

Denne sag skal ikke lukkes pt. Vi fandt for nyligt ud at det kun har berørt RM og RS. Scripts til oprydning er kørt. Vi venter nu et par måneder og kører scriptet igen, for at se om nye dubletter opstår. Hvis ikke nye dubletter opstår kan vi lukke sagen.