@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.
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/client/bootstrap.ts +0 -0
- package/client/index.ts +0 -0
- package/client/pages/lib/select2-component.ts +0 -175
- package/client/pages/lib/waether.ts +0 -159
- package/client/pages/project/component/project-update-header.ts +0 -88
- package/client/pages/project/popup/popup-plan-upload.ts +0 -138
- package/client/pages/project/popup/popup-project-create.ts +0 -147
- package/client/pages/project/popup/popup-schedule-upload.ts +0 -102
- package/client/pages/project/project-completed-list.ts +0 -281
- package/client/pages/project/project-detail.ts +0 -738
- package/client/pages/project/project-list.ts +0 -418
- package/client/pages/project/project-plan-management.ts +0 -476
- package/client/pages/project/project-schedule-list.ts +0 -294
- package/client/pages/project/project-schedule.ts +0 -393
- package/client/pages/project/project-setting-list.ts +0 -393
- package/client/pages/project/project-update.ts +0 -876
- package/client/pages/resource/construction-detail-type-popup.ts +0 -201
- package/client/pages/resource/construction-type-management.ts +0 -212
- package/client/pages/resource/inspection-drawing-type-management.ts +0 -245
- package/client/pages/resource/inspection-part-popup.ts +0 -201
- package/client/pages/resource/resource-importer.ts +0 -97
- package/client/pages/resource/resource-list-page.ts +0 -356
- package/client/pages/resource/worker-type-management.ts +0 -192
- package/client/pages/task/task-importer.ts +0 -94
- package/client/pages/task/task-list-page.ts +0 -340
- package/client/pages/task-resource/task-resource-importer.ts +0 -97
- package/client/pages/task-resource/task-resource-list-page.ts +0 -356
- package/client/route.ts +0 -55
- package/client/tsconfig.json +0 -11
- package/server/controllers/export-tasks.ts +0 -40
- package/server/controllers/import-task.ts +0 -134
- package/server/controllers/index.ts +0 -0
- package/server/controllers/parse-excel.ts +0 -86
- package/server/controllers/types.ts +0 -20
- package/server/index.ts +0 -4
- package/server/middlewares/index.ts +0 -3
- package/server/migrations/1723861466413-seed-roles.ts +0 -128
- package/server/migrations/1723861466414-seed-codes.ts +0 -157
- package/server/migrations/1723861476419-seed-resources.ts +0 -62
- package/server/migrations/1723861478420-seed-/bsample-project.ts +0 -87
- package/server/migrations/1723861478421-seed-/bsample-tasks.ts +0 -194
- package/server/migrations/index.ts +0 -9
- package/server/routes.ts +0 -108
- package/server/service/construction-detail-type/construction-detail-type-mutation.ts +0 -57
- package/server/service/construction-detail-type/construction-detail-type-query.ts +0 -31
- package/server/service/construction-detail-type/construction-detail-type-type.ts +0 -26
- package/server/service/construction-detail-type/construction-detail-type.ts +0 -52
- package/server/service/construction-detail-type/index.ts +0 -6
- package/server/service/construction-type/construction-type-mutation.ts +0 -66
- package/server/service/construction-type/construction-type-query.ts +0 -56
- package/server/service/construction-type/construction-type-type.ts +0 -26
- package/server/service/construction-type/construction-type.ts +0 -74
- package/server/service/construction-type/index.ts +0 -6
- package/server/service/index.ts +0 -56
- package/server/service/inspection-drawing-type/index.ts +0 -6
- package/server/service/inspection-drawing-type/inspection-drawing-type-mutation.ts +0 -69
- package/server/service/inspection-drawing-type/inspection-drawing-type-query.ts +0 -55
- package/server/service/inspection-drawing-type/inspection-drawing-type-type.ts +0 -23
- package/server/service/inspection-drawing-type/inspection-drawing-type.ts +0 -68
- package/server/service/inspection-part/index.ts +0 -6
- package/server/service/inspection-part/inspection-part-mutation.ts +0 -52
- package/server/service/inspection-part/inspection-part-query.ts +0 -41
- package/server/service/inspection-part/inspection-part-type.ts +0 -26
- package/server/service/inspection-part/inspection-part.ts +0 -51
- package/server/service/manager/index.ts +0 -6
- package/server/service/manager/manager-mutation.ts +0 -42
- package/server/service/manager/manager-query.ts +0 -28
- package/server/service/manager/manager-type.ts +0 -40
- package/server/service/manager/manager.ts +0 -29
- package/server/service/project/index.ts +0 -6
- package/server/service/project/project-mutation.ts +0 -255
- package/server/service/project/project-query.ts +0 -105
- package/server/service/project/project-type.ts +0 -72
- package/server/service/project/project.ts +0 -134
- package/server/service/resource/index.ts +0 -7
- package/server/service/resource/resource-mutation.ts +0 -137
- package/server/service/resource/resource-query.ts +0 -50
- package/server/service/resource/resource-type.ts +0 -41
- package/server/service/resource/resource.ts +0 -82
- package/server/service/task/index.ts +0 -6
- package/server/service/task/task-mutation.ts +0 -135
- package/server/service/task/task-query.ts +0 -169
- package/server/service/task/task-type.ts +0 -75
- package/server/service/task/task.ts +0 -130
- package/server/service/task-resource/index.ts +0 -7
- package/server/service/task-resource/task-resource-mutation.ts +0 -140
- package/server/service/task-resource/task-resource-query.ts +0 -36
- package/server/service/task-resource/task-resource-type.ts +0 -41
- package/server/service/task-resource/task-resource.ts +0 -51
- package/server/service/worker-type/index.ts +0 -6
- package/server/service/worker-type/worker-type-mutation.ts +0 -66
- package/server/service/worker-type/worker-type-query.ts +0 -47
- package/server/service/worker-type/worker-type-type.ts +0 -26
- package/server/service/worker-type/worker-type.ts +0 -68
- package/server/tsconfig.json +0 -10
package/server/index.ts
DELETED
|
@@ -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
|
-
})
|