package Ġcom . tencent . devops . tur bo . service Ċ Ċ import Ġcom . tencent . devops . tur bo . dto . Tur bo Record Create Dto Ċ import Ġcom . tencent . devops . tur bo . dto . Tur bo Record Update Dto Ċ import Ġcom . tencent . devops . tur bo . enums . Enum Dist cc Task Status Ċ import Ġcom . tencent . devops . tur bo . model . TT ur bo Engine Config Entity Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . time . Instant Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Zone Offset Ċ Ċ /** Ċ Ġ* Ġ ä¾Ŀèµĸ æµģ æ°´ çº¿ åĴĮ åľ¨ æŀĦå»º æľº æī§è¡Į åĳ½ä»¤ çļĦæķ°æį® åĲĮæŃ¥ æµģç¨ĭ åĮº åĪ« ï¼ļ Ċ Ġ* Ġ( 1 ) ä¾Ŀèµĸ æµģ æ°´ çº¿ åĲĮæŃ¥ æµģç¨ĭ Ċ Ġ* ĠĠĠĠ 1 . Ġæī§è¡Į æĹ¶ æıĴä»¶ è°ĥçĶ¨ tur bo æİ¥åı£ åĪĽå»º è®°å½ķ ï¼Į å¹¶ä¸Ķ çĶŁæĪĲ build _ id ï¼Ī ä¸įèĥ½ çĶ¨ æµģ æ°´ çº¿ æŀĦå»º id ï¼Į åĽłä¸º æľī åı¯èĥ½ ä¸ĢæĿ¡ æµģ æ°´ çº¿ å¤ļä¸ª æıĴä»¶ ï¼ī , å¹¶ä¸Ķ å·² çŁ¥ build _ id åĴĮ tur bo _ instance _ id çļĦ åħ³èģĶ åħ³ç³» Ċ Ġ* ĠĠĠĠ 2 . Ġåľ¨ æĽ´æĸ° è®°å½ķ å®ļæĹ¶ ä»»åĬ¡ æĹ¶ ï¼Į æŁ¥è¯¢ åĩº ä¸į ä¸º å·² å®ĮæĪĲ çļĦ è®°å½ķ ï¼Į å·² è¯¥ è®°å½ķ çļĦ build _ id ä¸º æĿ¡ä»¶ ä»İ T BS æľįåĬ¡ æŁ¥è¯¢ åĩº è®°å½ķ è¯¦æĥħ Ċ Ġ* ĠĠĠĠ 3 . Ġå°Ĩ è¯¦æĥħ ä¿¡æģ¯ ä»¥ build _ id ä¸º æĿ¡ä»¶ ï¼Į æĽ´æĸ° èĩ³ è®°å½ķ è¡¨ ï¼Į å¹¶ è®¡ç®Ĺ ç»Łè®¡ ä¿¡æģ¯ Ċ Ġ* Ġ( 2 ) åľ¨ æľºåĻ¨ çĽ´æİ¥ æī§è¡Į åĳ½ä»¤ æµģç¨ĭ Ċ Ġ* ĠĠĠĠ 1 . Ġæī§è¡Į åĳ½ä»¤ æĹ¶ å¯¹äºİ tur bo åĲİ ç«¯ æľįåĬ¡ æĹł æĦŁ Ċ Ġ* ĠĠĠĠ 2 . Ġåľ¨ åĪĽå»º è®°å½ķ å®ļæĹ¶ ä»»åĬ¡ æĹ¶ ï¼Į åĲĮæŃ¥ è¿ĩ åİ» ä¸Ģ æ®µ æĹ¶éĹ´ åĪĽå»º çļĦ åĬł éĢŁ è®°å½ķ ï¼Į å¹¶ä¸Ķ éĢļè¿ĩ t bs Record Id æŁ¥è¯¢ åĪ° åľ¨ è®°å½ķ è¡¨ ä¸Ń è¯¥ è®°å½ķ ä¸įåŃĺåľ¨ Ċ Ġ* ĠĠĠĠ 3 . Ġä»¥ åĬł éĢŁ æĸ¹æ¡Ī id åĴĮ ip ä¸º æĿ¡ä»¶ ï¼Į æŁ¥è¯¢ åĬł éĢŁ æĸ¹æ¡Ī å®ŀä¾ĭ è¡¨ ï¼Į å¦Ĥæŀľ æ²¡æľī è®°å½ķ åĪĻ åĪĽå»º ä¸ĢæĿ¡ åĬł éĢŁ æĸ¹æ¡Ī å®ŀä¾ĭ ï¼Į å¦Ĥæŀľ æľī è®°å½ķ åĪĻ åıĸ åĩº åĬł éĢŁ æĸ¹æ¡Ī å®ŀä¾ĭ id Ċ Ġ* ĠĠĠĠ 4 . Ġå°Ĩ å®ŀä¾ĭ id èµĭåĢ¼ ç»Ļ åĲĮæŃ¥ çļĦ è®°å½ķ è¯¦æĥħ ï¼Į æĽ´æĸ° èĩ³ è¯¦æĥħ è¡¨ Ċ Ġ*/ Ċ @ Suppress (" Complex Method "," Nested Block Depth "," Complex Condition "," Max Line Length ") Ċ @ Service Ċ class ĠTur bo Data Sync Service Ġ@ Autowired Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġtur bo Plan Service : ĠTur bo Plan Service , ĊĠĠĠ Ġprivate Ġval Ġtur bo Plan Instance Service : ĠTur bo Plan Instance Service , ĊĠĠĠ Ġprivate Ġval Ġtur bo Record Service : ĠTur bo Record Service , ĊĠĠĠ Ġprivate Ġval Ġtur bo Summary Service : ĠTur bo Summary Service Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Tur bo Data Sync Service :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĽå»º ç¼ĸè¯ĳ åĬł éĢŁ è®°å½ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Tur bo Record ( ĊĠĠĠĠĠĠĠ Ġtur bo Record Create Dto : ĠTur bo Record Create Dto , ĊĠĠĠĠĠĠĠ Ġtur bo Engine Config : ĠT Tur bo Engine Config Entity ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠåĪĽå»º åĬł éĢŁ è®°å½ķ ï¼Ī ä¸»è¦ģ ä¸º æŀĦå»º æľº æī§è¡Į åĳ½ä»¤ çļĦ ç¼ĸè¯ĳ åĬł éĢŁ éħįç½® çļĦ å®ļæĹ¶ ä»»åĬ¡ ï¼ī ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ// Ġ 1 . èİ·åıĸ å¯¹åºĶ åĬł éĢŁ æĸ¹æ¡Ī å®ŀä¾ĭ id ĊĠĠĠĠĠĠĠ Ġval Ġtur bo Plan Id Ġ= Ġ( tur bo Record Create Dto . data Map [" project _ id "] Ġas ĠString ?) ?. substring Before ("_ ") ĊĠĠĠĠĠĠĠ Ġval Ġclient Ip Ġ= Ġtur bo Record Create Dto . data Map [" client _ ip "] Ġas ĠString ? ĊĠĠĠĠĠĠĠ Ġval Ġt bs Record Id Ġ= Ġtur bo Record Create Dto . data Map [" task _ id "] Ġas ĠString ? ĊĠĠĠĠĠĠĠ Ġval Ġbuild Id Ġ= Ġtur bo Record Create Dto . data Map [" build _ id "] Ġas ĠString ? ĊĠĠĠĠĠĠĠ Ġlogger . info ("[ create Ġtur bo Ġjob | ${ tur bo Record Create Dto . engine Code }| $ tur bo Plan Id ] Ġcreate Ġparam -> Ġclient Ġip : Ġ$ client Ip Ġ| Ġt bs Ġrecord Ġid : Ġ$ t bs Record Id ") ĊĠĠĠĠĠĠĠ Ġif Ġ( tur bo Plan Id . isNull Or Blank () Ġ|| Ġclient Ip . isNull Or Blank () Ġ|| Ġt bs Record Id . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("[ create Ġtur bo Ġjob | ${ tur bo Record Create Dto . engine Code }| $ tur bo Plan Id ] Ġtur bo Ġplan Ġid Ġor Ġclient Ġip Ġis Ġnull , Ġclient Ġip : Ġ$ client Ip , Ġt bs Ġrecord Ġid : Ġ$ t bs Record Id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( tur bo Record Service . exists By T BS Record Id ( t bs Record Id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("[ create Ġtur bo Ġjob | ${ tur bo Record Create Dto . engine Code }| $ tur bo Plan Id ] Ġtur bo Ġrecord Ġwith Ġt bs Ġrecord Ġid Ġ$ t bs Record Id Ġalready Ġexists !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! build Id . isNull Or Blank () Ġ&& Ġtur bo Record Service . exists By Build Id ( build Id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("[ create Ġtur bo Ġjob | ${ tur bo Record Create Dto . engine Code }| $ tur bo Plan Id ] Ġtur bo Ġrecord Ġwith Ġbuild Ġid Ġ$ build Id Ġalready Ġexists !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtur bo Plan Entity Ġ= Ġtur bo Plan Service . find Tur bo Plan ById ( tur bo Plan Id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( tur bo Plan Entity ?. open Status Ġ== Ġnull Ġ|| Ġ! tur bo Plan Entity . open Status !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("[ create Ġtur bo Ġjob | ${ tur bo Record Create Dto . engine Code }| $ tur bo Plan Id ] Ġtur bo Ġplan Ġnot Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ è¿ĻéĩĮ æľī åĩł ç±» åľºæĻ¯ ï¼ļ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ 1 . éľĢè¦ģ æıĴåħ¥ å®ŀä¾ĭ çļĦ æĥħåĨµ æľī Ġ-> ĊĠĠĠĠĠĠĠĠ Ġ* ĠĠ Ġ( 1 ) Ġ æĸ° çīĪæľ¬ æķ°æį® ĊĠĠĠĠĠĠĠĠ Ġ* ĠĠ Ġ( 2 ) Ġ èĢģ çīĪæľ¬ æķ°æį® ä½Ĩæĺ¯ ä¸į åħ³èģĶ æµģ æ°´ çº¿ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ 2 . ä¸įéľĢè¦ģ æıĴåħ¥ å®ŀä¾ĭ çļĦ æĥħåĨµ æľī Ġ-> ĊĠĠĠĠĠĠĠĠ Ġ* ĠĠ Ġ( 1 ) Ġ èĢģ çīĪæľ¬ æķ°æį® å¹¶ä¸Ķ åħ³èģĶ æµģ æ°´ çº¿ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġtur bo Plan Instance Info Ġ= Ġif Ġ( null Ġ== Ġtur bo Plan Entity . migr ated Ġ|| Ġ! tur bo Plan Entity . migr ated !! Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( tur bo Plan Entity . migr ated !! Ġ&& Ġ( null Ġ!= Ġtur bo Plan Entity . pipeline Related Ġ&& Ġ! tur bo Plan Entity . pipeline Related !! )) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan Instance Service . upsert Instance By Plan Id And Ip ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan Id Ġ= Ġtur bo Plan Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= Ġtur bo Plan Entity . projectId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Ip Ġ= Ġclient Ip ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan Instance Service . findFirst By Tur bo Plan Id ( tur bo Plan Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtur bo Plan Instance Entity Ġ= Ġtur bo Plan Instance Info . first ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġtur bo Plan Instance Entity Ġ|| Ġtur bo Plan Instance Entity . id . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("[ create Ġtur bo Ġjob | ${ tur bo Record Create Dto . engine Code }| $ tur bo Plan Id ] Ġno Ġtur bo Ġplan Ġinstance Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( tur bo Plan Instance Info . second ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan Service . add Tur bo Plan Instance ( tur bo Plan Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ 2 . æıĴåħ¥ ç¼ĸè¯ĳ åĬł éĢŁ è®°å½ķ è¡¨ ĊĠĠĠĠĠĠĠ Ġval Ġtur bo Record Entity Ġ= Ġtur bo Record Service . insert Tur bo Report ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo DataMap Ġ= Ġtur bo Record Create Dto . data Map , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġengine Code Ġ= Ġtur bo Engine Config . engine Code , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan Id Ġ= Ġtur bo Plan Id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= Ġtur bo Plan Entity . projectId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan InstanceId Ġ= Ġtur bo Plan Instance Entity . id !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp el Expression Ġ= Ġtur bo Engine Config . spel Expression , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp el Param Map Ġ= Ġtur bo Engine Config . spel Param Map . keys , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Ip Ġ= Ġclient Ip , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Id Ġ= Ġtur bo Plan Instance Entity . pipeline Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Name Ġ= Ġtur bo Plan Instance Entity . pipeline Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Element Id Ġ= Ġtur bo Plan Instance Entity . pipeline Element Id ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ 3 . è¿Ľè¡Į åĲĦ ä¸ª è¡¨ çļĦ ç»Łè®¡ å·¥ä½ľ , å¦Ĥæŀľ çĬ¶æĢģ ä¸º å®ĮæĪĲ ï¼Į åĪĻ è¦ģ ç»Łè®¡ æĹ¶éĹ´ ( åĲĦ ä¸ª è¡¨ çļĦ ç»Łè®¡ ) ĊĠĠĠĠĠĠĠ Ġ// Ġ( 1 ) å®ĮæĪĲ ç¼ĸè¯ĳ åĬł éĢŁ å®ŀä¾ĭ çļĦ ç»Łè®¡ å·¥ä½ľ ĊĠĠĠĠĠĠĠ Ġtur bo Plan Instance Service . update Stat Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan InstanceId Ġ= Ġtur bo Plan Instance Entity . id !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimate Time Second Ġ= Ġtur bo Record Entity ?. estimate Time Second , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Time Second Ġ= Ġtur bo Record Entity ?. execute Time Second , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartTime Ġ= Ġtur bo Record Entity ?. startTime Ġ?: ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġtur bo Record Entity ?. status Ġ?: ĠEnum Dist cc Task Status . ST AGING . getT BS Status (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Flag Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ( 2 ) å®ĮæĪĲ ç¼ĸè¯ĳ åĬł éĢŁ æĸ¹æ¡Ī çļĦ ç»Łè®¡ å·¥ä½ľ ĊĠĠĠĠĠĠĠ Ġtur bo Plan Service . update Stat Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan Id Ġ= Ġtur bo Plan Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimate Time Hour Ġ= Ġtur bo Record Entity ?. estimate Time Second ?. toDouble ()?. div ( 3 6 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Time Hour Ġ= Ġtur bo Record Entity ?. execute Time Second ?. toDouble ()?. div ( 3 6 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġtur bo Record Entity ?. status Ġ?: ĠEnum Dist cc Task Status . ST AGING . getT BS Status (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Flag Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ( 3 ) å®ĮæĪĲ æĢ» è§Ī é¡µéĿ¢ çļĦ ç»Łè®¡ å·¥ä½ľ ĊĠĠĠĠĠĠĠ Ġtur bo Summary Service . upsert Summary Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= Ġtur bo Plan Entity . projectId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġtur bo Record Entity ?. status Ġ?: ĠEnum Dist cc Task Status . ST AGING . getT BS Status (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Time Ġ= Ġtur bo Record Entity ?. execute Time Second ?. toDouble ()?. div ( 3 6 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimate Time Ġ= Ġtur bo Record Entity ?. estimate Time Second ?. toDouble ()?. div ( 3 6 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Flag Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæĽ´æĸ° ç¼ĸè¯ĳ åĬł éĢŁ è®°å½ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate Tur bo Record ( ĊĠĠĠĠĠĠĠ Ġtur bo DataMap : ĠMap < String , ĠAny >, ĊĠĠĠĠĠĠĠ Ġtur bo Engine Config : ĠT Tur bo Engine Config Entity , ĊĠĠĠĠĠĠĠ Ġtur bo Record Update Dto : ĠTur bo Record Update Dto ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ 1 . èİ·åıĸ å¯¹åºĶ åĬł éĢŁ æĸ¹æ¡Ī å®ŀä¾ĭ id ĊĠĠĠĠĠĠĠ Ġval Ġt bs Record Id Ġ= Ġtur bo DataMap [" task _ id "] Ġas ĠString ? ĊĠĠĠĠĠĠĠ Ġval Ġbuild Id Ġ= Ġtur bo DataMap [" build _ id "] Ġas ĠString ? ĊĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġtur bo DataMap [" status "] Ġas ĠString ? ĊĠĠĠĠĠĠĠ Ġval ĠstartTime Ġ= Ġ( tur bo DataMap [" start _ time "] Ġas ? ĠInt ?) ?. to Long () Ġ?: Ġ( System . currentTimeMillis () Ġ/ Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġlogger . info ("[ update Ġtur bo Ġjob | ${ tur bo Record Update Dto . engine Code }| ${ tur bo Record Update Dto . tur bo Plan Id }] Ġupdate Ġparam -> Ġt bs Ġrecord Ġid : Ġ$ t bs Record Id Ġ| Ġbuild Ġid : Ġ$ build Id Ġ| Ġstatus : Ġ$ status Ġ| Ġstart Ġtime : Ġ$ startTime ") ĊĠĠĠĠĠĠĠ Ġif Ġ(( t bs Record Id . isNull Or Blank () Ġ&& Ġbuild Id . isNull Or Blank ()) Ġ|| Ġstatus . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("[ update Ġtur bo Ġjob | ${ tur bo Record Update Dto . engine Code }| ${ tur bo Record Update Dto . tur bo Plan Id }] Ġt bs Ġrecord Ġid Ġor Ġstatus Ġis Ġnull , Ġt bs Ġrecord Ġid : Ġ$ t bs Record Id , Ġstatus : Ġ$ status , Ġbuild Ġid : Ġ$ build Id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ 2 . ĠæĽ´æĸ° ç¼ĸè¯ĳ åĬł éĢŁ è®°å½ķ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ Ġval Ġtur bo Record Entity Ġ= Ġtur bo Record Service . update Tur bo Report ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo DataMap Ġ= Ġtur bo DataMap , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt bs Record Id Ġ= Ġt bs Record Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġengine Code Ġ= Ġtur bo Engine Config . engine Code , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Id Ġ= Ġbuild Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġstatus , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp el Expression Ġ= Ġtur bo Engine Config . spel Expression , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp el Param Map Ġ= Ġtur bo Engine Config . spel Param Map . keys , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartTime Ġ= ĠstartTime ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġtur bo Record Entity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("[ update Ġtur bo Ġjob | ${ tur bo Record Update Dto . engine Code }| ${ tur bo Record Update Dto . tur bo Plan Id }] Ġno Ġtur bo Ġrecord Ġhas Ġbeen Ġupdated ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ 3 . è¿Ľè¡Į åĲĦ ä¸ª è¡¨ çļĦ ç»Łè®¡ å·¥ä½ľ , å¦Ĥæŀľ çĬ¶æĢģ ä¸º å®ĮæĪĲ ï¼Į åĪĻ è¦ģ ç»Łè®¡ æĹ¶éĹ´ ( åĲĦ ä¸ª è¡¨ çļĦ ç»Łè®¡ ) ĊĠĠĠĠĠĠĠ Ġ// Ġ( 1 ) å®ĮæĪĲ ç¼ĸè¯ĳ åĬł éĢŁ å®ŀä¾ĭ çļĦ ç»Łè®¡ å·¥ä½ľ ĊĠĠĠĠĠĠĠ Ġtur bo Plan Instance Service . update Stat Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan InstanceId Ġ= Ġtur bo Record Entity . tur bo Plan InstanceId , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartTime Ġ= ĠInstant . of Epoch Second ( startTime ). at Zone ( Zone Offset . of Hours ( 8 )). to LocalDateTime (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimate Time Second Ġ= Ġtur bo Record Entity . estimate Time Second , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Time Second Ġ= Ġtur bo Record Entity . execute Time Second , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġstatus , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ( 2 ) å®ĮæĪĲ ç¼ĸè¯ĳ åĬł éĢŁ æĸ¹æ¡Ī çļĦ ç»Łè®¡ å·¥ä½ľ ĊĠĠĠĠĠĠĠ Ġtur bo Plan Service . update Stat Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan Id Ġ= Ġtur bo Record Entity . tur bo Plan Id !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimate Time Hour Ġ= Ġtur bo Record Entity . estimate Time Second . toDouble (). div ( 3 6 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Time Hour Ġ= Ġtur bo Record Entity . execute Time Second . toDouble (). div ( 3 6 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġstatus , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ( 3 ) å®ĮæĪĲ æĢ» è§Ī é¡µéĿ¢ çļĦ ç»Łè®¡ å·¥ä½ľ ĊĠĠĠĠĠĠĠ Ġtur bo Summary Service . upsert Summary Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= Ġtur bo Record Entity . projectId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġstatus , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Time Ġ= Ġtur bo Record Entity . execute Time Second . toDouble (). div ( 3 6 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġestimate Time Ġ= Ġtur bo Record Entity . estimate Time Second . toDouble (). div ( 3 6 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĪ·æĸ° ç¼ĸè¯ĳ åĬł éĢŁ è®°å½ķ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrefresh Tur bo Record ( ĊĠĠĠĠĠĠĠ Ġtur bo Plan Id : ĠString , ĊĠĠĠĠĠĠĠ Ġtur bo Engine Config : ĠT Tur bo Engine Config Entity ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstart Calculate Time Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġ// Ġ 1 . ĠæŁ¥è¯¢ åĩº è¯¥ ç¼ĸè¯ĳ åĬł éĢŁ æĸ¹æ¡Ī ä¸ĭ éĿ¢çļĦ æīĢæľī ç¼ĸè¯ĳ åĬł éĢŁ æĸ¹æ¡Ī å®ŀä¾ĭ ĊĠĠĠĠĠĠĠ Ġval Ġtur bo Plan Instance List Ġ= Ġtur bo Plan Instance Service . findBy Tur bo Plan Id ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan Id Ġ= Ġtur bo Plan Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġlogger . info (" tur bo Ġplan Ġinstance Ġsize : Ġ${ tur bo Plan Instance List . size }") ĊĠĠĠĠĠĠĠ Ġvar Ġtotal Plan Estimate Second Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠ Ġ// Ġ 2 . Ġ éģįåİĨ ç¼ĸè¯ĳ åĬł éĢŁ æĸ¹æ¡Ī å®ŀä¾ĭ ĊĠĠĠĠĠĠĠ Ġif Ġ(! tur bo Plan Instance List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan Instance List . forEach Ġ{ Ġtur bo Plan Instance Entity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtotal Instance Estimate Second Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 3 . Ġ éģįåİĨ ç¼ĸè¯ĳ åĬł éĢŁ æĸ¹æ¡Ī å®ŀä¾ĭ ï¼Į æŁ¥è¯¢ åĩº æ¯ıä¸ª å®ŀä¾ĭ å¯¹åºĶçļĦ ç¼ĸè¯ĳ åĬł éĢŁ è®°å½ķ æ¸ħ åįķ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtur bo Record List Ġ= Ġtur bo Record Service . find Tur bo Record ListBy Tur bo InstanceId ( tur bo Plan Instance Entity . id !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! tur bo Record List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" tur bo Ġrecord Ġlist Ġsize : Ġ${ tur bo Record List . size } Ġwith Ġtur bo Ġinstance Ġplan Ġid Ġ${ tur bo Plan Instance Entity . id }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ 4 . Ġ éģįåİĨ æ¯ıä¸ª åĬł éĢŁ å®ŀä¾ĭ ä¸ĭçļĦ åĬł éĢŁ è®°å½ķ ï¼Į æĽ´æĸ° ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Record List . forEach Ġ{ Ġtur bo Record Entity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tur bo Record Entity . status Ġ== ĠEnum Dist cc Task Status . FIN ISH . getT BS Status ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstartTime Ġ= Ġ( tur bo Record Entity . raw Data [" start _ time "] Ġas ? ĠInt ?) ?. to Long () Ġ?: Ġ( System . currentTimeMillis () Ġ/ Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtur bo Record New Entity Ġ= Ġtur bo Record Service . update Tur bo Report For Refresh ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo DataMap Ġ= Ġtur bo Record Entity . raw Data , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Record Id Ġ= Ġtur bo Record Entity . id !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġengine Code Ġ= Ġtur bo Engine Config . engine Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġtur bo Record Entity . status , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp el Expression Ġ= Ġtur bo Engine Config . spel Expression , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp el Param Map Ġ= Ġtur bo Engine Config . spel Param Map . keys , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartTime Ġ= ĠstartTime ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Instance Estimate Second Ġ+= Ġ( tur bo Record New Entity ?. estimate Time Second Ġ?: Ġ 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Plan Estimate Second Ġ+= Ġ( tur bo Record New Entity ?. estimate Time Second Ġ?: Ġ 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Plan Instance Service . update Estimate Time ( tur bo Plan Instance Entity . id !! , Ġtotal Instance Estimate Second ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtur bo Plan Service . update Estimate Time ( tur bo Plan Id , Ġtotal Plan Estimate Second ) ĊĠĠĠĠĠĠĠ Ġlogger . info (" tur bo Ġplan Ġdata Ġupdate Ġfinish Ġwith Ġid Ġ$ tur bo Plan Id , Ġtime Ġcost : Ġ${ System . currentTimeMillis () Ġ- Ġstart Calculate Time }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĪ·æĸ° é¡¹çĽ® ç»´ åº¦ ç»Łè®¡ è¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrefresh Summary Info ( projectId : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtur bo Record List Ġ= Ġtur bo Record Service . find ListBy ProjectId ( projectId ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! tur bo Record List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Record List . groupBy Ġ{ ĠLocalDate . of ( it . created Date . year , Ġit . created Date . month , Ġit . created Date . day OfMonth ) Ġ}. forEach Ġ{ Ġ( t , Ġu ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsum Estimate Time Ġ= Ġu . sum Of Ġ{ Ġit . estimate Time Second Ġ}. toDouble (). div ( 3 6 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" summary Ġdate : Ġ$ t , Ġsum Ġestimate Ġtime : Ġ$ sum Estimate Time ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtur bo Summary Service . update Estimate Time ( projectId , Ġt , Ġsum Estimate Time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ