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
RevLine 
[149]1/**
2* Provides a data service to create base and demo data.
[180]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.
[149]6*/
7class  CreateDataService {
8
9    boolean transactional = false
10
[182]11    def personService
[180]12    def taskService
[210]13    def dateUtilService
[237]14    def appConfigService
[251]15    def assignedGroupService
16    def assignedPersonService
[180]17
[149]18/*******************************************
19Start of Group methods.
20Generally use these methods to create data.
21*******************************************/
22
23    /**
[199]24    * Always call this at startup to ensure that we have admin access
25    * and that the system pseudo person is available.
[149]26    */
[199]27    def ensureSystemAndAdminAccess() {
[149]28        if(!Authority.findByAuthority("ROLE_AppAdmin") ) {
[199]29            log.warn "ROLE_AppAdmin not found, calling createAdminAuthority()."
[149]30            createAdminAuthority()
31        }
[199]32        if(!Person.findByloginName("system") ) {
33            log.warn "LoginName 'system' not found, calling createSystemPerson()."
34            createSystemPerson()
35        }
[149]36        if(!Person.findByloginName("admin") ) {
[199]37            log.warn "LoginName 'admin' not found, calling createAdminPerson()."
[149]38            createAdminPerson()
39        }
40    }
41
42    /**
43    * Create the base data required for the application to function.
44    */
45    def createBaseData() {
[237]46
47        if(appConfigService.exists("baseDataCreated")) {
48            log.error "Base data has already been created, will NOT recreate."
49            return false
50        }
51
[199]52        log.info "Creating base data..."
[237]53
[149]54        // Person and Utils
55        createBaseAuthorities()
56        createBasePersonGroups()
57        createBaseUnitsOfMeasure()
58        createBasePeriods()
[175]59        createBaseSupplierType()
60        createBaseManufacturerType()
[237]61
[149]62        // Tasks
[180]63        createBaseTaskGroups()
[149]64        createBaseTaskStatus()
65        createBaseTaskPriorities()
66        createBaseTaskTypes()
[180]67        createBaseTaskModificationTypes()
[149]68        createBaseEntryTypes()
[237]69
[149]70        // Inventory
71        createBaseInventoryTypes()
[175]72        createBaseInventoryMovementTypes()
[149]73        createBaseMaintenancePolicies()
[237]74
[149]75        // Assets
76        createBaseAssetExtenededAttributeTypes()
77
[237]78        // Record that data has been created.
79        appConfigService.set("baseDataCreated")
[149]80    }
81
82    /**
83    * Create demo data for some example sites.
84    */
85    def createDemoData() {
[237]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
[199]102        log.info "Creating demo data..."
[237]103
[149]104        // Person and Utils
105        createDemoPersons()
106        createDemoSites()
[162]107        createDemoDepartments()
[175]108        createDemoSuppliers()
109        createDemoManufacturers()
[237]110
[149]111        // Tasks
112        createDemoTasks()
113        createDemoEntries()
[242]114        createDemoAssignedGroups()
[241]115        createDemoAssignedPersons()
[149]116        createDemoTaskRecurringSchedules()
[237]117
[149]118        // Inventory
119        createDemoInventoryStores()  /// @todo: Perhaps a 'createQuickStartData' method?
[175]120        createDemoInventoryLocations()
[149]121        createDemoInventoryGroups() /// @todo: Perhaps a 'createQuickStartData' method?
122        createDemoInventoryItems()
[237]123
[149]124        // Assets
125        createDemoLifePlan()
126        createDemoTaskProcedure()
127        createDemoMaintenanceActions()
128        createDemoSystemSections()
129        createDemoAssetTypes()
130        createDemoAssemblies()
131        createDemoSubAssemblies()
132        createDemoComponentItems()
133        createDemoAssets()
134        createDemoAssetExtenedAttributes()
[237]135
136        // Record that data has been created.
137        appConfigService.set("demoDataCreated")
[149]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
[164]168            personGroupTypeInstance = new PersonGroupType(name:"Team")
[149]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
[164]177            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
[149]178                            name:"Electrical")
179        saveAndTest(personGroupInstance)
[164]180            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
[149]181                            name:"Mechanical")
182        saveAndTest(personGroupInstance)
[164]183            personGroupInstance = new PersonGroup(personGroupType:PersonGroupType.get(1),
[149]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
[199]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
[149]212    def createAdminPerson() {
213        //Person
214        def passClearText = "pass"
[182]215        def passwordEncoded = personService.encodePassword(passClearText)
[149]216        def personInstance
217
[199]218        //Person #2
[149]219        personInstance = new Person(loginName:"admin",
220                                    firstName:"Admin",
221                                    lastName:"Powers",
[199]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'. ''',
[149]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() {
[199]232    }
233
234    def createDemoPersons() {
[149]235        //Person
236        def passClearText = "pass"
[182]237        def passwordEncoded = personService.encodePassword(passClearText)
[149]238        def personInstance
239
[199]240        //Person #1 is system.
241        //Person #2 is admin.
[149]242
[199]243        //Person #3
[149]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))
[164]253        personInstance.addToPersonGroups(PersonGroup.get(5))
[149]254
[199]255        //Person #4
[149]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))
[164]264        personInstance.addToPersonGroups(PersonGroup.get(1))
[149]265
[199]266        //Person #5
[149]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))
[164]275        personInstance.addToPersonGroups(PersonGroup.get(1))
[149]276
[199]277        //Person #6
[149]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))
[164]286        personInstance.addToPersonGroups(PersonGroup.get(2))
[149]287
[199]288        //Person #7
[149]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))
[164]297        personInstance.addToPersonGroups(PersonGroup.get(3))
[149]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)
[162]313
314        siteInstance = new Site(name: "River Press")
315        saveAndTest(siteInstance)
[149]316    }
317
[162]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
[149]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
[175]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
[149]447/*********************
448START OF TASK
449*********************/
450
[180]451    def createBaseTaskGroups() {
[149]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
[181]473        taskStatusInstance = new TaskStatus(name:"Not Started") // #1
[149]474        saveAndTest(taskStatusInstance)
475
[181]476        taskStatusInstance = new TaskStatus(name:"In Progress") // #2
[149]477        saveAndTest(taskStatusInstance)
478
[222]479        taskStatusInstance = new TaskStatus(name:"Complete") // #3
[149]480        saveAndTest(taskStatusInstance)
481    }
482
483    def createBaseTaskPriorities() {
484
485        //TaskPriority
486        def taskPriorityInstance
487
[199]488        taskPriorityInstance = new TaskPriority(name:"Normal") // #1
[149]489        saveAndTest(taskPriorityInstance)
490
[199]491        taskPriorityInstance = new TaskPriority(name:"Low") // #2
[149]492        saveAndTest(taskPriorityInstance)
493
[199]494        taskPriorityInstance = new TaskPriority(name:"High") // #3
[149]495        saveAndTest(taskPriorityInstance)
496
[199]497        taskPriorityInstance = new TaskPriority(name:"Immediate") // #4
[149]498        saveAndTest(taskPriorityInstance)
499    }
500
501    def createBaseTaskTypes() {
502
503        //TaskType
504        def taskTypeInstance
505
[199]506        taskTypeInstance = new TaskType(name:"Unscheduled Breakin") // #1
[149]507        saveAndTest(taskTypeInstance)
508
[199]509        taskTypeInstance = new TaskType(name:"Preventative Maintenance") // #2
[149]510        saveAndTest(taskTypeInstance)
511
[199]512        taskTypeInstance = new TaskType(name:"Project") // #3
[149]513        saveAndTest(taskTypeInstance)
514
[199]515        taskTypeInstance = new TaskType(name:"Turnaround") // #4
[149]516        saveAndTest(taskTypeInstance)
517
[199]518        taskTypeInstance = new TaskType(name:"Production Run") // #5
[149]519        saveAndTest(taskTypeInstance)
520    }
521
[180]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
[251]535        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Assigned Groups)").save()  // #10
536        taskModificationTypeInstance = new TaskModificationType(name:"Modified (Assigned Persons)").save()  // #11
[180]537    }
538
[149]539    def createDemoTasks() {
540
[180]541        def taskResult
542        def p = [:]
[149]543
544        //Task #1
[180]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.",
[210]551                targetStartDate: dateUtilService.today]
[149]552
[180]553        taskResult = taskService.create(p)
554
[149]555        //Task #2
[180]556        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
[149]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",
[210]562                targetStartDate: dateUtilService.tomorrow,
[180]563                parentTask: Task.get(1)]
[149]564
[180]565        taskResult = taskService.create(p)
566
[149]567        //Task #3
[180]568        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
[149]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",
[210]574                targetStartDate: dateUtilService.yesterday,
[180]575                parentTask: Task.get(1)]
[149]576
[180]577        taskResult = taskService.create(p)
578
[149]579        //Task #4
[180]580        p = [taskGroup:TaskGroup.findByName("Engineering Activites"),
[149]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.",
[210]586                targetStartDate: dateUtilService.oneWeekFromNow,
[180]587                parentTask: Task.get(1)]
[149]588
[180]589        taskResult = taskService.create(p)
590
[149]591        //Task #5
[180]592        p = [taskGroup:TaskGroup.findByName("Production Activites"),
[149]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",
[210]598                targetStartDate: dateUtilService.today - 6]
[149]599
[180]600        taskResult = taskService.create(p)
601
[149]602        //Task #6
[199]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.",
[210]609                targetStartDate: dateUtilService.today]
[180]610
611        taskResult = taskService.create(p)
[149]612    }
613
614    def createBaseEntryTypes() {
615
616        //EntryType
617        def entryTypeInstance
618
[190]619        entryTypeInstance = new EntryType(name:"Fault") // #1
[149]620        saveAndTest(entryTypeInstance)
621
[190]622        entryTypeInstance = new EntryType(name:"Work Done") // #2
[149]623        saveAndTest(entryTypeInstance)
624
[190]625        entryTypeInstance = new EntryType(name:"Production Note") // #3
[149]626        saveAndTest(entryTypeInstance)
627
[190]628        entryTypeInstance = new EntryType(name:"Work Request") // #4
[149]629        saveAndTest(entryTypeInstance)
630    }
631
632    def createDemoEntries() {
633
[190]634        def entryResult
635        def p = [:]
[149]636
637        //Entry #1
[190]638        p = [task: Task.get(1),
639                entryType: EntryType.get(1),
640                comment: "This level sensor is causing us trouble.",
641                durationMinute: 20]
[149]642
[190]643        entryResult = taskService.createEntry(p)
644
[149]645        //Entry #2
[190]646        p = [task: Task.get(1),
647                entryType: EntryType.get(2),
648                comment: "Cleaned sensor, see how it goes.",
649                durationMinute: 30]
[149]650
[190]651        entryResult = taskService.createEntry(p)
652
[149]653        //Entry #3
[190]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)
[149]660    }
661
[242]662    def createDemoAssignedGroups() {
663
[251]664        def result
665        def p = [:]
[242]666
667        //AssignedGroup #1
[251]668        p = [personGroup: PersonGroup.get(1),
669                task: Task.get(1),
670                estimatedHour: 2,
671                estimatedMinute: 30]
672        result = assignedGroupService.save(p)
[242]673
674        //AssignedGroup #2
[251]675        p = [personGroup: PersonGroup.get(2),
676                task: Task.get(1),
677                estimatedHour: 1,
678                estimatedMinute: 0]
679        result = assignedGroupService.save(p)
[242]680    }
681
[241]682    def createDemoAssignedPersons() {
[149]683
[251]684        def result
685        def p = [:]
[149]686
[241]687        //AssignedPerson #1
[251]688        p = [person: Person.get(4),
689                task: Task.get(1),
690                estimatedHour: 1,
691                estimatedMinute: 20]
692        result = assignedPersonService.save(p)
[149]693
[241]694        //AssignedPerson #2
[251]695        p = [person: Person.get(5),
696                task: Task.get(1),
697                estimatedHour: 3,
698                estimatedMinute: 30]
699        result = assignedPersonService.save(p)
[149]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,
[199]710                                                                                                    recurPeriod: Period.get(2),
[210]711                                                                                                    nextTargetStartDate: dateUtilService.today,
[149]712                                                                                                    generateAhead: 1,
[199]713                                                                                                    taskDuration: 2,
714                                                                                                    taskDurationPeriod: Period.get(1),
715                                                                                                    enabled: false)
[149]716        saveAndTest(taskRecurringScheduleInstance)
717
718        //TaskRecurringSchedule #2
[199]719        taskRecurringScheduleInstance = new TaskRecurringSchedule(task: Task.get(6),
[149]720                                                                                                    recurEvery: 1,
721                                                                                                    recurPeriod: Period.get(1),
[210]722                                                                                                    nextTargetStartDate: dateUtilService.today,
[149]723                                                                                                    generateAhead: 1,
724                                                                                                    taskDuration: 1,
[199]725                                                                                                    taskDurationPeriod: Period.get(1),
726                                                                                                    enabled: true)
[149]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
[175]746    def createDemoInventoryLocations() {
[149]747
[175]748        // InventoryLocation
749        def inventoryLocation
[149]750
[175]751        inventoryLocation = new InventoryLocation(inventoryStore: InventoryStore.get(1), name: "A1-2")
752        saveAndTest(inventoryLocation)
[149]753
[175]754        inventoryLocation = new InventoryLocation(inventoryStore: InventoryStore.get(1), name: "C55")
755        saveAndTest(inventoryLocation)
[149]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
[175]792    def createBaseInventoryMovementTypes() {
793
794        // InventoryMovementType
795        def inventoryMovementTypeInstance
796
797        // InventoryMovementType #1
[177]798        inventoryMovementTypeInstance = new InventoryMovementType(name: "Used",
799                                                                                                                        incrementsInventory: false)
[175]800        saveAndTest(inventoryMovementTypeInstance)
801
802        // InventoryMovementType #2
[177]803        inventoryMovementTypeInstance = new InventoryMovementType(name: "Repaired",
804                                                                                                                        incrementsInventory: true)
[175]805        saveAndTest(inventoryMovementTypeInstance)
806
807        // InventoryMovementType #3
[177]808        inventoryMovementTypeInstance = new InventoryMovementType(name: "Purchase Received",
809                                                                                                                        incrementsInventory: true)
[175]810        saveAndTest(inventoryMovementTypeInstance)
[177]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)
[175]821    }
822
[149]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),
[175]832                                                                                    inventoryLocation: InventoryLocation.get(1),
[185]833                                                                                    name: "Hemp rope",
834                                                                                    description: "Natural hemp rope.",
[175]835                                                                                    unitsInStock: 2,
[149]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),
[175]843                                                                                    inventoryLocation: InventoryLocation.get(1),
[185]844                                                                                    name: "Cotton Rope 12mm",
845                                                                                    description: "A soft natural rope made from cotton.",
[149]846                                                                                    alternateItems: InventoryItem.get(1),
[175]847                                                                                    unitsInStock: 2,
[149]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),
[175]855                                                                                    inventoryLocation: InventoryLocation.get(2),
[149]856                                                                                    name: "2305-2RS",
857                                                                                    description: "Bearing 25x62x24mm double row self aligning ball",
[175]858                                                                                    unitsInStock: 3,
[149]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),
[175]866                                                                                    inventoryLocation: InventoryLocation.get(2),
[149]867                                                                                    name: "L1592-K10",
868                                                                                    description: "10kW contactor",
[175]869                                                                                    unitsInStock: 4,
[149]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),
[175]877                                                                                    inventoryLocation: InventoryLocation.get(2),
[149]878                                                                                    name: "6205-ZZ",
879                                                                                    description: "Bearing 25x52x15mm single row ball shielded",
[175]880                                                                                    unitsInStock: 5,
[149]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",
[162]968                                                                                    site: Site.get(1),
969                                                                                    department: Department.get(1))
[149]970        saveAndTest(systemSectionInstance)
971
972        //SystemSection #2
973        systemSectionInstance = new SystemSection(name: "RO System",
[162]974                                                                                    site: Site.get(2),
975                                                                                    department: Department.get(2))
[149]976        saveAndTest(systemSectionInstance)
977
978        //SystemSection #3
979        systemSectionInstance = new SystemSection(name: "Auxilliray Section",
[162]980                                                                                    site: Site.get(1),
981                                                                                    department: Department.get(1))
[149]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
[199]1130            log.error "'${object}' failed to save!"
1131            log.error object.errors
[149]1132            return false
1133        }
1134        return true
1135    }
1136}
Note: See TracBrowser for help on using the repository browser.