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

Last change on this file since 185 was 185, checked in by gav, 12 years ago

Small refactor to use personService where appropriate.

File size: 43.9 KB
Line 
1/**
2* Provides a data service to create base and demo data.
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.
6*/
7class  CreateDataService {
8
9    boolean transactional = false
10
11    def personService
12    def taskService
13
14/*******************************************
15Start of Group methods.
16Generally use these methods to create data.
17*******************************************/
18
19    /**
20    * Always call this at startup to ensure admin access.
21    */
22    def ensureAdminAccess() {
23        if(!Authority.findByAuthority("ROLE_AppAdmin") ) {
24            println "ROLE_AppAdmin not found, calling createAdminAuthority()."
25            createAdminAuthority()
26        }
27        if(!Person.findByloginName("admin") ) {
28            println "LoginName 'admin' not found, calling createAdminPerson()."
29            createAdminPerson()
30        }
31    }
32
33    /**
34    * Create the base data required for the application to function.
35    */
36    def createBaseData() {
37        println "Creating base data..."
38        // Person and Utils
39        createBaseAuthorities()
40        createBasePersonGroups()
41        createBasePersons()
42        createBaseUnitsOfMeasure()
43        createBasePeriods()
44        createBaseSupplierType()
45        createBaseManufacturerType()
46        // Tasks
47        createBaseTaskGroups()
48        createBaseTaskStatus()
49        createBaseTaskPriorities()
50        createBaseTaskTypes()
51        createBaseTaskModificationTypes()
52        createBaseEntryTypes()
53        // Inventory
54        createBaseInventoryTypes()
55        createBaseInventoryMovementTypes()
56        createBaseMaintenancePolicies()
57        // Assets
58        createBaseAssetExtenededAttributeTypes()
59
60    }
61
62    /**
63    * Create demo data for some example sites.
64    */
65    def createDemoData() {
66        println "Creating demo data..."
67        // Person and Utils
68        createDemoPersons()
69        createDemoSites()
70        createDemoDepartments()
71        createDemoSuppliers()
72        createDemoManufacturers()
73        // Tasks
74        createDemoTasks()
75        createDemoEntries()
76        createDemoAssignedPersons()
77        createDemoTaskRecurringSchedules()
78        // Inventory
79        createDemoInventoryStores()  /// @todo: Perhaps a 'createQuickStartData' method?
80        createDemoInventoryLocations()
81        createDemoInventoryGroups() /// @todo: Perhaps a 'createQuickStartData' method?
82        createDemoInventoryItems()
83        // Assets
84        createDemoLifePlan()
85        createDemoTaskProcedure()
86        createDemoMaintenanceActions()
87        createDemoSystemSections()
88        createDemoAssetTypes()
89        createDemoAssemblies()
90        createDemoSubAssemblies()
91        createDemoComponentItems()
92        createDemoAssets()
93        createDemoAssetExtenedAttributes()
94    }
95
96/******************
97Start of Person
98*******************/
99
100    def createAdminAuthority() {
101        def authInstance
102
103        authInstance = new Authority(description:"Application Admin, not required for daily use! Grants full admin access to the application.",
104                                        authority:"ROLE_AppAdmin")
105        saveAndTest(authInstance)
106    }
107
108    def createBaseAuthorities() {
109
110        def authInstance
111
112        authInstance = new Authority(description:"Business manager, grants full management access.",
113                                        authority:"ROLE_Manager")
114        saveAndTest(authInstance)
115
116        authInstance = new Authority(description:"Application User, all application users need this base role to allow login.",
117                                        authority:"ROLE_AppUser")
118        saveAndTest(authInstance)
119    }
120
121    void createBasePersonGroups() {
122        //TypeOfPersonGroup
123        def personGroupTypeInstance
124            personGroupTypeInstance = new PersonGroupType(name:"Team")
125        saveAndTest(personGroupTypeInstance)
126            personGroupTypeInstance = new PersonGroupType(name:"Contractor")
127        saveAndTest(personGroupTypeInstance)
128            personGroupTypeInstance = new PersonGroupType(name:"ProjectTeam")
129        saveAndTest(personGroupTypeInstance)
130
131        //PersonGroup
132        def personGroupInstance
133            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
134                            name:"Electrical")
135        saveAndTest(personGroupInstance)
136            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
137                            name:"Mechanical")
138        saveAndTest(personGroupInstance)
139            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
140                            name:"Production")
141        saveAndTest(personGroupInstance)
142            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(2),
143                            name:"Kewl AirCon Guys")
144        saveAndTest(personGroupInstance)
145            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(3),
146                            name:"gnuMims")
147        saveAndTest(personGroupInstance)
148    }
149
150    def createAdminPerson() {
151        //Person
152        def passClearText = "pass"
153        def passwordEncoded = personService.encodePassword(passClearText)
154        def personInstance
155
156        //Person #1
157        personInstance = new Person(loginName:"admin",
158                                    firstName:"Admin",
159                                    lastName:"Powers",
160                                    pass:passClearText,
161                                    password:passwordEncoded,
162                                    email:"admin@example.com")
163        saveAndTest(personInstance)
164        personInstance.addToAuthorities(Authority.get(1))
165    }
166
167    def createBasePersons() {
168        //Person
169        def passClearText = "pass"
170        def passwordEncoded = personService.encodePassword(passClearText)
171        def personInstance
172
173        //Person #1 is admin.
174
175        //Person #2
176        personInstance = new Person(loginName:"manager",
177                                    firstName:"Demo",
178                                    lastName:"Manager",
179                                    pass:passClearText,
180                                    password:passwordEncoded,
181                                    email:"manager@example.com")
182        saveAndTest(personInstance)
183        personInstance.addToAuthorities(Authority.get(2))
184        personInstance.addToAuthorities(Authority.get(3))
185        personInstance.addToPersonGroups(PersonGroup.get(5))
186
187        //Person #3
188        personInstance = new Person(loginName:"user",
189                                    firstName:"Demo",
190                                    lastName:"User",
191                                    pass:passClearText,
192                                    password:passwordEncoded,
193                                    email:"user@example.com")
194        saveAndTest(personInstance)
195        personInstance.addToAuthorities(Authority.get(3))
196        personInstance.addToPersonGroups(PersonGroup.get(1))
197    }
198
199    def createDemoPersons() {
200        //Person
201        def passClearText = "pass"
202        def passwordEncoded = personService.encodePassword(passClearText)
203        def personInstance
204
205        //Person #4
206        personInstance = new Person(loginName:"craig",
207                                    firstName:"Craig",
208                                    lastName:"SuperSparky",
209                                    pass:passClearText,
210                                    password:passwordEncoded,
211                                    email:"user@example.com")
212        saveAndTest(personInstance)
213        personInstance.addToAuthorities(Authority.get(3))
214        personInstance.addToPersonGroups(PersonGroup.get(1))
215
216        //Person #5
217        personInstance = new Person(loginName:"john",
218                                    firstName:"John",
219                                    lastName:"SuperFitter",
220                                    pass:passClearText,
221                                    password:passwordEncoded,
222                                    email:"user@example.com")
223        saveAndTest(personInstance)
224        personInstance.addToAuthorities(Authority.get(3))
225        personInstance.addToPersonGroups(PersonGroup.get(2))
226
227        //Person #6
228        personInstance = new Person(loginName:"mann",
229                                    firstName:"Production",
230                                    lastName:"Mann",
231                                    pass:passClearText,
232                                    password:passwordEncoded,
233                                    email:"user@example.com")
234        saveAndTest(personInstance)
235        personInstance.addToAuthorities(Authority.get(3))
236        personInstance.addToPersonGroups(PersonGroup.get(3))
237    }
238
239/***********************
240START OF UTILITIES
241***********************/
242
243    def createDemoSites() {
244        //Site
245        def siteInstance
246
247        siteInstance = new Site(name: "Creek Mill")
248        saveAndTest(siteInstance)
249
250        siteInstance = new Site(name: "Jasper Street Depot")
251        saveAndTest(siteInstance)
252
253        siteInstance = new Site(name: "River Press")
254        saveAndTest(siteInstance)
255    }
256
257    def createDemoDepartments() {
258
259        //Department
260        def departmentInstance
261
262        //Department #1
263        departmentInstance = new Department(name: "Print Centre",
264                                                                                    site: Site.get(1))
265        saveAndTest(departmentInstance)
266
267        //Department #2
268        departmentInstance = new Department(name: "Pulp Mill 2",
269                                                                                    site: Site.get(2))
270        saveAndTest(departmentInstance)
271    }
272
273    def createBaseUnitsOfMeasure() {
274
275        //UnitOfMeasure
276        def unitOfMeasureInstance
277
278        //UnitOfMeasure #1
279        unitOfMeasureInstance = new UnitOfMeasure(name: "each")
280        saveAndTest(unitOfMeasureInstance)
281
282        //UnitOfMeasure #2
283        unitOfMeasureInstance = new UnitOfMeasure(name: "meter(s)")
284        saveAndTest(unitOfMeasureInstance)
285
286        //UnitOfMeasure #3
287        unitOfMeasureInstance = new UnitOfMeasure(name: "box(es)")
288        saveAndTest(unitOfMeasureInstance)
289
290        //UnitOfMeasure #4
291        unitOfMeasureInstance = new UnitOfMeasure(name: "litre(s)")
292        saveAndTest(unitOfMeasureInstance)
293
294        //UnitOfMeasure #5
295        unitOfMeasureInstance = new UnitOfMeasure(name: "kilogram(s)")
296        saveAndTest(unitOfMeasureInstance)
297    }
298
299    def createBasePeriods() {
300
301        //Period
302        def periodInstance
303
304        //Period #1
305        periodInstance = new Period(period: "Day(s)")
306        saveAndTest(periodInstance)
307
308        //Period #2
309        periodInstance = new Period(period: "Week(s)")
310        saveAndTest(periodInstance)
311
312        //Period #3
313        periodInstance = new Period(period: "Month(s)")
314        saveAndTest(periodInstance)
315
316        //Period #4
317        periodInstance = new Period(period: "Year(s)")
318        saveAndTest(periodInstance)
319    }
320
321    def createBaseSupplierType() {
322
323        // SupplierType
324        def supplierTypeInstance
325
326        // SupplierType #1
327        supplierTypeInstance = new SupplierType(name: "OEM",
328                                                                    description: "Original equipment supplier")
329        saveAndTest(supplierTypeInstance)
330
331        // SupplierType #2
332        supplierTypeInstance = new SupplierType(name: "Local",
333                                                                    description: "Local supplier")
334        saveAndTest(supplierTypeInstance)
335    }
336
337    def createBaseManufacturerType() {
338
339        // ManufacturerType
340        def manufacturerTypeInstance
341
342        // ManufacturerType #1
343        manufacturerTypeInstance = new ManufacturerType(name: "OEM",
344                                                                        description: "Original equipment manufacturer")
345        saveAndTest(manufacturerTypeInstance)
346
347        // ManufacturerType #2
348        manufacturerTypeInstance = new ManufacturerType(name: "Alternate",
349                                                                        description: "Not original equipment manufacturer")
350        saveAndTest(manufacturerTypeInstance)
351
352    }
353
354    def createDemoSuppliers() {
355
356        // Supplier
357        def supplierInstance
358
359        // Supplier #1
360        supplierInstance = new Supplier(name: "OEM Distributors",
361                                                                        supplierType: SupplierType.get(1))
362        saveAndTest(supplierInstance)
363
364        // Supplier #2
365        supplierInstance = new Supplier(name: "Mex Holdings",
366                                                                        supplierType: SupplierType.get(2))
367        saveAndTest(supplierInstance)
368    }
369
370    def createDemoManufacturers() {
371
372        // Manufacturer
373        def manufacturerInstance
374
375        // Manufacturer #1
376        manufacturerInstance = new Manufacturer(name: "OEM Manufacturer",
377                                                                        manufacturerType: ManufacturerType.get(1))
378        saveAndTest(manufacturerInstance)
379
380        // Manufacturer #2
381        manufacturerInstance = new Manufacturer(name: "Laser Cutting Services Pty",
382                                                                        manufacturerType: ManufacturerType.get(2))
383        saveAndTest(manufacturerInstance)
384    }
385
386/*********************
387START OF TASK
388*********************/
389
390    def createBaseTaskGroups() {
391        //TaskGroup
392        def taskGroupInstance
393
394        taskGroupInstance = new TaskGroup(name:"Engineering Activites",
395                                                                            description:"Engineering daily activities")
396        saveAndTest(taskGroupInstance)
397
398        taskGroupInstance = new TaskGroup(name:"Production Activites",
399                                                                            description:"Production daily activities")
400        saveAndTest(taskGroupInstance)
401
402        taskGroupInstance = new TaskGroup(name:"New Projects",
403                                                                            description:" ")
404        saveAndTest(taskGroupInstance)
405    }
406
407    def createBaseTaskStatus() {
408
409        //TaskStatus
410        def taskStatusInstance
411
412        taskStatusInstance = new TaskStatus(name:"Not Started") // #1
413        saveAndTest(taskStatusInstance)
414
415        taskStatusInstance = new TaskStatus(name:"In Progress") // #2
416        saveAndTest(taskStatusInstance)
417
418        taskStatusInstance = new TaskStatus(name:"Completed") // #3
419        saveAndTest(taskStatusInstance)
420    }
421
422    def createBaseTaskPriorities() {
423
424        //TaskPriority
425        def taskPriorityInstance
426
427        taskPriorityInstance = new TaskPriority(name:"Normal")
428        saveAndTest(taskPriorityInstance)
429
430        taskPriorityInstance = new TaskPriority(name:"Low")
431        saveAndTest(taskPriorityInstance)
432
433        taskPriorityInstance = new TaskPriority(name:"High")
434        saveAndTest(taskPriorityInstance)
435
436        taskPriorityInstance = new TaskPriority(name:"Immediate")
437        saveAndTest(taskPriorityInstance)
438    }
439
440    def createBaseTaskTypes() {
441
442        //TaskType
443        def taskTypeInstance
444
445        taskTypeInstance = new TaskType(name:"Unscheduled Breakin")
446        saveAndTest(taskTypeInstance)
447
448        taskTypeInstance = new TaskType(name:"Preventative Maintenance")
449        saveAndTest(taskTypeInstance)
450
451        taskTypeInstance = new TaskType(name:"Project")
452        saveAndTest(taskTypeInstance)
453
454        taskTypeInstance = new TaskType(name:"Turnaround")
455        saveAndTest(taskTypeInstance)
456
457        taskTypeInstance = new TaskType(name:"Production Run")
458        saveAndTest(taskTypeInstance)
459    }
460
461    def createBaseTaskModificationTypes() {
462
463        //ModificationType
464        def taskModificationTypeInstance
465        taskModificationTypeInstance = new TaskModificationType(name:"Created").save()  // #1
466        taskModificationTypeInstance = new TaskModificationType(name:"Started").save()  // #2
467        taskModificationTypeInstance = new TaskModificationType(name:"Modified").save()  // #3
468        taskModificationTypeInstance = new TaskModificationType(name:"Completed").save()  // #4
469        taskModificationTypeInstance = new TaskModificationType(name:"Reopened").save()  // #5
470        taskModificationTypeInstance = new TaskModificationType(name:"Trashed").save()  // #6
471        taskModificationTypeInstance = new TaskModificationType(name:"Restored").save()  // #7
472        taskModificationTypeInstance = new TaskModificationType(name:"Approved").save()  // #8
473        taskModificationTypeInstance = new TaskModificationType(name:"Renege approval").save()  // #9
474    }
475
476    def createDemoTasks() {
477
478        def taskResult
479        def p = [:]
480
481        //Task #1
482        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
483                taskStatus:TaskStatus.findByName("Not Started"),
484                taskPriority:TaskPriority.get(2),
485                taskType:TaskType.get(1),
486                leadPerson:Person.get(2),
487                description:"Check specific level sensor",
488                comment:"Has been noted as problematic, try recalibrating.",
489                targetStartDate:new Date()]
490
491        taskResult = taskService.create(p)
492
493        //Task #2
494        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
495                taskStatus:TaskStatus.findByName("Not Started"),
496                taskPriority:TaskPriority.get(2),
497                taskType:TaskType.get(1),
498                leadPerson:Person.get(5),
499                description:"Some follow-up work",
500                comment:"Some help required",
501                targetStartDate:new Date()+1,
502                parentTask: Task.get(1)]
503
504        taskResult = taskService.create(p)
505
506        //Task #3
507        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
508                taskStatus:TaskStatus.findByName("Not Started"),
509                taskPriority:TaskPriority.get(2),
510                taskType:TaskType.get(1),
511                leadPerson:Person.get(5),
512                description:"A Sub Task can be created by setting the Parent Task value",
513                comment:"Some help required",
514                targetStartDate:new Date()-1,
515                parentTask: Task.get(1)]
516
517        taskResult = taskService.create(p)
518
519        //Task #4
520        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
521                 taskStatus:TaskStatus.findByName("Not Started"),
522                 taskPriority:TaskPriority.get(2),
523                 taskType:TaskType.get(1),
524                 leadPerson:Person.get(4),
525                 description:"Replace sensor at next opportunity.",
526                 comment:"Nothing else has worked.",
527                targetStartDate:new Date()+7,
528                parentTask: Task.get(1)]
529
530        taskResult = taskService.create(p)
531
532        //Task #5
533        p = [taskGroup:TaskGroup.findByName("Production Activites"),
534                 taskStatus:TaskStatus.findByName("Not Started"),
535                 taskPriority:TaskPriority.get(2),
536                 taskType:TaskType.get(5),
537                 leadPerson:Person.get(6),
538                 description:"Production Report",
539                 comment:"Production report for specific production run or shift",
540                targetStartDate:new Date()-7]
541
542        taskResult = taskService.create(p)
543
544        //Task #6
545        p = [taskGroup:TaskGroup.findByName("New Projects"),
546                 taskStatus:TaskStatus.findByName("Not Started"),
547                 taskPriority:TaskPriority.get(2),
548                 taskType:TaskType.get(3),
549                 leadPerson:Person.get(1),
550                 description:"Make killer CMMS app",
551                 comment:"Use Grails and get a move on!",
552                targetStartDate:new Date()-6]
553
554        taskResult = taskService.create(p)
555    }
556
557    def createBaseEntryTypes() {
558
559        //EntryType
560        def entryTypeInstance
561
562        entryTypeInstance = new EntryType(name:"Fault")
563        saveAndTest(entryTypeInstance)
564
565        entryTypeInstance = new EntryType(name:"WorkDone")
566        saveAndTest(entryTypeInstance)
567
568        entryTypeInstance = new EntryType(name:"Production Note")
569        saveAndTest(entryTypeInstance)
570
571        entryTypeInstance = new EntryType(name:"Work Request")
572        saveAndTest(entryTypeInstance)
573    }
574
575    def createDemoEntries() {
576
577        //Entry
578        def entryInstance
579
580        //Entry #1
581        entryInstance = new Entry(enteredBy: Person.get(3),
582                                                    task: Task.get(1),
583                                                    entryType: EntryType.findByName("Fault"),
584                                                    comment: "This level sensor is causing us trouble.",
585                                                    durationMinute: 20)
586        saveAndTest(entryInstance)
587
588        //Entry #2
589        entryInstance = new Entry(enteredBy: Person.get(4),
590                                                    task: Task.get(1),
591                                                    entryType: EntryType.findByName("WorkDone"),
592                                                    comment: "Cleaned sensor, see how it goes.",
593                                                    durationMinute: 30)
594        saveAndTest(entryInstance)
595
596        //Entry #3
597        entryInstance = new Entry(enteredBy: Person.get(4),
598                                                    task: Task.get(1),
599                                                    entryType: EntryType.findByName("WorkDone"),
600                                                    comment: "Checked up on it later and sensor is dropping out intermittently, created subTask to replace sensor.",
601                                                    durationMinute: 20)
602        saveAndTest(entryInstance)
603    }
604
605    def createDemoAssignedPersons() {
606
607        //AssignedPerson
608        def assignedPersonInstance
609
610        //AssignedPerson #1
611        assignedPersonInstance = new AssignedPerson(person: Person.get(4),
612                                                                                        task: Task.get(1),
613                                                                                        estimatedHour: 1,
614                                                                                        estimatedMinute: 20)
615        saveAndTest(assignedPersonInstance)
616
617        //AssignedPerson #2
618        assignedPersonInstance = new AssignedPerson(person: Person.get(5),
619                                                                                        task: Task.get(1),
620                                                                                        estimatedHour: 3,
621                                                                                        estimatedMinute: 30)
622        saveAndTest(assignedPersonInstance)
623    }
624
625    def createDemoTaskRecurringSchedules() {
626
627        //TaskRecurringSchedule
628        def taskRecurringScheduleInstance
629
630        //TaskRecurringSchedule #1
631        taskRecurringScheduleInstance = new TaskRecurringSchedule(task: Task.get(1),
632                                                                                                    recurEvery: 1,
633                                                                                                    recurPeriod: Period.get(1),
634                                                                                                    startDate: new Date(),
635                                                                                                    generateAhead: 1,
636                                                                                                    generateAheadPeriod: Period.get(1),
637                                                                                                    taskDuration: 1,
638                                                                                                    taskDurationPeriod: Period.get(1))
639        saveAndTest(taskRecurringScheduleInstance)
640
641        //TaskRecurringSchedule #2
642        taskRecurringScheduleInstance = new TaskRecurringSchedule(task: Task.get(2),
643                                                                                                    recurEvery: 1,
644                                                                                                    recurPeriod: Period.get(1),
645                                                                                                    startDate: new Date(),
646                                                                                                    generateAhead: 1,
647                                                                                                    generateAheadPeriod: Period.get(1),
648                                                                                                    taskDuration: 1,
649                                                                                                    taskDurationPeriod: Period.get(1))
650        saveAndTest(taskRecurringScheduleInstance)
651    }
652
653/*************************
654START OF INVENTORY
655**************************/
656
657    def createDemoInventoryStores() {
658
659        //InventoryStore
660        def inventoryStoreInstance
661
662        inventoryStoreInstance = new InventoryStore(site: Site.get(1), name: "Store #1")
663        saveAndTest(inventoryStoreInstance)
664
665        inventoryStoreInstance = new InventoryStore(site: Site.get(2), name: "Store #2")
666        saveAndTest(inventoryStoreInstance)
667    }
668
669    def createDemoInventoryLocations() {
670
671        // InventoryLocation
672        def inventoryLocation
673
674        inventoryLocation = new InventoryLocation(inventoryStore: InventoryStore.get(1), name: "A1-2")
675        saveAndTest(inventoryLocation)
676
677        inventoryLocation = new InventoryLocation(inventoryStore: InventoryStore.get(1), name: "C55")
678        saveAndTest(inventoryLocation)
679    }
680
681    def createDemoInventoryGroups() {
682
683        //InventoryGroup
684        def inventoryGroupInstance
685
686        //InventoryGroup #1
687        inventoryGroupInstance = new InventoryGroup(name: "Misc")
688        saveAndTest(inventoryGroupInstance)
689
690        //InventoryGroup #2
691        inventoryGroupInstance = new InventoryGroup(name: "Electrical")
692        saveAndTest(inventoryGroupInstance)
693
694        //InventoryGroup #3
695        inventoryGroupInstance = new InventoryGroup(name: "Mechanical")
696        saveAndTest(inventoryGroupInstance)
697
698        //InventoryGroup #4
699        inventoryGroupInstance = new InventoryGroup(name: "Production")
700        saveAndTest(inventoryGroupInstance)
701    }
702
703    def createBaseInventoryTypes() {
704
705        //InventoryType
706        def inventoryTypeInstance
707
708        inventoryTypeInstance = new InventoryType(name: "Consumable")
709        saveAndTest(inventoryTypeInstance)
710
711        inventoryTypeInstance = new InventoryType(name: "Repairable")
712        saveAndTest(inventoryTypeInstance)
713    }
714
715    def createBaseInventoryMovementTypes() {
716
717        // InventoryMovementType
718        def inventoryMovementTypeInstance
719
720        // InventoryMovementType #1
721        inventoryMovementTypeInstance = new InventoryMovementType(name: "Used",
722                                                                                                                        incrementsInventory: false)
723        saveAndTest(inventoryMovementTypeInstance)
724
725        // InventoryMovementType #2
726        inventoryMovementTypeInstance = new InventoryMovementType(name: "Repaired",
727                                                                                                                        incrementsInventory: true)
728        saveAndTest(inventoryMovementTypeInstance)
729
730        // InventoryMovementType #3
731        inventoryMovementTypeInstance = new InventoryMovementType(name: "Purchase Received",
732                                                                                                                        incrementsInventory: true)
733        saveAndTest(inventoryMovementTypeInstance)
734
735        // InventoryMovementType #4
736        inventoryMovementTypeInstance = new InventoryMovementType(name: "Correction Increase",
737                                                                                                                        incrementsInventory: true)
738        saveAndTest(inventoryMovementTypeInstance)
739
740        // InventoryMovementType #5
741        inventoryMovementTypeInstance = new InventoryMovementType(name: "Correction Decrease",
742                                                                                                                        incrementsInventory: false)
743        saveAndTest(inventoryMovementTypeInstance)
744    }
745
746    def createDemoInventoryItems() {
747
748        //InventoryItem
749        def inventoryItemInstance
750
751        //InventoryItem #1
752        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(1),
753                                                                                    inventoryType: InventoryType.get(1),
754                                                                                    unitOfMeasure: UnitOfMeasure.get(2),
755                                                                                    inventoryLocation: InventoryLocation.get(1),
756                                                                                    name: "Hemp rope",
757                                                                                    description: "Natural hemp rope.",
758                                                                                    unitsInStock: 2,
759                                                                                    reorderPoint: 0)
760        saveAndTest(inventoryItemInstance)
761
762        //InventoryItem #2
763        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(1),
764                                                                                    inventoryType: InventoryType.get(1),
765                                                                                    unitOfMeasure: UnitOfMeasure.get(2),
766                                                                                    inventoryLocation: InventoryLocation.get(1),
767                                                                                    name: "Cotton Rope 12mm",
768                                                                                    description: "A soft natural rope made from cotton.",
769                                                                                    alternateItems: InventoryItem.get(1),
770                                                                                    unitsInStock: 2,
771                                                                                    reorderPoint: 0)
772        saveAndTest(inventoryItemInstance)
773
774        //InventoryItem #3
775        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(3),
776                                                                                    inventoryType: InventoryType.get(1),
777                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
778                                                                                    inventoryLocation: InventoryLocation.get(2),
779                                                                                    name: "2305-2RS",
780                                                                                    description: "Bearing 25x62x24mm double row self aligning ball",
781                                                                                    unitsInStock: 3,
782                                                                                    reorderPoint: 2)
783        saveAndTest(inventoryItemInstance)
784
785        //InventoryItem #4
786        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(2),
787                                                                                    inventoryType: InventoryType.get(1),
788                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
789                                                                                    inventoryLocation: InventoryLocation.get(2),
790                                                                                    name: "L1592-K10",
791                                                                                    description: "10kW contactor",
792                                                                                    unitsInStock: 4,
793                                                                                    reorderPoint: 0)
794        saveAndTest(inventoryItemInstance)
795
796        //InventoryItem #5
797        inventoryItemInstance = new InventoryItem(inventoryGroup: InventoryGroup.get(3),
798                                                                                    inventoryType: InventoryType.get(1),
799                                                                                    unitOfMeasure: UnitOfMeasure.get(1),
800                                                                                    inventoryLocation: InventoryLocation.get(2),
801                                                                                    name: "6205-ZZ",
802                                                                                    description: "Bearing 25x52x15mm single row ball shielded",
803                                                                                    unitsInStock: 5,
804                                                                                    reorderPoint: 2)
805        saveAndTest(inventoryItemInstance)
806    }
807
808/*******************
809START OF ASSET
810*******************/
811
812    def createDemoLifePlan() {
813
814        //LifePlan
815        def lifeplanInstance
816
817        lifeplanInstance = new LifePlan(name: "Initial Plan")
818        saveAndTest(lifeplanInstance)
819    }
820
821    def createBaseMaintenancePolicies() {
822
823        //MaintenancePolicy
824        def maintenancePolicyInstance
825
826        //MaintenancePolicy #1
827        maintenancePolicyInstance = new MaintenancePolicy(name: "Fixed Time")
828        saveAndTest(maintenancePolicyInstance)
829
830        //MaintenancePolicy #2
831        maintenancePolicyInstance = new MaintenancePolicy(name: "Condition Based Online")
832        saveAndTest(maintenancePolicyInstance)
833
834        //MaintenancePolicy #3
835        maintenancePolicyInstance = new MaintenancePolicy(name: "Condition Based Offline")
836        saveAndTest(maintenancePolicyInstance)
837
838        //MaintenancePolicy #4
839        maintenancePolicyInstance = new MaintenancePolicy(name: "Design Out")
840        saveAndTest(maintenancePolicyInstance)
841
842        //MaintenancePolicy #5
843        maintenancePolicyInstance = new MaintenancePolicy(name: "Operate To Failure")
844        saveAndTest(maintenancePolicyInstance)
845    }
846
847    def createDemoTaskProcedure() {
848
849        //TaskProcedure
850        def taskProcedureInstance
851
852        taskProcedureInstance = new TaskProcedure(name: "Daily check")
853        saveAndTest(taskProcedureInstance)
854        taskProcedureInstance.addToTasks(Task.get(1))
855    }
856
857    def createDemoMaintenanceActions() {
858
859        //MaintenanceAction
860        def maintenanceActionInstance
861
862        //MaintenanceAction #1
863        maintenanceActionInstance = new MaintenanceAction(description: "Check all E-stops, activate E-stops S1-S12 and ensure machine cannot run",
864                                                                                                        procedureStepNumber: 1,
865                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
866                                                                                                        taskProcedure: TaskProcedure.get(1))
867        saveAndTest(maintenanceActionInstance)
868
869        //MaintenanceAction #2
870        maintenanceActionInstance = new MaintenanceAction(description: "Do more pushups",
871                                                                                                        procedureStepNumber: 2,
872                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
873                                                                                                        taskProcedure: TaskProcedure.get(1))
874        saveAndTest(maintenanceActionInstance)
875
876        //MaintenanceAction #3
877        maintenanceActionInstance = new MaintenanceAction(description: "Ok just one more pushup",
878                                                                                                        procedureStepNumber: 3,
879                                                                                                        maintenancePolicy: MaintenancePolicy.get(1),
880                                                                                                        taskProcedure: TaskProcedure.get(1))
881        saveAndTest(maintenanceActionInstance)
882    }
883
884    def createDemoSystemSections() {
885
886        //SystemSection
887        def systemSectionInstance
888
889        //SystemSection #1
890        systemSectionInstance = new SystemSection(name: "Press Section",
891                                                                                    site: Site.get(1),
892                                                                                    department: Department.get(1))
893        saveAndTest(systemSectionInstance)
894
895        //SystemSection #2
896        systemSectionInstance = new SystemSection(name: "RO System",
897                                                                                    site: Site.get(2),
898                                                                                    department: Department.get(2))
899        saveAndTest(systemSectionInstance)
900
901        //SystemSection #3
902        systemSectionInstance = new SystemSection(name: "Auxilliray Section",
903                                                                                    site: Site.get(1),
904                                                                                    department: Department.get(1))
905        saveAndTest(systemSectionInstance)
906    }
907
908    def createDemoAssetTypes() {
909
910        //AssetType
911        def assetTypeInstance
912
913        //AssetType #1
914        assetTypeInstance = new AssetType(name: "Print Unit")
915        saveAndTest(assetTypeInstance)
916
917        //AssetType #2
918        assetTypeInstance = new AssetType(name: "Reactor Tower")
919        saveAndTest(assetTypeInstance)
920    }
921
922    def createDemoAssemblies() {
923
924        //Assembly
925        def assemblyInstance
926
927        //Assembly #1
928        assemblyInstance = new Assembly(name: "Print Couple",
929                                                                        assetType: AssetType.get(1))
930        saveAndTest(assemblyInstance)
931//        assemblyInstance.addToMaintenanceActions(MaintenanceAction.get(1))
932
933        //Assembly #2
934        assemblyInstance = new Assembly(name: "Agitator",
935                                                                        assetType: AssetType.get(2))
936        saveAndTest(assemblyInstance)
937    }
938
939    def createDemoSubAssemblies() {
940
941        //SubAssembly
942        def subAssemblyInstance
943
944        //SubAssembly #1
945        subAssemblyInstance = new SubAssembly(name: "Cylinder",
946                                                                                    assembly: Assembly.get(1))
947        saveAndTest(subAssemblyInstance)
948
949         //SubAssembly #2
950        subAssemblyInstance = new SubAssembly(name: "Gearmotor",
951                                                                                    assembly: Assembly.get(2))
952        saveAndTest(subAssemblyInstance)
953    }
954
955    def createDemoComponentItems() {
956
957        //ComponentItem
958        def componentItemInstance
959
960        //ComponentItem #1
961        componentItemInstance = new ComponentItem(name: "Bearing",
962                                                                                            subAssembly: SubAssembly.get(1))
963        saveAndTest(componentItemInstance)
964
965         //ComponentItem #2
966        componentItemInstance = new ComponentItem(name: "Drive shaft oil seal",
967                                                                                            subAssembly: SubAssembly.get(2))
968        saveAndTest(componentItemInstance)
969    }
970
971    def createDemoAssets() {
972
973        //Asset
974        def assetInstance
975
976        //Asset #1
977        assetInstance = new Asset(name: "Print Unit 22",
978                                                        assetType: AssetType.get(1),
979                                                        systemSection: SystemSection.get(1))
980        saveAndTest(assetInstance)
981//        assetInstance.addToMaintenanceActions(MaintenanceAction.get(1))
982
983        //Asset #2
984        assetInstance = new Asset(name: "Print Unit 21",
985                                                        assetType: AssetType.get(1),
986                                                        systemSection: SystemSection.get(1))
987        saveAndTest(assetInstance)
988
989        //Asset #3
990        assetInstance = new Asset(name: "Print Unit 23",
991                                                        assetType: AssetType.get(1),
992                                                        systemSection: SystemSection.get(1))
993        saveAndTest(assetInstance)
994
995        //Asset #4
996        assetInstance = new Asset(name: "RO 1",
997                                                        assetType: AssetType.get(2),
998                                                        systemSection: SystemSection.get(2))
999        saveAndTest(assetInstance)
1000    }
1001
1002    def createBaseAssetExtenededAttributeTypes() {
1003
1004        //AssetExtendedAttributeType
1005        def assetExtendedAttributeInstanceType
1006
1007        //AssetExtendedAttributeType #1
1008        assetExtendedAttributeInstanceType = new AssetExtendedAttributeType(name: "Model Number")
1009        saveAndTest(assetExtendedAttributeInstanceType)
1010
1011        //AssetExtendedAttributeType #2
1012        assetExtendedAttributeInstanceType = new AssetExtendedAttributeType(name: "Purchase Cost")
1013        saveAndTest(assetExtendedAttributeInstanceType)
1014
1015        //AssetExtendedAttributeType #3
1016        assetExtendedAttributeInstanceType = new AssetExtendedAttributeType(name: "Serial Number")
1017        saveAndTest(assetExtendedAttributeInstanceType)
1018
1019        //AssetExtendedAttributeType #4
1020        assetExtendedAttributeInstanceType = new AssetExtendedAttributeType(name: "Manufactured Date")
1021        saveAndTest(assetExtendedAttributeInstanceType)
1022
1023        //AssetExtendedAttributeType #5
1024        assetExtendedAttributeInstanceType = new AssetExtendedAttributeType(name: "Location Description")
1025        saveAndTest(assetExtendedAttributeInstanceType)
1026    }
1027
1028    def createDemoAssetExtenedAttributes() {
1029
1030        //AssetExtendedAttribute
1031        def assetExtendedAttributeInstance
1032
1033        //AssetExtendedAttribute #1
1034        assetExtendedAttributeInstance = new AssetExtendedAttribute(value: "PU Mark 2",
1035                                                                                                                    asset: Asset.get(1),
1036                                                                                                                    assetExtendedAttributeType: AssetExtendedAttributeType.get(1))
1037        saveAndTest(assetExtendedAttributeInstance)
1038
1039        //AssetExtendedAttribute #2
1040        assetExtendedAttributeInstance = new AssetExtendedAttribute(value: "On the far side of Tank 5",
1041                                                                                                                    asset: Asset.get(1),
1042                                                                                                                    assetExtendedAttributeType: AssetExtendedAttributeType.get(5))
1043        saveAndTest(assetExtendedAttributeInstance)
1044    }
1045
1046
1047/****************************************
1048Call this function instead of .save()
1049*****************************************/
1050    private boolean saveAndTest(object) {
1051        if(!object.save()) {
1052//             DemoDataSuccessful = false
1053            println "'${object}' failed to save!"
1054            println object.errors
1055            return false
1056        }
1057        return true
1058    }
1059}
Note: See TracBrowser for help on using the repository browser.