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

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

Remove "Predictive Maintenance" TaskType.

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