@dssp/project 1.0.0-alpha.0 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist-client/tsconfig.tsbuildinfo +1 -1
  2. package/package.json +3 -3
  3. package/client/bootstrap.ts +0 -0
  4. package/client/index.ts +0 -0
  5. package/client/pages/lib/select2-component.ts +0 -175
  6. package/client/pages/lib/waether.ts +0 -159
  7. package/client/pages/project/component/project-update-header.ts +0 -88
  8. package/client/pages/project/popup/popup-plan-upload.ts +0 -138
  9. package/client/pages/project/popup/popup-project-create.ts +0 -147
  10. package/client/pages/project/popup/popup-schedule-upload.ts +0 -102
  11. package/client/pages/project/project-completed-list.ts +0 -281
  12. package/client/pages/project/project-detail.ts +0 -738
  13. package/client/pages/project/project-list.ts +0 -418
  14. package/client/pages/project/project-plan-management.ts +0 -476
  15. package/client/pages/project/project-schedule-list.ts +0 -294
  16. package/client/pages/project/project-schedule.ts +0 -393
  17. package/client/pages/project/project-setting-list.ts +0 -393
  18. package/client/pages/project/project-update.ts +0 -876
  19. package/client/pages/resource/construction-detail-type-popup.ts +0 -201
  20. package/client/pages/resource/construction-type-management.ts +0 -212
  21. package/client/pages/resource/inspection-drawing-type-management.ts +0 -245
  22. package/client/pages/resource/inspection-part-popup.ts +0 -201
  23. package/client/pages/resource/resource-importer.ts +0 -97
  24. package/client/pages/resource/resource-list-page.ts +0 -356
  25. package/client/pages/resource/worker-type-management.ts +0 -192
  26. package/client/pages/task/task-importer.ts +0 -94
  27. package/client/pages/task/task-list-page.ts +0 -340
  28. package/client/pages/task-resource/task-resource-importer.ts +0 -97
  29. package/client/pages/task-resource/task-resource-list-page.ts +0 -356
  30. package/client/route.ts +0 -55
  31. package/client/tsconfig.json +0 -11
  32. package/server/controllers/export-tasks.ts +0 -40
  33. package/server/controllers/import-task.ts +0 -134
  34. package/server/controllers/index.ts +0 -0
  35. package/server/controllers/parse-excel.ts +0 -86
  36. package/server/controllers/types.ts +0 -20
  37. package/server/index.ts +0 -4
  38. package/server/middlewares/index.ts +0 -3
  39. package/server/migrations/1723861466413-seed-roles.ts +0 -128
  40. package/server/migrations/1723861466414-seed-codes.ts +0 -157
  41. package/server/migrations/1723861476419-seed-resources.ts +0 -62
  42. package/server/migrations/1723861478420-seed-/bsample-project.ts +0 -87
  43. package/server/migrations/1723861478421-seed-/bsample-tasks.ts +0 -194
  44. package/server/migrations/index.ts +0 -9
  45. package/server/routes.ts +0 -108
  46. package/server/service/construction-detail-type/construction-detail-type-mutation.ts +0 -57
  47. package/server/service/construction-detail-type/construction-detail-type-query.ts +0 -31
  48. package/server/service/construction-detail-type/construction-detail-type-type.ts +0 -26
  49. package/server/service/construction-detail-type/construction-detail-type.ts +0 -52
  50. package/server/service/construction-detail-type/index.ts +0 -6
  51. package/server/service/construction-type/construction-type-mutation.ts +0 -66
  52. package/server/service/construction-type/construction-type-query.ts +0 -56
  53. package/server/service/construction-type/construction-type-type.ts +0 -26
  54. package/server/service/construction-type/construction-type.ts +0 -74
  55. package/server/service/construction-type/index.ts +0 -6
  56. package/server/service/index.ts +0 -56
  57. package/server/service/inspection-drawing-type/index.ts +0 -6
  58. package/server/service/inspection-drawing-type/inspection-drawing-type-mutation.ts +0 -69
  59. package/server/service/inspection-drawing-type/inspection-drawing-type-query.ts +0 -55
  60. package/server/service/inspection-drawing-type/inspection-drawing-type-type.ts +0 -23
  61. package/server/service/inspection-drawing-type/inspection-drawing-type.ts +0 -68
  62. package/server/service/inspection-part/index.ts +0 -6
  63. package/server/service/inspection-part/inspection-part-mutation.ts +0 -52
  64. package/server/service/inspection-part/inspection-part-query.ts +0 -41
  65. package/server/service/inspection-part/inspection-part-type.ts +0 -26
  66. package/server/service/inspection-part/inspection-part.ts +0 -51
  67. package/server/service/manager/index.ts +0 -6
  68. package/server/service/manager/manager-mutation.ts +0 -42
  69. package/server/service/manager/manager-query.ts +0 -28
  70. package/server/service/manager/manager-type.ts +0 -40
  71. package/server/service/manager/manager.ts +0 -29
  72. package/server/service/project/index.ts +0 -6
  73. package/server/service/project/project-mutation.ts +0 -255
  74. package/server/service/project/project-query.ts +0 -105
  75. package/server/service/project/project-type.ts +0 -72
  76. package/server/service/project/project.ts +0 -134
  77. package/server/service/resource/index.ts +0 -7
  78. package/server/service/resource/resource-mutation.ts +0 -137
  79. package/server/service/resource/resource-query.ts +0 -50
  80. package/server/service/resource/resource-type.ts +0 -41
  81. package/server/service/resource/resource.ts +0 -82
  82. package/server/service/task/index.ts +0 -6
  83. package/server/service/task/task-mutation.ts +0 -135
  84. package/server/service/task/task-query.ts +0 -169
  85. package/server/service/task/task-type.ts +0 -75
  86. package/server/service/task/task.ts +0 -130
  87. package/server/service/task-resource/index.ts +0 -7
  88. package/server/service/task-resource/task-resource-mutation.ts +0 -140
  89. package/server/service/task-resource/task-resource-query.ts +0 -36
  90. package/server/service/task-resource/task-resource-type.ts +0 -41
  91. package/server/service/task-resource/task-resource.ts +0 -51
  92. package/server/service/worker-type/index.ts +0 -6
  93. package/server/service/worker-type/worker-type-mutation.ts +0 -66
  94. package/server/service/worker-type/worker-type-query.ts +0 -47
  95. package/server/service/worker-type/worker-type-type.ts +0 -26
  96. package/server/service/worker-type/worker-type.ts +0 -68
  97. package/server/tsconfig.json +0 -10
package/server/index.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './service'
2
- export * from './migrations'
3
-
4
- import './routes'
@@ -1,3 +0,0 @@
1
- export function initMiddlewares(app) {
2
- /* can add middlewares into app */
3
- }
@@ -1,128 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm'
2
-
3
- import { logger } from '@things-factory/env'
4
- import { Domain, getRepository } from '@things-factory/shell'
5
- import { Privilege, Role, User } from '@things-factory/auth-base'
6
-
7
- const SEED_ROLES = [
8
- {
9
- name: '감리사',
10
- description: '감리사',
11
- privileges: [
12
- {
13
- name: 'query',
14
- category: 'board'
15
- },
16
- {
17
- name: 'query',
18
- category: 'attachment'
19
- }
20
- ]
21
- },
22
- {
23
- name: '설계사',
24
- description: '설계사',
25
- privileges: [
26
- {
27
- name: 'query',
28
- category: 'board'
29
- },
30
- {
31
- name: 'query',
32
- category: 'attachment'
33
- }
34
- ]
35
- },
36
- {
37
- name: '현장관리자',
38
- description: '현장관리자',
39
- privileges: [
40
- {
41
- name: 'query',
42
- category: 'board'
43
- },
44
- {
45
- name: 'query',
46
- category: 'attachment'
47
- }
48
- ]
49
- },
50
- {
51
- name: '시공자',
52
- description: '시공자',
53
- privileges: [
54
- {
55
- name: 'query',
56
- category: 'board'
57
- },
58
- {
59
- name: 'query',
60
- category: 'attachment'
61
- }
62
- ]
63
- }
64
- ]
65
-
66
- export class Roles1723861466413 implements MigrationInterface {
67
- public async up(queryRunner: QueryRunner): Promise<void> {
68
- const domainRepository = getRepository(Domain)
69
- const roleRepository = getRepository(Role)
70
- const userRepository = getRepository(User)
71
- const privilegeRepository = getRepository(Privilege)
72
-
73
- const domain: Domain = await domainRepository.findOne({
74
- where: { name: 'SYSTEM' }
75
- })
76
-
77
- const admin: User = await userRepository.findOne({
78
- where: { email: 'admin@hatiolab.com' }
79
- })
80
-
81
- try {
82
- for (let i = 0; i < SEED_ROLES.length; i++) {
83
- const { name, description, privileges } = SEED_ROLES[i]
84
-
85
- const role = await roleRepository.save({
86
- domain,
87
- name,
88
- description,
89
- creator: admin,
90
- updater: admin
91
- })
92
-
93
- const ps = []
94
-
95
- for (const privilege of privileges) {
96
- const { name, category } = privilege
97
- ps.push(
98
- await privilegeRepository.findOne({
99
- where: {
100
- name,
101
- category
102
- }
103
- })
104
- )
105
- }
106
-
107
- role.privileges = ps
108
-
109
- await roleRepository.save(role)
110
- }
111
- } catch (e) {
112
- logger.error(e)
113
- }
114
- }
115
-
116
- public async down(queryRunner: QueryRunner): Promise<void> {
117
- const domainRepository = getRepository(Domain)
118
- const roleRepository = getRepository(Role)
119
-
120
- const domain: Domain = await domainRepository.findOne({
121
- where: { name: 'SYSTEM' }
122
- })
123
-
124
- SEED_ROLES.reverse().forEach(async ({ name }) => {
125
- await roleRepository.delete({ name, domain: { id: domain.id } })
126
- })
127
- }
128
- }
@@ -1,157 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm'
2
-
3
- import { logger } from '@things-factory/env'
4
- import { Domain, getRepository } from '@things-factory/shell'
5
- import { User } from '@things-factory/auth-base'
6
- import { CommonCode, CommonCodeDetail } from '@things-factory/code-base'
7
-
8
- const SEED_COMMON_CODES = [
9
- {
10
- name: 'EMPLOYEE_TYPE',
11
- description: '직원 유형',
12
- details: [
13
- {
14
- name: 'FULLTIME',
15
- description: '풀타임 정규직',
16
- labels: null,
17
- rank: 1
18
- },
19
- {
20
- name: 'PARTTIME',
21
- description: '파트타임 정규직',
22
- labels: null,
23
- rank: 2
24
- },
25
- {
26
- name: 'TEMPORARY',
27
- description: '임시직',
28
- labels: null,
29
- rank: 3
30
- }
31
- ]
32
- },
33
- {
34
- name: 'JOB_POSITION',
35
- description: '직급',
36
- details: [
37
- {
38
- name: '임원',
39
- description: '임원',
40
- labels: null,
41
- rank: 1
42
- },
43
- {
44
- name: '직원',
45
- description: '직원',
46
- labels: null,
47
- rank: 2
48
- }
49
- ]
50
- },
51
- {
52
- name: 'JOB_RESPONSIBILITY',
53
- description: '직책',
54
- details: [
55
- {
56
- name: 'ADMIN',
57
- description: '관리자',
58
- labels: null,
59
- rank: 1
60
- },
61
- {
62
- name: 'OVERALL_SUPERVISORY',
63
- description: '총괄 감리 책임자',
64
- labels: null,
65
- rank: 2
66
- },
67
- {
68
- name: 'TASK_SUPERVISORY',
69
- description: '공종별 감리 책임자',
70
- labels: null,
71
- rank: 3
72
- },
73
- {
74
- name: 'OVERALL_CONSTRUCTOR',
75
- description: '총괄 시공 책임자',
76
- labels: null,
77
- rank: 4
78
- },
79
- {
80
- name: 'TASK_CONSTRUCTOR',
81
- description: '공종별 시공 관리자',
82
- labels: null,
83
- rank: 5
84
- },
85
- {
86
- name: 'DESIGNER',
87
- description: '설계사',
88
- labels: null,
89
- rank: 6
90
- },
91
- {
92
- name: 'CONSTRUCTOR',
93
- description: '시공자',
94
- labels: null,
95
- rank: 7
96
- }
97
- ]
98
- }
99
- ]
100
-
101
- export class SeedCodes1723861466414 implements MigrationInterface {
102
- public async up(queryRunner: QueryRunner): Promise<void> {
103
- const commonCodeRepository = getRepository(CommonCode)
104
- const commonCodeDetailRepository = getRepository(CommonCodeDetail)
105
- const domainRepository = getRepository(Domain)
106
- const userRepository = getRepository(User)
107
-
108
- const domain: Domain = await domainRepository.findOne({
109
- where: { name: 'SYSTEM' }
110
- })
111
- const user = await userRepository.findOne({ where: { id: domain.owner } })
112
-
113
- try {
114
- for (let i = 0; i < SEED_COMMON_CODES.length; i++) {
115
- const { name, description, details } = SEED_COMMON_CODES[i]
116
-
117
- const commonCode = await commonCodeRepository.save({
118
- domain,
119
- name,
120
- description,
121
- creator: user,
122
- updater: user
123
- })
124
-
125
- for (const commonCodeDetail of details) {
126
- const { name, description, labels, rank } = commonCodeDetail
127
-
128
- await commonCodeDetailRepository.save({
129
- domain,
130
- commonCode,
131
- name,
132
- description,
133
- labels,
134
- rank
135
- })
136
- }
137
- }
138
- } catch (e) {
139
- logger.error(e)
140
- }
141
- }
142
-
143
- public async down(queryRunner: QueryRunner): Promise<void> {
144
- const domainRepository = getRepository(Domain)
145
-
146
- const domain: Domain = await domainRepository.findOne({
147
- where: { name: 'SYSTEM' }
148
- })
149
-
150
- const repository = getRepository(CommonCode)
151
-
152
- SEED_COMMON_CODES.reverse().forEach(async commonCode => {
153
- let record = await repository.findOne({ where: { name: commonCode.name, domain: { id: domain.id } } })
154
- record && (await repository.remove(record))
155
- })
156
- }
157
- }
@@ -1,62 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm'
2
-
3
- import { logger } from '@things-factory/env'
4
- import { Domain, getRepository } from '@things-factory/shell'
5
- import { User } from '@things-factory/auth-base'
6
- import { ResourceType, Resource } from '../service/resource/resource'
7
-
8
- const SEED_RESOURCES = [
9
- { name: '철근/형틀공', type: ResourceType.HUMAN, unit: 'man/day' },
10
- { name: '방수공', type: ResourceType.HUMAN, unit: 'man/day' },
11
- { name: '목공', type: ResourceType.HUMAN, unit: 'man/day' },
12
- { name: '금속공', type: ResourceType.HUMAN, unit: 'man/day' },
13
- { name: '타일공', type: ResourceType.HUMAN, unit: 'man/day' },
14
- { name: '창호공', type: ResourceType.HUMAN, unit: 'man/day' },
15
- { name: '도배공', type: ResourceType.HUMAN, unit: 'man/day' },
16
- { name: '조적공', type: ResourceType.HUMAN, unit: 'man/day' }
17
- ]
18
-
19
- export class SeedResources1723861476419 implements MigrationInterface {
20
- public async up(queryRunner: QueryRunner): Promise<void> {
21
- const resourceRepository = getRepository(Resource)
22
- const domainRepository = getRepository(Domain)
23
- const userRepository = getRepository(User)
24
-
25
- const domain: Domain = await domainRepository.findOne({
26
- where: { name: 'SYSTEM' }
27
- })
28
- const user = await userRepository.findOne({ where: { id: domain.owner } })
29
-
30
- try {
31
- for (let i = 0; i < SEED_RESOURCES.length; i++) {
32
- const { name, type, unit } = SEED_RESOURCES[i]
33
-
34
- const resource = await resourceRepository.save({
35
- domain,
36
- name,
37
- type,
38
- unit,
39
- creator: user,
40
- updater: user
41
- })
42
- }
43
- } catch (e) {
44
- logger.error(e)
45
- }
46
- }
47
-
48
- public async down(queryRunner: QueryRunner): Promise<void> {
49
- const domainRepository = getRepository(Domain)
50
-
51
- const domain: Domain = await domainRepository.findOne({
52
- where: { name: 'SYSTEM' }
53
- })
54
-
55
- const repository = getRepository(Resource)
56
-
57
- SEED_RESOURCES.reverse().forEach(async resource => {
58
- let record = await repository.findOne({ where: { name: resource.name, domain: { id: domain.id } } })
59
- record && (await repository.remove(record))
60
- })
61
- }
62
- }
@@ -1,87 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm'
2
-
3
- import { logger } from '@things-factory/env'
4
- import { Domain, getRepository } from '@things-factory/shell'
5
- import { User } from '@things-factory/auth-base'
6
- import { BuildingComplex } from '@dssp/building-complex'
7
- import { Project, ProjectState } from '../service/project/project'
8
-
9
- const SEED_SAMPLE_BUILDING_COMPLEX = {
10
- address: '서울시 마포구 공덕동 아파트 17번지',
11
- longitude: 37.548239525193,
12
- latitude: 126.95315808838,
13
- clientCompany: 'A 고객',
14
- constructionCompany: 'B 건설',
15
- supervisoryComapny: 'C 감리',
16
- designCompany: 'D 디자인',
17
- constructionType: '아파트',
18
- etc: '',
19
- householdCount: 500,
20
- buildingCount: 5,
21
- notice: '',
22
- planXScale: 20,
23
- planYScale: 20,
24
- area: 22700
25
- }
26
-
27
- const SEED_SAMPLE_PROJECT = {
28
- name: '서울시 마포구 공덕동 아파트 신축공사',
29
- state: ProjectState.ONGOING,
30
- startDate: '2024-01-01',
31
- endDate: '2025-12-31',
32
- totalProgress: 40,
33
- weeklyProgress: 37
34
- }
35
-
36
- export class SeedSampleProject1723861478420 implements MigrationInterface {
37
- public async up(queryRunner: QueryRunner): Promise<void> {
38
- const buildingRepository = getRepository(BuildingComplex)
39
- const projectRepository = getRepository(Project)
40
- const domainRepository = getRepository(Domain)
41
- const userRepository = getRepository(User)
42
-
43
- const domain: Domain = await domainRepository.findOne({
44
- where: { name: 'SYSTEM' }
45
- })
46
- const user = await userRepository.findOne({ where: { id: domain.owner } })
47
-
48
- try {
49
- const buildingComplex = await buildingRepository.save({
50
- domain,
51
- ...SEED_SAMPLE_BUILDING_COMPLEX,
52
- creator: user,
53
- updater: user
54
- })
55
-
56
- const project = await projectRepository.save({
57
- domain,
58
- ...SEED_SAMPLE_PROJECT,
59
- buildingComplex,
60
- creator: user,
61
- updater: user
62
- })
63
- } catch (e) {
64
- logger.error(e)
65
- }
66
- }
67
-
68
- public async down(queryRunner: QueryRunner): Promise<void> {
69
- const domainRepository = getRepository(Domain)
70
-
71
- const domain: Domain = await domainRepository.findOne({
72
- where: { name: 'SYSTEM' }
73
- })
74
-
75
- const repository = getRepository(Project)
76
-
77
- let project = await repository.findOne({ where: { name: SEED_SAMPLE_PROJECT.name, domain: { id: domain.id } } })
78
- project && (await repository.remove(project))
79
-
80
- const buildRepository = getRepository(BuildingComplex)
81
-
82
- let buildingComplex = await buildRepository.findOne({
83
- where: { address: SEED_SAMPLE_BUILDING_COMPLEX.address, domain: { id: domain.id } }
84
- })
85
- buildingComplex && (await buildRepository.remove(buildingComplex))
86
- }
87
- }
@@ -1,194 +0,0 @@
1
- import { MigrationInterface, QueryRunner } from 'typeorm'
2
-
3
- import { logger } from '@things-factory/env'
4
- import { Domain, getRepository } from '@things-factory/shell'
5
- import { User } from '@things-factory/auth-base'
6
- import { Project } from '../service/project/project'
7
-
8
- import { importTasks } from '../controllers/import-task'
9
-
10
- const SEED_SAMPLE_PROJECT = {
11
- name: '서울시 마포구 공덕동 아파트 신축공사'
12
- }
13
-
14
- const SEED_SAMPLE_TASKS = [
15
- {
16
- code: '골조공사',
17
- title: '골조공사',
18
- progress: 60,
19
- children: [
20
- {
21
- code: '골조공사:기초공사',
22
- title: '기초공사',
23
- startDate: '2024-01-01',
24
- duration: 3,
25
- resources: [{ type: '철근/형틀공', allocated: 6 }]
26
- },
27
- {
28
- code: '골조공사:1층',
29
- title: '1층',
30
- duration: 10,
31
- dependsOn: '골조공사:기초공사',
32
- resources: [{ type: '철근/형틀공', allocated: 6 }]
33
- },
34
- {
35
- code: '골조공사:2층',
36
- title: '2층',
37
- duration: 10,
38
- dependsOn: '골조공사:1층',
39
- resources: [{ type: '철근/형틀공', allocated: 6 }]
40
- },
41
- {
42
- code: '골조공사:옥탑공사',
43
- title: '옥탑공사',
44
- duration: 6,
45
- dependsOn: '골조공사:2층',
46
- resources: [{ type: '철근/형틀공', allocated: 6 }]
47
- }
48
- ]
49
- },
50
- {
51
- code: '단열공사',
52
- title: '단열공사',
53
- children: [
54
- {
55
- code: '단열공사:단열재부착',
56
- title: '단열재부착',
57
- startDate: '2024-01-12',
58
- duration: 2
59
- }
60
- ]
61
- },
62
- {
63
- code: '조적공사',
64
- title: '조적공사',
65
- children: [
66
- {
67
- code: '조적공사:조적시공',
68
- title: '조적시공',
69
- startDate: '2024-01-12',
70
- duration: 3
71
- }
72
- ]
73
- },
74
- {
75
- code: '창호공사',
76
- title: '창호공사',
77
- progress: 60,
78
- children: [
79
- {
80
- code: '창호공사:실측및발주',
81
- title: '실측및발주',
82
- dependsOn: '골조공사:1층',
83
- duration: 1
84
- },
85
- {
86
- code: '창호공사:창호 프레임 설치',
87
- title: '창호 프레임 설치',
88
- duration: 3,
89
- dependsOn: '창호공사:실측및발주',
90
- resources: [{ type: '창호공', allocated: 4 }]
91
- },
92
- {
93
- code: '창호공사:창호 유리 설치',
94
- title: '창호 유리 설치',
95
- duration: 2,
96
- dependsOn: '창호공사:창호 프레임 설치',
97
- resources: [{ type: '창호공', allocated: 2 }]
98
- }
99
- ]
100
- },
101
- {
102
- code: '방수공사',
103
- title: '방수공사',
104
- progress: 60,
105
- children: [
106
- {
107
- code: '방수공사:골조 조인트부분 방수',
108
- title: '골조 조인트부분 방수',
109
- startDate: '2024-01-01',
110
- duration: 3,
111
- resources: [{ type: '방수공', allocated: 1 }]
112
- },
113
- {
114
- code: '방수공사:개구부 주변 방수',
115
- title: '개구부 주변 방수',
116
- duration: 2,
117
- dependsOn: '방수공사:골조 조인트부분 방수',
118
- resources: [{ type: '방수공', allocated: 1 }]
119
- },
120
- {
121
- code: '방수공사:테라스 방수',
122
- title: '테라스 방수',
123
- duration: 5,
124
- dependsOn: '방수공사:개구부 주변 방수',
125
- resources: [{ type: '방수공', allocated: 1 }]
126
- },
127
- {
128
- code: '방수공사:화장실/다용도실 방수',
129
- title: '화장실/다용도실 방수',
130
- duration: 5,
131
- dependsOn: '방수공사:테라스 방수',
132
- resources: [{ type: '방수공', allocated: 1 }]
133
- }
134
- ]
135
- },
136
- {
137
- code: '내부목공사',
138
- title: '내부목공사',
139
- progress: 60,
140
- children: [
141
- {
142
- code: '내부목공사:벽체다루끼/경량스터드',
143
- title: '벽체다루끼/경량스터드',
144
- startDate: '2024-01-20',
145
- duration: 5,
146
- resources: [{ type: '목공', allocated: 4 }]
147
- },
148
- {
149
- code: '내부목공사:벽체 석고보드 취부',
150
- title: '벽체 석고보드 취부',
151
- duration: 5,
152
- dependsOn: '내부목공사:벽체다루끼/경량스터드',
153
- resources: [{ type: '목공', allocated: 4 }]
154
- },
155
- {
156
- code: '내부목공사:ABC',
157
- title: 'ABC',
158
- duration: 4,
159
- dependsOn: '내부목공사:벽체 석고보드 취부',
160
- resources: [{ type: '목공', allocated: 4 }]
161
- }
162
- ]
163
- }
164
- ]
165
-
166
- export class SeedSampleTasks1723861478421 implements MigrationInterface {
167
- public async up(queryRunner: QueryRunner): Promise<void> {
168
- const projectRepository = getRepository(Project)
169
- const domainRepository = getRepository(Domain)
170
- const userRepository = getRepository(User)
171
-
172
- const domain: Domain = await domainRepository.findOne({
173
- where: { name: 'SYSTEM' }
174
- })
175
- const user = await userRepository.findOne({ where: { id: domain.owner } })
176
- const project = await projectRepository.findOne({ where: { domain: { id: domain.id }, name: SEED_SAMPLE_PROJECT.name } })
177
-
178
- try {
179
- await importTasks(project, SEED_SAMPLE_TASKS, { state: { domain, user } as any })
180
- } catch (e) {
181
- logger.error(e)
182
- }
183
- }
184
-
185
- public async down(queryRunner: QueryRunner): Promise<void> {
186
- const domainRepository = getRepository(Domain)
187
-
188
- const domain: Domain = await domainRepository.findOne({
189
- where: { name: 'SYSTEM' }
190
- })
191
-
192
- const repository = getRepository(Project)
193
- }
194
- }
@@ -1,9 +0,0 @@
1
- const glob = require('glob')
2
- const path = require('path')
3
-
4
- export var migrations = []
5
-
6
- glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {
7
- if (file.indexOf('index.js') !== -1) return
8
- migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])
9
- })