package Ġcom . abel . big water . impl Ċ Ċ import Ġcom . abel . big water . Helper Ċ import Ġcom . abel . big water . api .* Ċ import Ġcom . abel . big water . api . Meter Service . Companion . BASE _ PATH Ċ import Ġcom . abel . big water . api . Meter Service . Companion . PATH _ FETCH _ DMA Ċ import Ġcom . abel . big water . mapper . Eff Mapper Ċ import Ġcom . abel . big water . mapper . Meter Mapper Ċ import Ġcom . abel . big water . model .* Ċ import Ġcom . abel . big water . model . eff . Vc Meter Verify Point Ċ import Ġcom . abel . big water . model . zone . Zone Meter Ċ import Ġcom . alibaba . fastjson . JSON Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Service Ċ Ċ @ Service (" meter Service ") Ċ open Ġclass ĠMeter ServiceImpl Ġ: ĠMeter Service Ġ{ ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġvar Ġmeter Mapper : ĠMeter Mapper ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġvar Ġeff Mapper : ĠE ff Mapper ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġvar Ġlogin Manager : ĠLogin Manager ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ ° ´ è¡¨ åĵģ çīĮ åĪĹè¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġselect Meter Brand (): ĠB w Result < Bw Meter Brand > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( meter Mapper !!. select Meter Brand ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRT U åĵģ çīĮ åĪĹè¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġselect Remote Brand (): ĠB w Result < Bw Remote Brand > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( meter Mapper !!. select Remote Brand ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĽå»º æ°´ è¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġinsert Meter ( holder : ĠB w Holder < Zone Meter >): ĠB w Result < Zone Meter > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () Ġ|| Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . single ?. meter Id . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġholder . list . isNull OrEmpty ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġif Ġ( holder . single ?. meter Id . isNull Or Blank ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list !! ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list . or Empty (). plus ( holder . single !! ) ĊĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . meter Id . isNull Or Blank () Ġ|| Ġit . meter Name . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġit . size Id Ġ== Ġnull Ġ|| Ġit . size Name . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġit . ste el No . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , Ġ" æ°´ è¡¨ ID / åĲįç§° / åı£ å¾Ħ / è¡¨ çłģ Ġ ä¸įèĥ½ä¸ºç©º : Ġ${ it . meter Id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġadd Ġmeter : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ INSERT _ ZONE _ METER ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcheck Ġduplicate Ġmeter Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Mapper !!. select Meter ( Meter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter IdList Ġ= Ġlist . map Ġ{ Ġit . meter Id !! Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , Ġ" æ°´ è¡¨ æ¡£ æ¡Ī å·² åŃĺåľ¨ : Ġ${ it . join ToString Ġ{ Ġm 1 Ġ-> Ġm 1 . meter Id !! Ġ}} ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåıª èĥ½ æĽ´æĸ° Ġ æīĢåľ¨ æľº æŀĦ åıĬ åĪĨ åħ¬åı¸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . firm Id . or Empty (). startsWith ( login . single !!. firm Id !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . firm Id Ġ= Ġlogin . single !!. firm Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Mapper !!. insert Meter ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . verify List . isNull OrEmpty ()) Ġmeter Mapper !!. insert Meter Verify ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . point List . isNull OrEmpty ()) Ġmeter Mapper !!. insert Verify Point ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( list ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" å¢ŀåĬł æ°´ è¡¨ ï¼ļ Ġ${ list . size }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪłéĻ¤ å¤§ è¡¨ ĊĠĠĠĠ Ġ* Ġholder # list Ġholds Ġlist Ġof Ġmeters . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdelete Meter ( holder : ĠB w Holder < Zone Meter >): ĠB w Result < Zone Meter > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () Ġ|| Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . single ?. meter Id . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġholder . list . isNull OrEmpty ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġif Ġ( holder . single ?. meter Id . isNull Or Blank ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list . or Empty () ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list . or Empty (). plus ( holder . single !! ) ĊĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . meter Id . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , Ġ" æ°´ è¡¨ ID ä¸įèĥ½ä¸ºç©º ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġadd Ġmeter : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ DELETE _ ZONE _ METER ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcnt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåıª èĥ½ æĽ´æĸ° Ġ æīĢåľ¨ æľº æŀĦ åıĬ åĪĨ åħ¬åı¸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . firm Id . or Empty (). startsWith ( login . single !!. firm Id !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . firm Id Ġ= Ġlogin . single !!. firm Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Mapper !!. delete Meter Verify ( Meter Param ( meter Id Ġ= Ġit . meter Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Mapper !!. delete Verify Point ( Meter Param ( meter Id Ġ= Ġit . meter Id )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcnt Ġ+= Ġmeter Mapper !!. delete Meter ( Meter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Id Ġ= Ġit . meter Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirm Id Ġ= Ġit . firm Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( list ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" åĪłéĻ¤ æ°´ è¡¨ ï¼ļ Ġ$ cnt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġä¿®æĶ¹ å¤§ è¡¨ ĊĠĠĠĠ Ġ* Ġholder # single Ġholds Ġthe Ġmeter Ġto Ġbe Ġupdated . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġupdate Meter ( holder : ĠB w Holder < Zone Meter >): ĠB w Result < Zone Meter > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () Ġ|| Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . single ?. meter Id . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġholder . list . isNull OrEmpty ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġif Ġ( holder . single ?. meter Id . isNull Or Blank ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list . or Empty () ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list . or Empty (). plus ( holder . single !! ) ĊĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . meter Id . isNull Or Blank () Ġ|| Ġit . meter Name . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġit . size Id Ġ== Ġnull Ġ|| Ġit . size Name . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , Ġ" æ°´ è¡¨ ID / åĲįç§° / åı£ å¾Ħ ä¸įèĥ½ä¸ºç©º : Ġ${ it . meter Id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġadd Ġmeter : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ UPDATE _ ZONE _ METER ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcnt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåıª èĥ½ æĽ´æĸ° Ġ æīĢåľ¨ æľº æŀĦ åıĬ åĪĨ åħ¬åı¸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . sub F irm Id Ġ= Ġlogin . single !!. firm Id !!. plus ('% ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . firm Id . or Empty (). startsWith ( login . single !!. firm Id !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . firm Id Ġ= Ġlogin . single !!. firm Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcnt Ġ+= Ġmeter Mapper !!. update Meter ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( list ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" æĽ´æĸ° æ°´ è¡¨ ï¼ļ Ġ$ cnt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¢ŀåĬł æ£Ģ å®ļ çĤ¹ ĊĠĠĠĠ Ġ* Ġholder # single Ġholds Ġthe Ġmeter Ġto Ġbe Ġupdated . ĊĠĠĠĠ Ġ* Ġ@ see ĠZone Meter . meter Id ĊĠĠĠĠ Ġ* Ġ@ see ĠZone Meter . ste el No Ġ- Ġ è¡¨ çłģ ĊĠĠĠĠ Ġ* Ġ@ see ĠZone Meter . verify List Ġ- Ġåı¯ éĢī ĊĠĠĠĠ Ġ* Ġ@ see ĠZone Meter . point List ĊĠĠĠĠ Ġ* Ġ åħ¶ä¸Ń , Ġ å¦Ĥä¸ĭ åŃĹæ®µ éľĢè¦ģ å¡«åĨĻ ï¼ļ ĊĠĠĠĠ Ġ* Ġ@ see ĠV c Meter Verify Point . point No ĊĠĠĠĠ Ġ* Ġ@ see ĠV c Meter Verify Point . point Name ĊĠĠĠĠ Ġ* Ġ@ see ĠV c Meter Verify Point . point Flow ĊĠĠĠĠ Ġ* Ġ@ see ĠV c Meter Verify Point . point Dev ĊĠĠĠĠ Ġ* Ġ@ see ĠV c Meter Verify Point . verify Date ĊĠĠĠĠ Ġ* Ġ@ see ĠV c Meter Verify Point . high Limit Ġ- Ġåı¯ éĢī ĊĠĠĠĠ Ġ* Ġ@ see ĠV c Meter Verify Point . low Limit Ġ- Ġåı¯ éĢī ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġadd Meter Point ( holder : ĠB w Holder < Zone Meter >): ĠB w Result < Zone Meter > Ġ{ ĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġadd Ġverify : Ġ${ JSON . toJSON String ( holder . single , Ġtrue )} ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġholder . single ?. meter Id . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġholder . single ?. ste el No . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġholder . single ?. point List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , Ġ"$ ERR _ PARAM : æ°´ è¡¨ ID ãĢģ è¡¨ çłģ ãĢģ æ£Ģ å®ļ çĤ¹ ä¸įèĥ½ä¸ºç©º .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . single !!. verify List ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . verify Date Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , Ġ"$ ERR _ PARAM : Ġæ£Ģ å®ļ ç»ĵæŀľ çļĦ æ£Ģ å®ļ æĹ¥æľŁ ä¸įèĥ½ä¸ºç©º .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . batch Id . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . batch Id Ġ= Ġ" n / a " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġholder . single !!. point List !!. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . point Flow Ġ== Ġnull Ġ|| Ġit . point No Ġ== Ġnull Ġ|| Ġit . point Name . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġit . point Dev Ġ== Ġnull Ġ|| Ġit . verify Date Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , Ġ"$ ERR _ PARAM : Ġæ£Ģ å®ļ çĤ¹ çļĦ æµģ éĩı ãĢģ ç¼ĸåı· ãĢģ åĲįç§° ãĢģ è¯¯ å·® ãĢģ æ£Ģ å®ļ æĹ¥æľŁ ä¸įèĥ½ä¸ºç©º .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ ADD _ METER _ POINT ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcnt 1 Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcnt 2 Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . single ?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåıª èĥ½ æĽ´æĸ° Ġ æīĢåľ¨ æľº æŀĦ åıĬ åĪĨ åħ¬åı¸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . firm Id . or Empty (). startsWith ( login . single !!. firm Id !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . firm Id Ġ= Ġlogin . single !!. firm Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeter Ġ= Ġmeter Mapper !!. select Meter ( Meter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Id Ġ= Ġit . meter Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirm Id Ġ= Ġit . firm Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}). first OrNull () Ġ?: Ġreturn ĠB w Result ( 3 , Ġ" æ°´ è¡¨ ä¸įåŃĺåľ¨ : Ġ${ it . meter Id }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( meter . ste el No . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , Ġ" æ°´ è¡¨ è¡¨ çłģ ä¸ºç©º : Ġ${ meter . meter Name } Ġ/ Ġ${ meter . meter Id }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . verify List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcnt 1 Ġ= Ġmeter Mapper !!. insert Meter Verify ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . point List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcnt 2 Ġ= Ġmeter Mapper !!. insert Verify Point ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( holder . single !! ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" å¢ŀåĬł æ£Ģ å®ļ çĤ¹ ï¼ļ Ġ${ cnt 1 } Ġ/ Ġ${ cnt 2 }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪłéĻ¤ æ£Ģ å®ļ çĤ¹ ĊĠĠĠĠ Ġ* Ġholder # single Ġholds Ġthe Ġmeter Ġto Ġbe Ġupdated . ĊĠĠĠĠ Ġ* Ġ@ see ĠZone Meter . verify List ĊĠĠĠĠ Ġ* Ġ@ see ĠZone Meter . point List ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġremove Meter Point ( holder : ĠB w Holder < Zone Meter >): ĠB w Result < Zone Meter > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () Ġ|| Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . single ?. meter Id . isNull Or Blank ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġadd Ġverify : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ ADD _ METER _ POINT ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcnt 1 Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcnt 2 Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . single ?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåıª èĥ½ æĽ´æĸ° Ġ æīĢåľ¨ æľº æŀĦ åıĬ åĪĨ åħ¬åı¸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . firm Id . or Empty (). startsWith ( login . single !!. firm Id !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . firm Id Ġ= Ġlogin . single !!. firm Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeter Ġ= Ġmeter Mapper !!. select Meter ( Meter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Id Ġ= Ġit . meter Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirm Id Ġ= Ġit . firm Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}). first OrNull () Ġ?: Ġreturn ĠB w Result ( 3 , Ġ" æ°´ è¡¨ ä¸įåŃĺåľ¨ : Ġ${ it . meter Id }") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . point List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcnt 2 Ġ= Ġmeter Mapper !!. delete Verify Point ( Meter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Id Ġ= Ġit . meter Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoint IdList Ġ= Ġit . point List ?. map Ġ{ Ġp Ġ-> Ġp . point Id Ġ?: Ġ 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . verify List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcnt 1 Ġ= Ġmeter Mapper !!. delete Meter Verify ( Meter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Id Ġ= Ġit . meter Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify IdList Ġ= Ġit . verify List ?. map Ġ{ Ġv Ġ-> Ġv . verify Id Ġ?: Ġ 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( holder . single !! ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" ç§»éĻ¤ æ£Ģ å®ļ çĤ¹ ï¼ļ Ġ${ cnt 1 } Ġ/ Ġ${ cnt 2 }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæĽ´æĸ° å¤§ è¡¨ çļĦ åĿĲæłĩ ï¼Į è®¾ç½® meter #{ id , Ġmeter Loc } åį³åı¯ ãĢĤ ĊĠĠĠĠ Ġ* Ġmeter Loc ä¸º çĤ¹ åĿĲæłĩ çļĦ WK T æł¼å¼ı ï¼Į å¦Ĥ ï¼ļ POINT Ġ( 2 2 . 5 Ġ 1 1 4 ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġupdate Meter Loc ( holder : ĠB w Holder < Zone Meter >): ĠB w Result < Zone Meter > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () Ġ|| Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . single ?. meter Id . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġholder . list . isNull OrEmpty ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġif Ġ( holder . single ?. meter Id . isNull Or Blank ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list . or Empty () ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list . or Empty (). plus ( holder . single !! ) ĊĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . meter Id . isNull Or Blank () Ġ|| Ġit . meter Loc . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , Ġ" æ°´ è¡¨ ID / åĿĲæłĩ ä¸įèĥ½ä¸ºç©º : Ġ${ it . meter Id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġadd Ġmeter : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ UPDATE _ METER _ LOC ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcnt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåıª èĥ½ æĽ´æĸ° Ġ æīĢåľ¨ æľº æŀĦ åıĬ åĪĨ åħ¬åı¸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . firm Id . or Empty (). startsWith ( login . single !!. firm Id !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . firm Id Ġ= Ġlogin . single !!. firm Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcnt Ġ+= Ġmeter Mapper !!. update Meter Loc ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( list ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" æĽ´æĸ° æ°´ è¡¨ ï¼ļ Ġ$ cnt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġå¤§ è¡¨ åĪĹè¡¨ ĊĠĠĠĠ Ġ* Ġå¦Ĥæŀľ å¡« åħħ äºĨ å¦Ĥä¸ĭ åŃĹæ®µ , Ġ åĪĻ è¿ĶåĽŀ çļĦ æ°´ è¡¨ åĮħåĲ« DMA ä¿¡æģ¯ : ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . dma Id ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . dma Name ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . dma IdList ĊĠĠĠĠ Ġ* Ġ åĲ¦åĪĻ , Ġè¿ĶåĽŀ çļĦ æ°´ è¡¨ åĮħåĲ« çīĩ åĮº ä¿¡æģ¯ ( Zone ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġresult # list Ġholds Ġthe Ġlist Ġof Ġmeters . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġlist Meter ( holder : ĠB w Holder < Meter Param >): ĠB w Result < Zone Meter > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġlist Ġmeter : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĠĠĠĠĠĠĠ Ġval Ġdp Ġ= Ġholder . single !! ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ LIST _ ZONE _ METER ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdp . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . firm Id . or Empty (). startsWith ( login . single !!. firm Id !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . firm Id Ġ= Ġlogin . single !!. firm Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . firm Id !!. endsWith ("% ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . firm Id Ġ= Ġit . firm Id Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . keywords ?. contains ( Regex ("[ a - zA - Z ]+ ")) Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . pin yin Ġ= Ġit . keywords ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . keywords Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrx Ġ= ĠRegex ("\\ s +") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . keywords Ġ= Ġit . keywords ?. trim ()?. replace ( rx , Ġ"| ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dp . dma Id . isNull Or Blank () Ġ&& Ġdp . dma Name . isNull Or Blank () Ġ&& Ġdp . dma IdList . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Mapper !!. select Meter Zone ( dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Mapper !!. select Meter ( dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" æ°´ è¡¨ æķ°éĩı ï¼ļ Ġ${ list ?. size }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¿ĶåĽŀ åįķ åıª å¤§ è¡¨ çļĦ è¯¦æĥħ , Ġ åĮħæĭ¬ : ĊĠĠĠĠ Ġ* Ġ@ see ĠZone Meter . verify List Ġ- Ġæ£Ģ å®ļ ç»ĵæŀľ åĪĹè¡¨ ĊĠĠĠĠ Ġ* Ġ@ see ĠZone Meter . point List Ġ- Ġæ£Ģ å®ļ çĤ¹ åĪĹè¡¨ ĊĠĠĠĠ Ġ* Ġ@ see ĠZone Meter . decay Obj Ġ- Ġ ç»ĳ å®ļçļĦ èĢģ åĮĸ æ¨¡æĿ¿ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġå¦Ĥæŀľ å¡« åħħ äºĨ å¦Ĥä¸ĭ åŃĹæ®µ , Ġ åĪĻ è¿ĶåĽŀ çļĦ æ°´ è¡¨ åĮħåĲ« DMA ä¿¡æģ¯ : ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . dma Id ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . dma Name ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . dma IdList ĊĠĠĠĠ Ġ* Ġ åĲ¦åĪĻ , Ġè¿ĶåĽŀ çļĦ æ°´ è¡¨ åĮħåĲ« çīĩ åĮº ä¿¡æģ¯ ( Zone ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġresult # list Ġholds Ġthe Ġlist Ġof Ġmeters . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġfetch Meter ( holder : ĠB w Holder < Meter Param >): ĠB w Result < Zone Meter > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġholder . single ?. meter Id . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġfetch Ġmeter : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĠĠĠĠĠĠĠ Ġval Ġdp Ġ= Ġholder . single !! ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ FETCH _ ZONE _ METER ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdp . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . firm Id . or Empty (). startsWith ( login . single !!. firm Id !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . firm Id Ġ= Ġlogin . single !!. firm Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . firm Id !!. endsWith ("% ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . firm Id Ġ= Ġit . firm Id Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeter Ġ= Ġif Ġ( dp . dma Id . isNull Or Blank () Ġ&& Ġdp . dma Name . isNull Or Blank () Ġ&& Ġdp . dma IdList . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Mapper !!. select Meter Zone ( dp ). first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Mapper !!. select Meter ( dp ). first OrNull () Ġ?: Ġreturn ĠB w Result ( 3 , Ġ" æ°´ è¡¨ ä¸įåŃĺåľ¨ : Ġ${ dp . meter Id }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeter !!. verify List Ġ= Ġmeter Mapper !!. list Meter Verify ( dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeter . point List Ġ= Ġmeter Mapper !!. list Verify Point ( dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeter . decay Obj Ġ= Ġeff Mapper !!. select Eff Dec ay ( Eff Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecay Id Ġ= Ġmeter . decay Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Brand Id Ġ= Ġmeter . meter Brand Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Id Ġ= Ġmeter . size Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Name Ġ= Ġmeter . size Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel Size Ġ= Ġmeter . model Size ?. substring Before ('- ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). first OrNull () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( meter ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDMA åĪĹè¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġlist D ma ( holder : ĠB w Holder < Meter Param >): ĠB w Result < Bw D ma > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġlist Ġmeter : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĠĠĠĠĠĠĠ Ġval Ġdp Ġ= Ġholder . single !! ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ LIST _ DMA ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdp . ref ine F irm Id ( login . single !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( meter Mapper !!. select D ma ( dp )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" DMA æķ°éĩı ï¼ļ Ġ${ list ?. size }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæŁ¥è¯¢ DMA çļĦ åĿĲæłĩ åıĬ è¾¹ çķĮ ï¼Į åıĬ æľĢåĲİ æ¼ı æį Ł . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ æ³¨ ï¼ļ æ¯ıä¸ª DMA åĮħåĲ« ä¸¤ æĿ¡ ç»ĵæŀľ ï¼Į æľĢåĲİ ä¸Ģ æĹ¥ åıĬ åīį ä¸Ģ æĹ¥ ï¼Į æľĢåĲİ ä¸Ģ æĹ¥ çĶ±äºİ RT U ä¸Ĭä¼ł åĳ¨æľŁ çļĦéĹ®é¢ĺ ï¼Į ä¹Ł è®¸ ä¼ļ åĩºçİ° âĢľ æķ°æį® ä¸į åħ¨ âĢĿ çļĦ ç»ĵæŀľ ãĢĤ ĊĠĠĠĠ Ġ* Ġ è¿Ļç§į æĥħåĨµä¸ĭ ï¼Į last Loss å°Ĩ ä¸º null ï¼Į èĢĮ åīį ä¸Ģ æĹ¥ çļĦ æ¼ı æį Ł éĩı åºĶè¯¥ æĺ¯ å®Įæķ´ çļĦ ï¼Į åį³ last Loss ä¸į ä¸º null ãĢĤ æ³¨æĦı åľ¨ æĺ¾ç¤º æ¼ı æį Ł åľ° åĽ¾ æĹ¶ ĊĠĠĠĠ Ġ* Ġ åºĶ å°½ éĩı ä½¿çĶ¨ éĿŀ null åĢ¼ ï¼ļ å¦Ĥæŀľ æľĢåĲİ ä¸Ģ æĹ¥ last Loss Ġ!= Ġnull ï¼Į åĪĻ ä½¿çĶ¨ æľĢåĲİ ä¸Ģ æĹ¥ ; Ġ åĲ¦åĪĻ ä½¿çĶ¨ åīį ä¸Ģ æĹ¥ çļĦ Ġlast Loss ; Ġå¦Ĥæŀľ ĊĠĠĠĠ Ġ* Ġ åīį ä¸Ģ æĹ¥ çļĦ last Loss Ġ ä¹Łæĺ¯ null , Ġ åĪĻ ä½¿çĶ¨ comments Ġ åŃĹæ®µ çļĦåĨħå®¹ ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġlist D ma Loc ( holder : ĠB w Holder < Loc Param >): ĠB w Result < Bw D ma Loc > Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĽå»º DMA , Ġ ä¸Ģæ¬¡ åĪĽå»º å¤ļä¸ª æĪĸ ä¸Ģä¸ª ĊĠĠĠĠ Ġ* Ġ@ see ĠB w Holder . list Ġ- Ġ ä¸Ģæ¬¡ åĪĽå»º å¤ļä¸ª ĊĠĠĠĠ Ġ* Ġ@ see ĠB w Holder . single Ġ- Ġ ä¸Ģæ¬¡ åĪĽå»ºä¸Ģä¸ª ĊĠĠĠĠ Ġ* Ġ@ see ĠB w D ma . meter List Ġ- Ġ åĲĮæĹ¶ åħ³èģĶ æ°´ è¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġinsert D ma ( holder : ĠB w Holder < Bw D ma >): ĠB w Result < Bw D ma > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () Ġ|| Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . single ?. dma Id . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġholder . list . isNull OrEmpty ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġif Ġ( holder . single ?. dma Id . isNull Or Blank ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list !! ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list . or Empty (). plus ( holder . single !! ) ĊĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . dma Id . isNull Or Blank () Ġ|| Ġit . dma Name . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , Ġ" DMA - ID / åĲįç§° ä¸įèĥ½ä¸ºç©º : Ġ${ it . dma Id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġadd ĠDMA : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ INSERT _ DMA ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrc nt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåıª èĥ½ æĽ´æĸ° Ġ æīĢåľ¨ æľº æŀĦ åıĬ åĪĨ åħ¬åı¸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . ref ine F irm Id ( login . single !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter Mapper !!. insert D ma ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . meter List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrc nt Ġ+= Ġmeter Mapper !!. link Meter D ma ( Meter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdma Id Ġ= Ġit . dma Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter List Ġ= Ġit . meter List ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( list ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" å¢ŀåĬł DMA ï¼ļ Ġ${ list . size } Ġ/ Ġ$ rc nt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ä¸Ģä¸ª DMA çļĦ è¯¦æĥħ , Ġ å¿ħ å¡« : ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . dma Id ĊĠĠĠĠ Ġ* Ġ@ return ĠDMA åıĬ åĮħåĲ« çļĦ æ°´ è¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġfetch D ma ( holder : ĠB w Holder < Meter Param >): ĠB w Result < Bw D ma > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġholder . single ?. dma Id . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġholder . single !!. dma Id . equals ("% ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġfetch Ġdma : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĠĠĠĠĠĠĠ Ġval Ġdp Ġ= Ġholder . single !! ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠBASE _ PATH Ġ+ ĠPATH _ FETCH _ DMA ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdp . ref ine F irm Id ( login . single !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġz Ġ= Ġmeter Mapper !!. select D ma ( dp ). first OrNull ()?. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . meter List Ġ= Ġmeter Mapper !!. list D ma Meter ( dp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 0 , Ġ" DMA æľª æī¾åĪ° : Ġ${ dp . dma Id }") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġä¿®æĶ¹ DMA , Ġ ä¸Ģæ¬¡ ä¿®æĶ¹ å¤ļä¸ª æĪĸ ä¸Ģä¸ª , Ġä¸į ä¿®æĶ¹ åħ³èģĶ æ°´ è¡¨ ĊĠĠĠĠ Ġ* Ġ@ see ĠB w Holder . list Ġ- Ġ ä¸Ģæ¬¡ ä¿®æĶ¹ å¤ļä¸ª ĊĠĠĠĠ Ġ* Ġ@ see ĠB w Holder . single Ġ- Ġ ä¸Ģæ¬¡ ä¿®æĶ¹ ä¸Ģä¸ª ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġupdate D ma ( holder : ĠB w Holder < Bw D ma >): ĠB w Result < Bw D ma > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () Ġ|| Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . single ?. dma Id . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġholder . list . isNull OrEmpty ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġif Ġ( holder . single ?. dma Id . isNull Or Blank ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list !! ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . list . or Empty (). plus ( holder . single !! ) ĊĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . dma Id . isNull Or Blank () Ġ|| Ġit . dma Name . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , Ġ" DMA - ID / åĲįç§° ä¸įèĥ½ä¸ºç©º : Ġ${ it . dma Id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġupdate ĠDMA : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ UPDATE _ DMA ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrc nt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġåıª èĥ½ æĽ´æĸ° Ġ æīĢåľ¨ æľº æŀĦ åıĬ åĪĨ åħ¬åı¸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . ref ine F irm Id ( login . single !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrc nt Ġ+= Ġmeter Mapper !!. update D ma ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( list ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" æĽ´æĸ° DMA ï¼ļ Ġ$ rc nt Ġ/ Ġ${ list . size }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæĽ´æĸ° DMA åĪĨ åĮº çļĦ åĿĲæłĩ åıĬ è¾¹ çķĮ ï¼Į åħ¶ä¸Ń dma Loc ä¸º çĤ¹ åĿĲæłĩ çļĦ WK T æł¼å¼ı ï¼Į dma Region ä¸º å¤ļ è¾¹ å½¢ çļĦ WK T æł¼å¼ı ï¼Į å¦Ĥ ï¼ļ ĊĠĠĠĠ Ġ* Ġdma Loc Ġ= ĠPOINT Ġ( 2 2 . 5 Ġ 1 1 4 ) ĊĠĠĠĠ Ġ* Ġdma Region Ġ= ĠPOL YGON Ġ(( 2 2 . 5 Ġ 1 1 4 , Ġ 2 3 Ġ 1 1 2 , Ġ 2 2 . 8 Ġ 1 1 2 , Ġ 2 2 . 5 Ġ 1 1 4 )) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġupdate D ma Loc ( holder : ĠB w Holder < Bw D ma Loc >): ĠB w Result < Bw D ma Loc > Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪłéĻ¤ DMA , Ġ å¡« åħħ : ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . dma Id ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdelete D ma ( holder : ĠB w Holder < Meter Param >): ĠB w Result < Bw D ma > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . single ?. dma Id . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġdelete ĠDMA : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĠĠĠĠĠĠĠ Ġval Ġdp Ġ= Ġholder . single !! ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ DELETE _ DMA ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrc nt Ġ= Ġmeter Mapper !!. delete D ma ( dp ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( Bw D ma (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdma Id Ġ= Ġdp . dma Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" åĪłéĻ¤ DMA ï¼ļ Ġ${ dp . dma Id }/ Ġ$ rc nt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĨ ç¦» DMA åĴĮ è´¦åı· ĊĠĠĠĠ Ġ* ĠThe Ġstring Ġvalue Ġholds ĠuserId . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdetach D ma User ( holder : ĠB w Holder < Bw User >): ĠB w Result < String > Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ³èģĶ DMA åĴĮ è´¦åı· ĊĠĠĠĠ Ġ* Ġholder # single # dma IdList Ġholds Ġthe Ġlist Ġto Ġbe Ġattached . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġattach D ma User ( holder : ĠB w Holder < Bw User >): ĠB w Result < String > Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Not Ġyet Ġimplemented ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ³èģĶ DMA åĴĮ æ°´ è¡¨ . Ġ è¦ģ åħ³èģĶ çļĦ æ°´ è¡¨ åºĶ åŃĺåľ¨ , Ġ ä½Ĩ ä¸įåŃĺåľ¨ ä¸įä¼ļ è¿ĶåĽŀ éĶĻè¯¯ , Ġåıª æĺ¯ ä¸į åħ³èģĶ . ĊĠĠĠĠ Ġ* Ġ è¦ĨçĽĸ çĽ¸åĲĮ æłĩè¯Ĩ çļĦ å·² åħ³èģĶ æ°´ è¡¨ , Ġ å¢ŀåĬł æľª åħ³èģĶ çļĦ æ°´ è¡¨ ( åŃĺåľ¨ çļĦ æ°´ è¡¨ ); ĊĠĠĠĠ Ġ* Ġ å¯¹äºİ å·² åħ³èģĶ åħ¶ä»ĸ æ°´ è¡¨ Ġ æĹł æĶ¹åıĺ . Ġ å¿ħ å¡« : ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . dma Id ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . meter List ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġlink Meter D ma ( holder : ĠB w Holder < Meter Param >): ĠB w Result < Bw D ma > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġholder . single ?. dma Id . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġholder . single ?. meter List . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġsave Ġdma - meter : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĠĠĠĠĠĠĠ Ġval Ġdp Ġ= Ġholder . single !! ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ LINK _ DMA _ METER ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdp . firm Id Ġ= ĠHelper . ref ine F irm Id ( dp . firm Id , Ġlogin . single !!. firm Id !! , Ġfalse ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdma Ġ= Ġmeter Mapper !!. select D ma ( Meter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġzone Id Ġ= Ġdp . zone Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirm Id Ġ= Ġdp . firm Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). first OrNull () Ġ?: Ġreturn ĠB w Result ( 2 , Ġ" DMA ä¸įåŃĺåľ¨ æĪĸ ä¸į å±ŀ äºİ æľ¬ åįķä½į : Ġ${ dp . zone Id }/${ dp . zone Name }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġattach Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrc nt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġm list Ġ= Ġdp . meter List . or Empty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( m list . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġz p Ġ= ĠMeter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdma Id Ġ= Ġdp . dma Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter List Ġ= Ġm list . take ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrc nt Ġ+= Ġmeter Mapper !!. re bind D ma Meter ( zp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrc nt Ġ+= Ġmeter Mapper !!. link Meter D ma ( zp ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm list Ġ= Ġm list . drop ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( dma ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" åħ³èģĶ DMA æ°´ è¡¨ Ġ${ dp . dma Id }/${ dp . dma Name }: Ġ$ rc nt /${ dp . meter List ?. size }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è§£ éĻ¤ åħ³èģĶ DMA åĴĮ æ°´ è¡¨ . Ġ å¿ħ å¡« : ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . dma Id ĊĠĠĠĠ Ġ* Ġ@ see ĠMeter Param . meter IdList Ġ- Ġ éĢī å¡« , Ġ ä¸ºç©º æĹ¶ è§£ éĻ¤ åħ³èģĶ çļĦæīĢæľī æ°´ è¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdetach Meter D ma ( holder : ĠB w Holder < Meter Param >): ĠB w Result < Bw D ma > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder . lr ?. sessionId . isNull Or Blank () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġholder . single ?. dma Id . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 2 , ĠERR _ PARAM ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġl gr . info ("${ holder . lr ?. userId } Ġtry Ġto Ġdetach Ġdma - meter : Ġ${ JSON . toJSON String ( holder . single )} ") ĊĠĠĠĠĠĠĠ Ġval Ġdp Ġ= Ġholder . single !! ĊĊĠĠĠĠĠĠĠ Ġval Ġright Name Ġ= ĠMeter Service . BASE _ PATH Ġ+ ĠMeter Service . PATH _ DET ACH _ DMA _ METER ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= Ġlogin Manager !!. verify Session ( holder . lr !! , Ġright Name , Ġright Name , ĠJSON . toJSON String ( holder . single )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( login . code Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( login . code , Ġlogin . error !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdp . firm Id Ġ= ĠHelper . ref ine F irm Id ( dp . firm Id , Ġlogin . single !!. firm Id !! , Ġfalse ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdma Ġ= Ġmeter Mapper !!. select D ma ( Meter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdma Id Ġ= Ġdp . dma Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirm Id Ġ= Ġdp . firm Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). first OrNull () Ġ?: Ġreturn ĠB w Result ( 2 , Ġ" DMA ä¸įåŃĺåľ¨ æĪĸ ä¸į å±ŀ äºİ æľ¬ åįķä½į : Ġ${ dp . zone Id }/${ dp . zone Name }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrc nt Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdetach Ġfirst ly ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dp . meter IdList . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrc nt Ġ= Ġmeter Mapper !!. detach Meter D ma ( Meter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdma Id Ġ= Ġdp . dma Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġm list Ġ= Ġdp . meter IdList !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( m list . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrc nt Ġ+= Ġmeter Mapper !!. detach Meter D ma ( Meter Param (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdma Id Ġ= Ġdp . dma Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeter IdList Ġ= Ġm list . take ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm list Ġ= Ġm list . drop ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( dma ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ" è§£ éĻ¤ åħ³èģĶ DMA æ°´ è¡¨ Ġ${ dp . zone Id }/${ dp . zone Name }: Ġ$ rc nt /${ dp . meter List ?. size }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl gr . error ( ex . message , Ġex ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠB w Result ( 1 , Ġ" åĨħéĥ¨ éĶĻè¯¯ : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġl gr Ġ= ĠLoggerFactory . getLogger ( Meter ServiceImpl :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠERR _ PARAM Ġ= Ġ" åıĤæķ° ä¸į å®Įæķ´ " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠERR _ INTERNAL Ġ= Ġ" åĨħéĥ¨ éĶĻè¯¯ :" ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX PI RED _ SESSION Ġ= Ġ" ä¼ļ è¯Ŀ å·² å¤± æķĪ ï¼Į è¯· æ³¨ éĶĢ åĲİ éĩįæĸ° çĻ»å½ķ " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWARN _ NO _ RIGHT Ġ= Ġ" æĹł æĿĥ æī§è¡Į è¯¥ æĵįä½ľ : Ġ" ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCAN NOT _ LOGIN _ WEB Ġ= Ġ" æĬ ± æŃ ī ï¼Į æĤ¨ ä¸į åħ·æľī çĻ»å½ķ ç½ĳ é¡µ ç³»ç»Ł çļĦ æĿĥéĻĲ ï¼ģ " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġsuper Ġuser , Ġcan 't Ġbe Ġdeleted . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUSER _ ADMIN Ġ= Ġ" admin " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ VALUE Ġ= Ġ" value " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ USER _ ID Ġ= Ġ" userId " ĊĠĠĠ Ġ} Ċ }