package Ġcom . tencent . bk . code cc . task . service . impl Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . tencent . bk . code cc . task . dao . mong ore pository . G ong f eng Active Proj Repository Ċ import Ġcom . tencent . bk . code cc . task . dao . mong ore pository . G ong f eng Public Proj Repository Ċ import Ġcom . tencent . bk . code cc . task . dao . mong ore pository . Task Repository Ċ import Ġcom . tencent . bk . code cc . task . model . Task Info Entity Ċ import Ġcom . tencent . bk . code cc . task . pojo . To f Organization Info Ċ import Ġcom . tencent . bk . code cc . task . service . Kafka Sync Service Ċ import Ġcom . tencent . bk . code cc . task . to f . To f Client Api Ċ import Ġcom . tencent . devops . common . api . Common Page VO Ċ import Ġcom . tencent . devops . common . api . pojo . Page Ċ import Ġcom . tencent . devops . common . client . Client Ċ import Ġcom . tencent . devops . common . client . pojo . All Properties Ċ import Ġcom . tencent . devops . common . constant . Com Constants Ċ import Ġcom . tencent . devops . common . kafka . Kafka Client Ċ import Ġcom . tencent . devops . common . kafka . Kafka Topic Ċ import Ġcom . tencent . devops . common . util . Json Util Ċ import Ġcom . tencent . devops . common . util . Ok http Utils Ċ import Ġcom . tencent . devops . common . web . mq . EX CHANGE _ K AF KA _ DATA _ PLATFORM Ċ import Ġcom . tencent . devops . common . web . mq . QUEUE _ K AF KA _ DATA _ TRIGGER _ TASK Ċ import Ġcom . tencent . devops . common . web . mq . ROUTE _ K AF KA _ DATA _ TRIGGER _ TASK Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . amqp . rabbit . annotation . Exchange Ċ import Ġorg . springframework . amqp . rabbit . annotation . Queue Ċ import Ġorg . springframework . amqp . rabbit . annotation . Queue Binding Ċ import Ġorg . springframework . amqp . rabbit . annotation . Rabbit Listener Ċ import Ġorg . springframework . amqp . rabbit . core . Rabbit Template Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . data . domain . Page Request Ċ import Ġorg . springframework . data . domain . Page able Ċ import Ġorg . springframework . data . domain . Sort Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ @ Service Ċ open Ġclass ĠKafka Sync ServiceImpl Ġ@ Autowired Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrabbit Template : ĠRabbit Template , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtask Repository : ĠTask Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠobjectMapper : ĠObjectMapper , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġg ong f eng Public Proj Repository : ĠG ong f eng Public Proj Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġg ong f eng Active Proj Repository : ĠG ong f eng Active Proj Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġto f Client Api : ĠT of Client Api , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġkafka Client : ĠKafka Client , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġclient Ġ: ĠClient , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġall Properties : ĠAll Properties Ċ ) Ġ: ĠKafka Sync Service Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Kafka Sync ServiceImpl :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Rabbit Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbindings Ġ= Ġ[ Queue Binding ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ= ĠROUT E _ K AF KA _ DATA _ TRIGGER _ TASK , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= ĠQueue ( value Ġ= ĠQ UE UE _ K AF KA _ DATA _ TRIGGER _ TASK , Ġdur able Ġ= Ġ" true "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexchange Ġ= ĠExchange ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= ĠEX CHANGE _ K AF KA _ DATA _ PLATFORM , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdur able Ġ= Ġ" true ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelayed Ġ= Ġ" true ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" topic " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ] ĊĠĠĠ Ġ) ĊĠĠĠ Ġoverride Ġfun Ġsync Task Info To Kafka ( start Trigger : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" kafka Ġdata Ġsynchronization Ġstart ! Ġstart Ġt ig ger Ġ: Ġ$ start Trigger ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( start Trigger Ġ!= Ġ" 1 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" msg Ġnot Ġfrom Ġqu artz Ġmodule !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠdateTime Formatter Ġ= ĠDateTime Formatter . of Pattern (" yyyy - MM - dd ĠHH : mm : ss ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnow Time Ġ= ĠLocalDateTime . now (). format ( dateTime Formatter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĲĮæŃ¥ å·¥ è ľ Ĥ project ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend G ong f eng Project ( now Time ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĲĮæŃ¥ å·¥ è ľ Ĥ task ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend G ong f eng Source Task ( now Time ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĲĮæŃ¥ èĵĿ çĽ ¾ pipeline æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġland un TaskList Ġ= Ġtask Repository . findBy CreateFrom (" bs _ pipeline ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Land un Task Detail ( now Time , Ġland un TaskList ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĲĮæŃ¥ å·¥ è ľ Ĥ æ´» è· ĥ æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Active Project ( now Time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" kafka Ġdata Ġsync Ġfinish !") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" kafka Ġdata Ġsync Ġfail ! Ġmsg : Ġ${ e . message }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġget Task Info By CreateFrom ( task Type : ĠString , Ġreq VO : ĠCommon Page VO ): ĠPage < Long > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" start Ġget Ġtask Info Ġby Ġcreate From ") ĊĠĠĠĠĠĠĠ Ġval Ġtask IdList Ġ= Ġmutable ListOf < Long >() ĊĠĠĠĠĠĠĠ Ġ// å°ģè£ħ åĪĨé¡µ ç±» ĊĠĠĠĠĠĠĠ Ġval Ġpage Sort Ġ= ĠSort ( Sort . Direction . DESC , Ġ" task _ id ") ĊĠĠĠĠĠĠĠ Ġval Ġpage able : ĠPage able Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPage Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġreq VO . pageNum ) Ġ 0 Ġelse Ġreq VO . pageNum Ġ- Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġreq VO . pageSize ) Ġ 1 0 Ġelse Ġreq VO . pageSize , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage Sort ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtask List Page Ġ= Ġtask Repository . findBy CreateFrom ( task Type , Ġpage able ) ĊĠĠĠĠĠĠĠ Ġval Ġtask List Ġ= Ġtask List Page . content ĊĠĠĠĠĠĠĠ Ġlogger . info (" task Ġlist Ġsize : Ġ${ task List . size }") ĊĠĠĠĠĠĠĠ Ġtask List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask IdList . add ( it . taskId ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlogger . info (" finish Ġget Ġtask Info Ġby Ġcreate From !") ĊĠĠĠĠĠĠĠ Ġreturn ĠPage ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask List Page . total Elements , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġreq VO . pageNum ) Ġ 0 Ġelse Ġreq VO . pageNum , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġreq VO . pageSize ) Ġ 1 0 Ġelse Ġreq VO . pageSize , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask List Page . total Pages , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask IdList ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsync Task Info To Kafka ByType ( dataType : ĠString , Ġw ash Time : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" sync Task Info To Kafka ByType ĠdataType : Ġ{}, Ġw ash Time : Ġ{}", ĠdataType , Ġw ash Time ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( dataType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" active Project " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Active Project ( w ash Time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" land un Task " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġland un TaskList Ġ= Ġtask Repository . findBy CreateFrom (" bs _ pipeline ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Land un Task Detail ( w ash Time , Ġland un TaskList ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" git Source Task " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend G ong f eng Source Task ( w ash Time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" git Project " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend G ong f eng Project ( w ash Time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" send Group Info " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Group Info ( w ash Time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend G ong f eng Project ( w ash Time : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocal W ash Time Ġ= Ġif Ġ( w ash Time Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now (). format ( DateTime Formatter . of Pattern (" yyyy - MM - dd ĠHH : mm : ss ")) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġw ash Time ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġg ong f eng Proj List Ġ= Ġg ong f eng Public Proj Repository . findAll () ĊĠĠĠĠĠĠĠ Ġlogger . info (" g ong f eng Ġproj Ġsize : Ġ${ g ong f eng Proj List . size }") ĊĠĠĠĠĠĠĠ Ġg ong f eng Proj List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg ong f eng Map Ġ= ĠJson Util . toMap ( it ). to Mutable Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg ong f eng Map [" w ash Time "] Ġ= Ġlocal W ash Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* rabbit Template . convert And Send ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEX CHANGE _ K AF KA _ DATA _ PLATFORM , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠROUT E _ K AF KA _ DATA _ G ONG F EN G _ PROJECT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . writeValue AsString ( g ong f eng Map ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) */ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkafka Client . send ( Kafka Topic . G ONG F EN G _ PROJECT _ TOPIC , ĠobjectMapper . writeValue AsString ( g ong f eng Map )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend G ong f eng Source Task ( w ash Time : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocal W ash Time Ġ= Ġif Ġ( w ash Time Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now (). format ( DateTime Formatter . of Pattern (" yyyy - MM - dd ĠHH : mm : ss ")) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġw ash Time ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtask List Ġ= Ġtask Repository . findBy CreateFrom (" g ong f eng _ scan ") ĊĠĠĠĠĠĠĠ Ġlogger . info (" task Ġlist Ġsize : Ġ${ task List . size }") ĊĠĠĠĠĠĠĠ Ġtask List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Map Ġ= ĠJson Util . toMap ( it ). to Mutable Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Map [" w ash Time "] Ġ= Ġlocal W ash Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Map [" open Source "] Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Map [" activity "] Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Map [" devops Url "] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" http ://${ all Properties . code cc Gate Way }/ code cc /${ it . projectId }/ task /${ it . taskId }/ detail " Ċ /* ĠĠĠĠĠĠĠĠĠĠĠ Ġrabbit Template . convert And Send ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEX CHANGE _ K AF KA _ DATA _ PLATFORM , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠROUT E _ K AF KA _ DATA _ TASK _ DETAIL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . writeValue AsString ( task Map ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) */ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkafka Client . send ( Kafka Topic . TASK _ DETAIL _ TOPIC , ĠobjectMapper . writeValue AsString ( task Map )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Active Project ( w ash Time : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocal W ash Time Ġ= Ġif Ġ( w ash Time Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now (). format ( DateTime Formatter . of Pattern (" yyyy - MM - dd ĠHH : mm : ss ")) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġw ash Time ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġactive Proj List Ġ= Ġg ong f eng Active Proj Repository . findAll () ĊĠĠĠĠĠĠĠ Ġlogger . info (" active Ġlist Ġsize : Ġ${ active Proj List . size }") ĊĠĠĠĠĠĠĠ Ġactive Proj List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . git Path Ġ= Ġ"${ all Properties . git Code Path }/${ it . git Path }. git " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactive Map Ġ= ĠJson Util . toMap ( it ). to Mutable Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactive Map [" w ash Time "] Ġ= Ġlocal W ash Time Ċ /* ĠĠĠĠĠĠĠĠĠĠĠ Ġrabbit Template . convert And Send ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEX CHANGE _ K AF KA _ DATA _ PLATFORM , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠROUT E _ K AF KA _ DATA _ ACTIVE _ PROJECT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . writeValue AsString ( active Map ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) */ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkafka Client . send ( Kafka Topic . ACTIVE _ G ONG F EN G _ PROJECT _ TOPIC , ĠobjectMapper . writeValue AsString ( active Map )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Land un Task Detail ( w ash Time : ĠString , Ġtask List : ĠList < Task Info Entity >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocal W ash Time Ġ= Ġif Ġ( w ash Time Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . now (). format ( DateTime Formatter . of Pattern (" yyyy - MM - dd ĠHH : mm : ss ")) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġw ash Time ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlogger . info (" task Ġlist Ġsize : Ġ${ task List . size }") ĊĠĠĠĠĠĠĠ Ġtask List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . task Owner . isNotEmpty () Ġ&& Ġit . groupId Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstaff Info Ġ= Ġto f Client Api . get Staff Info By UserName ( it . task Owner [ 0 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorganization Info Ġ= Ġto f Client Api . get Organization Info By GroupId ( staff Info . data ?. GroupId Ġ?: Ġ- 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . groupId Ġ= Ġstaff Info . data ?. GroupId Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . center Id Ġ= Ġorganization Info ?. center Id Ġ?: Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . bg Id Ġ= Ġorganization Info ?. bg Id Ġ?: Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . dept Id Ġ= Ġorganization Info ?. dept Id Ġ?: Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Map Ġ= ĠJson Util . toMap ( it ). to Mutable Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Map [" w ash Time "] Ġ= Ġlocal W ash Time ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Map [" open Source "] Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Map [" activity "] Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Map [" devops Url "] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" http ://${ all Properties . code cc Gate Way }/ code cc /${ it . projectId }/ task /${ it . taskId }/ detail " Ċ /* ĠĠĠĠĠĠĠĠĠĠĠ Ġrabbit Template . convert And Send ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEX CHANGE _ K AF KA _ DATA _ PLATFORM , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠROUT E _ K AF KA _ DATA _ TASK _ DETAIL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . writeValue AsString ( task Map ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) */ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkafka Client . send ( Kafka Topic . TASK _ DETAIL _ TOPIC , ĠobjectMapper . writeValue AsString ( task Map )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Group Info ( parent Dept Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Dept Infos Ġ= Ġto f Client Api . getChild Dept Infos ( parent Dept Id ). data ĊĠĠĠĠĠĠĠ Ġif Ġ( child Dept Infos Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" child Dept Infos Ġsize Ġ: Ġ${ child Dept Infos . size }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild Dept Infos . forEach { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . Enabled Ġ== Ġ" true ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdept Staff Infos Ġ= Ġto f Client Api . get Dept Staff Infos ( it . ID . toString ()). data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dept Staff Infos Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" dept : Ġ${ it . ID } Ġstaff Ġnum : Ġ${ dept Staff Infos . size }, Ġstart Ġloop ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġval Ġmap List Ġ= Ġmutable ListOf < Map < String , ĠAny >>() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorganization Cache Map Ġ= Ġmutable Map Of < Int , ĠT of Organization Info ?> () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdept Staff Infos . forEach Ġ{ Ġto f Dept Staff Info Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠdateTime Formatter Ġ= ĠDateTime Formatter . of Pattern (" yyyy - MM - dd ĠHH : mm : ss ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnow Time Ġ= ĠLocalDateTime . now (). format ( dateTime Formatter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstaff Map Ġ= Ġmutable Map Of < String , ĠAny >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Map [" w ash Time "] Ġ= Ġnow Time ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Map [" English Name "] Ġ= Ġto f Dept Staff Info . English Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Map [" FullName "] Ġ= Ġto f Dept Staff Info . FullName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Map [" GroupId "] Ġ= Ġto f Dept Staff Info . GroupId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Map [" GroupName "] Ġ= Ġto f Dept Staff Info . GroupName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Map [" Department Id "] Ġ= Ġto f Dept Staff Info . Department Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Map [" Department Name "] Ġ= Ġto f Dept Staff Info . Department Name ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorganization Info : ĠT of Organization Info ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( organization Cache Map . containsKey ( to f Dept Staff Info . GroupId )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorganization Info Ġ= Ġorganization Cache Map [ to f Dept Staff Info . GroupId ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorganization Info Ġ= Ġto f Client Api . get Organization Info By GroupId ( to f Dept Staff Info . GroupId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorganization Cache Map [ to f Dept Staff Info . GroupId ] Ġ= Ġorganization Info ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Map [" Center Id "] Ġ= Ġorganization Info ?. center Id Ġ?: Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Map [" Center Name "] Ġ= Ġorganization Info ?. center Name Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Map [" Bg Name "] Ġ= Ġorganization Info ?. bg Name Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstaff Map [" Bg Id "] Ġ= Ġorganization Info ?. bg Id Ġ?: Ġ- 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmap List . add ( staff Map ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkafka Client . send (" t end ata - bk devops - 2 9 6 - topic - staff Infos ", ĠobjectMapper . writeValue AsString ( staff Map )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" dept : Ġ${ it . ID } Ġstaff Ġis Ġnull ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġoverride Ġfun Ġmanual Execute Trigger Pipeline ( task IdList Ġ: ĠList < Long > ){ ĊĠĠĠĠĠĠĠ Ġval Ġtask Entity List Ġ= Ġtask Repository . findBy TaskId In ( task IdList ) ĊĠĠĠĠĠĠĠ Ġtask Entity List . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtool Array Ġ= Ġit . tool Names . split ("," ). to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Com Constants . Bs Task CreateFrom . G ONG F EN G _ SCAN . value () Ġ!= Ġit . createFrom ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġit . g ong f eng Flag Ġ&& Ġ! it . g ong f eng Flag Ġ&& Ġtool Array . contains (" C LOC ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtool Array . remove (" C LOC ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Map Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ CODE CC _ FILTER _ TOOLS " Ġto Ġ( tool Array . join ToString ("," )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" project Ġid Ġ: Ġ${ it . projectId }, Ġpipeline Ġid Ġ: Ġ${ it . pipeline Id }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOk http Utils . do HttpPost (" http ://${ all Properties . devops Dev Url }/ ms / process / api / service / builds /" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ it . projectId }/${ it . pipeline Id }? channel Code = G ONG F EN G SCAN ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠobjectMapper . writeValue AsString ( value Map ), Ġmap Of (" X - DEV OPS - UID " Ġto Ġ" admin ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . get Dev ops Service ( Service Build Resource :: class . java ). manual Startup (" admin ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . projectId , Ġit . pipeline Id , Ġvalue Map , ĠChannel Code . G ONG F EN G SCAN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" manual Ġtrigger Ġpipeline Ġsuccess ! Ġpipeline Ġid Ġ: Ġ${ it . pipeline Id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e Ġ: ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" manual Ġtrigger Ġpipeline Ġfail ! Ġpipeline Ġid Ġ: Ġ${ it . pipeline Id }", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }