package Ġtop . z be boy . isy . service . grad uate . design Ċ Ċ import Ġorg . apache . commons . lang . math . Number Utils Ċ import Ġorg . jooq .* Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġorg . springframework . transaction . annotation . Propagation Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ import Ġorg . springframework . util . Object Utils Ċ import Ġorg . springframework . util . StringUtils Ċ import Ġtop . z be boy . isy . service . plugin . Data Tables Plugin Ċ import Ġtop . z be boy . isy . web . bean . grad uate . design . declare . Grad uation Design Declare Bean Ċ Ċ import Ġtop . z be boy . isy . domain . Tables .* Ċ import Ġtop . z be boy . isy . domain . tables . po jos . Grad uation Design Declare Ċ import Ġtop . z be boy . isy . domain . tables . records . Grad uation Design Declare Record Ċ import Ġtop . z be boy . isy . service . util . SQL Query Utils Ċ import Ġtop . z be boy . isy . web . util . Data Tables Utils Ċ import Ġjava . util . ArrayList Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġz be boy Ġ 2 0 1 8 - 0 1 - 2 6 Ġ. Ċ Ġ**/ Ċ @ Service (" grad uation Design Declare Service ") Ċ @ Transactional ( propagation Ġ= ĠPro pagation . SUPPORT S , ĠreadOnly Ġ= Ġtrue ) Ċ open Ġclass ĠGrad uation Design Declare ServiceImpl Ġ@ Autowired Ġconstructor ( dsl Context : ĠDSL Context ) Ġ: ĠData Tables Plugin < Grad uation Design Declare Bean >(), ĠGrad uation Design Declare Service Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcreate : ĠDSL Context Ġ= Ġd sl Context ĊĊĊĠĠĠ Ġoverride Ġfun ĠfindBy Grad uation Design Pres ub ject Id ( grad uation Design Pres ub ject Id : ĠString ): ĠGrad uation Design Declare Record Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcreate . select From ( GRAD UATION _ DE SIGN _ DECLARE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( GRAD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID . eq ( grad uation Design Pres ub ject Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch One () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindAll By Page ( dataTables Utils : ĠData Tables Utils < Grad uation Design Declare Bean >, Ġgrad uation Design Declare Bean : ĠGrad uation Design Declare Bean ): ĠList < Grad uation Design Declare Bean > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgrad uation Design Declare Be ens Ġ= ĠArrayList < Grad uation Design Declare Bean >() ĊĠĠĠĠĠĠĠ Ġval Ġrecords : ĠResult < Record > ĊĠĠĠĠĠĠĠ Ġvar Ġa Ġ= Ġsearch Condition ( dataTables Utils ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġother Condition ( a , Ġgrad uation Design Declare Bean ) ĊĠĠĠĠĠĠĠ Ġrecords Ġ= Ġif Ġ( Object Utils . isEmpty ( a )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselect Join Step Ġ= Ġcreate . select () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( GRAD UATION _ DE SIGN _ TE AC HER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ T UT OR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . eq ( GRAD UATION _ DE SIGN _ T UT OR . GRAD UATION _ DE SIGN _ TE AC HER _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ PRE SUBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( GRAD UATION _ DE SIGN _ PRE SUBJECT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ST UD ENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( ST UD ENT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( USERS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . USERNAME . eq ( USERS . USERNAME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ORG AN IZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . ORG AN IZE _ ID . eq ( ORG AN IZE . ORG AN IZE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( STA FF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . STA FF _ ID . eq ( STA FF . STA FF _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( AC ADE MIC _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( STA FF . AC ADE MIC _ TITLE _ ID . eq ( AC ADE MIC _ TITLE . AC ADE MIC _ TITLE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ DECLARE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID . eq ( GRAD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . SUBJECT _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . ORIGIN _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort Condition ( dataTables Utils , Ġnull , Ġselect Join Step , ĠData Tables Plugin . JOIN _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpagination ( dataTables Utils , Ġnull , Ġselect Join Step , ĠData Tables Plugin . JOIN _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Join Step . fetch () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselect Condition Step Ġ= Ġcreate . select () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( GRAD UATION _ DE SIGN _ TE AC HER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ T UT OR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . eq ( GRAD UATION _ DE SIGN _ T UT OR . GRAD UATION _ DE SIGN _ TE AC HER _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ PRE SUBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( GRAD UATION _ DE SIGN _ PRE SUBJECT . ST UD ENT _ ID ). and ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ RELEASE _ ID . eq ( grad uation Design Declare Bean . grad uation Design Release Id ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ST UD ENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( ST UD ENT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( USERS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . USERNAME . eq ( USERS . USERNAME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ORG AN IZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . ORG AN IZE _ ID . eq ( ORG AN IZE . ORG AN IZE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( STA FF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . STA FF _ ID . eq ( STA FF . STA FF _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( AC ADE MIC _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( STA FF . AC ADE MIC _ TITLE _ ID . eq ( AC ADE MIC _ TITLE . AC ADE MIC _ TITLE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ DECLARE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID . eq ( GRAD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . SUBJECT _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . ORIGIN _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( a ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort Condition ( dataTables Utils , Ġselect Condition Step , Ġnull , ĠData Tables Plugin . CONDITION _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpagination ( dataTables Utils , Ġselect Condition Step , Ġnull , ĠData Tables Plugin . CONDITION _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Condition Step . fetch () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuild Data ( records , Ġgrad uation Design Declare Be ens ) ĊĠĠĠĠĠĠĠ Ġreturn Ġgrad uation Design Declare Be ens ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcount All ( grad uation Design Declare Bean : ĠGrad uation Design Declare Bean ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcount : ĠRecord 1 < Int > ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġother Condition ( null , Ġgrad uation Design Declare Bean ) ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġif Ġ( Object Utils . isEmpty ( a )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate . select Count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( GRAD UATION _ DE SIGN _ TE AC HER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ T UT OR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . eq ( GRAD UATION _ DE SIGN _ T UT OR . GRAD UATION _ DE SIGN _ TE AC HER _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ PRE SUBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( GRAD UATION _ DE SIGN _ PRE SUBJECT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ST UD ENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( ST UD ENT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( USERS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . USERNAME . eq ( USERS . USERNAME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ORG AN IZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . ORG AN IZE _ ID . eq ( ORG AN IZE . ORG AN IZE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( STA FF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . STA FF _ ID . eq ( STA FF . STA FF _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( AC ADE MIC _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( STA FF . AC ADE MIC _ TITLE _ ID . eq ( AC ADE MIC _ TITLE . AC ADE MIC _ TITLE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ DECLARE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID . eq ( GRAD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . SUBJECT _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . ORIGIN _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch One () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate . select Count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( GRAD UATION _ DE SIGN _ TE AC HER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ T UT OR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . eq ( GRAD UATION _ DE SIGN _ T UT OR . GRAD UATION _ DE SIGN _ TE AC HER _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ PRE SUBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( GRAD UATION _ DE SIGN _ PRE SUBJECT . ST UD ENT _ ID ). and ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ RELEASE _ ID . eq ( grad uation Design Declare Bean . grad uation Design Release Id ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ST UD ENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( ST UD ENT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( USERS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . USERNAME . eq ( USERS . USERNAME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ORG AN IZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . ORG AN IZE _ ID . eq ( ORG AN IZE . ORG AN IZE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( STA FF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . STA FF _ ID . eq ( STA FF . STA FF _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( AC ADE MIC _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( STA FF . AC ADE MIC _ TITLE _ ID . eq ( AC ADE MIC _ TITLE . AC ADE MIC _ TITLE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ DECLARE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID . eq ( GRAD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . SUBJECT _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . ORIGIN _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( a ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch One () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcount . value 1 () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcount By Condition ( dataTables Utils : ĠData Tables Utils < Grad uation Design Declare Bean >, Ġgrad uation Design Declare Bean : ĠGrad uation Design Declare Bean ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcount : ĠRecord 1 < Int > ĊĠĠĠĠĠĠĠ Ġvar Ġa Ġ= Ġsearch Condition ( dataTables Utils ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġother Condition ( a , Ġgrad uation Design Declare Bean ) ĊĠĠĠĠĠĠĠ Ġcount Ġ= Ġif Ġ( Object Utils . isEmpty ( a )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselect Join Step Ġ= Ġcreate . select Count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( GRAD UATION _ DE SIGN _ TE AC HER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ T UT OR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . eq ( GRAD UATION _ DE SIGN _ T UT OR . GRAD UATION _ DE SIGN _ TE AC HER _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ PRE SUBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( GRAD UATION _ DE SIGN _ PRE SUBJECT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ST UD ENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( ST UD ENT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( USERS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . USERNAME . eq ( USERS . USERNAME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ORG AN IZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . ORG AN IZE _ ID . eq ( ORG AN IZE . ORG AN IZE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( STA FF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . STA FF _ ID . eq ( STA FF . STA FF _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( AC ADE MIC _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( STA FF . AC ADE MIC _ TITLE _ ID . eq ( AC ADE MIC _ TITLE . AC ADE MIC _ TITLE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ DECLARE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID . eq ( GRAD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . SUBJECT _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . ORIGIN _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Join Step . fetch One () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselect Condition Step Ġ= Ġcreate . select Count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( GRAD UATION _ DE SIGN _ TE AC HER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ T UT OR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . eq ( GRAD UATION _ DE SIGN _ T UT OR . GRAD UATION _ DE SIGN _ TE AC HER _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ PRE SUBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( GRAD UATION _ DE SIGN _ PRE SUBJECT . ST UD ENT _ ID ). and ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ RELEASE _ ID . eq ( grad uation Design Declare Bean . grad uation Design Release Id ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ST UD ENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( ST UD ENT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( USERS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . USERNAME . eq ( USERS . USERNAME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ORG AN IZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . ORG AN IZE _ ID . eq ( ORG AN IZE . ORG AN IZE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( STA FF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . STA FF _ ID . eq ( STA FF . STA FF _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( AC ADE MIC _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( STA FF . AC ADE MIC _ TITLE _ ID . eq ( AC ADE MIC _ TITLE . AC ADE MIC _ TITLE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ DECLARE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID . eq ( GRAD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . SUBJECT _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . ORIGIN _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( a ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Condition Step . fetch One () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcount . value 1 () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexport Data ( dataTables Utils : ĠData Tables Utils < Grad uation Design Declare Bean >, Ġgrad uation Design Declare Bean : ĠGrad uation Design Declare Bean ): ĠList < Grad uation Design Declare Bean > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgrad uation Design Declare Be ens Ġ= ĠArrayList < Grad uation Design Declare Bean >() ĊĠĠĠĠĠĠĠ Ġval Ġrecords : ĠResult < Record > ĊĠĠĠĠĠĠĠ Ġvar Ġa Ġ= Ġsearch Condition ( dataTables Utils ) ĊĠĠĠĠĠĠĠ Ġa Ġ= Ġother Condition ( a , Ġgrad uation Design Declare Bean ) ĊĠĠĠĠĠĠĠ Ġrecords Ġ= Ġif Ġ( Object Utils . isEmpty ( a )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselect Join Step Ġ= Ġcreate . select () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( GRAD UATION _ DE SIGN _ TE AC HER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ T UT OR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . eq ( GRAD UATION _ DE SIGN _ T UT OR . GRAD UATION _ DE SIGN _ TE AC HER _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ PRE SUBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( GRAD UATION _ DE SIGN _ PRE SUBJECT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ST UD ENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( ST UD ENT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( USERS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . USERNAME . eq ( USERS . USERNAME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ORG AN IZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . ORG AN IZE _ ID . eq ( ORG AN IZE . ORG AN IZE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( STA FF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . STA FF _ ID . eq ( STA FF . STA FF _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( AC ADE MIC _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( STA FF . AC ADE MIC _ TITLE _ ID . eq ( AC ADE MIC _ TITLE . AC ADE MIC _ TITLE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ DECLARE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID . eq ( GRAD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . SUBJECT _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . ORIGIN _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Join Step . fetch () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselect Condition Step Ġ= Ġcreate . select () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( GRAD UATION _ DE SIGN _ TE AC HER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ T UT OR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . eq ( GRAD UATION _ DE SIGN _ T UT OR . GRAD UATION _ DE SIGN _ TE AC HER _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ PRE SUBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( GRAD UATION _ DE SIGN _ PRE SUBJECT . ST UD ENT _ ID ). and ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ RELEASE _ ID . eq ( grad uation Design Declare Bean . grad uation Design Release Id ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ST UD ENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( ST UD ENT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( USERS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . USERNAME . eq ( USERS . USERNAME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( ORG AN IZE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( ST UD ENT . ORG AN IZE _ ID . eq ( ORG AN IZE . ORG AN IZE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( STA FF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . STA FF _ ID . eq ( STA FF . STA FF _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( AC ADE MIC _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( STA FF . AC ADE MIC _ TITLE _ ID . eq ( AC ADE MIC _ TITLE . AC ADE MIC _ TITLE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ DECLARE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID . eq ( GRAD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . SUBJECT _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ DECLARE . ORIGIN _ TYPE _ ID . eq ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( a ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselect Condition Step . fetch () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuild Data ( records , Ġgrad uation Design Declare Be ens ) ĊĠĠĠĠĠĠĠ Ġreturn Ġgrad uation Design Declare Be ens ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Data ( records : ĠResult < Record >, Ġgrad uation Design Declare Be ens : ĠMutable List < Grad uation Design Declare Bean >) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( r Ġin Ġrecords ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Grad uation Design Declare Bean Ġ= ĠGrad uation Design Declare Bean () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . subject TypeId Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . SUBJECT _ TYPE _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . subject TypeName Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . origin TypeId Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . ORIGIN _ TYPE _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . origin TypeName Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . isNew Subject Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . IS _ NEW _ SUBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . isNew Teacher Make Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . IS _ NEW _ TE AC HER _ MAKE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . isNew Subject Make Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . IS _ NEW _ SUBJECT _ MAKE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . is Old Subject Change Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . IS _ OLD _ SUBJECT _ CHANGE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . old Subject Uses Times Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . OLD _ SUBJECT _ USE S _ TIMES ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . plan Period Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . PLAN _ PERIOD ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . assistant Teacher Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . assistant Teacher A cademic Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER _ AC ADE MIC ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . guide Times Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . GUID E _ TIMES ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . guide Pe op les Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . GUID E _ PE OP LES ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . is Ok Apply Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ DECLARE . IS _ OK _ AP PLY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . grad uation Design Pres ub ject Id Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . staff Id Ġ= Ġr . getValue ( STA FF . STA FF _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . staff Name Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ TE AC HER . STA FF _ REAL _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . academic Title Name Ġ= Ġr . getValue ( AC ADE MIC _ TITLE . AC ADE MIC _ TITLE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . student Id Ġ= Ġr . getValue ( ST UD ENT . ST UD ENT _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . student Name Ġ= Ġr . getValue ( USERS . REAL _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . student Number Ġ= Ġr . getValue ( ST UD ENT . ST UD ENT _ NUMBER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . organ ize Name Ġ= Ġr . getValue ( ORG AN IZE . ORG AN IZE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . pres ub ject Title Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ PRE SUBJECT . PRE SUBJECT _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . public Level Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ PRE SUBJECT . PUBLIC _ LEVEL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Grad uation Design Declare Bean . grad uation Design Release Id Ġ= Ġr . getValue ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ RELEASE _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare Be ens . add ( temp Grad uation Design Declare Bean ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ( propagation Ġ= ĠPro pagation . REQUIRED , ĠreadOnly Ġ= Ġfalse ) ĊĠĠĠ Ġoverride Ġfun Ġsave OrUpdate ( grad uation Design Declare : ĠGrad uation Design Declare ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate . insert Into ( GRAD UATION _ DE SIGN _ DECLARE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . SUBJECT _ TYPE _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . ORIGIN _ TYPE _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ NEW _ SUBJECT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ NEW _ TE AC HER _ MAKE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ NEW _ SUBJECT _ MAKE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ OLD _ SUBJECT _ CHANGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . OLD _ SUBJECT _ USE S _ TIMES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . PLAN _ PERIOD , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER _ AC ADE MIC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER _ NUMBER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . GUID E _ TIMES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . GUID E _ PE OP LES , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ OK _ AP PLY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . subject TypeId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . origin TypeId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . isNew Subject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . isNew Teacher Make , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . isNew Subject Make , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . is Old Subject Change , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . old Subject Uses Times , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . plan Period , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . assistant Teacher , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . assistant Teacher A cademic , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . assistant Teacher Number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . guide Times , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . guide Pe op les , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . is Ok Apply , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . grad uation Design Pres ub ject Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Duplicate Key Update () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . SUBJECT _ TYPE _ ID , Ġgrad uation Design Declare . subject TypeId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . ORIGIN _ TYPE _ ID , Ġgrad uation Design Declare . origin TypeId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . IS _ NEW _ SUBJECT , Ġgrad uation Design Declare . isNew Subject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . IS _ NEW _ TE AC HER _ MAKE , Ġgrad uation Design Declare . isNew Teacher Make ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . IS _ NEW _ SUBJECT _ MAKE , Ġgrad uation Design Declare . isNew Subject Make ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . IS _ OLD _ SUBJECT _ CHANGE , Ġgrad uation Design Declare . is Old Subject Change ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . OLD _ SUBJECT _ USE S _ TIMES , Ġgrad uation Design Declare . old Subject Uses Times ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . PLAN _ PERIOD , Ġgrad uation Design Declare . plan Period ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER , Ġgrad uation Design Declare . assistant Teacher ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER _ AC ADE MIC , Ġgrad uation Design Declare . assistant Teacher A cademic ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER _ NUMBER , Ġgrad uation Design Declare . assistant Teacher Number ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . GUID E _ TIMES , Ġgrad uation Design Declare . guide Times ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . GUID E _ PE OP LES , Ġgrad uation Design Declare . guide Pe op les ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . IS _ OK _ AP PLY , Ġgrad uation Design Declare . is Ok Apply ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ( propagation Ġ= ĠPro pagation . REQUIRED , ĠreadOnly Ġ= Ġfalse ) ĊĠĠĠ Ġoverride Ġfun Ġsave OrUpdate State ( grad uation Design Declare : ĠGrad uation Design Declare ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate . insert Into ( GRAD UATION _ DE SIGN _ DECLARE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ OK _ AP PLY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . is Ok Apply , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrad uation Design Declare . grad uation Design Pres ub ject Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Duplicate Key Update () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ( GRAD UATION _ DE SIGN _ DECLARE . IS _ OK _ AP PLY , Ġgrad uation Design Declare . is Ok Apply ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindBy Staff Id Relation Ne Is Ok Apply ( staff Id : ĠInt , Ġgrad uation Design Release Id : ĠString ): ĠResult < Record 1 < String >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcreate . select ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from ( GRAD UATION _ DE SIGN _ TE AC HER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ T UT OR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . eq ( GRAD UATION _ DE SIGN _ T UT OR . GRAD UATION _ DE SIGN _ TE AC HER _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ( GRAD UATION _ DE SIGN _ PRE SUBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ T UT OR . ST UD ENT _ ID . eq ( GRAD UATION _ DE SIGN _ PRE SUBJECT . ST UD ENT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. leftJoin ( GRAD UATION _ DE SIGN _ DECLARE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on ( GRAD UATION _ DE SIGN _ PRE SUBJECT . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID . eq ( GRAD UATION _ DE SIGN _ DECLARE . GRAD UATION _ DE SIGN _ PRE SUBJECT _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( GRAD UATION _ DE SIGN _ TE AC HER . STA FF _ ID . eq ( staff Id ). and ( GRAD UATION _ DE SIGN _ DECLARE . IS _ OK _ AP PLY . ne ( 1 ). or ( GRAD UATION _ DE SIGN _ DECLARE . IS _ OK _ AP PLY . isNull )). and ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ RELEASE _ ID . eq ( grad uation Design Release Id ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ¶å®ĥ æĿ¡ä»¶ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġgrad uation Design Declare Bean Ġ æĿ¡ä»¶ ĊĠĠĠĠ Ġ* Ġ@ return Ġ æĿ¡ä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġother Condition ( a : ĠCondition ?, Ġgrad uation Design Declare Bean : ĠGrad uation Design Declare Bean ): ĠCondition ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtemp Con dt ion Ġ= Ġa ĊĠĠĠĠĠĠĠ Ġif Ġ(! Object Utils . isEmpty ( grad uation Design Declare Bean )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Object Utils . isEmpty ( grad uation Design Declare Bean . staff Id ) Ġ&& Ġgrad uation Design Declare Bean . staff Id Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Con dt ion Ġ= Ġif Ġ(! Object Utils . isEmpty ( temp Con dt ion )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Con dt ion !!. and ( GRAD UATION _ DE SIGN _ TE AC HER . STA FF _ ID . eq ( grad uation Design Declare Bean . staff Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ TE AC HER . STA FF _ ID . eq ( grad uation Design Declare Bean . staff Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . has Length ( grad uation Design Declare Bean . grad uation Design Release Id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Con dt ion Ġ= Ġif Ġ(! Object Utils . isEmpty ( temp Con dt ion )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Con dt ion !!. and ( GRAD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ RELEASE _ ID . eq ( grad uation Design Declare Bean . grad uation Design Release Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ RELEASE _ ID . eq ( grad uation Design Declare Bean . grad uation Design Release Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtemp Con dt ion ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæķ°æį® åħ¨å±Ģ æĲľç´¢ æĿ¡ä»¶ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdata Tables Utils Ġdat at ables å·¥åħ· ç±» ĊĠĠĠĠ Ġ* Ġ@ return Ġæ Ĳ ľç´¢ æĿ¡ä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġsearch Condition ( dataTables Utils : ĠData Tables Utils < Grad uation Design Declare Bean >): ĠCondition ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġa : ĠCondition ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġsearch Ġ= Ġdata Tables Utils . search ĊĠĠĠĠĠĠĠ Ġif Ġ(! Object Utils . isEmpty ( search )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpres ub ject Title Ġ= ĠStringUtils . trim Whitespace ( search !!. getString (" pres ub ject Title ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstudent Name Ġ= ĠStringUtils . trim Whitespace ( search . getString (" student Name ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstudent Number Ġ= ĠStringUtils . trim Whitespace ( search . getString (" student Number ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorgan ize Ġ= ĠStringUtils . trim Whitespace ( search . getString (" organ ize ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsubject Type Ġ= ĠStringUtils . trim Whitespace ( search . getString (" subject Type ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorigin Type Ġ= ĠStringUtils . trim Whitespace ( search . getString (" origin Type ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . has Length ( pres ub ject Title )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ= ĠGR AD UATION _ DE SIGN _ PRE SUBJECT . PRE SUBJECT _ TITLE . like ( SQL Query Utils . like All Param ( pres ub ject Title )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . has Length ( student Name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ= Ġif Ġ( Object Utils . isEmpty ( a )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUSER S . REAL _ NAME . like ( SQL Query Utils . like All Param ( student Name )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa !!. and ( USERS . REAL _ NAME . like ( SQL Query Utils . like All Param ( student Name ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . has Length ( student Number )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ= Ġif Ġ( Object Utils . isEmpty ( a )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠST UD ENT . ST UD ENT _ NUMBER . like ( SQL Query Utils . like All Param ( student Number )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa !!. and ( ST UD ENT . ST UD ENT _ NUMBER . like ( SQL Query Utils . like All Param ( student Number ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . has Length ( organ ize )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ= Ġif Ġ( Object Utils . isEmpty ( a )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOR GAN IZE . ORG AN IZE _ NAME . like ( SQL Query Utils . like All Param ( organ ize )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa !!. and ( ORG AN IZE . ORG AN IZE _ NAME . like ( SQL Query Utils . like All Param ( organ ize ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . has Length ( subject Type )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsubject TypeId Ġ= ĠNumber Utils . toInt ( subject Type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( subject TypeId Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ= Ġif Ġ( Object Utils . isEmpty ( a )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ ID . eq ( subject TypeId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa !!. and ( GRAD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ ID . eq ( subject TypeId )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . has Length ( origin Type )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorigin TypeId Ġ= ĠNumber Utils . toInt ( origin Type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( origin TypeId Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ= Ġif Ġ( Object Utils . isEmpty ( a )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGR AD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ ID . eq ( origin TypeId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa !!. and ( GRAD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ ID . eq ( origin TypeId )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġa ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæķ°æį® æİĴåºı ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdata Tables Utils ĠĠĠĠ Ġdat at ables å·¥åħ· ç±» ĊĠĠĠĠ Ġ* Ġ@ param Ġselect Condition Step Ġ æĿ¡ä»¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġsort Condition ( dataTables Utils : ĠData Tables Utils < Grad uation Design Declare Bean >, Ġselect Condition Step : ĠSelect Condition Step < Record > ?, Ġselect Join Step : ĠSelect Join Step < Record > ?, Ġtype : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġorder ColumnName Ġ= Ġdata Tables Utils . order ColumnName ĊĠĠĠĠĠĠĠ Ġval Ġorder Dir Ġ= Ġdata Tables Utils . order Dir ĊĠĠĠĠĠĠĠ Ġval Ġis Asc Ġ= Ġ" asc ". equals ( order Dir , Ġignore Case Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġvar Ġsort Field : ĠArray < Sort Field < *> ?> ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . has Length ( order ColumnName )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" pres ub ject _ title ". equals ( order ColumnName !! , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ PRE SUBJECT . PRE SUBJECT _ TITLE . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ PRE SUBJECT . PRE SUBJECT _ TITLE . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" subject _ type _ name ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ NAME . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ SUBJECT _ TYPE . SUBJECT _ TYPE _ NAME . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" origin _ type _ name ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ NAME . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ SUBJECT _ ORIGIN _ TYPE . ORIGIN _ TYPE _ NAME . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" is _ new _ subject ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ NEW _ SUBJECT . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ NEW _ SUBJECT . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" is _ new _ teacher _ make ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ NEW _ TE AC HER _ MAKE . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ NEW _ TE AC HER _ MAKE . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" is _ new _ subject _ make ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ NEW _ SUBJECT _ MAKE . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ NEW _ SUBJECT _ MAKE . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" is _ old _ subject _ change ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ OLD _ SUBJECT _ CHANGE . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ OLD _ SUBJECT _ CHANGE . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" old _ subject _ uses _ times ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . OLD _ SUBJECT _ USE S _ TIMES . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . OLD _ SUBJECT _ USE S _ TIMES . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" plan _ period ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . PLAN _ PERIOD . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . PLAN _ PERIOD . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" guide _ teacher ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠUSER S .` as ` (" T "). REAL _ NAME . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠUSER S .` as ` (" T "). REAL _ NAME . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" academic _ title _ name ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠA CADE MIC _ TITLE . AC ADE MIC _ TITLE _ NAME . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠA CADE MIC _ TITLE . AC ADE MIC _ TITLE _ NAME . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" assistant _ teacher ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" assistant _ teacher _ academic ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER _ AC ADE MIC . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . AS SIST ANT _ TE AC HER _ AC ADE MIC . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" guide _ times ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . GUID E _ TIMES . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . GUID E _ TIMES . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" guide _ pe op les ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . GUID E _ PE OP LES . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . GUID E _ PE OP LES . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" student _ number ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠST UD ENT . ST UD ENT _ NUMBER . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠST UD ENT . ST UD ENT _ NUMBER . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" student _ name ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠUSER S . REAL _ NAME . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠUSER S . REAL _ NAME . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" organ ize _ name ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠOR GAN IZE . ORG AN IZE _ NAME . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠOR GAN IZE . ORG AN IZE _ NAME . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" is _ ok _ apply ". equals ( order ColumnName , Ġignore Case Ġ= Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field Ġ= ĠarrayOf Null s ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Asc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ OK _ AP PLY . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . asc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 0 ] Ġ= ĠGR AD UATION _ DE SIGN _ DECLARE . IS _ OK _ AP PLY . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort Field [ 1 ] Ġ= ĠGR AD UATION _ DE SIGN _ TE AC HER . GRAD UATION _ DE SIGN _ TE AC HER _ ID . desc () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsort To Finish ( select Condition Step , Ġselect Join Step , Ġtype , Ġ* sort Field !! ) ĊĠĠĠ Ġ} Ċ }