package Ġno . nav . sy fo . repository Ċ Ċ import Ġno . nav . sy fo . domain . Sy ke pen ge so kn ad Ċ import Ġno . nav . sy fo . util . til Os lo Zone Ċ import Ġorg . springframework . jdbc . core . named param . Map Sql Parameter Source Ċ import Ġorg . springframework . jdbc . core . named param . Named Parameter Jdbc Template Ċ import Ġorg . springframework . stereotype . Repository Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ Ċ @ Transactional Ċ @ Repository Ċ class ĠS ok nad L agr er ( ĊĠĠĠ Ġprivate Ġval Ġjdbc Template : ĠNamed Parameter Jdbc Template Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġlag re S ok n ader ( so kn ader : ĠList < Sy ke pen ge so kn ad >) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġnormal is ert S ok n ader Ġ= Ġs ok n ader . map Ġ{ Ġit . normal iser () Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġs ok nad Ġ= ĠArrayList < Sy ke pen ge so kn ad Db Record >() ĊĠĠĠĠĠĠĠ Ġval Ġsp ors mal Ġ= ĠArrayList < Sp ors mal Db Record >() ĊĠĠĠĠĠĠĠ Ġval Ġperiod er Ġ= ĠArrayList < S ok nad sp eri ode Db Record >() ĊĠĠĠĠĠĠĠ Ġval Ġs var Ġ= ĠArrayList < S var Db Record >() ĊĊĠĠĠĠĠĠĠ Ġnormal is ert S ok n ader . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ok nad . add ( it . so kn ad ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ors mal . addAll ( it . sp ors mal ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperiod er . addAll ( it . period er ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs var . addAll ( it . s var ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġs ok nad . lag re () ĊĠĠĠĠĠĠĠ Ġperiod er . lag re Period er () ĊĠĠĠĠĠĠĠ Ġsp ors mal . lag re Sp ors mal () ĊĠĠĠĠĠĠĠ Ġs var . lag re S var () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlag re S ok nad ( so kn ad : ĠSy ke pen ge so kn ad ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġnormal is ert S ok nad Ġ= Ġs ok nad . normal iser () ĊĠĠĠĠĠĠĠ ĠlistOf ( normal is ert S ok nad . so kn ad ). lag re () ĊĠĠĠĠĠĠĠ Ġnormal is ert S ok nad . period er . lag re Period er () ĊĠĠĠĠĠĠĠ Ġnormal is ert S ok nad . sp ors mal . lag re Sp ors mal () ĊĠĠĠĠĠĠĠ Ġnormal is ert S ok nad . s var . lag re S var () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠList < Sy ke pen ge so kn ad Db Record >. lag re () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsql Ġ= Ġ""" Ċ INSERT ĠINTO ĠSY KE PEN GES OK N AD Ġ( ID , ĠSY KE PEN GES OK N AD _ UUID , ĠS OK N AD ST YPE , ĠSTATUS , ĠF OM , ĠTO M , ĠOP PRE TT ET , ĠAV BR UT T _ DAT O , ĠSY K ME LD ING _ UUID , ĠS END T _ NAV , ĠS END T _ AR BE ID SG IVER , ĠK OR RIG ER ER , ĠK OR RIG ERT _ AV , ĠAR BE ID SG IVER _ ORG NUM MER , ĠAR BE ID SG IVER _ NA VN , ĠAR BE ID SS IT U AS J ON , ĠSTART _ SY KE FOR LO P , ĠSY K ME LD ING _ SK REV ET , ĠOP PR IN NEL SE , ĠF NR , ĠE GEN ME L DT _ SY K ME LD ING , ĠMER KN ADER _ FR A _ SY K ME LD ING , ĠAV BR UT T _ FE IL INFO ) Ġ Ċ VALUES Ġ(: id , Ġ: uuid , Ġ: so kn ad stype , Ġ: status , Ġ: f om , Ġ: tom , Ġ: op prett et , Ġ: av br utt , Ġ: sy k meld ing Uuid , Ġ: send t Nav , Ġ: send t Ar be id sg iver , Ġ: kor rig er er , Ġ: kor rig ert Av , Ġ: ar be id sg iver Org nummer , Ġ: ar be id sg iver Nav n , Ġ: ar be id ss itu as jon , Ġ: start Sy ke for lop , Ġ: sy k meld ing Sk rev et , Ġ: op pr inn else , Ġ: fn r , Ġ: e gen meld t Sy k meld ing , Ġ: mer kn ader F ra Sy k meld ing , Ġ: av br utt Fe il info ) Ġ Ċ ON ĠCON FLI CT ĠON ĠCONSTRAINT Ġsy ke pen ge so kn ad _ pkey ĠDO ĠNOT H ING Ċ """ ĊĠĠĠĠĠĠĠ Ġjdbc Template . batch Update ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsql , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsy ke pen ge so kn ad Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMap Sql Parameter Source () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" id ", Ġsy ke pen ge so kn ad . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" uuid ", Ġsy ke pen ge so kn ad . sy ke pen ge so kn ad Uuid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" so kn ad stype ", Ġsy ke pen ge so kn ad . so kn ad stype . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" status ", Ġsy ke pen ge so kn ad . status . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" f om ", Ġsy ke pen ge so kn ad . f om ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" tom ", Ġsy ke pen ge so kn ad . tom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" op prett et ", Ġsy ke pen ge so kn ad . op prett et ?. til Os lo Zone ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" av br utt ", Ġsy ke pen ge so kn ad . av br utt D ato ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" send t Nav ", Ġsy ke pen ge so kn ad . send t Nav ?. til Os lo Zone ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" send t Ar be id sg iver ", Ġsy ke pen ge so kn ad . send t Ar be id sg iver ?. til Os lo Zone ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" sy k meld ing Uuid ", Ġsy ke pen ge so kn ad . sy k meld ing Uuid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" kor rig er er ", Ġsy ke pen ge so kn ad . kor rig er er ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" kor rig ert Av ", Ġsy ke pen ge so kn ad . kor rig ert Av ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" ar be id sg iver Org nummer ", Ġsy ke pen ge so kn ad . ar be id sg iver Org nummer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" ar be id sg iver Nav n ", Ġsy ke pen ge so kn ad . ar be id sg iver Nav n ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" ar be id ss itu as jon ", Ġsy ke pen ge so kn ad . ar be id ss itu as jon ?. name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" start Sy ke for lop ", Ġsy ke pen ge so kn ad . start Sy ke for lop ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" sy k meld ing Sk rev et ", Ġsy ke pen ge so kn ad . sy k meld ing Sk rev et ?. til Os lo Zone ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" op pr inn else ", Ġsy ke pen ge so kn ad . op pr inn else . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" fn r ", Ġsy ke pen ge so kn ad . fn r ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" e gen meld t Sy k meld ing ", Ġsy ke pen ge so kn ad . e gen meld t Sy k meld ing ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" av br utt Fe il info ", Ġsy ke pen ge so kn ad . av br utt Fe il info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" mer kn ader F ra Sy k meld ing ", Ġsy ke pen ge so kn ad . mer kn ader F ra Sy k meld ing ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠList < S ok nad sp eri ode Db Record >. lag re Period er () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsql Ġ= Ġ""" Ċ INSERT ĠINTO ĠS OK N AD PER IO DE Ġ( ID , ĠSY KE PEN GES OK N AD _ ID , ĠF OM , ĠTO M , ĠGR AD , ĠSY K ME LD ING ST YPE ) Ġ Ċ VALUES Ġ(: id , Ġ: sy ke pen ge so kn ad Id , Ġ: f om , Ġ: tom , Ġ: grad , Ġ: sy k meld ing stype ) Ġ Ċ ON ĠCON FLI CT ĠON ĠCONSTRAINT Ġs ok nad peri ode _ pkey ĠDO ĠNOT H ING Ċ """ ĊĠĠĠĠĠĠĠ Ġjdbc Template . batch Update ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsql , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . map Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMap Sql Parameter Source () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" id ", Ġit . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" sy ke pen ge so kn ad Id ", Ġit . sy ke pen ge so kn ad Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" f om ", Ġit . f om ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" tom ", Ġit . tom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" grad ", Ġit . grad ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" sy k meld ing stype ", Ġit . sy k meld ing stype ?. name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠList < Sp ors mal Db Record >. lag re Sp ors mal () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsql Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ INSERT ĠINTO ĠSP OR SM AL ( ID , ĠSY KE PEN GES OK N AD _ ID , ĠUN DER _ SP OR SM AL _ ID , ĠT EK ST , ĠUN DER TE K ST , ĠTAG , ĠS VAR TYPE , ĠMIN , ĠMAX , ĠK R ITER IE _ FOR _ VIS NING ) Ġ Ċ VALUES Ġ(: id , Ġ: sy ke pen ge so kn ad Id , Ġ: under Sp ors mal Id , Ġ: tek st , Ġ: under tek st , Ġ: tag , Ġ: sv art ype , Ġ: min , Ġ: max , Ġ: k riter ie ) Ċ ON ĠCON FLI CT ĠON ĠCONSTRAINT Ġsp ors mal _ pkey ĠDO ĠNOT H ING """ ĊĠĠĠĠĠĠĠ Ġjdbc Template . batch Update ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsql , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMap Sql Parameter Source () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" id ", Ġit . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" sy ke pen ge so kn ad Id ", Ġit . sy ke pen ge so kn ad Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" under Sp ors mal Id ", Ġit . under Sp ors mal Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" tek st ", Ġit . sp ors mal st ek st ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" under tek st ", Ġit . under tek st ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" tag ", Ġit . tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" sv art ype ", Ġit . sv art ype . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" min ", Ġit . min ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" max ", Ġit . max ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" k riter ie ", Ġit . k riter ie For Vis ning Av Under sp ors mal ?. name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠList < S var Db Record >. lag re S var () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsql Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Ċ INSERT ĠINTO ĠS VAR Ġ( ID , ĠSP OR SM AL _ ID , ĠVER DI ) ĠVALUES Ġ(: id , Ġ: sp ors mal Id , Ġ: ver di ) Ċ ON ĠCON FLI CT ĠON ĠCONSTRAINT Ġs var _ pkey ĠDO ĠNOT H ING Ċ """ ĊĠĠĠĠĠĠĠ Ġjdbc Template . batch Update ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsql , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMap Sql Parameter Source () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" id ", Ġit . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" sp ors mal Id ", Ġit . sp ors mal Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" ver di ", Ġit . ver di ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ