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

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

Add Department domain class, controller, views and demo data.
Add costCode and department attributes to SystemSection? and regen non-detailed controller and views, adjust detailed views to suite.

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