package Ġcom . tencent . bk . code cc . def ect . service . impl Ċ Ċ import Ġcom . tencent . bk . code cc . def ect . dao . mong ore pository .* Ċ import Ġcom . tencent . bk . code cc . def ect . model . Standard Cluster Statistic Entity Ċ import Ġcom . tencent . devops . common . api . cluster result . Base Cluster Result VO Ċ import Ġcom . tencent . devops . common . api . cluster result . Standard Cluster Result VO Ċ import Ġcom . tencent . devops . common . constant . Com Constants Ċ import Ġcom . tencent . devops . common . service . Tool Meta Cache Service Ċ import Ġorg . apache . commons . bean utils . Bean Utils Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . math . BigDecimal Ċ Ċ @ Service (" STANDARD ") Ċ class ĠStandard Cluster Defect ServiceImpl ( ĊĠĠĠĠĠĠĠ Ġlint Statistic Repository : ĠL int Statistic Repository , ĊĠĠĠĠĠĠĠ Ġcommon Statistic Repository : ĠCommon Statistic Repository , ĊĠĠĠĠĠĠĠ Ġdup c Statistic Repository : ĠD UP C Statistic Repository , ĊĠĠĠĠĠĠĠ Ġc cn Statistic Repository : ĠC CN Statistic Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġc loc Statistic Repository : ĠC LOC Statistic Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtool Meta Cache Service : ĠTool Meta Cache Service , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġstandard Cluster Statistic Repository : ĠStandard Cluster Statistic Repository Ċ ) Ġ: ĠAbstract Cluster Defect Service ( ĊĠĠĠĠĠĠĠ Ġlint Statistic Repository , ĊĠĠĠĠĠĠĠ Ġcommon Statistic Repository , ĊĠĠĠĠĠĠĠ Ġdup c Statistic Repository , ĊĠĠĠĠĠĠĠ Ġc cn Statistic Repository , ĊĠĠĠĠĠĠĠ Ġc loc Statistic Repository Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Standard Cluster Defect ServiceImpl :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcluster ( taskId : ĠLong , Ġbuild Id : ĠString , Ġtool List : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" Standard Ġcluster Ġ$ taskId Ġ$ build Id Ġ${ tool List . size }") ĊĠĠĠĠĠĠĠ Ġvar Ġtotal Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ å½ĵåīį åĪĨç±» ä¸ĭ æīĢæľī å·¥åħ· çļĦ åĳĬ èŃ¦ æķ°æį® ĊĠĠĠĠĠĠĠ Ġtool List . forEach { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtool Detail Ġ= Ġtool Meta Cache Service . get Tool Base Meta Cache ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcluster Result VO Ġ= Ġget Statistic ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtaskId Ġ= ĠtaskId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Id Ġ= Ġbuild Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtool Name Ġ= Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpattern Ġ= Ġtool Detail . pattern ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Count Ġ+= Ġ( cluster Result VO . total Count Ġ?: Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ åıĸ ä¸Ĭ ä¸Ģæ¬¡ çļĦ èģļ ç±» ä¿¡æģ¯ ä¸İ å½ĵåīį å¯¹ æ¯Ķ ĊĠĠĠĠĠĠĠ Ġval Ġlast Standard Cluster Statistic Entity : ĠStandard Cluster Statistic Entity ? Ġ Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstandard Cluster Statistic Repository . findFirst By TaskId OrderBy Time Desc ( taskId ) ĊĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ æĢ» è¡Į æķ° è®¡ç®Ĺ åįĥ è¡Į å¹³åĿĩ åĳĬ èŃ¦ æķ° ĊĠĠĠĠĠĠĠ Ġval Ġc loc List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc loc Statistic Repository . findBy TaskId And Tool Name And Build Id ( taskId , ĠCom Constants . Tool . C LOC . name , Ġbuild Id ) ĊĠĠĠĠĠĠĠ Ġval Ġsum Lines Ġ= Ġc loc List . stream (). map ToInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . sum Code . toInt () ĊĠĠĠĠĠĠĠ Ġ}. sum () ĊĊĠĠĠĠĠĠĠ Ġval Ġaverage Ġ= Ġif Ġ( sum Lines Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 . toDouble () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBigDecimal ( 1 0 0 0 Ġ* Ġ( total Count . toDouble () Ġ/ Ġsum Lines . toDouble ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Scale ( 2 , ĠBigDecimal . ROUND _ HALF _ UP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toDouble () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcurr Standard Cluster Statistic Entity Ġ= ĠStandard Cluster Statistic Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtaskId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtool List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Count Ġ- Ġ( last Standard Cluster Statistic Entity ?. total Count ?: 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaverage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaverage . minus (( last Standard Cluster Statistic Entity ?. average Th ous and Defect ?: 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġstandard Cluster Statistic Repository . save ( curr Standard Cluster Statistic Entity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Cluster Statistic ( taskId : ĠLong , Ġbuild Id : ĠString ): ĠBase Cluster Result VO Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstandard Cluster Result VO Ġ= ĠStandard Cluster Result VO () ĊĠĠĠĠĠĠĠ Ġstandard Cluster Result VO . type Ġ= ĠCom Constants . Tool Type . STANDARD . name ĊĠĠĠĠĠĠĠ Ġval Ġstandard Cluster Statistic Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstandard Cluster Statistic Repository . findBy TaskId And Build Id ( taskId , Ġbuild Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġstandard Cluster Result VO ĊĠĠĠĠĠĠĠ ĠBean Utils . copy Properties ( standard Cluster Result VO , Ġstandard Cluster Statistic Entity ) ĊĠĠĠĠĠĠĠ Ġstandard Cluster Result VO . type Ġ= ĠCom Constants . Tool Type . STANDARD . name ĊĠĠĠĠĠĠĠ Ġstandard Cluster Result VO . tool List Ġ= Ġstandard Cluster Statistic Entity . tool List ĊĠĠĠĠĠĠĠ Ġstandard Cluster Result VO . tool Num Ġ= Ġstandard Cluster Statistic Entity . tool List ?. size Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturn Ġstandard Cluster Result VO ĊĠĠĠ Ġ} Ċ } Ċ