Skip to content

Instantly share code, notes, and snippets.

@hygl
Created November 19, 2012 11:48
Show Gist options
  • Save hygl/4110258 to your computer and use it in GitHub Desktop.
Save hygl/4110258 to your computer and use it in GitHub Desktop.
Domain Classes
package projekt
class Hauptprojekt extends Projekt {
Integer prio
String vertraulichkeit
String verfuegbarkeit
String kommentarZumSchutzbedarf
String integritaet
static hasOne = [ressourcen:Ressourcen]
// Abschnitt 6
String politischeRahmenbedingungen
String strategischeRahmenbedingungen
String fachlicheRahmenbedingungen
String technischeRahmenbedingungen
// Abschnitt 7 Wirtschaftlichkeit
Double kapitalwert
Double kapitalwertRisiko = 0.0
Double kNWHaushaltswirksam = 0.0
Double kNWNichtHaushaltswirksam = 0.0
Double entwicklungsKostenNutzen = 0.0
Double betriebskKostenNutzen = 0.0
Double dringlichkeitsWert = 0.0
Date dringlichkeitTermin
Double qualitativStrategischerWert = 0.0
Double externeEffecteWert = 0.0
Integer personalFachseite
Integer personalITSeite
String wiBeTyp
String kommentarWiBe
String organisationseinheit
String organisationseinheitag
static transients = ['organisationseinheit','organisationseinheitag']
static hasMany = [teilprojekte: Teilprojekt]
static constraints = {
prio nullable:true, unique:true
ressourcen unique:true, nullable:true
verfuegbarkeit inList:["Normal","Hoch","Sehr hoch"], nullable:true
integritaet inList:["Normal","Hoch","Sehr hoch"], nullable:true
vertraulichkeit inList:["Normal","Hoch","Sehr hoch"], nullable:true
kommentarZumSchutzbedarf blank:true, nullable: true
politischeRahmenbedingungen nullable:true, maxSize: 1800
strategischeRahmenbedingungen nullable:true, maxSize: 1800
fachlicheRahmenbedingungen nullable:true, maxSize: 1800
technischeRahmenbedingungen nullable:true, maxSize: 1800
kapitalwert( nullable:true)
kapitalwertRisiko( nullable:true)
kNWHaushaltswirksam( nullable:true)
kNWNichtHaushaltswirksam( nullable:true)
entwicklungsKostenNutzen( nullable:true)
betriebskKostenNutzen( nullable:true)
dringlichkeitsWert( nullable:true)
dringlichkeitTermin nullable:true
qualitativStrategischerWert( nullable:true)
externeEffecteWert( nullable:true)
personalFachseite nullable:true
personalITSeite(nullable:true)
wiBeTyp nullable:true, inList:["0 - unbekannt","1 -WiBe-IT","2 - sonstige WiBe", "3 - keine WiBe"]
kommentarWiBe nullable:true, maxSize: 1800
organisationseinheit display:false, editable:false, nullable:true
organisationseinheitag display:false, editable:false, nullable:true
}
String toString(){if(projektnummer != null)
{return projektnummer +":"+ projektname}
projektname
}
}
package projekt
class Person {
String name
String vorname
String telefonnummer
String email
String organisationseinheit
static constraints = {
name(blank:false)
vorname(nullable:true)
telefonnummer(nullable:true)
email(email:true,nullable:true)
organisationseinheit(blank:false)
}
String toString() {
return vorname != null ?vorname+" "+name:name
};
}
package projekt
class Projekt {
String benutzer
Date datumDerMeldung
String projektname
String kurzbezeichung
String projektnummer
Person projektleiter
Person stellvertreter
Person auftraggeber
String projekttyp
String projektadresse
String kommentarZumProjekttyp
String projektstatus
Long projektfortschritt = 0L
String projektbeschreibung
String fachlicheAnforderungen
String technischeAnforderungen
String anmerkungenUndErlaeuterungen
Date geplanterProjektbeginn
Date geplantesProjektende
Date projektaufragIstGenemigt
Date anforderungenFertiggestellt
Date abnahmeIstErfolgt
Date systembetriebFreigegeben
String zugehoerigesProgramm
String aussenwirkungDesProjektes
Boolean clientServerAnwendung
Boolean webanwendung
Boolean anwendungFuerMobileClients
Boolean sonstiges
String sonstigesFreitext
Boolean typDerAnwendungNNE
Boolean querschnittsanwendung
Boolean fachanwendung
Boolean basisinfrastruktur
Boolean beratung
String projektgegenstand
String systemlebenszyklusausschnitt
// Abschnitt 5 Schnittstellen / Abhängigkeit
String fachlicheSchnittstellen
String technischeSchnittstellen
String betroffeneBehoerden
String benutzerEigeneBehoerde
String benutzerAndereBehoerde
String benutzerBuerger
String benutzerWirtschaft
String kommentarSchnittstellen
static constraints = {
// Block 1. Projektbezeichnung und Kontaktpersonen
benutzer editable: false, nullable: true
datumDerMeldung()
projektname blank:false, unique: true
kurzbezeichung nullable:true,maxSize:40
projektnummer unique: true, blank:false, nullable:true
projektleiter nullable:true
stellvertreter nullable:true, display:false
auftraggeber nullable:false
projekttyp unique:false, nullable:true, inList: ["Entwicklung Software","Einführung Standardsoftware","Migrationsvorhaben","IT-Betrieb","Machbarkeitsstudie","Fachprojekt mit IT-Beteiligung"]
projektadresse blank:true, email: true, nullable:true, display:false
kommentarZumProjekttyp nullable:true, blank:true
// Block 2. Projektbeschreibung
projektbeschreibung nullable:true, maxSize: 1800
zugehoerigesProgramm(nullable:true)
fachlicheAnforderungen nullable:true, maxSize: 1800
technischeAnforderungen nullable:true , maxSize: 1800
projektstatus blank:false,inList:["Vorstudie","im Plan","kritisch","gefährdet","eingestellt", "abgeschlossen"], nullable:true
projektfortschritt blank: false, min: 0L, nullable:false
anmerkungenUndErlaeuterungen nullable:true
geplanterProjektbeginn nullable:true
geplantesProjektende nullable:true
projektaufragIstGenemigt nullable:true
anforderungenFertiggestellt(nullable:true)
abnahmeIstErfolgt(nullable:true)
systembetriebFreigegeben(nullable:true)
aussenwirkungDesProjektes inList:["internes Projekt IT-Dienstleistungszentrum","BLE intern","Außenwirkung"], nullable:true
clientServerAnwendung(nullable:true)
webanwendung(nullable:true)
anwendungFuerMobileClients(nullable:true)
sonstiges(nullable:true)
sonstigesFreitext(nullable:true)
typDerAnwendungNNE(nullable:true)
querschnittsanwendung(nullable:true)
fachanwendung(nullable:true)
basisinfrastruktur(nullable:true)
beratung(nullable:true)
projektgegenstand inList:["SW-System","HW-System","Systemintegration","Eingebettetes System","Komplexes System"],nullable:true
systemlebenszyklusausschnitt inList:["Entwicklung","Pflege und Wartung","Weiterentwicklung und Migration","Sonstiges"],nullable:true
fachlicheSchnittstellen nullable:true, maxSize: 256
technischeSchnittstellen nullable:true, maxSize: 256
betroffeneBehoerden nullable:true, maxSize: 256
benutzerEigeneBehoerde nullable:true, maxSize: 256
benutzerAndereBehoerde nullable:true, maxSize: 256
benutzerBuerger nullable:true, maxSize: 256
benutzerWirtschaft nullable:true, maxSize: 256
kommentarSchnittstellen nullable:true, maxSize: 256
}
}
package projekt
class Ressourcen {
Double itGetraete2012 = 0.0
Double itGetraete2013 = 0.0
Double itGetraete2014 = 0.0
Double itGetraete2015 = 0.0
Double itGetraete2016 = 0.0
Double geschaeftsbedarf2012 = 0.0
Double geschaeftsbedarf2013 = 0.0
Double geschaeftsbedarf2014 = 0.0
Double geschaeftsbedarf2015 = 0.0
Double geschaeftsbedarf2016 = 0.0
Double miete2012 = 0.0
Double miete2013 = 0.0
Double miete2014 = 0.0
Double miete2015 = 0.0
Double miete2016 = 0.0
Double ausUndFortbildung2012 = 0.0
Double ausUndFortbildung2013 = 0.0
Double ausUndFortbildung2014 = 0.0
Double ausUndFortbildung2015 = 0.0
Double ausUndFortbildung2016 = 0.0
Double auftraege2012 = 0.0
Double auftraege2013 = 0.0
Double auftraege2014 = 0.0
Double auftraege2015 = 0.0
Double auftraege2016 = 0.0
Double internePT
Double externePT
Hauptprojekt hauptprojekt
String sonstigeResourcen
static constraints = {
itGetraete2012 nullable:true
itGetraete2013 nullable:true
itGetraete2014 nullable:true
itGetraete2015 nullable:true
itGetraete2016 nullable:true
geschaeftsbedarf2012 nullable:true
geschaeftsbedarf2013 nullable:true
geschaeftsbedarf2014 nullable:true
geschaeftsbedarf2015 nullable:true
geschaeftsbedarf2016 nullable:true
miete2012 nullable:true
miete2013 nullable:true
miete2014 nullable:true
miete2015 nullable:true
miete2016 nullable:true
ausUndFortbildung2012 nullable:true
ausUndFortbildung2013 nullable:true
ausUndFortbildung2014 nullable:true
ausUndFortbildung2015 nullable:true
ausUndFortbildung2016 nullable:true
auftraege2012 nullable:true
auftraege2013 nullable:true
auftraege2014 nullable:true
auftraege2015 nullable:true
auftraege2016 nullable:true
internePT()
externePT()
sonstigeResourcen nullable:true, blank: true
summe2012 display:false
summe2013 display:false
summe2014 display:false
summe2015 display:false
summe2016 display:false
gesamteHHWMittel display:false
}
static transients = ['summe2012',
'summe2013',
'summe2014',
'summe2015',
'summe2016','gesamteHHWMittel']
// static mapping = {
// summe2012 formular: 'IT_GERAETE2012 + GESCHAEFTSBEDARF2012 + MIETE2012 + AUS_UND_FORTBILDUNG2012 + AUFTRAEGE2012'
// summe2013 formular: 'IT_GERAETE2013 + GESCHAEFTSBEDARF2013 + MIETE2013 + AUS_UND_FORTBILDUNG2013 + AUFTRAEGE2013'
// summe2014 formular: 'IT_GERAETE2014 + GESCHAEFTSBEDARF2014 + MIETE2014 + AUS_UND_FORTBILDUNG2014 + AUFTRAEGE2014'
// summe2015 formular: 'IT_GERAETE2015 + GESCHAEFTSBEDARF2015 + MIETE2015 + AUS_UND_FORTBILDUNG2015 + AUFTRAEGE2015'
// summe2016 formular: 'IT_GERAETE2016 + GESCHAEFTSBEDARF2016 + MIETE2016 + AUS_UND_FORTBILDUNG2016 + AUFTRAEGE2016'
// }
Double getSumme2012() { (itGetraete2012 + geschaeftsbedarf2012 + miete2012 + ausUndFortbildung2012 + auftraege2012) }
Double getSumme2013() { (itGetraete2013 + geschaeftsbedarf2013 + miete2013 + ausUndFortbildung2013 + auftraege2013) }
Double getSumme2014() { (itGetraete2014 + geschaeftsbedarf2014 + miete2014 + ausUndFortbildung2014 + auftraege2014) }
Double getSumme2015() { (itGetraete2015 + geschaeftsbedarf2015 + miete2015 + ausUndFortbildung2015 + auftraege2015) }
Double getSumme2016() { (itGetraete2016 + geschaeftsbedarf2016 + miete2016 + ausUndFortbildung2016 + auftraege2016) }
Double getGesamteHHWMittel() { (getSumme2012() + getSumme2013()+ getSumme2014()+ getSumme2015()+ getSumme2016())}
String toString() { "Ressourcen für " + hauptprojekt.projektname }
}
package projekt
class Teilprojekt extends Projekt{
static belongsTo = [hauptprojekt: Hauptprojekt]
String toString(){
projektnummer?projektnummer+": ":""+ projektname
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment