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

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

Add support for inventory item Pictures and Images.
Add new PersonService, refactor CreateDataService and TaskService to suite.

File size: 43.8 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: "J-Rope",
757                                                                                    description: "Twine wound J-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: "L-Rope",
768                                                                                    description: "Twine wound L-Rope",
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.