package Ġno . nav . f amil ie . ba . sak . kj er ne . aut ob rev Ċ Ċ import Ġno . nav . f amil ie . ba . sak . common . Fe il Ċ import Ġno . nav . f amil ie . ba . sak . common . f Ã¸ r ste Dag I In ne v Ã¦ ren de M Ã¥ ned Ċ import Ġno . nav . f amil ie . ba . sak . common . is Same Or After Ċ import Ġno . nav . f amil ie . ba . sak . common . is Same Or Before Ċ import Ġno . nav . f amil ie . ba . sak . common . s iste Dag IM Ã¥ ned Ċ import Ġno . nav . f amil ie . ba . sak . config . Task Repository Wrapper Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . be handling . Be handling Service Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . be handling . Ny Be handling Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . be handling . dom ene . Be handling Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . be handling . dom ene . Be handling Status Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . be handling . dom ene . Be handling Type Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . be handling . dom ene . Be handling Ã ħ rs ak Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . f ags ak . F ags ak Status Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . gr un nl ag . person op pl ys ning er . Person Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . gr un nl ag . person op pl ys ning er . Person Type Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . gr un nl ag . person op pl ys ning er . Person op pl ys ning G run nl ag Repository Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . st eg . St eg Service Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . ved tak . V ed tak Service Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . ved tak . be gr unnel ser . V ed tak Be gr un n else S pes ifik as jon Ċ import Ġno . nav . f amil ie . ba . sak . kj er ne . ved tak . ved tak sp eri ode . V ed tak sp eri ode Service Ċ import Ġno . nav . f amil ie . ba . sak . task . Jo urn alf Ã¸ r V ed t aks bre v Task Ċ import Ġno . nav . f amil ie . ba . sak . task . dto . Aut ob rev 6 og 1 8 Ã ħ r DTO Ċ import Ġno . nav . f amil ie . pro sess ering . dom ene . Task Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ import Ġjava . time . LocalDate . now Ċ Ċ @ Service Ċ class ĠAut ob rev 6 og 1 8 Ã ħ r Service ( ĊĠĠĠ Ġprivate Ġval Ġperson op pl ys ning G run nl ag Repository : ĠPerson op pl ys ning G run nl ag Repository , ĊĠĠĠ Ġprivate Ġval Ġbe handling Service : ĠBe handling Service , ĊĠĠĠ Ġprivate Ġval Ġst eg Service : ĠSte g Service , ĊĠĠĠ Ġprivate Ġval Ġved tak Service : ĠV ed tak Service , ĊĠĠĠ Ġprivate Ġval Ġtask Repository : ĠTask Repository Wrapper , ĊĠĠĠ Ġprivate Ġval Ġved tak sp eri ode Service : ĠV ed tak sp eri ode Service , Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġfun Ġopp rett Om reg ning sop pg ave For B arn IB ry tings al der ( aut ob rev 6 og 1 8 Ã ħ r DTO : ĠAut ob rev 6 og 1 8 Ã ħ r DTO ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġlogger . info (" op prett Om reg ning sop pg ave For B arn IB ry tings al der Ġfor Ġf ags ak Ġ${ aut ob rev 6 og 1 8 Ã ħ r DTO . f ags ak Id }") ĊĊĠĠĠĠĠĠĠ Ġval Ġbe handling Ġ= Ġbe handling Service . h ent A ktiv For F ags ak ( aut ob rev 6 og 1 8 Ã ħ r DTO . f ags ak Id ) Ġ?: Ġerror (" F ant Ġik ke Ġaktiv Ġbe handling ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( be handling . f ags ak . status Ġ!= ĠF ags ak Status . L Ã ĺ PEN DE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" F ags ak Ġ${ be handling . f ags ak . id } Ġhar Ġik ke Ġstatus Ġl Ã¸ pen de , Ġog Ġder for Ġpro sess eres Ġden Ġik ke Ġvid ere .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( bre v All ere de Send t ( aut ob rev 6 og 1 8 Ã ħ r DTO )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" F ags ak Ġ${ be handling . f ags ak . id } Ġ${ aut ob rev 6 og 1 8 Ã ħ r DTO . al der } ĠÃ¥ rs Ġom reg nings bre v Ġb rev Ġall ere de Ġsend t ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! bar n Med An git t Al der In ne v Ã¦ ren de M Ã¥ ned E ks ister er ( be handling Id Ġ= Ġbe handling . id , Ġal der Ġ= Ġaut ob rev 6 og 1 8 Ã ħ r DTO . al der )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" F ags ak Ġ${ be handling . f ags ak . id } Ġhar Ġik ke Ġno e Ġb arn Ġmed Ġal der Ġ${ aut ob rev 6 og 1 8 Ã ħ r DTO . al der } Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( bar ne try gd Opp h Ã¸ rer ( aut ob rev 6 og 1 8 Ã ħ r DTO , Ġbe handling )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" F ags ak Ġ${ be handling . f ags ak . id } Ġhar Ġik ke Ġb arn Ġunder Ġ 1 8 ĠÃ¥ r Ġog Ġv il Ġopp h Ã¸ re .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( be handling . status Ġ!= ĠBe handling Status . AV SL UT TET ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror (" K an Ġik ke Ġopp ret te Ġny Ġbe handling Ġfor Ġf ags ak Ġ${ be handling . f ags ak . id } Ġet ters om Ġden Ġall ere de Ġhar Ġen ĠÃ¥ pen Ġbe hand ing .") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġopp rett et Be handling Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġst eg Service . h Ã¥ nd ter Ny Be handling ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġny Be handling Ġ= Ġopp rett Ny Om reg ning Be handling ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Ġ= Ġbe handling , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Ã ħ rs ak Ġ= Ġfin n Be handling Ã ħ rs ak For Al der ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaut ob rev 6 og 1 8 Ã ħ r DTO . al der ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġst eg Service . h Ã¥ nd ter V ilk Ã¥r sv ur der ing ( be handling Ġ= Ġopp rett et Be handling ) ĊĊĠĠĠĠĠĠĠ Ġved tak sp eri ode Service . op pd ater Fort s att In nv il get Per i ode Med Aut ob rev Be gr un n else ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġved tak Ġ= Ġved tak Service . h ent A ktiv For Be handling Throws ( op prett et Be handling . id ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġved tak Be gr un n else S pes ifik as jon Ġ= Ġfin n V ed tak be gr un n else For Al der ( aut ob rev 6 og 1 8 Ã ħ r DTO . al der ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġopp rett et V ed tak Ġ= Ġved tak Service . op prett To Tr inn sk ont roll Og V ed t aks bre v For Autom atis k Be handling ( op prett et Be handling ) ĊĊĠĠĠĠĠĠĠ Ġopp rett Task Jo urn alf Ã¸ r V ed t aks bre v ( ved tak Id Ġ= Ġopp rett et V ed tak . id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbar ne try gd Opp h Ã¸ rer ( ĊĠĠĠĠĠĠĠ Ġaut ob rev 6 og 1 8 Ã ħ r DTO : ĠAut ob rev 6 og 1 8 Ã ħ r DTO , ĊĠĠĠĠĠĠĠ Ġbe handling : ĠBe handling ĊĠĠĠ Ġ) Ġ= ĊĠĠĠĠĠĠĠ Ġaut ob rev 6 og 1 8 Ã ħ r DTO . al der Ġ== ĠAl der . at ten . Ã¥r Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! bar n Under 1 8 Ã¥r In ne v Ã¦ ren de M Ã¥ ned E ks ister er ( be handling Id Ġ= Ġbe handling . id ) ĊĊĠĠĠ Ġprivate Ġfun Ġfin n Be handling Ã ħ rs ak For Al der ( al der : ĠInt ): ĠBe handling Ã ħ rs ak Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( al der ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAl der . se ks . Ã¥r Ġ-> ĠBe handling Ã ħ rs ak . OM REG NING _ 6 Ã ħ R ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAl der . at ten . Ã¥r Ġ-> ĠBe handling Ã ħ rs ak . OM REG NING _ 1 8 Ã ħ R ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠFe il (" Al der ĠmÃ¥ Ġv Ã¦ re Ġopp git t Ġtil Ġent en Ġ 6 Ġeller Ġ 1 8 ĠÃ¥ r .") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfin n V ed tak be gr un n else For Al der ( al der : ĠInt ): ĠV ed tak Be gr un n else S pes ifik as jon Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( al der ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAl der . se ks . Ã¥r Ġ-> ĠV ed tak Be gr un n else S pes ifik as jon . RED U KS J ON _ UNDER _ 6 _ Ã ħ R ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAl der . at ten . Ã¥r Ġ-> ĠV ed tak Be gr un n else S pes ifik as jon . RED U KS J ON _ UNDER _ 1 8 _ Ã ħ R ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠFe il (" Al der ĠmÃ¥ Ġv Ã¦ re Ġopp git t Ġtil Ġent en Ġ 6 Ġeller Ġ 1 8 ĠÃ¥ r .") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġb rev All ere de Send t ( aut ob rev 6 og 1 8 Ã ħ r DTO : ĠAut ob rev 6 og 1 8 Ã ħ r DTO ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġbe handling Service . h ent Be handling er ( f ags ak Id Ġ= Ġaut ob rev 6 og 1 8 Ã ħ r DTO . f ags ak Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . status Ġ== ĠBe handling Status . AV SL UT TET Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. any Ġ{ Ġbe handling Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġved tak Ġ= Ġved tak Service . h ent A ktiv For Be handling Throws ( be handling . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġved tak sper iod er Med Be gr unnel ser Ġ= Ġved tak sp eri ode Service . h ent Pers ister te V ed tak sper iod er ( ved tak ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġved tak sper iod er Med Be gr unnel ser . any Ġ{ Ġved tak sp eri ode Med Be gr unnel ser Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġved tak sp eri ode Med Be gr unnel ser . be gr unnel ser . map Ġ{ Ġit . ved tak Be gr un n else S pes ifik as jon Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains ( fin n V ed tak be gr un n else For Al der ( aut ob rev 6 og 1 8 Ã ħ r DTO . al der )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġb arn Med An git t Al der In ne v Ã¦ ren de M Ã¥ ned E ks ister er ( be handling Id : ĠLong , Ġal der : ĠInt ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġb arn Med An git t Al der In ne v Ã¦ ren de M Ã¥ ned ( be handling Id , Ġal der ). isNotEmpty () ĊĊĠĠĠ Ġprivate Ġfun Ġb arn Med An git t Al der In ne v Ã¦ ren de M Ã¥ ned ( be handling Id : ĠLong , Ġal der : ĠInt ): ĠList < Person > Ġ= ĊĠĠĠĠĠĠĠ Ġperson op pl ys ning G run nl ag Repository . findBy Be handling And A ktiv ( be handling Id Ġ= Ġbe handling Id )?. person er ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . filter Ġ{ Ġit . type Ġ== ĠPerson Type . BAR N Ġ&& Ġit . fy ller Ant all Ã ħ r In ne v Ã¦ ren de M Ã¥ ned ( al der ) Ġ} ?. toList () Ġ?: ĠlistOf () ĊĊĠĠĠ Ġprivate Ġfun Ġb arn Under 1 8 Ã¥r In ne v Ã¦ ren de M Ã¥ ned E ks ister er ( be handling Id : ĠLong ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġperson op pl ys ning G run nl ag Repository . findBy Be handling And A ktiv ( be handling Id Ġ= Ġbe handling Id )?. person er ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . any Ġ{ Ġit . type Ġ== ĠPerson Type . BAR N Ġ&& Ġit . er Y ng re En n In ne v Ã¦ ren de M Ã¥ ned ( Al der . at ten . Ã¥r ) Ġ} Ġ?: Ġfalse ĊĊĠĠĠ Ġprivate Ġfun Ġopp rett Ny Om reg ning Be handling ( be handling : ĠBe handling , Ġbe handling Ã ħ rs ak : ĠBe handling Ã ħ rs ak ): ĠN y Be handling Ġ= ĊĠĠĠĠĠĠĠ ĠN y Be handling ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs Ã¸ kers Ident Ġ= Ġbe handling . f ags ak . h ent A ktiv Ident (). ident , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Type Ġ= ĠBe handling Type . REV UR DER ING , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġk ategori Ġ= Ġbe handling . kategori , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunder kategori Ġ= Ġbe handling . under kategori , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Ã ħ rs ak Ġ= Ġbe handling Ã ħ rs ak , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskal Be handles Autom atis k Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġopp rett Task Jo urn alf Ã¸ r V ed t aks bre v ( ved tak Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠTask ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJo urn alf Ã¸ r V ed t aks bre v Task . TASK _ STEP _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ ved tak Id " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtask Repository . save ( task ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠPerson . fy ller Ant all Ã ħ r In ne v Ã¦ ren de M Ã¥ ned ( Ã¥r : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . f Ã¸ d sel sd ato . is Same Or After ( now (). minus Years ( Ã¥r . to Long ()). f Ã¸ r ste Dag I In ne v Ã¦ ren de M Ã¥ ned ()) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . f Ã¸ d sel sd ato . is Same Or Before ( now (). minus Years ( Ã¥r . to Long ()). s iste Dag IM Ã¥ ned ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠPerson . er Y ng re En n In ne v Ã¦ ren de M Ã¥ ned ( Ã¥r : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . f Ã¸ d sel sd ato . is After ( now (). minus Years ( Ã¥r . to Long ()). s iste Dag IM Ã¥ ned ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Aut ob rev 6 og 1 8 Ã ħ r Service :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠAl der ( val ĠÃ¥ r : ĠInt ) Ġ{ ĊĠĠĠ Ġse ks ( Ã¥r Ġ= Ġ 6 ), ĊĠĠĠ Ġat ten ( Ã¥r Ġ= Ġ 1 8 ) Ċ } Ċ