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

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

Start of asset tree refactor.
Tweak AppConfig.groovy maxSize values and regenerate views.
Add page_copy.png

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