package Ġbr . com . j ir atorio . service . chart . impl Ċ Ċ import Ġbr . com . j ir atorio . domain . chart . Through put By Estimate Ċ import Ġbr . com . j ir atorio . domain . chart . Lead Time Compare Chart Ċ import Ġbr . com . j ir atorio . domain . entity . Board Ċ import Ġbr . com . j ir atorio . domain . entity . Issue Period Ċ import Ġbr . com . j ir atorio . extension . log Ċ import Ġbr . com . j ir atorio . service . chart . Issue Period Chart Service Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . util . HashSet Ċ import Ġjava . util . Linked HashMap Ċ Ċ @ Service Ċ class ĠIssue Period Chart ServiceImpl Ġ: ĠIssue Period Chart Service Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġlead Time Compare By Period ( issue Periods : ĠList < Issue Period >, Ġboard : ĠBoard ): ĠLead Time Compare Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . info (" Method = lead Time Compare By Period , Ġissue Periods ={}, Ġboard ={ }", Ġissue Periods , Ġboard ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlead Time Compare Chart Ġ= ĠLead Time Compare Chart () ĊĊĠĠĠĠĠĠĠ Ġval Ġlead Time Configs Ġ= Ġboard . lead Time Configs Ġ?: Ġreturn Ġlead Time Compare Chart ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( issue Period Ġin Ġissue Periods ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġperiod Chart Ġ= Ġissue Period . lead Time Compare Chart Ġ?: Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcollect Ġ= Ġperiod Chart . data . to Mutable Map () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( collect . size Ġ< Ġlead Time Configs . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlead Time Configs . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! collect . containsKey ( it . name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollect [ it . name ] Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlead Time Compare Chart . add ( issue Period . dates , Ġcollect ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlead Time Compare Chart ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġthroughput By Estimate ( issue Periods : ĠList < Issue Period >): ĠThrough put By Estimate Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . info (" Method = through put By Estimate , Ġissue Periods ={ }", Ġissue Periods ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsizes Ġ= ĠHashSet < String >() ĊĠĠĠĠĠĠĠ Ġval Ġperiods Size : ĠMutable Map < String , ĠMutable Map < String , ĠInt >> Ġ= ĠLinkedHashMap () ĊĠĠĠĠĠĠĠ Ġfor Ġ( issue Period Ġin Ġissue Periods ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthroughput By Estimate Ġ= Ġissue Period . through put By Estimate Ġ?: Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġestimated Ġ= Ġthroughput By Estimate . data . to Mutable Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsizes . addAll ( estimated . keys ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperiods Size [ issue Period . dates ] Ġ= Ġestimated ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġperiods Size . forEach Ġ{ Ġ(_, Ġv ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( size Ġin Ġsizes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! v . containsKey ( size )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv [ size ] Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdatas ources Ġ= ĠLinkedHashMap < String , ĠMutable List < Int >>() ĊĠĠĠĠĠĠĠ Ġfor Ġ( period Size Ġin Ġperiods Size . values ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperiod Size . forEach Ġ{ Ġ( k , Ġv ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlong s Ġ= Ġdatas ources [ k ] Ġ?: Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlong s . add ( v ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatas ources [ k ] Ġ= Ġlong s ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠThrough put By Estimate ( periods Size . keys , Ġdatas ources ) ĊĠĠĠ Ġ} Ċ } Ċ