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

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

Record a taskModification for changes to assignedGroups and assignedPersons as per ticket #35.

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