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

Last change on this file since 402 was 402, checked in by gav, 14 years ago

Add contacts to Person, Supplier, Manufacturer and Site.

File size: 59.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
472        supplierTypeInstance = new SupplierType(name: "OEM",
473                                                                    description: "Original equipment supplier")
474        saveAndTest(supplierTypeInstance)
475
476        // SupplierType #2
477        supplierTypeInstance = new SupplierType(name: "Local",
478                                                                    description: "Local supplier")
479        saveAndTest(supplierTypeInstance)
480    }
481
[397]482    def createBaseManufacturerTypes() {
[175]483
484        // ManufacturerType
485        def manufacturerTypeInstance
486
487        // ManufacturerType #1
488        manufacturerTypeInstance = new ManufacturerType(name: "OEM",
489                                                                        description: "Original equipment manufacturer")
490        saveAndTest(manufacturerTypeInstance)
491
492        // ManufacturerType #2
493        manufacturerTypeInstance = new ManufacturerType(name: "Alternate",
494                                                                        description: "Not original equipment manufacturer")
495        saveAndTest(manufacturerTypeInstance)
496
497    }
498
[397]499    def createBaseAddressTypes() {
500
501        // AddressType
502        def addressTypeInstance
503
504        // AddressType #1
505        addressTypeInstance = new AddressType(name: "Postal",
506                                                                                description: "A postal address.")
507        saveAndTest(addressTypeInstance)
508
509        // AddressType #2
510        addressTypeInstance = new AddressType(name: "Physical",
511                                                                                description: "A physical address.")
512        saveAndTest(addressTypeInstance)
513
514        // AddressType #3
515        addressTypeInstance = new AddressType(name: "Postal & Physical",
516                                                                                description: "An address that is both the postal and physical address.")
517        saveAndTest(addressTypeInstance)
518
519        // AddressType #4
520        addressTypeInstance = new AddressType(name: "Invoice",
521                                                                                description: "An address to send invoices to.")
522        saveAndTest(addressTypeInstance)
523
524        // AddressType #5
525        addressTypeInstance = new AddressType(name: "Delivery",
526                                                                                description: "An address to send deliveries to.")
527        saveAndTest(addressTypeInstance)
528    }
529
[402]530    def createBaseContactTypes() {
531
532        // ContactType
533        def contactTypeInstance
534
535        // ContactType #1
536        contactTypeInstance = new ContactType(name: "Email",
537                                                                                description: "Email address.")
538        saveAndTest(contactTypeInstance)
539
540        // ContactType #2
541        contactTypeInstance = new ContactType(name: "Alternate Email",
542                                                                                description: "Alternate email address.")
543        saveAndTest(contactTypeInstance)
544
545        // ContactType #3
546        contactTypeInstance = new ContactType(name: "Mobile",
547                                                                                description: "Modile phone number.")
548        saveAndTest(contactTypeInstance)
549
550        // ContactType #4
551        contactTypeInstance = new ContactType(name: "Work Phone",
552                                                                                description: "Work phone number.")
553        saveAndTest(contactTypeInstance)
554
555        // ContactType #5
556        contactTypeInstance = new ContactType(name: "Home Phone",
557                                                                                description: "Home phone number.")
558        saveAndTest(contactTypeInstance)
559
560        // ContactType #6
561        contactTypeInstance = new ContactType(name: "Work Fax",
562                                                                                description: "Work fax number.")
563        saveAndTest(contactTypeInstance)
564
565        // ContactType #7
566        contactTypeInstance = new ContactType(name: "Home Fax",
567                                                                                description: "Home fax number.")
568        saveAndTest(contactTypeInstance)
569
570        // ContactType #8
571        contactTypeInstance = new ContactType(name: "Web Site",
572                                                                                description: "Web site address.")
573        saveAndTest(contactTypeInstance)
574
575        // ContactType #9
576        contactTypeInstance = new ContactType(name: "Person",
577                                                                                description: "Contact person.")
578        saveAndTest(contactTypeInstance)
579    }
580
[175]581    def createDemoSuppliers() {
582
583        // Supplier
584        def supplierInstance
585
586        // Supplier #1
587        supplierInstance = new Supplier(name: "OEM Distributors",
588                                                                        supplierType: SupplierType.get(1))
589        saveAndTest(supplierInstance)
590
591        // Supplier #2
592        supplierInstance = new Supplier(name: "Mex Holdings",
593                                                                        supplierType: SupplierType.get(2))
594        saveAndTest(supplierInstance)
595    }
596
597    def createDemoManufacturers() {
598
599        // Manufacturer
600        def manufacturerInstance
601
602        // Manufacturer #1
603        manufacturerInstance = new Manufacturer(name: "OEM Manufacturer",
604                                                                        manufacturerType: ManufacturerType.get(1))
605        saveAndTest(manufacturerInstance)
606
607        // Manufacturer #2
608        manufacturerInstance = new Manufacturer(name: "Laser Cutting Services Pty",
609                                                                        manufacturerType: ManufacturerType.get(2))
610        saveAndTest(manufacturerInstance)
611    }
612
[149]613/*********************
614START OF TASK
615*********************/
616
[180]617    def createBaseTaskGroups() {
[149]618        //TaskGroup
619        def taskGroupInstance
620
[258]621        //TaskGroup #1
[149]622        taskGroupInstance = new TaskGroup(name:"Engineering Activites",
623                                                                            description:"Engineering daily activities")
624        saveAndTest(taskGroupInstance)
625
[258]626        //TaskGroup #2
[149]627        taskGroupInstance = new TaskGroup(name:"Production Activites",
628                                                                            description:"Production daily activities")
629        saveAndTest(taskGroupInstance)
630
[258]631        //TaskGroup #3
[149]632        taskGroupInstance = new TaskGroup(name:"New Projects",
633                                                                            description:" ")
634        saveAndTest(taskGroupInstance)
635    }
636
637    def createBaseTaskStatus() {
638
639        //TaskStatus
640        def taskStatusInstance
641
[181]642        taskStatusInstance = new TaskStatus(name:"Not Started") // #1
[149]643        saveAndTest(taskStatusInstance)
644
[181]645        taskStatusInstance = new TaskStatus(name:"In Progress") // #2
[149]646        saveAndTest(taskStatusInstance)
647
[222]648        taskStatusInstance = new TaskStatus(name:"Complete") // #3
[149]649        saveAndTest(taskStatusInstance)
650    }
651
652    def createBaseTaskPriorities() {
653
654        //TaskPriority
655        def taskPriorityInstance
656
[199]657        taskPriorityInstance = new TaskPriority(name:"Normal") // #1
[149]658        saveAndTest(taskPriorityInstance)
659
[199]660        taskPriorityInstance = new TaskPriority(name:"Low") // #2
[149]661        saveAndTest(taskPriorityInstance)
662
[199]663        taskPriorityInstance = new TaskPriority(name:"High") // #3
[149]664        saveAndTest(taskPriorityInstance)
665
[199]666        taskPriorityInstance = new TaskPriority(name:"Immediate") // #4
[149]667        saveAndTest(taskPriorityInstance)
668    }
669
[252]670    def createBaseTaskBudgetStatus() {
671
672        //TaskBudgetStatus
673        def taskBudgetStatusInstance
674
675        taskBudgetStatusInstance = new TaskBudgetStatus(name:"Unplanned") // #1
676        saveAndTest(taskBudgetStatusInstance)
677
678        taskBudgetStatusInstance = new TaskBudgetStatus(name:"Planned") // #2
679        saveAndTest(taskBudgetStatusInstance)
680    }
681
[149]682    def createBaseTaskTypes() {
683
684        //TaskType
685        def taskTypeInstance
686
[199]687        taskTypeInstance = new TaskType(name:"Unscheduled Breakin") // #1
[149]688        saveAndTest(taskTypeInstance)
689
[199]690        taskTypeInstance = new TaskType(name:"Preventative Maintenance") // #2
[149]691        saveAndTest(taskTypeInstance)
692
[199]693        taskTypeInstance = new TaskType(name:"Project") // #3
[149]694        saveAndTest(taskTypeInstance)
695
[199]696        taskTypeInstance = new TaskType(name:"Turnaround") // #4
[149]697        saveAndTest(taskTypeInstance)
698
[199]699        taskTypeInstance = new TaskType(name:"Production Run") // #5
[149]700        saveAndTest(taskTypeInstance)
701    }
702
[180]703    def createBaseTaskModificationTypes() {
704
705        //ModificationType
706        def taskModificationTypeInstance
707        taskModificationTypeInstance = new TaskModificationType(name:"Created").save()  // #1
708        taskModificationTypeInstance = new TaskModificationType(name:"Started").save()  // #2
709        taskModificationTypeInstance = new TaskModificationType(name:"Modified").save()  // #3
710        taskModificationTypeInstance = new TaskModificationType(name:"Completed").save()  // #4
711        taskModificationTypeInstance = new TaskModificationType(name:"Reopened").save()  // #5
712        taskModificationTypeInstance = new TaskModificationType(name:"Trashed").save()  // #6
713        taskModificationTypeInstance = new TaskModificationType(name:"Restored").save()  // #7
714        taskModificationTypeInstance = new TaskModificationType(name:"Approved").save()  // #8
715        taskModificationTypeInstance = new TaskModificationType(name:"Renege approval").save()  // #9
[251]716        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Assigned Groups)").save()  // #10
717        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Assigned Persons)").save()  // #11
[180]718    }
719
[149]720    def createDemoTasks() {
721
[180]722        def taskResult
723        def p = [:]
[149]724
725        //Task #1
[180]726        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
727                taskPriority:TaskPriority.get(2),
728                taskType:TaskType.get(1),
729                leadPerson:Person.get(2),
730                description:"Check specific level sensor",
731                comment:"Has been noted as problematic, try recalibrating.",
[210]732                targetStartDate: dateUtilService.today]
[149]733
[394]734        taskResult = taskService.save(p)
[180]735
[149]736        //Task #2
[180]737        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
[149]738                taskPriority:TaskPriority.get(2),
739                taskType:TaskType.get(1),
740                leadPerson:Person.get(5),
741                description:"Some follow-up work",
742                comment:"Some help required",
[210]743                targetStartDate: dateUtilService.tomorrow,
[180]744                parentTask: Task.get(1)]
[149]745
[394]746        taskResult = taskService.save(p)
[180]747
[149]748        //Task #3
[180]749        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
[149]750                taskPriority:TaskPriority.get(2),
751                taskType:TaskType.get(1),
752                leadPerson:Person.get(5),
[314]753                description:"A Sub Task can be created from the Sub Task's tab.",
[149]754                comment:"Some help required",
[210]755                targetStartDate: dateUtilService.yesterday,
[180]756                parentTask: Task.get(1)]
[149]757
[394]758        taskResult = taskService.save(p)
[180]759
[149]760        //Task #4
[180]761        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
[149]762                 taskPriority:TaskPriority.get(2),
763                 taskType:TaskType.get(1),
764                 leadPerson:Person.get(4),
765                 description:"Replace sensor at next opportunity.",
766                 comment:"Nothing else has worked.",
[210]767                targetStartDate: dateUtilService.oneWeekFromNow,
[180]768                parentTask: Task.get(1)]
[149]769
[394]770        taskResult = taskService.save(p)
[180]771
[149]772        //Task #5
[180]773        p = [taskGroup:TaskGroup.findByName("Production Activites"),
[149]774                 taskPriority:TaskPriority.get(2),
775                 taskType:TaskType.get(5),
776                 leadPerson:Person.get(6),
777                 description:"Production Report",
778                 comment:"Production report for specific production run or shift",
[210]779                targetStartDate: dateUtilService.today - 6]
[149]780
[394]781        taskResult = taskService.save(p)
[180]782
[149]783        //Task #6
[199]784        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
785                 taskPriority:TaskPriority.get(1),
786                 taskType:TaskType.get(2),
787                 leadPerson:Person.get(4),
788                 description:"This is a recurring task",
789                 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]790                targetStartDate: dateUtilService.today]
[180]791
[394]792        taskResult = taskService.save(p)
[149]793    }
794
795    def createBaseEntryTypes() {
796
797        //EntryType
798        def entryTypeInstance
799
[190]800        entryTypeInstance = new EntryType(name:"Fault") // #1
[149]801        saveAndTest(entryTypeInstance)
802
[190]803        entryTypeInstance = new EntryType(name:"Work Done") // #2
[149]804        saveAndTest(entryTypeInstance)
805
[190]806        entryTypeInstance = new EntryType(name:"Production Note") // #3
[149]807        saveAndTest(entryTypeInstance)
808
[190]809        entryTypeInstance = new EntryType(name:"Work Request") // #4
[149]810        saveAndTest(entryTypeInstance)
811    }
812
813    def createDemoEntries() {
814
[190]815        def entryResult
816        def p = [:]
[149]817
818        //Entry #1
[190]819        p = [task: Task.get(1),
820                entryType: EntryType.get(1),
821                comment: "This level sensor is causing us trouble.",
822                durationMinute: 20]
[149]823
[394]824        entryResult = taskService.saveEntry(p)
[190]825
[149]826        //Entry #2
[190]827        p = [task: Task.get(1),
828                entryType: EntryType.get(2),
829                comment: "Cleaned sensor, see how it goes.",
830                durationMinute: 30]
[149]831
[394]832        entryResult = taskService.saveEntry(p)
[190]833
[149]834        //Entry #3
[190]835        p = [task: Task.get(1),
836                entryType: EntryType.get(2),
837                comment: "Checked up on it later and sensor is dropping out intermittently, created sub task to replace sensor.",
838                durationMinute: 20]
839
[394]840        entryResult = taskService.saveEntry(p)
[149]841    }
842
[242]843    def createDemoAssignedGroups() {
844
[251]845        def result
846        def p = [:]
[242]847
848        //AssignedGroup #1
[251]849        p = [personGroup: PersonGroup.get(1),
850                task: Task.get(1),
851                estimatedHour: 2,
852                estimatedMinute: 30]
853        result = assignedGroupService.save(p)
[242]854
855        //AssignedGroup #2
[251]856        p = [personGroup: PersonGroup.get(2),
857                task: Task.get(1),
858                estimatedHour: 1,
859                estimatedMinute: 0]
860        result = assignedGroupService.save(p)
[242]861    }
862
[241]863    def createDemoAssignedPersons() {
[149]864
[251]865        def result
866        def p = [:]
[149]867
[241]868        //AssignedPerson #1
[251]869        p = [person: Person.get(4),
870                task: Task.get(1),
871                estimatedHour: 1,
872                estimatedMinute: 20]
873        result = assignedPersonService.save(p)
[149]874
[241]875        //AssignedPerson #2
[251]876        p = [person: Person.get(5),
877                task: Task.get(1),
878                estimatedHour: 3,
879                estimatedMinute: 30]
880        result = assignedPersonService.save(p)
[149]881    }
882
883    def createDemoTaskRecurringSchedules() {
884
885        //TaskRecurringSchedule
886        def taskRecurringScheduleInstance
887
888        //TaskRecurringSchedule #1
889        taskRecurringScheduleInstance = new TaskRecurringSchedule(task: Task.get(1),
890                                                                                                    recurEvery: 1,
[199]891                                                                                                    recurPeriod: Period.get(2),
[210]892                                                                                                    nextTargetStartDate: dateUtilService.today,
[149]893                                                                                                    generateAhead: 1,
[199]894                                                                                                    taskDuration: 2,
895                                                                                                    taskDurationPeriod: Period.get(1),
896                                                                                                    enabled: false)
[149]897        saveAndTest(taskRecurringScheduleInstance)
898
899        //TaskRecurringSchedule #2
[199]900        taskRecurringScheduleInstance = new TaskRecurringSchedule(task: Task.get(6),
[149]901                                                                                                    recurEvery: 1,
902                                                                                                    recurPeriod: Period.get(1),
[210]903                                                                                                    nextTargetStartDate: dateUtilService.today,
[149]904                                                                                                    generateAhead: 1,
905                                                                                                    taskDuration: 1,
[199]906                                                                                                    taskDurationPeriod: Period.get(1),
907                                                                                                    enabled: true)
[149]908        saveAndTest(taskRecurringScheduleInstance)
909    }
910
911/*************************
912START OF INVENTORY
913**************************/
914
915    def createDemoInventoryStores() {
916
917        //InventoryStore
918        def inventoryStoreInstance
919
920        inventoryStoreInstance = new InventoryStore(site: Site.get(1), name: "Store #1")
921        saveAndTest(inventoryStoreInstance)
922
923        inventoryStoreInstance = new InventoryStore(site: Site.get(2), name: "Store #2")
924        saveAndTest(inventoryStoreInstance)
925    }
926
[175]927    def createDemoInventoryLocations() {
[149]928
[175]929        // InventoryLocation
930        def inventoryLocation
[149]931
[175]932        inventoryLocation = new InventoryLocation(inventoryStore: InventoryStore.get(1), name: "A1-2")
933        saveAndTest(inventoryLocation)
[149]934
[175]935        inventoryLocation = new InventoryLocation(inventoryStore: InventoryStore.get(1), name: "C55")
936        saveAndTest(inventoryLocation)
[149]937    }
938
939    def createDemoInventoryGroups() {
940
941        //InventoryGroup
942        def inventoryGroupInstance
943
944        //InventoryGroup #1
945        inventoryGroupInstance = new InventoryGroup(name: "Misc")
946        saveAndTest(inventoryGroupInstance)
947
948        //InventoryGroup #2
949        inventoryGroupInstance = new InventoryGroup(name: "Electrical")
950        saveAndTest(inventoryGroupInstance)
951
952        //InventoryGroup #3
953        inventoryGroupInstance = new InventoryGroup(name: "Mechanical")
954        saveAndTest(inventoryGroupInstance)
955
956        //InventoryGroup #4
957        inventoryGroupInstance = new InventoryGroup(name: "Production")
958        saveAndTest(inventoryGroupInstance)
959    }
960
961    def createBaseInventoryTypes() {
962
963        //InventoryType
964        def inventoryTypeInstance
965
966        inventoryTypeInstance = new InventoryType(name: "Consumable")
967        saveAndTest(inventoryTypeInstance)
968
969        inventoryTypeInstance = new InventoryType(name: "Repairable")
970        saveAndTest(inventoryTypeInstance)
971    }
972
[175]973    def createBaseInventoryMovementTypes() {
974
975        // InventoryMovementType
976        def inventoryMovementTypeInstance
977
978        // InventoryMovementType #1
[177]979        inventoryMovementTypeInstance = new InventoryMovementType(name: "Used",
980                                                                                                                        incrementsInventory: false)
[175]981        saveAndTest(inventoryMovementTypeInstance)
982
983        // InventoryMovementType #2
[177]984        inventoryMovementTypeInstance = new InventoryMovementType(name: "Repaired",
985                                                                                                                        incrementsInventory: true)
[175]986        saveAndTest(inventoryMovementTypeInstance)
987
988        // InventoryMovementType #3
[177]989        inventoryMovementTypeInstance = new InventoryMovementType(name: "Purchase Received",
990                                                                                                                        incrementsInventory: true)
[175]991        saveAndTest(inventoryMovementTypeInstance)
[177]992
993        // InventoryMovementType #4
994        inventoryMovementTypeInstance = new InventoryMovementType(name: "Correction Increase",
995                                                                                                                        incrementsInventory: true)
996        saveAndTest(inventoryMovementTypeInstance)
997
998        // InventoryMovementType #5
999        inventoryMovementTypeInstance = new InventoryMovementType(name: "Correction Decrease",
1000                                                                                                                        incrementsInventory: false)
1001        saveAndTest(inventoryMovementTypeInstance)
[175]1002    }
1003
[149]1004    def createDemoInventoryItems() {
1005
1006        //InventoryItem
1007        def inventoryItemInstance
1008
1009        //InventoryItem #1
1010        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(1),
1011                                                                                    inventoryType: InventoryType.get(1),
1012                                                                                    unitOfMeasure: UnitOfMeasure.get(2),
[175]1013                                                                                    inventoryLocation: InventoryLocation.get(1),
[185]1014                                                                                    name: "Hemp rope",
1015                                                                                    description: "Natural hemp rope.",
[175]1016                                                                                    unitsInStock: 2,
[149]1017                                                                                    reorderPoint: 0)
1018        saveAndTest(inventoryItemInstance)
1019
1020        //InventoryItem #2
1021        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(1),
1022                                                                                    inventoryType: InventoryType.get(1),
1023                                                                                    unitOfMeasure: UnitOfMeasure.get(2),
[175]1024                                                                                    inventoryLocation: InventoryLocation.get(1),
[185]1025                                                                                    name: "Cotton Rope 12mm",
1026                                                                                    description: "A soft natural rope made from cotton.",
[149]1027                                                                                    alternateItems: InventoryItem.get(1),
[175]1028                                                                                    unitsInStock: 2,
[149]1029                                                                                    reorderPoint: 0)
1030        saveAndTest(inventoryItemInstance)
1031
1032        //InventoryItem #3
1033        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(3),
1034                                                                                    inventoryType: InventoryType.get(1),
1035                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
[175]1036                                                                                    inventoryLocation: InventoryLocation.get(2),
[149]1037                                                                                    name: "2305-2RS",
1038                                                                                    description: "Bearing 25x62x24mm double row self aligning ball",
[175]1039                                                                                    unitsInStock: 3,
[149]1040                                                                                    reorderPoint: 2)
1041        saveAndTest(inventoryItemInstance)
1042
1043        //InventoryItem #4
1044        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(2),
1045                                                                                    inventoryType: InventoryType.get(1),
1046                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
[175]1047                                                                                    inventoryLocation: InventoryLocation.get(2),
[149]1048                                                                                    name: "L1592-K10",
1049                                                                                    description: "10kW contactor",
[175]1050                                                                                    unitsInStock: 4,
[149]1051                                                                                    reorderPoint: 0)
1052        saveAndTest(inventoryItemInstance)
1053
1054        //InventoryItem #5
1055        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(3),
1056                                                                                    inventoryType: InventoryType.get(1),
1057                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
[175]1058                                                                                    inventoryLocation: InventoryLocation.get(2),
[149]1059                                                                                    name: "6205-ZZ",
1060                                                                                    description: "Bearing 25x52x15mm single row ball shielded",
[175]1061                                                                                    unitsInStock: 5,
[149]1062                                                                                    reorderPoint: 2)
1063        saveAndTest(inventoryItemInstance)
1064    }
1065
1066/*******************
1067START OF ASSET
1068*******************/
1069
1070    def createDemoLifePlan() {
1071
1072        //LifePlan
1073        def lifeplanInstance
1074
1075        lifeplanInstance = new LifePlan(name: "Initial Plan")
1076        saveAndTest(lifeplanInstance)
1077    }
1078
[270]1079    def createBaseExtenededAttributeTypes() {
1080
1081        //ExtendedAttributeType
1082        def extendedAttributeTypeInstance
1083
1084        //ExtendedAttributeType #1
1085        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Model Number")
1086        saveAndTest(extendedAttributeTypeInstance)
1087
1088        //ExtendedAttributeType #2
1089        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Purchase Cost")
1090        saveAndTest(extendedAttributeTypeInstance)
1091
1092        //ExtendedAttributeType #3
1093        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Serial Number")
1094        saveAndTest(extendedAttributeTypeInstance)
1095
1096        //ExtendedAttributeType #4
1097        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Manufactured Date")
1098        saveAndTest(extendedAttributeTypeInstance)
1099
1100        //ExtendedAttributeType #5
1101        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Location Description")
1102        saveAndTest(extendedAttributeTypeInstance)
1103
1104        //ExtendedAttributeType #6
1105        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Cost Centre")
1106        saveAndTest(extendedAttributeTypeInstance)
1107
1108        //ExtendedAttributeType #7
1109        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Cost Code")
1110        saveAndTest(extendedAttributeTypeInstance)
1111
1112        //ExtendedAttributeType #8
1113        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Manufacturer's Number")
1114        saveAndTest(extendedAttributeTypeInstance)
1115
1116        //ExtendedAttributeType #9
1117        extendedAttributeTypeInstance = new ExtendedAttributeType(name: "Inventory Number")
1118        saveAndTest(extendedAttributeTypeInstance)
1119    }
1120
[149]1121    def createBaseMaintenancePolicies() {
1122
1123        //MaintenancePolicy
1124        def maintenancePolicyInstance
1125
1126        //MaintenancePolicy #1
1127        maintenancePolicyInstance = new MaintenancePolicy(name: "Fixed Time")
1128        saveAndTest(maintenancePolicyInstance)
1129
1130        //MaintenancePolicy #2
1131        maintenancePolicyInstance = new MaintenancePolicy(name: "Condition Based Online")
1132        saveAndTest(maintenancePolicyInstance)
1133
1134        //MaintenancePolicy #3
1135        maintenancePolicyInstance = new MaintenancePolicy(name: "Condition Based Offline")
1136        saveAndTest(maintenancePolicyInstance)
1137
1138        //MaintenancePolicy #4
1139        maintenancePolicyInstance = new MaintenancePolicy(name: "Design Out")
1140        saveAndTest(maintenancePolicyInstance)
1141
1142        //MaintenancePolicy #5
1143        maintenancePolicyInstance = new MaintenancePolicy(name: "Operate To Failure")
1144        saveAndTest(maintenancePolicyInstance)
[275]1145
1146        //MaintenancePolicy #6
1147        maintenancePolicyInstance = new MaintenancePolicy(name: "Regulatory Requirement")
1148        saveAndTest(maintenancePolicyInstance)
1149
1150        //MaintenancePolicy #7
1151        maintenancePolicyInstance = new MaintenancePolicy(name: "Hidden Function Test")
1152        saveAndTest(maintenancePolicyInstance)
[149]1153    }
1154
1155    def createDemoTaskProcedure() {
1156
1157        //TaskProcedure
1158        def taskProcedureInstance
1159
1160        taskProcedureInstance = new TaskProcedure(name: "Daily check")
1161        saveAndTest(taskProcedureInstance)
1162        taskProcedureInstance.addToTasks(Task.get(1))
1163    }
1164
1165    def createDemoMaintenanceActions() {
1166
1167        //MaintenanceAction
1168        def maintenanceActionInstance
1169
1170        //MaintenanceAction #1
1171        maintenanceActionInstance = new MaintenanceAction(description: "Check all E-stops, activate E-stops S1-S12 and ensure machine cannot run",
1172                                                                                                        procedureStepNumber: 1,
1173                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
1174                                                                                                        taskProcedure: TaskProcedure.get(1))
1175        saveAndTest(maintenanceActionInstance)
1176
1177        //MaintenanceAction #2
1178        maintenanceActionInstance = new MaintenanceAction(description: "Do more pushups",
1179                                                                                                        procedureStepNumber: 2,
1180                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
1181                                                                                                        taskProcedure: TaskProcedure.get(1))
1182        saveAndTest(maintenanceActionInstance)
1183
1184        //MaintenanceAction #3
1185        maintenanceActionInstance = new MaintenanceAction(description: "Ok just one more pushup",
1186                                                                                                        procedureStepNumber: 3,
1187                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
1188                                                                                                        taskProcedure: TaskProcedure.get(1))
1189        saveAndTest(maintenanceActionInstance)
1190    }
1191
[268]1192    def createDemoSections() {
[149]1193
[268]1194        //Section
1195        def sectionInstance
[149]1196
[268]1197        //Section #1
[314]1198        sectionInstance = new Section(name: "Press",
1199                                                                description: "Press Section",
1200                                                                site: Site.get(3),
1201                                                                department: Department.get(1))
[268]1202        saveAndTest(sectionInstance)
[149]1203
[268]1204        //Section #2
[321]1205        sectionInstance = new Section(name: "CSM-Delig",
[314]1206                                                                description: "Pulp Delignification",
1207                                                                site: Site.get(1),
1208                                                                department: Department.get(2))
[268]1209        saveAndTest(sectionInstance)
[149]1210
[268]1211        //Section #3
[321]1212        sectionInstance = new Section(name: "CSM-Aux",
[314]1213                                                                description: "Auxilliary Section",
1214                                                                site: Site.get(1),
1215                                                                department: Department.get(1))
[268]1216        saveAndTest(sectionInstance)
[149]1217    }
1218
[276]1219    def createDemoAssetTree() {
[149]1220
[270]1221        //Asset
1222        def assetInstance
[149]1223
[270]1224        //Asset #1
[276]1225        def assetInstance1 = new Asset(name: "Print Tower 22",
[314]1226                                                                description: "Complete Printing Asset #22",
1227                                                                section: Section.get(1))
[276]1228        saveAndTest(assetInstance1)
[270]1229//        assetInstance.addToMaintenanceActions(MaintenanceAction.get(1))
[149]1230
[270]1231        //Asset #2
[276]1232        def assetInstance2 = new Asset(name: "Print Tower 21",
[314]1233                                                                description: "Complete Printing Asset #21",
1234                                                                section: Section.get(1))
[276]1235        saveAndTest(assetInstance2)
[149]1236
[270]1237        //Asset #3
[276]1238        def assetInstance3 = new Asset(name: "Print Tower 23",
[314]1239                                                                description: "Complete Printing Asset #23",
1240                                                                section: Section.get(1))
[276]1241        saveAndTest(assetInstance3)
[149]1242
[270]1243        //Asset #4
[321]1244        def assetInstance4 = new Asset(name: "C579",
[314]1245                                                                description: "RO #1",
1246                                                                section: Section.get(2))
[276]1247        saveAndTest(assetInstance4)
[149]1248
[270]1249        //AssetSubItem
1250        def assetSubItemInstance
[149]1251
[276]1252        //AssetSubItem #1 Level1
[314]1253        def assetSubItemInstance1 = new AssetSubItem(name: "Print Tower",
1254                                                                                            description: "Common sub asset.")
[276]1255        saveAndTest(assetSubItemInstance1)
[149]1256
[276]1257        // Add assetSubItemInstance1 to some assets.
1258        assetInstance1.addToAssetSubItems(assetSubItemInstance1)
1259        assetInstance2.addToAssetSubItems(assetSubItemInstance1)
1260        assetInstance3.addToAssetSubItems(assetSubItemInstance1)
1261
1262        //AssetSubItem #2 Level1
[321]1263        def assetSubItemInstance2 = new AssetSubItem(name: "C579-44",
1264                                                                                            description: "Tanks and towers")
[276]1265        saveAndTest(assetSubItemInstance2)
1266
1267        // Add assetSubItemInstance2 to some assets.
1268        assetInstance4.addToAssetSubItems(assetSubItemInstance2)
1269
1270        //AssetSubItem #3 Level1
[321]1271        def assetSubItemInstance3 = new AssetSubItem(name: "C579-20",
1272                                                                                            description: "Control Loops")
[276]1273        saveAndTest(assetSubItemInstance3)
1274
1275        // Add assetSubItemInstance3 to some assets.
1276        assetInstance4.addToAssetSubItems(assetSubItemInstance3)
1277
1278        //AssetSubItem #4 Level2
[321]1279        assetSubItemInstance = new AssetSubItem(name: "C579-TK-0022",
1280                                                                                            description: "Blow Tank",
1281                                                                                            parentItem: AssetSubItem.get(2))
1282        saveAndTest(assetSubItemInstance)
1283
1284        //AssetSubItem #5 Level2
1285        assetSubItemInstance = new AssetSubItem(name: "C579-TK-0023",
1286                                                                                            description: "Reactor Tower",
1287                                                                                            parentItem: AssetSubItem.get(2))
1288        saveAndTest(assetSubItemInstance)
1289
1290        //AssetSubItem #6 Level2
[314]1291        assetSubItemInstance = new AssetSubItem(name: "Print Unit",
1292                                                                                    description: "Print Unit - Common Level 2 sub item.",
1293                                                                                    parentItem: AssetSubItem.get(1))
[270]1294        saveAndTest(assetSubItemInstance)
[149]1295
[321]1296        //AssetSubItem #7 Level2
1297        assetSubItemInstance = new AssetSubItem(name: "1925365",
1298                                                                                    description: "Agitator",
1299                                                                                    parentItem: AssetSubItem.get(4))
[270]1300        saveAndTest(assetSubItemInstance)
[149]1301
[321]1302        //AssetSubItem #8 Level2
1303        assetSubItemInstance = new AssetSubItem(name: "1925366",
1304                                                                                    description: "Scraper",
1305                                                                                    parentItem: AssetSubItem.get(4))
[276]1306        saveAndTest(assetSubItemInstance)
1307
[321]1308        //AssetSubItem #9 Level3
[276]1309        assetSubItemInstance = new AssetSubItem(name: "Motor",
[314]1310                                                                                    description: "Motor - Level 3 sub item",
[321]1311                                                                                    parentItem: AssetSubItem.get(6))
[276]1312        saveAndTest(assetSubItemInstance)
1313
[321]1314        //AssetSubItem #10 Level3
[276]1315        assetSubItemInstance = new AssetSubItem(name: "Gearbox",
[314]1316                                                                                    description: "Gearbox - Level 3 sub item, gearbox",
[321]1317                                                                                    parentItem: AssetSubItem.get(6))
[276]1318        saveAndTest(assetSubItemInstance)
1319
[321]1320        //AssetSubItem #11 Level4
[276]1321        assetSubItemInstance = new AssetSubItem(name: "DS Bearing",
[314]1322                                                                                    description: "Drive Side Bearing",
[321]1323                                                                                    parentItem: AssetSubItem.get(9))
[276]1324        saveAndTest(assetSubItemInstance)
1325
[321]1326        //AssetSubItem #12 Level4
[276]1327        assetSubItemInstance = new AssetSubItem(name: "NDS Bearing",
[314]1328                                                                                    description: "Non Drive Side Bearing",
[321]1329                                                                                    parentItem: AssetSubItem.get(9))
[276]1330        saveAndTest(assetSubItemInstance)
[321]1331
1332        //AssetSubItem #13 Level2
1333        assetSubItemInstance = new AssetSubItem(name: "C579-F-0001",
1334                                                                                    description: "Weak Caustic Flow",
1335                                                                                    parentItem: AssetSubItem.get(3))
1336        saveAndTest(assetSubItemInstance)
1337
1338        //AssetSubItem #14 Level3
1339        assetSubItemInstance = new AssetSubItem(name: "C579-FT-0002",
1340                                                                                    description: "Weak Caustic Flow Transmitter",
1341                                                                                    parentItem: AssetSubItem.get(13))
1342        saveAndTest(assetSubItemInstance)
1343
1344        //AssetSubItem #15 Level3
1345        assetSubItemInstance = new AssetSubItem(name: "C579-PT-0003",
1346                                                                                    description: "Weak Caustic Pressure Transmitter",
1347                                                                                    parentItem: AssetSubItem.get(13))
1348        saveAndTest(assetSubItemInstance)
[276]1349    } // createDemoAssetTree()
1350
[149]1351    def createDemoAssetExtenedAttributes() {
1352
[270]1353        //AssetExtendedAttribute
1354        def assetExtendedAttributeInstance
1355
1356        //AssetExtendedAttribute #1
1357        assetExtendedAttributeInstance = new AssetExtendedAttribute(value: "PU Mark 2",
1358                                                                                                                    asset: Asset.get(1),
1359                                                                                                                    extendedAttributeType: ExtendedAttributeType.get(1))
1360        saveAndTest(assetExtendedAttributeInstance)
1361
1362        //AssetExtendedAttribute #2
1363        assetExtendedAttributeInstance = new AssetExtendedAttribute(value: "On the far side of Tank 5",
1364                                                                                                                    asset: Asset.get(1),
1365                                                                                                                    extendedAttributeType: ExtendedAttributeType.get(5))
1366        saveAndTest(assetExtendedAttributeInstance)
[149]1367    }
1368
1369
1370/****************************************
1371Call this function instead of .save()
1372*****************************************/
1373    private boolean saveAndTest(object) {
1374        if(!object.save()) {
1375//             DemoDataSuccessful = false
[199]1376            log.error "'${object}' failed to save!"
1377            log.error object.errors
[149]1378            return false
1379        }
1380        return true
1381    }
1382}
Note: See TracBrowser for help on using the repository browser.