@dssp/project 0.0.8 → 0.0.10
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/client/pages/project/project-detail.ts +109 -30
- package/client/pages/project/project-list.ts +46 -10
- package/client/pages/project/project-schedule-list.ts +11 -3
- package/client/pages/project/project-schedule.ts +111 -312
- package/client/pages/project/project-setting-list.ts +11 -3
- package/client/pages/resource/construction-detail-type-popup.ts +201 -0
- package/client/pages/resource/construction-type-management.ts +40 -39
- package/client/pages/resource/inspection-drawing-type-management.ts +210 -0
- package/client/pages/resource/inspection-part-popup.ts +201 -0
- package/client/pages/resource/manager-management.ts +0 -27
- package/client/pages/{checklist/checklist-importer.ts → resource/resource-importer.ts} +11 -8
- package/client/pages/{checklist/checklist-list-page.ts → resource/resource-list-page.ts} +41 -25
- package/client/pages/resource/worker-type-management.ts +3 -37
- package/client/pages/task-resource/task-resource-importer.ts +97 -0
- package/client/pages/task-resource/task-resource-list-page.ts +356 -0
- package/client/route.ts +13 -1
- package/dist-client/pages/project/project-detail.d.ts +5 -1
- package/dist-client/pages/project/project-detail.js +123 -40
- package/dist-client/pages/project/project-detail.js.map +1 -1
- package/dist-client/pages/project/project-list.d.ts +33 -7
- package/dist-client/pages/project/project-list.js +26 -11
- package/dist-client/pages/project/project-list.js.map +1 -1
- package/dist-client/pages/project/project-schedule-list.js +11 -3
- package/dist-client/pages/project/project-schedule-list.js.map +1 -1
- package/dist-client/pages/project/project-schedule.d.ts +5 -1
- package/dist-client/pages/project/project-schedule.js +117 -306
- package/dist-client/pages/project/project-schedule.js.map +1 -1
- package/dist-client/pages/project/project-setting-list.js +11 -3
- package/dist-client/pages/project/project-setting-list.js.map +1 -1
- package/dist-client/pages/resource/construction-detail-type-popup.d.ts +2 -0
- package/dist-client/pages/resource/construction-detail-type-popup.js +197 -0
- package/dist-client/pages/resource/construction-detail-type-popup.js.map +1 -0
- package/dist-client/pages/resource/construction-type-management.d.ts +12 -0
- package/dist-client/pages/resource/construction-type-management.js +30 -38
- package/dist-client/pages/resource/construction-type-management.js.map +1 -1
- package/dist-client/pages/resource/inspection-drawing-type-management.d.ts +34 -0
- package/dist-client/pages/resource/inspection-drawing-type-management.js +198 -0
- package/dist-client/pages/resource/inspection-drawing-type-management.js.map +1 -0
- package/dist-client/pages/resource/inspection-part-popup.d.ts +2 -0
- package/dist-client/pages/resource/inspection-part-popup.js +197 -0
- package/dist-client/pages/resource/inspection-part-popup.js.map +1 -0
- package/dist-client/pages/resource/manager-management.js +0 -27
- package/dist-client/pages/resource/manager-management.js.map +1 -1
- package/dist-client/pages/{checklist/checklist-importer.d.ts → resource/resource-importer.d.ts} +2 -2
- package/dist-client/pages/{checklist/checklist-importer.js → resource/resource-importer.js} +10 -10
- package/dist-client/pages/resource/resource-importer.js.map +1 -0
- package/dist-client/pages/{checklist/checklist-list-page.d.ts → resource/resource-list-page.d.ts} +6 -6
- package/dist-client/pages/{checklist/checklist-list-page.js → resource/resource-list-page.js} +41 -32
- package/dist-client/pages/resource/resource-list-page.js.map +1 -0
- package/dist-client/pages/resource/worker-type-management.d.ts +7 -1
- package/dist-client/pages/resource/worker-type-management.js +3 -45
- package/dist-client/pages/resource/worker-type-management.js.map +1 -1
- package/dist-client/pages/task-resource/task-resource-importer.d.ts +10 -0
- package/dist-client/pages/task-resource/task-resource-importer.js +101 -0
- package/dist-client/pages/task-resource/task-resource-importer.js.map +1 -0
- package/dist-client/pages/task-resource/task-resource-list-page.d.ts +63 -0
- package/dist-client/pages/task-resource/task-resource-list-page.js +332 -0
- package/dist-client/pages/task-resource/task-resource-list-page.js.map +1 -0
- package/dist-client/route.d.ts +1 -1
- package/dist-client/route.js +9 -0
- package/dist-client/route.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/controllers/import-task.d.ts +19 -0
- package/dist-server/controllers/import-task.js +104 -0
- package/dist-server/controllers/import-task.js.map +1 -0
- package/dist-server/index.d.ts +1 -0
- package/dist-server/index.js +1 -0
- package/dist-server/index.js.map +1 -1
- package/dist-server/migrations/1723861466413-seed-roles.d.ts +5 -0
- package/dist-server/migrations/1723861466413-seed-roles.js +117 -0
- package/dist-server/migrations/1723861466413-seed-roles.js.map +1 -0
- package/dist-server/migrations/1723861466414-seed-codes.d.ts +5 -0
- package/dist-server/migrations/1723861466414-seed-codes.js +132 -0
- package/dist-server/migrations/1723861466414-seed-codes.js.map +1 -0
- package/dist-server/migrations/1723861476419-seed-resources.d.ts +5 -0
- package/dist-server/migrations/1723861476419-seed-resources.js +57 -0
- package/dist-server/migrations/1723861476419-seed-resources.js.map +1 -0
- package/dist-server/migrations/1723861478420-seed-/bsample-project.d.ts +5 -0
- package/dist-server/migrations/1723861478420-seed-/bsample-project.js +68 -0
- package/dist-server/migrations/1723861478420-seed-/bsample-project.js.map +1 -0
- package/dist-server/migrations/1723861478421-seed-/bsample-tasks.d.ts +5 -0
- package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js +189 -0
- package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js.map +1 -0
- package/dist-server/migrations/index.d.ts +1 -0
- package/dist-server/migrations/index.js +12 -0
- package/dist-server/migrations/index.js.map +1 -0
- package/dist-server/service/construction-detail-type/construction-detail-type-mutation.d.ts +6 -0
- package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js +56 -0
- package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js.map +1 -0
- package/dist-server/service/construction-detail-type/construction-detail-type-query.d.ts +9 -0
- package/dist-server/service/construction-detail-type/construction-detail-type-query.js +53 -0
- package/dist-server/service/construction-detail-type/construction-detail-type-query.js.map +1 -0
- package/dist-server/service/construction-detail-type/construction-detail-type-type.d.ts +11 -0
- package/dist-server/service/construction-detail-type/construction-detail-type-type.js +43 -0
- package/dist-server/service/construction-detail-type/construction-detail-type-type.js.map +1 -0
- package/dist-server/service/construction-detail-type/construction-detail-type.d.ts +15 -0
- package/dist-server/service/construction-detail-type/construction-detail-type.js +69 -0
- package/dist-server/service/construction-detail-type/construction-detail-type.js.map +1 -0
- package/dist-server/service/construction-detail-type/index.d.ts +5 -0
- package/dist-server/service/construction-detail-type/index.js +9 -0
- package/dist-server/service/construction-detail-type/index.js.map +1 -0
- package/dist-server/service/construction-type/construction-type-query.d.ts +2 -0
- package/dist-server/service/construction-type/construction-type-query.js +14 -0
- package/dist-server/service/construction-type/construction-type-query.js.map +1 -1
- package/dist-server/service/construction-type/construction-type.d.ts +2 -0
- package/dist-server/service/construction-type/construction-type.js +6 -0
- package/dist-server/service/construction-type/construction-type.js.map +1 -1
- package/dist-server/service/index.d.ts +7 -5
- package/dist-server/service/index.js +21 -10
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/inspection-drawing-type/index.d.ts +5 -0
- package/dist-server/service/inspection-drawing-type/index.js +9 -0
- package/dist-server/service/inspection-drawing-type/index.js.map +1 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.d.ts +6 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js +64 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js.map +1 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.d.ts +12 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js +83 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js.map +1 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.d.ts +10 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js +39 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js.map +1 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type.d.ts +16 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js +72 -0
- package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js.map +1 -0
- package/dist-server/service/inspection-part/index.d.ts +5 -0
- package/dist-server/service/inspection-part/index.js +9 -0
- package/dist-server/service/inspection-part/index.js.map +1 -0
- package/dist-server/service/inspection-part/inspection-part-mutation.d.ts +6 -0
- package/dist-server/service/inspection-part/inspection-part-mutation.js +55 -0
- package/dist-server/service/inspection-part/inspection-part-mutation.js.map +1 -0
- package/dist-server/service/inspection-part/inspection-part-query.d.ts +10 -0
- package/dist-server/service/inspection-part/inspection-part-query.js +66 -0
- package/dist-server/service/inspection-part/inspection-part-query.js.map +1 -0
- package/dist-server/service/inspection-part/inspection-part-type.d.ts +11 -0
- package/dist-server/service/inspection-part/inspection-part-type.js +43 -0
- package/dist-server/service/inspection-part/inspection-part-type.js.map +1 -0
- package/dist-server/service/inspection-part/inspection-part.d.ts +15 -0
- package/dist-server/service/inspection-part/inspection-part.js +69 -0
- package/dist-server/service/inspection-part/inspection-part.js.map +1 -0
- package/dist-server/service/project/index.d.ts +0 -2
- package/dist-server/service/project/index.js +1 -3
- package/dist-server/service/project/index.js.map +1 -1
- package/dist-server/service/project/project-query.d.ts +7 -5
- package/dist-server/service/project/project-query.js +34 -38
- package/dist-server/service/project/project-query.js.map +1 -1
- package/dist-server/service/project/project-type.d.ts +3 -6
- package/dist-server/service/project/project-type.js +25 -35
- package/dist-server/service/project/project-type.js.map +1 -1
- package/dist-server/service/project/project.d.ts +3 -2
- package/dist-server/service/project/project.js +10 -10
- package/dist-server/service/project/project.js.map +1 -1
- package/dist-server/service/resource/index.d.ts +6 -0
- package/dist-server/service/resource/index.js +10 -0
- package/dist-server/service/resource/index.js.map +1 -0
- package/dist-server/service/resource/resource-mutation.d.ts +10 -0
- package/dist-server/service/resource/resource-mutation.js +132 -0
- package/dist-server/service/resource/resource-mutation.js.map +1 -0
- package/dist-server/service/resource/resource-query.d.ts +11 -0
- package/dist-server/service/{checklist/checklist-query.js → resource/resource-query.js} +33 -38
- package/dist-server/service/resource/resource-query.js.map +1 -0
- package/dist-server/service/resource/resource-type.d.ts +17 -0
- package/dist-server/service/resource/resource-type.js +65 -0
- package/dist-server/service/resource/resource-type.js.map +1 -0
- package/dist-server/service/resource/resource.d.ts +24 -0
- package/dist-server/service/resource/resource.js +93 -0
- package/dist-server/service/resource/resource.js.map +1 -0
- package/dist-server/service/task/task-mutation.js +6 -0
- package/dist-server/service/task/task-mutation.js.map +1 -1
- package/dist-server/service/task/task-query.d.ts +9 -1
- package/dist-server/service/task/task-query.js +142 -20
- package/dist-server/service/task/task-query.js.map +1 -1
- package/dist-server/service/task/task-type.d.ts +13 -0
- package/dist-server/service/task/task-type.js +57 -12
- package/dist-server/service/task/task-type.js.map +1 -1
- package/dist-server/service/task/task.d.ts +12 -5
- package/dist-server/service/task/task.js +51 -16
- package/dist-server/service/task/task.js.map +1 -1
- package/dist-server/service/task-resource/index.d.ts +6 -0
- package/dist-server/service/task-resource/index.js +10 -0
- package/dist-server/service/task-resource/index.js.map +1 -0
- package/dist-server/service/task-resource/task-resource-mutation.d.ts +10 -0
- package/dist-server/service/task-resource/task-resource-mutation.js +132 -0
- package/dist-server/service/task-resource/task-resource-mutation.js.map +1 -0
- package/dist-server/service/task-resource/task-resource-query.d.ts +7 -0
- package/dist-server/service/task-resource/task-resource-query.js +50 -0
- package/dist-server/service/task-resource/task-resource-query.js.map +1 -0
- package/dist-server/service/task-resource/task-resource-type.d.ts +17 -0
- package/dist-server/service/task-resource/task-resource-type.js +65 -0
- package/dist-server/service/task-resource/task-resource-type.js.map +1 -0
- package/dist-server/service/task-resource/task-resource.d.ts +13 -0
- package/dist-server/service/task-resource/task-resource.js +59 -0
- package/dist-server/service/task-resource/task-resource.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/helps/project/checklist-type-detail.md +160 -0
- package/helps/project/checklist-type.md +160 -0
- package/helps/project/task-resource.md +160 -0
- package/package.json +11 -7
- package/server/controllers/import-task.ts +140 -0
- package/server/index.ts +1 -0
- package/server/migrations/1723861466413-seed-roles.ts +128 -0
- package/server/migrations/1723861466414-seed-codes.ts +139 -0
- package/server/migrations/1723861476419-seed-resources.ts +62 -0
- package/server/migrations/1723861478420-seed-/bsample-project.ts +87 -0
- package/server/migrations/1723861478421-seed-/bsample-tasks.ts +194 -0
- package/server/migrations/index.ts +9 -0
- package/server/service/construction-detail-type/construction-detail-type-mutation.ts +57 -0
- package/server/service/construction-detail-type/construction-detail-type-query.ts +31 -0
- package/server/service/construction-detail-type/construction-detail-type-type.ts +26 -0
- package/server/service/construction-detail-type/construction-detail-type.ts +52 -0
- package/server/service/construction-detail-type/index.ts +6 -0
- package/server/service/construction-type/construction-type-query.ts +9 -0
- package/server/service/construction-type/construction-type.ts +8 -2
- package/server/service/index.ts +24 -11
- package/server/service/inspection-drawing-type/index.ts +6 -0
- package/server/service/inspection-drawing-type/inspection-drawing-type-mutation.ts +69 -0
- package/server/service/inspection-drawing-type/inspection-drawing-type-query.ts +55 -0
- package/server/service/inspection-drawing-type/inspection-drawing-type-type.ts +23 -0
- package/server/service/inspection-drawing-type/inspection-drawing-type.ts +68 -0
- package/server/service/inspection-part/index.ts +6 -0
- package/server/service/inspection-part/inspection-part-mutation.ts +52 -0
- package/server/service/inspection-part/inspection-part-query.ts +41 -0
- package/server/service/inspection-part/inspection-part-type.ts +26 -0
- package/server/service/inspection-part/inspection-part.ts +51 -0
- package/server/service/project/index.ts +0 -2
- package/server/service/project/project-query.ts +30 -38
- package/server/service/project/project-type.ts +22 -27
- package/server/service/project/project.ts +11 -12
- package/server/service/resource/index.ts +7 -0
- package/server/service/resource/resource-mutation.ts +137 -0
- package/server/service/resource/resource-query.ts +50 -0
- package/server/service/resource/resource-type.ts +41 -0
- package/server/service/resource/resource.ts +82 -0
- package/server/service/task/task-mutation.ts +8 -9
- package/server/service/task/task-query.ts +135 -22
- package/server/service/task/task-type.ts +41 -15
- package/server/service/task/task.ts +44 -15
- package/server/service/task-resource/index.ts +7 -0
- package/server/service/task-resource/task-resource-mutation.ts +140 -0
- package/server/service/task-resource/task-resource-query.ts +36 -0
- package/server/service/task-resource/task-resource-type.ts +41 -0
- package/server/service/task-resource/task-resource.ts +51 -0
- package/things-factory.config.js +1 -0
- package/translations/en.json +15 -1
- package/translations/ko.json +9 -5
- package/dist-client/pages/checklist/checklist-importer.js.map +0 -1
- package/dist-client/pages/checklist/checklist-list-page.js.map +0 -1
- package/dist-server/service/check-item/check-item-mutation.d.ts +0 -10
- package/dist-server/service/check-item/check-item-mutation.js +0 -129
- package/dist-server/service/check-item/check-item-mutation.js.map +0 -1
- package/dist-server/service/check-item/check-item-query.d.ts +0 -11
- package/dist-server/service/check-item/check-item-query.js +0 -86
- package/dist-server/service/check-item/check-item-query.js.map +0 -1
- package/dist-server/service/check-item/check-item-type.d.ts +0 -18
- package/dist-server/service/check-item/check-item-type.js +0 -69
- package/dist-server/service/check-item/check-item-type.js.map +0 -1
- package/dist-server/service/check-item/check-item.d.ts +0 -18
- package/dist-server/service/check-item/check-item.js +0 -84
- package/dist-server/service/check-item/check-item.js.map +0 -1
- package/dist-server/service/check-item/index.d.ts +0 -5
- package/dist-server/service/check-item/index.js +0 -9
- package/dist-server/service/check-item/index.js.map +0 -1
- package/dist-server/service/checklist/checklist-mutation.d.ts +0 -10
- package/dist-server/service/checklist/checklist-mutation.js +0 -129
- package/dist-server/service/checklist/checklist-mutation.js.map +0 -1
- package/dist-server/service/checklist/checklist-query.d.ts +0 -11
- package/dist-server/service/checklist/checklist-query.js.map +0 -1
- package/dist-server/service/checklist/checklist-type.d.ts +0 -18
- package/dist-server/service/checklist/checklist-type.js +0 -69
- package/dist-server/service/checklist/checklist-type.js.map +0 -1
- package/dist-server/service/checklist/checklist.d.ts +0 -26
- package/dist-server/service/checklist/checklist.js +0 -120
- package/dist-server/service/checklist/checklist.js.map +0 -1
- package/dist-server/service/checklist/index.d.ts +0 -5
- package/dist-server/service/checklist/index.js +0 -9
- package/dist-server/service/checklist/index.js.map +0 -1
- package/server/service/check-item/check-item-mutation.ts +0 -142
- package/server/service/check-item/check-item-query.ts +0 -56
- package/server/service/check-item/check-item-type.ts +0 -49
- package/server/service/check-item/check-item.ts +0 -74
- package/server/service/check-item/index.ts +0 -6
- package/server/service/checklist/checklist-mutation.ts +0 -142
- package/server/service/checklist/checklist-query.ts +0 -56
- package/server/service/checklist/checklist-type.ts +0 -49
- package/server/service/checklist/checklist.ts +0 -105
- package/server/service/checklist/index.ts +0 -6
|
@@ -0,0 +1,128 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
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: '감리사',
|
|
57
|
+
description: '감리사',
|
|
58
|
+
labels: null,
|
|
59
|
+
rank: 1
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: '설계사',
|
|
63
|
+
description: '설계사',
|
|
64
|
+
labels: null,
|
|
65
|
+
rank: 2
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: '현장관리자',
|
|
69
|
+
description: '현장관리자',
|
|
70
|
+
labels: null,
|
|
71
|
+
rank: 3
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: '시공자',
|
|
75
|
+
description: '시공자',
|
|
76
|
+
labels: null,
|
|
77
|
+
rank: 4
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
|
|
83
|
+
export class SeedCodes1723861466414 implements MigrationInterface {
|
|
84
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
85
|
+
const commonCodeRepository = getRepository(CommonCode)
|
|
86
|
+
const commonCodeDetailRepository = getRepository(CommonCodeDetail)
|
|
87
|
+
const domainRepository = getRepository(Domain)
|
|
88
|
+
const userRepository = getRepository(User)
|
|
89
|
+
|
|
90
|
+
const domain: Domain = await domainRepository.findOne({
|
|
91
|
+
where: { name: 'SYSTEM' }
|
|
92
|
+
})
|
|
93
|
+
const user = await userRepository.findOne({ where: { id: domain.owner } })
|
|
94
|
+
|
|
95
|
+
try {
|
|
96
|
+
for (let i = 0; i < SEED_COMMON_CODES.length; i++) {
|
|
97
|
+
const { name, description, details } = SEED_COMMON_CODES[i]
|
|
98
|
+
|
|
99
|
+
const commonCode = await commonCodeRepository.save({
|
|
100
|
+
domain,
|
|
101
|
+
name,
|
|
102
|
+
description,
|
|
103
|
+
creator: user,
|
|
104
|
+
updater: user
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
for (const commonCodeDetail of details) {
|
|
108
|
+
const { name, description, labels, rank } = commonCodeDetail
|
|
109
|
+
|
|
110
|
+
await commonCodeDetailRepository.save({
|
|
111
|
+
domain,
|
|
112
|
+
commonCode,
|
|
113
|
+
name,
|
|
114
|
+
description,
|
|
115
|
+
labels,
|
|
116
|
+
rank
|
|
117
|
+
})
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
} catch (e) {
|
|
121
|
+
logger.error(e)
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
126
|
+
const domainRepository = getRepository(Domain)
|
|
127
|
+
|
|
128
|
+
const domain: Domain = await domainRepository.findOne({
|
|
129
|
+
where: { name: 'SYSTEM' }
|
|
130
|
+
})
|
|
131
|
+
|
|
132
|
+
const repository = getRepository(CommonCode)
|
|
133
|
+
|
|
134
|
+
SEED_COMMON_CODES.reverse().forEach(async commonCode => {
|
|
135
|
+
let record = await repository.findOne({ where: { name: commonCode.name, domain: { id: domain.id } } })
|
|
136
|
+
record && (await repository.remove(record))
|
|
137
|
+
})
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
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, ProjectStatus } 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: ProjectStatus.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
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
})
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
|
|
2
|
+
import { In } from 'typeorm'
|
|
3
|
+
import { deleteAttachmentsByRef } from '@things-factory/attachment-base'
|
|
4
|
+
import { ConstructionDetailType } from './construction-detail-type'
|
|
5
|
+
import { ConstructionDetailTypePatch } from './construction-detail-type-type'
|
|
6
|
+
import { ConstructionType } from '../construction-type/construction-type'
|
|
7
|
+
|
|
8
|
+
@Resolver(ConstructionDetailType)
|
|
9
|
+
export class ConstructionDetailTypeMutation {
|
|
10
|
+
@Directive('@transaction')
|
|
11
|
+
@Mutation(returns => [ConstructionDetailType], { description: "To modify multiple ConstructionDetailTypes' information" })
|
|
12
|
+
async updateMultipleConstructionDetailType(
|
|
13
|
+
@Arg('patches', type => [ConstructionDetailTypePatch]) patches: ConstructionDetailTypePatch[],
|
|
14
|
+
@Arg('constructionTypeId') constructionTypeId: string,
|
|
15
|
+
@Ctx() context: ResolverContext
|
|
16
|
+
): Promise<ConstructionDetailType[]> {
|
|
17
|
+
const { domain, user, tx } = context.state
|
|
18
|
+
|
|
19
|
+
let results = []
|
|
20
|
+
|
|
21
|
+
const constructionDetailTypeRepo = tx.getRepository(ConstructionDetailType)
|
|
22
|
+
const constructionType = await tx.getRepository(ConstructionType).findOneBy({ id: constructionTypeId })
|
|
23
|
+
|
|
24
|
+
await constructionDetailTypeRepo.delete({ constructionType: { id: constructionTypeId } })
|
|
25
|
+
|
|
26
|
+
for (let i = 0; i < patches.length; i++) {
|
|
27
|
+
const result = await constructionDetailTypeRepo.save({
|
|
28
|
+
...patches[i],
|
|
29
|
+
sequence: i,
|
|
30
|
+
constructionType,
|
|
31
|
+
creator: user,
|
|
32
|
+
updater: user
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
results.push({ ...result, cuFlag: '+' })
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return results
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@Directive('@transaction')
|
|
42
|
+
@Mutation(returns => Boolean, { description: 'To delete multiple ConstructionDetailTypes' })
|
|
43
|
+
async deleteConstructionDetailTypes(
|
|
44
|
+
@Arg('ids', type => [String]) ids: string[],
|
|
45
|
+
@Ctx() context: ResolverContext
|
|
46
|
+
): Promise<boolean> {
|
|
47
|
+
const { domain, tx } = context.state
|
|
48
|
+
|
|
49
|
+
await tx.getRepository(ConstructionDetailType).delete({
|
|
50
|
+
id: In(ids)
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
await deleteAttachmentsByRef(null, { refBys: ids }, context)
|
|
54
|
+
|
|
55
|
+
return true
|
|
56
|
+
}
|
|
57
|
+
}
|