package Ġno . nav . su . se . bak over . database . gr un nl ag Ċ Ċ import Ġarrow . core . N el Ċ import Ġk ot li query . Row Ċ import Ġno . nav . su . se . bak over . common . peri ode . Per i ode Ċ import Ġno . nav . su . se . bak over . database . Db Metrics Ċ import Ġno . nav . su . se . bak over . database . Session Ċ import Ġno . nav . su . se . bak over . database . Transactional Session Ċ import Ġno . nav . su . se . bak over . database . h ent List e Ċ import Ġno . nav . su . se . bak over . database . insert Ċ import Ġno . nav . su . se . bak over . database . op pd ater ing Ċ import Ġno . nav . su . se . bak over . database . tid sp unkt Ċ import Ġno . nav . su . se . bak over . database . uuid Ċ import Ġno . nav . su . se . bak over . database . with Transaction Ċ import Ġno . nav . su . se . bak over . domain . v ilk Ã¥r . Result at Ċ import Ġno . nav . su . se . bak over . domain . v ilk Ã¥r . V ilk Ã¥r Ċ import Ġno . nav . su . se . bak over . domain . v ilk Ã¥r . V ur der ing sp eri ode Ċ import Ġjava . util . UUID Ċ import Ġjavax . sql . DataSource Ċ Ċ internal Ġclass ĠForm ue V ilk Ã¥r sv ur der ing Postgres Repo ( ĊĠĠĠ Ġprivate Ġval ĠdataSource : ĠDataSource , ĊĠĠĠ Ġprivate Ġval Ġform ue gr un nl ag Postgres Repo : ĠForm ue gr un nl ag Postgres Repo , ĊĠĠĠ Ġprivate Ġval Ġdb Metrics : ĠDb Metrics , Ċ ) Ġ: ĠForm ue V ilk Ã¥r sv ur der ing Repo Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġlag re ( be handling Id : ĠUUID , Ġv ilk Ã¥r : ĠV ilk Ã¥r . Form ue ) Ġ{ ĊĠĠĠĠĠĠĠ ĠdataSource . with Transaction Ġ{ Ġtx Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlag re ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Id Ġ= Ġbe handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r Ġ= Ġv ilk Ã¥r , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx Ġ= Ġtx , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġlag re ( be handling Id : ĠUUID , Ġv ilk Ã¥r : ĠV ilk Ã¥r . Form ue , Ġtx : ĠTransaction al Session ) Ġ{ ĊĠĠĠĠĠĠĠ Ġs lett For Be handling Id ( be handling Id , Ġtx ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v ilk Ã¥r ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV ilk Ã¥r . Form ue . Ik ke V ur der t Ġ-> ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠV ilk Ã¥r . Form ue . V ur der t Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform ue gr un nl ag Postgres Repo . lag re Form ue gr un nl ag ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Id Ġ= Ġbe handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform ue gr un nl ag Ġ= Ġv ilk Ã¥r . gr un nl ag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx Ġ= Ġtx , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r . v ur der ing sper iod er . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlag re ( be handling Id , Ġit , Ġtx ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlag re ( be handling Id : ĠUUID , Ġv ur der ing sp eri ode : ĠV ur der ing sp eri ode . Form ue , Ġtx : ĠTransaction al Session ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Ġinto Ġv ilk Ã¥r sv ur der ing _ form ue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopp rett et , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform ue _ gr un nl ag _ id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv ur der ing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult at , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ra Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtil Og Med ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġvalues ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: op prett et , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: be handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: form ue _ gr un nl ag _ id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: v ur der ing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: result at , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: f ra Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: til Og Med ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. insert ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id " Ġto Ġv ur der ing sp eri ode . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" op prett et " Ġto Ġv ur der ing sp eri ode . op prett et , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" be handling Id " Ġto Ġbe handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" form ue _ gr un nl ag _ id " Ġto Ġv ur der ing sp eri ode . gr un nl ag . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" v ur der ing " Ġto Ġ" AUT OM AT IS K ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" result at " Ġto Ġv ur der ing sp eri ode . result at . to Dto (). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" f ra Og Med " Ġto Ġv ur der ing sp eri ode . peri ode . f ra Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" til Og Med " Ġto Ġv ur der ing sp eri ode . peri ode . til Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġs lett For Be handling Id ( be handling Id : ĠUUID , Ġtx : ĠTransaction al Session ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Ġfrom Ġv ilk Ã¥r sv ur der ing _ form ue Ġwhere Ġbe handling Id Ġ= Ġ: be handling Id ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. op pd ater ing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" be handling Id " Ġto Ġbe handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġh ent ( be handling Id : ĠUUID , Ġsession : ĠSession ): ĠV ilk Ã¥r . Form ue Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdb Metrics . time Query (" h ent V ilk Ã¥r sv ur der ing Form ue ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect Ġ* Ġfrom Ġv ilk Ã¥r sv ur der ing _ form ue Ġwhere Ġbe handling Id Ġ= Ġ: be handling Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. h ent List e ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" be handling Id " Ġto Ġbe handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsession , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . to V ur der ing sper iod er ( session ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> ĠV ilk Ã¥r . Form ue . V ur der t . createFrom V ilk Ã¥r sv ur der inger ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv ur der ing sper iod er Ġ= ĠN el . fromList Unsafe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> ĠV ilk Ã¥r . Form ue . Ik ke V ur der t ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠRow . to V ur der ing sper iod er ( session : ĠSession ): ĠV ur der ing sp eri ode . Form ue Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠV ur der ing sp eri ode . Form ue . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġuuid (" id "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopp rett et Ġ= Ġtid sp unkt (" op prett et "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult at Ġ= ĠResult at Dto . valueOf ( string (" result at ")). to Domain (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg run nl ag Ġ= Ġuuid (" form ue _ gr un nl ag _ id "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform ue gr un nl ag Postgres Repo . h ent For Form ue gr un nl ag Id ( it , Ġsession ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Ġ= ĠPer i ode . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ra Og Med Ġ= Ġlocal Date (" f ra Og Med "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtil Og Med Ġ= Ġlocal Date (" til Og Med "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġenum Ġclass ĠResult at Dto Ġ{ ĊĠĠĠĠĠĠĠ ĠAV SL AG , ĊĠĠĠĠĠĠĠ ĠIN NV IL GET , ĊĠĠĠĠĠĠĠ ĠU AV KL ART ; ĊĊĠĠĠĠĠĠĠ Ġfun Ġto Domain () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAV SL AG Ġ-> ĠResult at . Av sl ag ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIN NV IL GET Ġ-> ĠResult at . In nv il get ĊĠĠĠĠĠĠĠĠĠĠĠ ĠU AV KL ART Ġ-> ĠResult at . U av kl art ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠResult at . to Dto () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ ĠResult at . Av sl ag Ġ-> ĠResult at Dto . AV SL AG ĊĠĠĠĠĠĠĠ ĠResult at . In nv il get Ġ-> ĠResult at Dto . IN NV IL GET ĊĠĠĠĠĠĠĠ ĠResult at . U av kl art Ġ-> ĠResult at Dto . U AV KL ART ĊĠĠĠ Ġ} Ċ } Ċ