/* Ċ Ġ* ĠTencent Ġis Ġplease d Ġto Ġsupport Ġthe Ġopen Ġsource Ġcommunity Ġby Ġmaking ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġavailable . Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠTH L ĠA 2 9 ĠLimited , Ġa ĠTencent Ġcompany . Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġis Ġlicensed Ġunder Ġthe ĠMIT Ġlicense . Ċ Ġ* Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠMIT ĠLicense Ġis Ġincluded Ġin Ġthis Ġfile . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTerms Ġof Ġthe ĠMIT ĠLicense : Ċ Ġ* Ġ------------------------------------------------ --- Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ċ Ġ* Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ċ Ġ* Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe Ċ Ġ* ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT Ċ Ġ* ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN Ċ Ġ* ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , Ċ Ġ* ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE Ċ Ġ* ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . tencent . devops . store . dao . common Ċ Ċ import Ġcom . tencent . devops . common . api . util . UUID Util Ċ import Ġcom . tencent . devops . model . store . tables . T Store Dept Rel Ċ import Ġcom . tencent . devops . model . store . tables . records . T Store Dept Rel Record Ċ import Ġcom . tencent . devops . store . pojo . common . Dept Info Ċ import Ġcom . tencent . devops . store . pojo . common . enums . Dept Status Enum Ċ import Ġorg . jooq . Condition Ċ import Ġorg . jooq . DSL Context Ċ import Ġorg . jooq . Result Ċ import Ġorg . springframework . stereotype . Repository Ċ import Ġjava . time . LocalDateTime Ċ Ċ @ Repository Ċ class ĠStore Dept Rel Dao Ġ{ ĊĊĠĠĠ Ġfun Ġget Dept Infos By Store Code ( dsl Context : ĠDSL Context , Ġstore Code : ĠString , Ġstore Type : ĠByte , Ġdept Status : ĠDe pt Status Enum ?, Ġdept IdList : ĠList < Int >? ): ĠResult < T Store Dept Rel Record >? Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( T Store Dept Rel . T _ STORE _ DE PT _ REL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconditions Ġ= Ġmutable ListOf < Condition >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconditions . add ( STORE _ CODE . eq ( store Code )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconditions . add ( STORE _ TYPE . eq ( store Type )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġdept Status ) Ġconditions . add ( STATUS . eq ( dept Status . status . to Byte ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġdept IdList ) Ġconditions . add ( DE PT _ ID .` in `( dept IdList )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġd sl Context . select From ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( conditions ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbatch List ( dsl Context : ĠDSL Context , Ġstore Code List : ĠList < String ? >, Ġstore Type : ĠByte ): ĠResult < T Store Dept Rel Record >? Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( T Store Dept Rel . T _ STORE _ DE PT _ REL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġd sl Context . select From ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( STORE _ CODE .` in `( store Code List )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and ( STATUS . eq ( Dept Status Enum . APPRO VED . status . to Byte ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and ( STORE _ TYPE . eq ( store Type )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbatch Add ( dsl Context : ĠDSL Context , ĠuserId : ĠString , Ġstore Code : ĠString , Ġdept InfoList : ĠList < Dept Info >, Ġstore Type : ĠByte ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( T Store Dept Rel . T _ STORE _ DE PT _ REL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadd Step Ġ= Ġdept InfoList . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context . insert Into ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSTORE _ CODE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDE PT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDE PT _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSTORE _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCRE ATOR , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMO DI FIER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUUID Util . generate (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . dept Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . dept Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Duplicate Key Update () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( STATUS , ĠDe pt Status Enum . AP PROV ING . status . to Byte ()) Ġ// Ġå¦Ĥæŀľ æ·»åĬł çļĦ æľº æŀĦ ä¹ĭåīį è¢« å®¡æł¸ æĭ Ĵ ç»Ŀ è¿ĩ ï¼Į åĪĻ ä¼ļ å°Ĩ ä¹ĭåīį æĭ Ĵ ç»Ŀ è¿ĩ çļĦ è®°å½ķ æĽ´æĸ° ä¸º å¾ħ å®¡æł¸ çĬ¶æĢģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( COMMENT , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( MODI FIER , ĠuserId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( UPDATE _ TIME , ĠLocalDateTime . now ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context . batch ( add Step ). execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbatch Update ( dsl Context : ĠDSL Context , ĠuserId : ĠString , Ġstore Code : ĠString , Ġdept IdList : ĠList < Int >, Ġstatus : ĠByte , Ġcomment : ĠString , Ġstore Type : ĠByte ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( T Store Dept Rel . T _ STORE _ DE PT _ REL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context . update ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( STATUS , Ġstatus ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( COMMENT , Ġcomment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( MODI FIER , ĠuserId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( UPDATE _ TIME , ĠLocalDateTime . now ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( STORE _ CODE . eq ( store Code )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and ( DE PT _ ID .` in `( dept IdList )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and ( STORE _ TYPE . eq ( store Type )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( dsl Context : ĠDSL Context , Ġid : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( T Store Dept Rel . T _ STORE _ DE PT _ REL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context . delete From ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( ID . eq ( id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbatch Delete ( dsl Context : ĠDSL Context , Ġstore Code : ĠString , Ġdept IdList : ĠList < Int >, Ġstore Type : ĠByte ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( T Store Dept Rel . T _ STORE _ DE PT _ REL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context . delete From ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( STORE _ CODE . eq ( store Code ). and ( DE PT _ ID .` in `( dept IdList )). and ( STORE _ TYPE . eq ( store Type ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete By Store Code ( dsl Context : ĠDSL Context , Ġstore Code : ĠString , Ġstore Type : ĠByte ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( T Store Dept Rel . T _ STORE _ DE PT _ REL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context . delete From ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( STORE _ CODE . eq ( store Code )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and ( STORE _ TYPE . eq ( store Type )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcount By Code And Dept Id ( dsl Context : ĠDSL Context , Ġstore Code : ĠString , Ġdept Id : ĠInt , Ġstore Type : ĠByte ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( T Store Dept Rel . T _ STORE _ DE PT _ REL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġd sl Context . select Count (). from ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( STORE _ CODE . eq ( store Code ). and ( STORE _ TYPE . eq ( store Type )). and ( DE PT _ ID . eq ( dept Id )). and ( STATUS .` in `( Dept Status Enum . AP PROV ING . status . to Byte (), ĠDe pt Status Enum . APPRO VED . status . to Byte ()))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch One ( 0 , ĠInt :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }