source: trunk/grails-app/services/CreateDataService.groovy @ 426

Last change on this file since 426 was 420, checked in by gav, 15 years ago

Add 'unknown' supplier and manufacturer types to base data.

File size: 60.1 KB
RevLine 
[149]1/**
2* Provides a data service to create base and demo data.
[180]3* Beware that most, if not all, base data is referenced by "Id" throughout the program.
4* This allows changing the text of the 'name' property to something of the same meaning.
5* But be sure to maintain the correct Id during creation, indicated by #1, #2 etc.
[149]6*/
7class  CreateDataService {
8
9    boolean transactional = false
10
[291]11    def authService
[180]12    def taskService
[210]13    def dateUtilService
[237]14    def appConfigService
[251]15    def assignedGroupService
16    def assignedPersonService
[180]17
[149]18/*******************************************
19Start of Group methods.
20Generally use these methods to create data.
21*******************************************/
22
23    /**
[199]24    * Always call this at startup to ensure that we have admin access
25    * and that the system pseudo person is available.
[149]26    */
[199]27    def ensureSystemAndAdminAccess() {
[149]28        if(!Authority.findByAuthority("ROLE_AppAdmin") ) {
[199]29            log.warn "ROLE_AppAdmin not found, calling createAdminAuthority()."
[149]30            createAdminAuthority()
31        }
[199]32        if(!Person.findByloginName("system") ) {
33            log.warn "LoginName 'system' not found, calling createSystemPerson()."
34            createSystemPerson()
35        }
[149]36        if(!Person.findByloginName("admin") ) {
[199]37            log.warn "LoginName 'admin' not found, calling createAdminPerson()."
[149]38            createAdminPerson()
39        }
40    }
41
42    /**
43    * Create the base data required for the application to function.
44    */
45    def createBaseData() {
[237]46
47        if(appConfigService.exists("baseDataCreated")) {
48            log.error "Base data has already been created, will NOT recreate."
49            return false
50        }
51
[199]52        log.info "Creating base data..."
[237]53
[149]54        // Person and Utils
55        createBaseAuthorities()
56        createBasePersonGroups()
[265]57        createBaseDefinitions()
[149]58        createBaseUnitsOfMeasure()
59        createBasePeriods()
[397]60        createBaseSupplierTypes()
61        createBaseManufacturerTypes()
62        createBaseAddressTypes()
[402]63        createBaseContactTypes()
[237]64
[149]65        // Tasks
[180]66        createBaseTaskGroups()
[149]67        createBaseTaskStatus()
68        createBaseTaskPriorities()
[252]69        createBaseTaskBudgetStatus()
[149]70        createBaseTaskTypes()
[180]71        createBaseTaskModificationTypes()
[149]72        createBaseEntryTypes()
[237]73
[149]74        // Inventory
75        createBaseInventoryTypes()
[175]76        createBaseInventoryMovementTypes()
[237]77
[149]78        // Assets
[270]79        createBaseExtenededAttributeTypes()
80        createBaseMaintenancePolicies()
[149]81
[237]82        // Record that data has been created.
83        appConfigService.set("baseDataCreated")
[149]84    }
85
86    /**
87    * Create demo data for some example sites.
88    */
89    def createDemoData() {
[237]90
91        if(!appConfigService.exists("baseDataCreated")) {
92            log.error "Demo data cannot be created until base data has been created."
93            return false
94        }
95
96        if(appConfigService.exists("demoDataCreated")) {
97            log.error "Demo data has already been created, will NOT recreate."
98            return false
99        }
100
101        if(appConfigService.exists("demoDataCreationDisabled")) {
102            log.error "Demo data creation has been disabled, will NOT create."
103            return false
104        }
105
[199]106        log.info "Creating demo data..."
[237]107
[149]108        // Person and Utils
109        createDemoPersons()
110        createDemoSites()
[162]111        createDemoDepartments()
[175]112        createDemoSuppliers()
113        createDemoManufacturers()
[237]114
[149]115        // Tasks
116        createDemoTasks()
117        createDemoEntries()
[242]118        createDemoAssignedGroups()
[241]119        createDemoAssignedPersons()
[149]120        createDemoTaskRecurringSchedules()
[237]121
[149]122        // Inventory
123        createDemoInventoryStores()  /// @todo: Perhaps a 'createQuickStartData' method?
[175]124        createDemoInventoryLocations()
[149]125        createDemoInventoryGroups() /// @todo: Perhaps a 'createQuickStartData' method?
126        createDemoInventoryItems()
[237]127
[149]128        // Assets
129        createDemoLifePlan()
130        createDemoTaskProcedure()
131        createDemoMaintenanceActions()
[268]132        createDemoSections()
[276]133        createDemoAssetTree()
[149]134        createDemoAssetExtenedAttributes()
[237]135
136        // Record that data has been created.
137        appConfigService.set("demoDataCreated")
[149]138    }
139
140/******************
141Start of Person
142*******************/
143
144    def createAdminAuthority() {
145        def authInstance
146
[294]147        // Authority #1
[149]148        authInstance = new Authority(description:"Application Admin, not required for daily use! Grants full admin access to the application.",
149                                        authority:"ROLE_AppAdmin")
150        saveAndTest(authInstance)
151    }
152
153    def createBaseAuthorities() {
154
155        def authInstance
156
[294]157        // Authority #2
[296]158        authInstance = new Authority(description:"Business Manager, grants full management access.",
[149]159                                        authority:"ROLE_Manager")
160        saveAndTest(authInstance)
161
[294]162        // Authority #3
[149]163        authInstance = new Authority(description:"Application User, all application users need this base role to allow login.",
164                                        authority:"ROLE_AppUser")
165        saveAndTest(authInstance)
[296]166
167        // Authority #4
168        authInstance = new Authority(description:"Task Manager",
169                                        authority:"ROLE_TaskManager")
170        saveAndTest(authInstance)
171
172        // Authority #5
173        authInstance = new Authority(description:"Task User",
174                                        authority:"ROLE_TaskUser")
175        saveAndTest(authInstance)
176
177        // Authority #6
178        authInstance = new Authority(description:"Inventory Manager",
179                                        authority:"ROLE_InventoryManager")
180        saveAndTest(authInstance)
181
182        // Authority #7
183        authInstance = new Authority(description:"Inventory User",
[298]184                                        authority:"ROLE_InventoryUser")
[296]185        saveAndTest(authInstance)
186
187        // Authority #8
188        authInstance = new Authority(description:"Asset Manager",
189                                        authority:"ROLE_AssetManager")
190        saveAndTest(authInstance)
191
192        // Authority #9
193        authInstance = new Authority(description:"Asset User",
194                                        authority:"ROLE_AssetUser")
195        saveAndTest(authInstance)
[149]196    }
197
198    void createBasePersonGroups() {
199        //TypeOfPersonGroup
200        def personGroupTypeInstance
[164]201            personGroupTypeInstance = new PersonGroupType(name:"Team")
[149]202        saveAndTest(personGroupTypeInstance)
203            personGroupTypeInstance = new PersonGroupType(name:"Contractor")
204        saveAndTest(personGroupTypeInstance)
205            personGroupTypeInstance = new PersonGroupType(name:"ProjectTeam")
206        saveAndTest(personGroupTypeInstance)
207
208        //PersonGroup
209        def personGroupInstance
[164]210            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
[149]211                            name:"Electrical")
212        saveAndTest(personGroupInstance)
[164]213            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
[149]214                            name:"Mechanical")
215        saveAndTest(personGroupInstance)
[164]216            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
[149]217                            name:"Production")
218        saveAndTest(personGroupInstance)
219            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(2),
220                            name:"Kewl AirCon Guys")
221        saveAndTest(personGroupInstance)
222            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(3),
223                            name:"gnuMims")
224        saveAndTest(personGroupInstance)
225    }
226
[199]227    def createSystemPerson() {
228        //Person
229        def passClearText = "pass"
[291]230        def passwordEncoded = authService.encodePassword(passClearText)
[199]231        def personInstance
232
233        //Person #1
234        personInstance = new Person(loginName:"system",
235                                    firstName:"gnuMims",
236                                    lastName:"System",
237                                    description:'''This is a pseudo person that the application uses to insert data. DO NOT
238                                                        assign login authorities or change the details of this person.''',
239                                    pass:passClearText,
[399]240                                    password:passwordEncoded)
[199]241        saveAndTest(personInstance)
242    }
243
[149]244    def createAdminPerson() {
245        //Person
246        def passClearText = "pass"
[291]247        def passwordEncoded = authService.encodePassword(passClearText)
[149]248        def personInstance
249
[199]250        //Person #2
[149]251        personInstance = new Person(loginName:"admin",
252                                    firstName:"Admin",
253                                    lastName:"Powers",
[199]254                                    description:'''Every time the application starts it ensures that the 'admin' login name is available.
255                                                        DO update the password and other details but keep the login name as 'admin'. ''',
[149]256                                    pass:passClearText,
[399]257                                    password:passwordEncoded)
[149]258        saveAndTest(personInstance)
259        personInstance.addToAuthorities(Authority.get(1))
260    }
261
262    def createBasePersons() {
[199]263    }
264
265    def createDemoPersons() {
[149]266        //Person
267        def passClearText = "pass"
[291]268        def passwordEncoded = authService.encodePassword(passClearText)
[149]269        def personInstance
270
[199]271        //Person #1 is system.
272        //Person #2 is admin.
[149]273
[199]274        //Person #3
[149]275        personInstance = new Person(loginName:"manager",
276                                    firstName:"Demo",
277                                    lastName:"Manager",
278                                    pass:passClearText,
[399]279                                    password:passwordEncoded)
[149]280        saveAndTest(personInstance)
281        personInstance.addToAuthorities(Authority.get(2))
282        personInstance.addToAuthorities(Authority.get(3))
[164]283        personInstance.addToPersonGroups(PersonGroup.get(5))
[149]284
[199]285        //Person #4
[149]286        personInstance = new Person(loginName:"user",
287                                    firstName:"Demo",
288                                    lastName:"User",
289                                    pass:passClearText,
[399]290                                    password:passwordEncoded)
[149]291        saveAndTest(personInstance)
292        personInstance.addToAuthorities(Authority.get(3))
[296]293        personInstance.addToAuthorities(Authority.get(5))
294        personInstance.addToAuthorities(Authority.get(7))
295        personInstance.addToAuthorities(Authority.get(9))
[164]296        personInstance.addToPersonGroups(PersonGroup.get(1))
[149]297
[199]298        //Person #5
[149]299        personInstance = new Person(loginName:"craig",
300                                    firstName:"Craig",
301                                    lastName:"SuperSparky",
302                                    pass:passClearText,
[399]303                                    password:passwordEncoded)
[149]304        saveAndTest(personInstance)
305        personInstance.addToAuthorities(Authority.get(3))
[296]306        personInstance.addToAuthorities(Authority.get(5))
307        personInstance.addToAuthorities(Authority.get(7))
308        personInstance.addToAuthorities(Authority.get(9))
[164]309        personInstance.addToPersonGroups(PersonGroup.get(1))
[149]310
[199]311        //Person #6
[149]312        personInstance = new Person(loginName:"john",
313                                    firstName:"John",
314                                    lastName:"SuperFitter",
315                                    pass:passClearText,
[399]316                                    password:passwordEncoded)
[149]317        saveAndTest(personInstance)
318        personInstance.addToAuthorities(Authority.get(3))
[296]319        personInstance.addToAuthorities(Authority.get(5))
320        personInstance.addToAuthorities(Authority.get(7))
321        personInstance.addToAuthorities(Authority.get(9))
[164]322        personInstance.addToPersonGroups(PersonGroup.get(2))
[149]323
[199]324        //Person #7
[149]325        personInstance = new Person(loginName:"mann",
326                                    firstName:"Production",
327                                    lastName:"Mann",
328                                    pass:passClearText,
[399]329                                    password:passwordEncoded)
[149]330        saveAndTest(personInstance)
331        personInstance.addToAuthorities(Authority.get(3))
[296]332        personInstance.addToAuthorities(Authority.get(5))
[164]333        personInstance.addToPersonGroups(PersonGroup.get(3))
[296]334
335        //Person #7
336        personInstance = new Person(loginName:"testmanager",
337                                    firstName:"Test",
338                                    lastName:"Manager",
339                                    pass:passClearText,
[399]340                                    password:passwordEncoded)
[296]341        saveAndTest(personInstance)
342        personInstance.addToAuthorities(Authority.get(3))
343        personInstance.addToAuthorities(Authority.get(4))
344        personInstance.addToAuthorities(Authority.get(6))
345        personInstance.addToAuthorities(Authority.get(8))
346        personInstance.addToPersonGroups(PersonGroup.get(3))
[149]347    }
348
349/***********************
350START OF UTILITIES
351***********************/
352
[265]353    //These can redefined by the site at deployment time.
[266]354    /// @todo: build an admin view so that only the value (definition) can be changed.
[265]355    def createBaseDefinitions() {
356        appConfigService.set("Department Definition", "A department as recongised by accounting.")
[393]357        appConfigService.set("Site Definition", "The plant, work or production site.")
358        appConfigService.set("Section Definition", "A logical grouping of assets, which may be an area, system or process \
359                                            as determined by design.")
360        appConfigService.set("Asset Definition",
361                                            "The complete asset as it is known on the site. \
362                                            Often purchased as a whole with the primary purpose of returning value by performing a function. \
363                                            An asset is made up of 1 or more sub assets and performs a complete function as specified by the designer.")
364        appConfigService.set("Asset Sub Item 1 Name",
365                                            "Sub Asset")
366        appConfigService.set("Asset Sub Item 1 Definition",
367                                            "A machine that performs part of a complete asset's function and often has a model number.")
368        appConfigService.set("Asset Sub Item 2 Name",
369                                            "Functional Assembly")
370        appConfigService.set("Asset Sub Item 2 Definition",
371                                            "Functional Assemblies are taken from the designer's functional list for the sub asset and are made up of sub \
372                                            assemblies that together perform that function.")
373        appConfigService.set("Asset Sub Item 3 Name",
374                                            "Sub Assembly Group")
375        appConfigService.set("Asset Sub Item 3 Definition",
376                                            "Group or type of part.")
377        appConfigService.set("Asset Sub Item 4 Name",
378                                            "Component Item")
379        appConfigService.set("Asset Sub Item 4 Definition",
380                                            "The smallest part that would be analysed for failure.")
[265]381    }
382
[149]383    def createDemoSites() {
384        //Site
385        def siteInstance
386
[321]387        siteInstance = new Site(name: "CSM",
[314]388                                                    description: "Creek Side Mill")
[149]389        saveAndTest(siteInstance)
390
[314]391        siteInstance = new Site(name: "Jasper Street Depot",
392                                                    description: "Storage depot on Jasper Street.")
[149]393        saveAndTest(siteInstance)
[162]394
[314]395        siteInstance = new Site(name: "River Press",
396                                                    description: "Printing press site")
[162]397        saveAndTest(siteInstance)
[149]398    }
399
[162]400    def createDemoDepartments() {
401
402        //Department
403        def departmentInstance
404
405        //Department #1
406        departmentInstance = new Department(name: "Print Centre",
[314]407                                                                                description: "Printing Department",
408                                                                                site: Site.get(1))
[162]409        saveAndTest(departmentInstance)
410
411        //Department #2
[321]412        departmentInstance = new Department(name: "Pulp Mill",
413                                                                                description: "Business Department",
[314]414                                                                                site: Site.get(2))
[162]415        saveAndTest(departmentInstance)
416    }
417
[149]418    def createBaseUnitsOfMeasure() {
419
420        //UnitOfMeasure
421        def unitOfMeasureInstance
422
423        //UnitOfMeasure #1
424        unitOfMeasureInstance = new UnitOfMeasure(name: "each")
425        saveAndTest(unitOfMeasureInstance)
426
427        //UnitOfMeasure #2
428        unitOfMeasureInstance = new UnitOfMeasure(name: "meter(s)")
429        saveAndTest(unitOfMeasureInstance)
430
431        //UnitOfMeasure #3
432        unitOfMeasureInstance = new UnitOfMeasure(name: "box(es)")
433        saveAndTest(unitOfMeasureInstance)
434
435        //UnitOfMeasure #4
436        unitOfMeasureInstance = new UnitOfMeasure(name: "litre(s)")
437        saveAndTest(unitOfMeasureInstance)
438
439        //UnitOfMeasure #5
440        unitOfMeasureInstance = new UnitOfMeasure(name: "kilogram(s)")
441        saveAndTest(unitOfMeasureInstance)
442    }
443
444    def createBasePeriods() {
445
446        //Period
447        def periodInstance
448
449        //Period #1
450        periodInstance = new Period(period: "Day(s)")
451        saveAndTest(periodInstance)
452
453        //Period #2
454        periodInstance = new Period(period: "Week(s)")
455        saveAndTest(periodInstance)
456
457        //Period #3
458        periodInstance = new Period(period: "Month(s)")
459        saveAndTest(periodInstance)
460
461        //Period #4
462        periodInstance = new Period(period: "Year(s)")
463        saveAndTest(periodInstance)
464    }
465
[397]466    def createBaseSupplierTypes() {
[175]467
468        // SupplierType
469        def supplierTypeInstance
470
471        // SupplierType #1
[420]472        supplierTypeInstance = new SupplierType(name: "Unknown",
473                                                                    description: "Unknown supplier type")
474        saveAndTest(supplierTypeInstance)
475
476        // SupplierType #2
[175]477        supplierTypeInstance = new SupplierType(name: "OEM",
478                                                                    description: "Original equipment supplier")
479        saveAndTest(supplierTypeInstance)
480
[420]481        // SupplierType #3
[175]482        supplierTypeInstance = new SupplierType(name: "Local",
483                                                                    description: "Local supplier")
484        saveAndTest(supplierTypeInstance)
485    }
486
[397]487    def createBaseManufacturerTypes() {
[175]488
489        // ManufacturerType
490        def manufacturerTypeInstance
491
492        // ManufacturerType #1
[420]493        manufacturerTypeInstance = new ManufacturerType(name: "Unknown",
494                                                                        description: "Unknown manufacturer type")
495        saveAndTest(manufacturerTypeInstance)
496
497        // ManufacturerType #2
[175]498        manufacturerTypeInstance = new ManufacturerType(name: "OEM",
499                                                                        description: "Original equipment manufacturer")
500        saveAndTest(manufacturerTypeInstance)
501
[420]502        // ManufacturerType #3
[175]503        manufacturerTypeInstance = new ManufacturerType(name: "Alternate",
504                                                                        description: "Not original equipment manufacturer")
505        saveAndTest(manufacturerTypeInstance)
506
507    }
508
[397]509    def createBaseAddressTypes() {
510
511        // AddressType
512        def addressTypeInstance
513
514        // AddressType #1
515        addressTypeInstance = new AddressType(name: "Postal",
516                                                                                description: "A postal address.")
517        saveAndTest(addressTypeInstance)
518
519        // AddressType #2
520        addressTypeInstance = new AddressType(name: "Physical",
521                                                                                description: "A physical address.")
522        saveAndTest(addressTypeInstance)
523
524        // AddressType #3
525        addressTypeInstance = new AddressType(name: "Postal & Physical",
526                                                                                description: "An address that is both the postal and physical address.")
527        saveAndTest(addressTypeInstance)
528
529        // AddressType #4
530        addressTypeInstance = new AddressType(name: "Invoice",
531                                                                                description: "An address to send invoices to.")
532        saveAndTest(addressTypeInstance)
533
534        // AddressType #5
535        addressTypeInstance = new AddressType(name: "Delivery",
536                                                                                description: "An address to send deliveries to.")
537        saveAndTest(addressTypeInstance)
538    }
539
[402]540    def createBaseContactTypes() {
541
542        // ContactType
543        def contactTypeInstance
544
545        // ContactType #1
546        contactTypeInstance = new ContactType(name: "Email",
547                                                                                description: "Email address.")
548        saveAndTest(contactTypeInstance)
549
550        // ContactType #2
551        contactTypeInstance = new ContactType(name: "Alternate Email",
552                                                                                description: "Alternate email address.")
553        saveAndTest(contactTypeInstance)
554
555        // ContactType #3
556        contactTypeInstance = new ContactType(name: "Mobile",
557                                                                                description: "Modile phone number.")
558        saveAndTest(contactTypeInstance)
559
560        // ContactType #4
561        contactTypeInstance = new ContactType(name: "Work Phone",
562                                                                                description: "Work phone number.")
563        saveAndTest(contactTypeInstance)
564
565        // ContactType #5
566        contactTypeInstance = new ContactType(name: "Home Phone",
567                                                                                description: "Home phone number.")
568        saveAndTest(contactTypeInstance)
569
570        // ContactType #6
571        contactTypeInstance = new ContactType(name: "Work Fax",
572                                                                                description: "Work fax number.")
573        saveAndTest(contactTypeInstance)
574
575        // ContactType #7
576        contactTypeInstance = new ContactType(name: "Home Fax",
577                                                                                description: "Home fax number.")
578        saveAndTest(contactTypeInstance)
579
580        // ContactType #8
581        contactTypeInstance = new ContactType(name: "Web Site",
582                                                                                description: "Web site address.")
583        saveAndTest(contactTypeInstance)
584
585        // ContactType #9
586        contactTypeInstance = new ContactType(name: "Person",
587                                                                                description: "Contact person.")
588        saveAndTest(contactTypeInstance)
589    }
590
[175]591    def createDemoSuppliers() {
592
593        // Supplier
594        def supplierInstance
595
596        // Supplier #1
597        supplierInstance = new Supplier(name: "OEM Distributors",
[420]598                                                                        supplierType: SupplierType.get(2))
[175]599        saveAndTest(supplierInstance)
600
601        // Supplier #2
602        supplierInstance = new Supplier(name: "Mex Holdings",
[420]603                                                                        supplierType: SupplierType.get(3))
[175]604        saveAndTest(supplierInstance)
605    }
606
607    def createDemoManufacturers() {
608
609        // Manufacturer
610        def manufacturerInstance
611
612        // Manufacturer #1
613        manufacturerInstance = new Manufacturer(name: "OEM Manufacturer",
[420]614                                                                        manufacturerType: ManufacturerType.get(2))
[175]615        saveAndTest(manufacturerInstance)
616
617        // Manufacturer #2
618        manufacturerInstance = new Manufacturer(name: "Laser Cutting Services Pty",
[420]619                                                                        manufacturerType: ManufacturerType.get(3))
[175]620        saveAndTest(manufacturerInstance)
621    }
622
[149]623/*********************
624START OF TASK
625*********************/
626
[180]627    def createBaseTaskGroups() {
[149]628        //TaskGroup
629        def taskGroupInstance
630
[258]631        //TaskGroup #1
[149]632        taskGroupInstance = new TaskGroup(name:"Engineering Activites",
633                                                                            description:"Engineering daily activities")
634        saveAndTest(taskGroupInstance)
635
[258]636        //TaskGroup #2
[149]637        taskGroupInstance = new TaskGroup(name:"Production Activites",
638                                                                            description:"Production daily activities")
639        saveAndTest(taskGroupInstance)
640
[258]641        //TaskGroup #3
[149]642        taskGroupInstance = new TaskGroup(name:"New Projects",
643                                                                            description:" ")
644        saveAndTest(taskGroupInstance)
645    }
646
647    def createBaseTaskStatus() {
648
649        //TaskStatus
650        def taskStatusInstance
651
[181]652        taskStatusInstance = new TaskStatus(name:"Not Started") // #1
[149]653        saveAndTest(taskStatusInstance)
654
[181]655        taskStatusInstance = new TaskStatus(name:"In Progress") // #2
[149]656        saveAndTest(taskStatusInstance)
657
[222]658        taskStatusInstance = new TaskStatus(name:"Complete") // #3
[149]659        saveAndTest(taskStatusInstance)
660    }
661
662    def createBaseTaskPriorities() {
663
664        //TaskPriority
665        def taskPriorityInstance
666
[199]667        taskPriorityInstance = new TaskPriority(name:"Normal") // #1
[149]668        saveAndTest(taskPriorityInstance)
669
[199]670        taskPriorityInstance = new TaskPriority(name:"Low") // #2
[149]671        saveAndTest(taskPriorityInstance)
672
[199]673        taskPriorityInstance = new TaskPriority(name:"High") // #3
[149]674        saveAndTest(taskPriorityInstance)
675
[199]676        taskPriorityInstance = new TaskPriority(name:"Immediate") // #4
[149]677        saveAndTest(taskPriorityInstance)
678    }
679
[252]680    def createBaseTaskBudgetStatus() {
681
682        //TaskBudgetStatus
683        def taskBudgetStatusInstance
684
685        taskBudgetStatusInstance = new TaskBudgetStatus(name:"Unplanned") // #1
686        saveAndTest(taskBudgetStatusInstance)
687
688        taskBudgetStatusInstance = new TaskBudgetStatus(name:"Planned") // #2
689        saveAndTest(taskBudgetStatusInstance)
690    }
691
[149]692    def createBaseTaskTypes() {
693
694        //TaskType
695        def taskTypeInstance
696
[418]697        taskTypeInstance = new TaskType(name:"Immediate Callout") // #1
[149]698        saveAndTest(taskTypeInstance)
699
[418]700        taskTypeInstance = new TaskType(name:"Unscheduled Breakin") // #2
[149]701        saveAndTest(taskTypeInstance)
702
[418]703        taskTypeInstance = new TaskType(name:"Scheduled") // #3
[149]704        saveAndTest(taskTypeInstance)
705
[418]706        taskTypeInstance = new TaskType(name:"Preventative Maintenance") // #4
[149]707        saveAndTest(taskTypeInstance)
708
[418]709        taskTypeInstance = new TaskType(name:"Predictive Maintenance") // #5
[149]710        saveAndTest(taskTypeInstance)
[418]711
712        taskTypeInstance = new TaskType(name:"Project") // #6
713        saveAndTest(taskTypeInstance)
[149]714    }
715
[180]716    def createBaseTaskModificationTypes() {
717
718        //ModificationType
719        def taskModificationTypeInstance
720        taskModificationTypeInstance = new TaskModificationType(name:"Created").save()  // #1
721        taskModificationTypeInstance = new TaskModificationType(name:"Started").save()  // #2
722        taskModificationTypeInstance = new TaskModificationType(name:"Modified").save()  // #3
723        taskModificationTypeInstance = new TaskModificationType(name:"Completed").save()  // #4
724        taskModificationTypeInstance = new TaskModificationType(name:"Reopened").save()  // #5
725        taskModificationTypeInstance = new TaskModificationType(name:"Trashed").save()  // #6
726        taskModificationTypeInstance = new TaskModificationType(name:"Restored").save()  // #7
727        taskModificationTypeInstance = new TaskModificationType(name:"Approved").save()  // #8
728        taskModificationTypeInstance = new TaskModificationType(name:"Renege approval").save()  // #9
[251]729        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Assigned Groups)").save()  // #10
730        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Assigned Persons)").save()  // #11
[418]731        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Flagged for attention)").save()  // #12
732        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Attention flag cleared)").save()  // #13
[180]733    }
734
[149]735    def createDemoTasks() {
736
[180]737        def taskResult
738        def p = [:]
[149]739
740        //Task #1
[180]741        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
742                taskPriority:TaskPriority.get(2),
743                taskType:TaskType.get(1),
744                leadPerson:Person.get(2),
[418]745                description:"Level sensor not working",
[180]746                comment:"Has been noted as problematic, try recalibrating.",
[210]747                targetStartDate: dateUtilService.today]
[149]748
[394]749        taskResult = taskService.save(p)
[180]750
[149]751        //Task #2
[180]752        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
[149]753                taskPriority:TaskPriority.get(2),
[418]754                taskType:TaskType.get(3),
[149]755                leadPerson:Person.get(5),
756                description:"Some follow-up work",
757                comment:"Some help required",
[210]758                targetStartDate: dateUtilService.tomorrow,
[180]759                parentTask: Task.get(1)]
[149]760
[394]761        taskResult = taskService.save(p)
[180]762
[149]763        //Task #3
[180]764        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
[149]765                taskPriority:TaskPriority.get(2),
[418]766                taskType:TaskType.get(3),
[149]767                leadPerson:Person.get(5),
[418]768                description:"A Sub Task can be created from the 'Sub Task' tab.",
[149]769                comment:"Some help required",
[210]770                targetStartDate: dateUtilService.yesterday,
[180]771                parentTask: Task.get(1)]
[149]772
[394]773        taskResult = taskService.save(p)
[180]774
[149]775        //Task #4
[180]776        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
[149]777                 taskPriority:TaskPriority.get(2),
[418]778                 taskType:TaskType.get(2),
[149]779                 leadPerson:Person.get(4),
[418]780                 description:"Please replace sensor at next available opportunity.",
781                 comment:"Nothing else has worked. So we now require the part to be replaced.",
[210]782                targetStartDate: dateUtilService.oneWeekFromNow,
[180]783                parentTask: Task.get(1)]
[149]784
[394]785        taskResult = taskService.save(p)
[180]786
[149]787        //Task #5
[180]788        p = [taskGroup:TaskGroup.findByName("Production Activites"),
[149]789                 taskPriority:TaskPriority.get(2),
[418]790                 taskType:TaskType.get(3),
[149]791                 leadPerson:Person.get(6),
[418]792                 description:"Production Task",
793                 comment:"Production task for specific production run or shift",
[210]794                targetStartDate: dateUtilService.today - 6]
[149]795
[394]796        taskResult = taskService.save(p)
[180]797
[149]798        //Task #6
[199]799        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
[418]800                 taskPriority:TaskPriority.get(4),
801                 taskType:TaskType.get(3),
[199]802                 leadPerson:Person.get(4),
[418]803                 description:"This is a recurring preventative maintenance task.",
[199]804                 comment:"If there is a parent task specified then this is a generated sub task, if there is a recurring schedule specified then this is a parent task.",
[210]805                targetStartDate: dateUtilService.today]
[180]806
[394]807        taskResult = taskService.save(p)
[149]808    }
809
810    def createBaseEntryTypes() {
811
812        //EntryType
813        def entryTypeInstance
814
[190]815        entryTypeInstance = new EntryType(name:"Fault") // #1
[149]816        saveAndTest(entryTypeInstance)
817
[418]818        entryTypeInstance = new EntryType(name:"Cause") // #2
[149]819        saveAndTest(entryTypeInstance)
820
[418]821        entryTypeInstance = new EntryType(name:"Work Done") // #3
[149]822        saveAndTest(entryTypeInstance)
823
[418]824        entryTypeInstance = new EntryType(name:"Production Note") // #4
[149]825        saveAndTest(entryTypeInstance)
[418]826
827        entryTypeInstance = new EntryType(name:"Work Request") // #5
828        saveAndTest(entryTypeInstance)
[149]829    }
830
831    def createDemoEntries() {
832
[190]833        def entryResult
834        def p = [:]
[149]835
836        //Entry #1
[190]837        p = [task: Task.get(1),
838                entryType: EntryType.get(1),
839                comment: "This level sensor is causing us trouble.",
840                durationMinute: 20]
[149]841
[394]842        entryResult = taskService.saveEntry(p)
[190]843
[149]844        //Entry #2
[190]845        p = [task: Task.get(1),
[418]846                entryType: EntryType.get(3),
[190]847                comment: "Cleaned sensor, see how it goes.",
848                durationMinute: 30]
[149]849
[394]850        entryResult = taskService.saveEntry(p)
[190]851
[149]852        //Entry #3
[190]853        p = [task: Task.get(1),
[418]854                entryType: EntryType.get(3),
[190]855                comment: "Checked up on it later and sensor is dropping out intermittently, created sub task to replace sensor.",
856                durationMinute: 20]
857
[394]858        entryResult = taskService.saveEntry(p)
[149]859    }
860
[242]861    def createDemoAssignedGroups() {
862
[251]863        def result
864        def p = [:]
[242]865
866        //AssignedGroup #1
[251]867        p = [personGroup: PersonGroup.get(1),
868                task: Task.get(1),
869                estimatedHour: 2,
870                estimatedMinute: 30]
871        result = assignedGroupService.save(p)
[242]872
873        //AssignedGroup #2
[251]874        p = [personGroup: PersonGroup.get(2),
875                task: Task.get(1),
876                estimatedHour: 1,
877                estimatedMinute: 0]
878        result = assignedGroupService.save(p)
[242]879    }
880
[241]881    def createDemoAssignedPersons() {
[149]882
[251]883        def result
884        def p = [:]
[149]885
[241]886        //AssignedPerson #1
[251]887        p = [person: Person.get(4),
888                task: Task.get(1),
889                estimatedHour: 1,
890                estimatedMinute: 20]
891        result = assignedPersonService.save(p)
[149]892
[241]893        //AssignedPerson #2
[251]894        p = [person: Person.get(5),
895                task: Task.get(1),
896                estimatedHour: 3,
897                estimatedMinute: 30]
898        result = assignedPersonService.save(p)
[149]899    }
900
901    def createDemoTaskRecurringSchedules() {
902
903        //TaskRecurringSchedule
904        def taskRecurringScheduleInstance
905
906        //TaskRecurringSchedule #1
907        taskRecurringScheduleInstance = new TaskRecurringSchedule(task: Task.get(1),
908                                                                                                    recurEvery: 1,
[199]909                                                                                                    recurPeriod: Period.get(2),
[210]910                                                                                                    nextTargetStartDate: dateUtilService.today,
[149]911                                                                                                    generateAhead: 1,
[199]912                                                                                                    taskDuration: 2,
913                                                                                                    taskDurationPeriod: Period.get(1),
914                                                                                                    enabled: false)
[149]915        saveAndTest(taskRecurringScheduleInstance)
916
917        //TaskRecurringSchedule #2
[199]918        taskRecurringScheduleInstance = new TaskRecurringSchedule(task: Task.get(6),
[149]919                                                                                                    recurEvery: 1,
920                                                                                                    recurPeriod: Period.get(1),
[210]921                                                                                                    nextTargetStartDate: dateUtilService.today,
[149]922                                                                                                    generateAhead: 1,
923                                                                                                    taskDuration: 1,
[199]924                                                                                                    taskDurationPeriod: Period.get(1),
925                                                                                                    enabled: true)
[149]926        saveAndTest(taskRecurringScheduleInstance)
927    }
928
929/*************************
930START OF INVENTORY
931**************************/
932
933    def createDemoInventoryStores() {
934
935        //InventoryStore
936        def inventoryStoreInstance
937
938        inventoryStoreInstance = new InventoryStore(site: Site.get(1), name: "Store #1")
939        saveAndTest(inventoryStoreInstance)
940
941        inventoryStoreInstance = new InventoryStore(site: Site.get(2), name: "Store #2")
942        saveAndTest(inventoryStoreInstance)
943    }
944
[175]945    def createDemoInventoryLocations() {
[149]946
[175]947        // InventoryLocation
948        def inventoryLocation
[149]949
[175]950        inventoryLocation = new InventoryLocation(inventoryStore: InventoryStore.get(1), name: "A1-2")
951        saveAndTest(inventoryLocation)
[149]952
[418]953        inventoryLocation = new InventoryLocation(inventoryStore: InventoryStore.get(2), name: "C55")
[175]954        saveAndTest(inventoryLocation)
[149]955    }
956
957    def createDemoInventoryGroups() {
958
959        //InventoryGroup
960        def inventoryGroupInstance
961
962        //InventoryGroup #1
963        inventoryGroupInstance = new InventoryGroup(name: "Misc")
964        saveAndTest(inventoryGroupInstance)
965
966        //InventoryGroup #2
967        inventoryGroupInstance = new InventoryGroup(name: "Electrical")
968        saveAndTest(inventoryGroupInstance)
969
970        //InventoryGroup #3
971        inventoryGroupInstance = new InventoryGroup(name: "Mechanical")
972        saveAndTest(inventoryGroupInstance)
973
974        //InventoryGroup #4
975        inventoryGroupInstance = new InventoryGroup(name: "Production")
976        saveAndTest(inventoryGroupInstance)
977    }
978
979    def createBaseInventoryTypes() {
980
981        //InventoryType
982        def inventoryTypeInstance
983
984        inventoryTypeInstance = new InventoryType(name: "Consumable")
985        saveAndTest(inventoryTypeInstance)
986
987        inventoryTypeInstance = new InventoryType(name: "Repairable")
988        saveAndTest(inventoryTypeInstance)
989    }
990
[175]991    def createBaseInventoryMovementTypes() {
992
993        // InventoryMovementType
994        def inventoryMovementTypeInstance
995
996        // InventoryMovementType #1
[177]997        inventoryMovementTypeInstance = new InventoryMovementType(name: "Used",
998                                                                                                                        incrementsInventory: false)
[175]999        saveAndTest(inventoryMovementTypeInstance)
1000
1001        // InventoryMovementType #2
[177]1002        inventoryMovementTypeInstance = new InventoryMovementType(name: "Repaired",
1003                                                                                                                        incrementsInventory: true)
[175]1004        saveAndTest(inventoryMovementTypeInstance)
1005
1006        // InventoryMovementType #3
[177]1007        inventoryMovementTypeInstance = new InventoryMovementType(name: "Purchase Received",
1008                                                                                                                        incrementsInventory: true)
[175]1009        saveAndTest(inventoryMovementTypeInstance)
[177]1010
1011        // InventoryMovementType #4
1012        inventoryMovementTypeInstance = new InventoryMovementType(name: "Correction Increase",
1013                                                                                                                        incrementsInventory: true)
1014        saveAndTest(inventoryMovementTypeInstance)
1015
1016        // InventoryMovementType #5
1017        inventoryMovementTypeInstance = new InventoryMovementType(name: "Correction Decrease",
1018                                                                                                                        incrementsInventory: false)
1019        saveAndTest(inventoryMovementTypeInstance)
[175]1020    }
1021
[149]1022    def createDemoInventoryItems() {
1023
1024        //InventoryItem
1025        def inventoryItemInstance
1026
1027        //InventoryItem #1
1028        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(1),
1029                                                                                    inventoryType: InventoryType.get(1),
1030                                                                                    unitOfMeasure: UnitOfMeasure.get(2),
[175]1031                                                                                    inventoryLocation: InventoryLocation.get(1),
[185]1032                                                                                    name: "Hemp rope",
1033                                                                                    description: "Natural hemp rope.",
[175]1034                                                                                    unitsInStock: 2,
[149]1035                                                                                    reorderPoint: 0)
1036        saveAndTest(inventoryItemInstance)
1037
1038        //InventoryItem #2
1039        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(1),
1040                                                                                    inventoryType: InventoryType.get(1),
1041                                                                                    unitOfMeasure: UnitOfMeasure.get(2),
[175]1042                                                                                    inventoryLocation: InventoryLocation.get(1),
[185]1043                                                                                    name: "Cotton Rope 12mm",
1044                                                                                    description: "A soft natural rope made from cotton.",
[149]1045                                                                                    alternateItems: InventoryItem.get(1),
[175]1046                                                                                    unitsInStock: 2,
[149]1047                                                                                    reorderPoint: 0)
1048        saveAndTest(inventoryItemInstance)
1049
1050        //InventoryItem #3
1051        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(3),
1052                                                                                    inventoryType: InventoryType.get(1),
1053                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
[175]1054                                                                                    inventoryLocation: InventoryLocation.get(2),
[149]1055                                                                                    name: "2305-2RS",
1056                                                                                    description: "Bearing 25x62x24mm double row self aligning ball",
[175]1057                                                                                    unitsInStock: 3,
[149]1058                                                                                    reorderPoint: 2)
1059        saveAndTest(inventoryItemInstance)
1060
1061        //InventoryItem #4
1062        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(2),
1063                                                                                    inventoryType: InventoryType.get(1),
1064                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
[175]1065                                                                                    inventoryLocation: InventoryLocation.get(2),
[149]1066                                                                                    name: "L1592-K10",
1067                                                                                    description: "10kW contactor",
[175]1068                                                                                    unitsInStock: 4,
[149]1069                                                                                    reorderPoint: 0)
1070        saveAndTest(inventoryItemInstance)
1071
1072        //InventoryItem #5
1073        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(3),
1074                                                                                    inventoryType: InventoryType.get(1),
1075                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
[175]1076                                                                                    inventoryLocation: InventoryLocation.get(2),
[149]1077                                                                                    name: "6205-ZZ",
1078                                                                                    description: "Bearing 25x52x15mm single row ball shielded",
[175]1079                                                                                    unitsInStock: 5,
[149]1080                                                                                    reorderPoint: 2)
1081        saveAndTest(inventoryItemInstance)
1082    }
1083
1084/*******************
1085START OF ASSET
1086*******************/
1087
1088    def createDemoLifePlan() {
1089
1090        //LifePlan
1091        def lifeplanInstance
1092
1093        lifeplanInstance = new LifePlan(name: "Initial Plan")
1094        saveAndTest(lifeplanInstance)
1095    }
1096
[270]1097    def createBaseExtenededAttributeTypes() {
1098
1099        //ExtendedAttributeType
1100        def extendedAttributeTypeInstance
1101
1102        //ExtendedAttributeType #1
1103        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Model Number")
1104        saveAndTest(extendedAttributeTypeInstance)
1105
1106        //ExtendedAttributeType #2
1107        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Purchase Cost")
1108        saveAndTest(extendedAttributeTypeInstance)
1109
1110        //ExtendedAttributeType #3
1111        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Serial Number")
1112        saveAndTest(extendedAttributeTypeInstance)
1113
1114        //ExtendedAttributeType #4
1115        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Manufactured Date")
1116        saveAndTest(extendedAttributeTypeInstance)
1117
1118        //ExtendedAttributeType #5
1119        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Location Description")
1120        saveAndTest(extendedAttributeTypeInstance)
1121
1122        //ExtendedAttributeType #6
1123        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Cost Centre")
1124        saveAndTest(extendedAttributeTypeInstance)
1125
1126        //ExtendedAttributeType #7
1127        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Cost Code")
1128        saveAndTest(extendedAttributeTypeInstance)
1129
1130        //ExtendedAttributeType #8
1131        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Manufacturer's Number")
1132        saveAndTest(extendedAttributeTypeInstance)
1133
1134        //ExtendedAttributeType #9
1135        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Inventory Number")
1136        saveAndTest(extendedAttributeTypeInstance)
1137    }
1138
[149]1139    def createBaseMaintenancePolicies() {
1140
1141        //MaintenancePolicy
1142        def maintenancePolicyInstance
1143
1144        //MaintenancePolicy #1
1145        maintenancePolicyInstance = new MaintenancePolicy(name: "Fixed Time")
1146        saveAndTest(maintenancePolicyInstance)
1147
1148        //MaintenancePolicy #2
1149        maintenancePolicyInstance = new MaintenancePolicy(name: "Condition Based Online")
1150        saveAndTest(maintenancePolicyInstance)
1151
1152        //MaintenancePolicy #3
1153        maintenancePolicyInstance = new MaintenancePolicy(name: "Condition Based Offline")
1154        saveAndTest(maintenancePolicyInstance)
1155
1156        //MaintenancePolicy #4
1157        maintenancePolicyInstance = new MaintenancePolicy(name: "Design Out")
1158        saveAndTest(maintenancePolicyInstance)
1159
1160        //MaintenancePolicy #5
1161        maintenancePolicyInstance = new MaintenancePolicy(name: "Operate To Failure")
1162        saveAndTest(maintenancePolicyInstance)
[275]1163
1164        //MaintenancePolicy #6
1165        maintenancePolicyInstance = new MaintenancePolicy(name: "Regulatory Requirement")
1166        saveAndTest(maintenancePolicyInstance)
1167
1168        //MaintenancePolicy #7
1169        maintenancePolicyInstance = new MaintenancePolicy(name: "Hidden Function Test")
1170        saveAndTest(maintenancePolicyInstance)
[149]1171    }
1172
1173    def createDemoTaskProcedure() {
1174
1175        //TaskProcedure
1176        def taskProcedureInstance
1177
1178        taskProcedureInstance = new TaskProcedure(name: "Daily check")
1179        saveAndTest(taskProcedureInstance)
1180        taskProcedureInstance.addToTasks(Task.get(1))
1181    }
1182
1183    def createDemoMaintenanceActions() {
1184
1185        //MaintenanceAction
1186        def maintenanceActionInstance
1187
1188        //MaintenanceAction #1
1189        maintenanceActionInstance = new MaintenanceAction(description: "Check all E-stops, activate E-stops S1-S12 and ensure machine cannot run",
1190                                                                                                        procedureStepNumber: 1,
1191                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
1192                                                                                                        taskProcedure: TaskProcedure.get(1))
1193        saveAndTest(maintenanceActionInstance)
1194
1195        //MaintenanceAction #2
1196        maintenanceActionInstance = new MaintenanceAction(description: "Do more pushups",
1197                                                                                                        procedureStepNumber: 2,
1198                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
1199                                                                                                        taskProcedure: TaskProcedure.get(1))
1200        saveAndTest(maintenanceActionInstance)
1201
1202        //MaintenanceAction #3
1203        maintenanceActionInstance = new MaintenanceAction(description: "Ok just one more pushup",
1204                                                                                                        procedureStepNumber: 3,
1205                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
1206                                                                                                        taskProcedure: TaskProcedure.get(1))
1207        saveAndTest(maintenanceActionInstance)
1208    }
1209
[268]1210    def createDemoSections() {
[149]1211
[268]1212        //Section
1213        def sectionInstance
[149]1214
[268]1215        //Section #1
[314]1216        sectionInstance = new Section(name: "Press",
1217                                                                description: "Press Section",
1218                                                                site: Site.get(3),
1219                                                                department: Department.get(1))
[268]1220        saveAndTest(sectionInstance)
[149]1221
[268]1222        //Section #2
[321]1223        sectionInstance = new Section(name: "CSM-Delig",
[314]1224                                                                description: "Pulp Delignification",
1225                                                                site: Site.get(1),
1226                                                                department: Department.get(2))
[268]1227        saveAndTest(sectionInstance)
[149]1228
[268]1229        //Section #3
[321]1230        sectionInstance = new Section(name: "CSM-Aux",
[314]1231                                                                description: "Auxilliary Section",
1232                                                                site: Site.get(1),
1233                                                                department: Department.get(1))
[268]1234        saveAndTest(sectionInstance)
[149]1235    }
1236
[276]1237    def createDemoAssetTree() {
[149]1238
[270]1239        //Asset
1240        def assetInstance
[149]1241
[270]1242        //Asset #1
[276]1243        def assetInstance1 = new Asset(name: "Print Tower 22",
[314]1244                                                                description: "Complete Printing Asset #22",
1245                                                                section: Section.get(1))
[276]1246        saveAndTest(assetInstance1)
[270]1247//        assetInstance.addToMaintenanceActions(MaintenanceAction.get(1))
[149]1248
[270]1249        //Asset #2
[276]1250        def assetInstance2 = new Asset(name: "Print Tower 21",
[314]1251                                                                description: "Complete Printing Asset #21",
1252                                                                section: Section.get(1))
[276]1253        saveAndTest(assetInstance2)
[149]1254
[270]1255        //Asset #3
[276]1256        def assetInstance3 = new Asset(name: "Print Tower 23",
[314]1257                                                                description: "Complete Printing Asset #23",
1258                                                                section: Section.get(1))
[276]1259        saveAndTest(assetInstance3)
[149]1260
[270]1261        //Asset #4
[321]1262        def assetInstance4 = new Asset(name: "C579",
[314]1263                                                                description: "RO #1",
1264                                                                section: Section.get(2))
[276]1265        saveAndTest(assetInstance4)
[149]1266
[270]1267        //AssetSubItem
1268        def assetSubItemInstance
[149]1269
[276]1270        //AssetSubItem #1 Level1
[314]1271        def assetSubItemInstance1 = new AssetSubItem(name: "Print Tower",
1272                                                                                            description: "Common sub asset.")
[276]1273        saveAndTest(assetSubItemInstance1)
[149]1274
[276]1275        // Add assetSubItemInstance1 to some assets.
1276        assetInstance1.addToAssetSubItems(assetSubItemInstance1)
1277        assetInstance2.addToAssetSubItems(assetSubItemInstance1)
1278        assetInstance3.addToAssetSubItems(assetSubItemInstance1)
1279
1280        //AssetSubItem #2 Level1
[321]1281        def assetSubItemInstance2 = new AssetSubItem(name: "C579-44",
1282                                                                                            description: "Tanks and towers")
[276]1283        saveAndTest(assetSubItemInstance2)
1284
1285        // Add assetSubItemInstance2 to some assets.
1286        assetInstance4.addToAssetSubItems(assetSubItemInstance2)
1287
1288        //AssetSubItem #3 Level1
[321]1289        def assetSubItemInstance3 = new AssetSubItem(name: "C579-20",
1290                                                                                            description: "Control Loops")
[276]1291        saveAndTest(assetSubItemInstance3)
1292
1293        // Add assetSubItemInstance3 to some assets.
1294        assetInstance4.addToAssetSubItems(assetSubItemInstance3)
1295
1296        //AssetSubItem #4 Level2
[321]1297        assetSubItemInstance = new AssetSubItem(name: "C579-TK-0022",
1298                                                                                            description: "Blow Tank",
1299                                                                                            parentItem: AssetSubItem.get(2))
1300        saveAndTest(assetSubItemInstance)
1301
1302        //AssetSubItem #5 Level2
1303        assetSubItemInstance = new AssetSubItem(name: "C579-TK-0023",
1304                                                                                            description: "Reactor Tower",
1305                                                                                            parentItem: AssetSubItem.get(2))
1306        saveAndTest(assetSubItemInstance)
1307
1308        //AssetSubItem #6 Level2
[314]1309        assetSubItemInstance = new AssetSubItem(name: "Print Unit",
1310                                                                                    description: "Print Unit - Common Level 2 sub item.",
1311                                                                                    parentItem: AssetSubItem.get(1))
[270]1312        saveAndTest(assetSubItemInstance)
[149]1313
[321]1314        //AssetSubItem #7 Level2
1315        assetSubItemInstance = new AssetSubItem(name: "1925365",
1316                                                                                    description: "Agitator",
1317                                                                                    parentItem: AssetSubItem.get(4))
[270]1318        saveAndTest(assetSubItemInstance)
[149]1319
[321]1320        //AssetSubItem #8 Level2
1321        assetSubItemInstance = new AssetSubItem(name: "1925366",
1322                                                                                    description: "Scraper",
1323                                                                                    parentItem: AssetSubItem.get(4))
[276]1324        saveAndTest(assetSubItemInstance)
1325
[321]1326        //AssetSubItem #9 Level3
[276]1327        assetSubItemInstance = new AssetSubItem(name: "Motor",
[314]1328                                                                                    description: "Motor - Level 3 sub item",
[321]1329                                                                                    parentItem: AssetSubItem.get(6))
[276]1330        saveAndTest(assetSubItemInstance)
1331
[321]1332        //AssetSubItem #10 Level3
[276]1333        assetSubItemInstance = new AssetSubItem(name: "Gearbox",
[314]1334                                                                                    description: "Gearbox - Level 3 sub item, gearbox",
[321]1335                                                                                    parentItem: AssetSubItem.get(6))
[276]1336        saveAndTest(assetSubItemInstance)
1337
[321]1338        //AssetSubItem #11 Level4
[276]1339        assetSubItemInstance = new AssetSubItem(name: "DS Bearing",
[314]1340                                                                                    description: "Drive Side Bearing",
[321]1341                                                                                    parentItem: AssetSubItem.get(9))
[276]1342        saveAndTest(assetSubItemInstance)
1343
[321]1344        //AssetSubItem #12 Level4
[276]1345        assetSubItemInstance = new AssetSubItem(name: "NDS Bearing",
[314]1346                                                                                    description: "Non Drive Side Bearing",
[321]1347                                                                                    parentItem: AssetSubItem.get(9))
[276]1348        saveAndTest(assetSubItemInstance)
[321]1349
1350        //AssetSubItem #13 Level2
1351        assetSubItemInstance = new AssetSubItem(name: "C579-F-0001",
1352                                                                                    description: "Weak Caustic Flow",
1353                                                                                    parentItem: AssetSubItem.get(3))
1354        saveAndTest(assetSubItemInstance)
1355
1356        //AssetSubItem #14 Level3
1357        assetSubItemInstance = new AssetSubItem(name: "C579-FT-0002",
1358                                                                                    description: "Weak Caustic Flow Transmitter",
1359                                                                                    parentItem: AssetSubItem.get(13))
1360        saveAndTest(assetSubItemInstance)
1361
1362        //AssetSubItem #15 Level3
1363        assetSubItemInstance = new AssetSubItem(name: "C579-PT-0003",
1364                                                                                    description: "Weak Caustic Pressure Transmitter",
1365                                                                                    parentItem: AssetSubItem.get(13))
1366        saveAndTest(assetSubItemInstance)
[276]1367    } // createDemoAssetTree()
1368
[149]1369    def createDemoAssetExtenedAttributes() {
1370
[270]1371        //AssetExtendedAttribute
1372        def assetExtendedAttributeInstance
1373
1374        //AssetExtendedAttribute #1
1375        assetExtendedAttributeInstance = new AssetExtendedAttribute(value: "PU Mark 2",
1376                                                                                                                    asset: Asset.get(1),
1377                                                                                                                    extendedAttributeType: ExtendedAttributeType.get(1))
1378        saveAndTest(assetExtendedAttributeInstance)
1379
1380        //AssetExtendedAttribute #2
1381        assetExtendedAttributeInstance = new AssetExtendedAttribute(value: "On the far side of Tank 5",
1382                                                                                                                    asset: Asset.get(1),
1383                                                                                                                    extendedAttributeType: ExtendedAttributeType.get(5))
1384        saveAndTest(assetExtendedAttributeInstance)
[149]1385    }
1386
1387
1388/****************************************
1389Call this function instead of .save()
1390*****************************************/
1391    private boolean saveAndTest(object) {
1392        if(!object.save()) {
1393//             DemoDataSuccessful = false
[199]1394            log.error "'${object}' failed to save!"
1395            log.error object.errors
[149]1396            return false
1397        }
1398        return true
1399    }
1400}
Note: See TracBrowser for help on using the repository browser.