@dssp/project 0.0.9 → 0.0.11
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 +86 -339
- 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 +96 -337
- 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,31 @@
|
|
|
1
|
+
import { Resolver, Query, FieldResolver, Root, Args, Ctx } from 'type-graphql'
|
|
2
|
+
import { getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
|
|
3
|
+
import { User } from '@things-factory/auth-base'
|
|
4
|
+
import { ConstructionDetailType } from './construction-detail-type'
|
|
5
|
+
import { ConstructionDetailTypeList } from './construction-detail-type-type'
|
|
6
|
+
|
|
7
|
+
@Resolver(ConstructionDetailType)
|
|
8
|
+
export class ConstructionDetailTypeQuery {
|
|
9
|
+
@Query(returns => ConstructionDetailTypeList, { description: 'To fetch multiple ConstructionDetailTypes' })
|
|
10
|
+
async constructionDetailTypes(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ConstructionDetailTypeList> {
|
|
11
|
+
const queryBuilder = getQueryBuilderFromListParams({
|
|
12
|
+
params,
|
|
13
|
+
repository: await getRepository(ConstructionDetailType),
|
|
14
|
+
searchables: ['name']
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
const [items, total] = await queryBuilder.getManyAndCount()
|
|
18
|
+
|
|
19
|
+
return { items, total }
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@FieldResolver(type => User)
|
|
23
|
+
async updater(@Root() constructionDetailType: ConstructionDetailType): Promise<User> {
|
|
24
|
+
return await getRepository(User).findOneBy({ id: constructionDetailType.updaterId })
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@FieldResolver(type => User)
|
|
28
|
+
async creator(@Root() constructionDetailType: ConstructionDetailType): Promise<User> {
|
|
29
|
+
return await getRepository(User).findOneBy({ id: constructionDetailType.creatorId })
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'
|
|
2
|
+
import { ConstructionDetailType } from './construction-detail-type'
|
|
3
|
+
|
|
4
|
+
@InputType()
|
|
5
|
+
export class ConstructionDetailTypePatch {
|
|
6
|
+
@Field(type => ID, { nullable: true })
|
|
7
|
+
id?: string
|
|
8
|
+
|
|
9
|
+
@Field({ nullable: true })
|
|
10
|
+
name?: string
|
|
11
|
+
|
|
12
|
+
@Field(type => Int, { nullable: true })
|
|
13
|
+
sequence?: number
|
|
14
|
+
|
|
15
|
+
@Field({ nullable: true })
|
|
16
|
+
cuFlag?: string
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@ObjectType()
|
|
20
|
+
export class ConstructionDetailTypeList {
|
|
21
|
+
@Field(type => [ConstructionDetailType])
|
|
22
|
+
items: ConstructionDetailType[]
|
|
23
|
+
|
|
24
|
+
@Field(type => Int)
|
|
25
|
+
total: number
|
|
26
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CreateDateColumn, UpdateDateColumn, Entity, Index, Column, RelationId, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'
|
|
2
|
+
import { ObjectType, Field, ID, Int } from 'type-graphql'
|
|
3
|
+
|
|
4
|
+
import { User } from '@things-factory/auth-base'
|
|
5
|
+
import { ConstructionType } from '../construction-type/construction-type'
|
|
6
|
+
|
|
7
|
+
@Entity()
|
|
8
|
+
@Index('ix_construction_detail_type_0', (constructionDetailType: ConstructionDetailType) => [constructionDetailType.sequence])
|
|
9
|
+
@ObjectType({ description: '세부 공종 타입' })
|
|
10
|
+
export class ConstructionDetailType {
|
|
11
|
+
@PrimaryGeneratedColumn('uuid')
|
|
12
|
+
@Field(type => ID)
|
|
13
|
+
readonly id: string
|
|
14
|
+
|
|
15
|
+
@Column({ nullable: false, comment: '세부 공종 이름' })
|
|
16
|
+
@Field({ nullable: true })
|
|
17
|
+
name?: string
|
|
18
|
+
|
|
19
|
+
@Column({ nullable: true, comment: '시퀀스' })
|
|
20
|
+
@Field(type => Int, { nullable: true })
|
|
21
|
+
sequence?: number
|
|
22
|
+
|
|
23
|
+
// 공종 타입 (상위 테이블 참조)
|
|
24
|
+
@ManyToOne(type => ConstructionType)
|
|
25
|
+
@Field({ nullable: true })
|
|
26
|
+
constructionType?: ConstructionType
|
|
27
|
+
|
|
28
|
+
@RelationId((constructionDetailType: ConstructionDetailType) => constructionDetailType.constructionType)
|
|
29
|
+
constructionTypeId?: string
|
|
30
|
+
|
|
31
|
+
@CreateDateColumn()
|
|
32
|
+
@Field({ nullable: true })
|
|
33
|
+
createdAt?: Date
|
|
34
|
+
|
|
35
|
+
@UpdateDateColumn()
|
|
36
|
+
@Field({ nullable: true })
|
|
37
|
+
updatedAt?: Date
|
|
38
|
+
|
|
39
|
+
@ManyToOne(type => User, { nullable: true })
|
|
40
|
+
@Field(type => User, { nullable: true })
|
|
41
|
+
creator?: User
|
|
42
|
+
|
|
43
|
+
@RelationId((constructionDetailType: ConstructionDetailType) => constructionDetailType.creator)
|
|
44
|
+
creatorId?: string
|
|
45
|
+
|
|
46
|
+
@ManyToOne(type => User, { nullable: true })
|
|
47
|
+
@Field(type => User, { nullable: true })
|
|
48
|
+
updater?: User
|
|
49
|
+
|
|
50
|
+
@RelationId((constructionDetailType: ConstructionDetailType) => constructionDetailType.updater)
|
|
51
|
+
updaterId?: string
|
|
52
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ConstructionDetailType } from './construction-detail-type'
|
|
2
|
+
import { ConstructionDetailTypeQuery } from './construction-detail-type-query'
|
|
3
|
+
import { ConstructionDetailTypeMutation } from './construction-detail-type-mutation'
|
|
4
|
+
|
|
5
|
+
export const entities = [ConstructionDetailType]
|
|
6
|
+
export const resolvers = [ConstructionDetailTypeQuery, ConstructionDetailTypeMutation]
|
|
@@ -3,6 +3,7 @@ import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from
|
|
|
3
3
|
import { User } from '@things-factory/auth-base'
|
|
4
4
|
import { ConstructionType } from './construction-type'
|
|
5
5
|
import { ConstructionTypeList } from './construction-type-type'
|
|
6
|
+
import { ConstructionDetailType } from '../construction-detail-type/construction-detail-type'
|
|
6
7
|
|
|
7
8
|
@Resolver(ConstructionType)
|
|
8
9
|
export class ConstructionTypeQuery {
|
|
@@ -30,6 +31,14 @@ export class ConstructionTypeQuery {
|
|
|
30
31
|
return { items, total }
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
@FieldResolver(type => [ConstructionDetailType])
|
|
35
|
+
async constructionDetailTypes(@Root() constructionType: ConstructionType): Promise<ConstructionDetailType[]> {
|
|
36
|
+
return await getRepository(ConstructionDetailType).find({
|
|
37
|
+
where: { constructionType: { id: constructionType.id } },
|
|
38
|
+
order: { sequence: 'ASC' }
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
33
42
|
@FieldResolver(type => Domain)
|
|
34
43
|
async domain(@Root() constructionType: ConstructionType): Promise<Domain> {
|
|
35
44
|
return await getRepository(Domain).findOneBy({ id: constructionType.domainId })
|
|
@@ -7,12 +7,13 @@ import {
|
|
|
7
7
|
Column,
|
|
8
8
|
RelationId,
|
|
9
9
|
ManyToOne,
|
|
10
|
-
PrimaryGeneratedColumn
|
|
10
|
+
PrimaryGeneratedColumn,
|
|
11
|
+
OneToMany
|
|
11
12
|
} from 'typeorm'
|
|
12
13
|
import { ObjectType, Field, ID } from 'type-graphql'
|
|
13
|
-
|
|
14
14
|
import { Domain } from '@things-factory/shell'
|
|
15
15
|
import { User } from '@things-factory/auth-base'
|
|
16
|
+
import { ConstructionDetailType } from '../construction-detail-type/construction-detail-type'
|
|
16
17
|
|
|
17
18
|
@Entity()
|
|
18
19
|
@Index('ix_construction_type_0', (constructionType: ConstructionType) => [constructionType.domain, constructionType.name], {
|
|
@@ -40,6 +41,11 @@ export class ConstructionType {
|
|
|
40
41
|
@Field({ nullable: true })
|
|
41
42
|
description?: string
|
|
42
43
|
|
|
44
|
+
// 상세 공종 정보 (하위 테이블 참조)
|
|
45
|
+
@Field(() => [ConstructionDetailType], { nullable: true })
|
|
46
|
+
@OneToMany(() => ConstructionDetailType, constructionDetailType => constructionDetailType.constructionType)
|
|
47
|
+
constructionDetailTypes?: ConstructionDetailType[]
|
|
48
|
+
|
|
43
49
|
@CreateDateColumn()
|
|
44
50
|
@Field({ nullable: true })
|
|
45
51
|
createdAt?: Date
|
package/server/service/index.ts
CHANGED
|
@@ -1,28 +1,40 @@
|
|
|
1
1
|
/* EXPORT ENTITY TYPES */
|
|
2
|
+
export * from './task-resource/task-resource'
|
|
3
|
+
export * from './resource/resource'
|
|
4
|
+
export * from './construction-detail-type/construction-detail-type'
|
|
2
5
|
export * from './construction-type/construction-type'
|
|
6
|
+
export * from './inspection-drawing-type/inspection-drawing-type'
|
|
7
|
+
export * from './inspection-part/inspection-part'
|
|
3
8
|
export * from './worker-type/worker-type'
|
|
4
9
|
export * from './manager/manager'
|
|
5
|
-
export * from './check-item/check-item'
|
|
6
|
-
export * from './checklist/checklist'
|
|
7
10
|
export * from './task/task'
|
|
8
11
|
export * from './project/project'
|
|
9
12
|
|
|
10
13
|
/* IMPORT ENTITIES AND RESOLVERS */
|
|
14
|
+
import { entities as TaskResourceEntities, resolvers as TaskResourceResolvers } from './task-resource'
|
|
15
|
+
import { entities as ResourceEntities, resolvers as ResourceResolvers } from './resource'
|
|
16
|
+
import {
|
|
17
|
+
entities as ConstructionDetailTypeEntities,
|
|
18
|
+
resolvers as ConstructionDetailTypeResolvers
|
|
19
|
+
} from './construction-detail-type'
|
|
11
20
|
import { entities as ConstructionTypeEntities, resolvers as ConstructionTypeResolvers } from './construction-type'
|
|
21
|
+
import { entities as InspectionDrawingTypeEntities, resolvers as InspectionDrawingTypeResolvers } from './inspection-drawing-type'
|
|
22
|
+
import { entities as InspectionPartEntities, resolvers as InspectionPartResolvers } from './inspection-part'
|
|
12
23
|
import { entities as WorkerTypeEntities, resolvers as WorkerTypeResolvers } from './worker-type'
|
|
13
24
|
import { entities as ManagerEntities, resolvers as ManagerResolvers } from './manager'
|
|
14
|
-
import { entities as CheckItemEntities, resolvers as CheckItemResolvers } from './check-item'
|
|
15
|
-
import { entities as ChecklistEntities, resolvers as ChecklistResolvers } from './checklist'
|
|
16
25
|
import { entities as TaskEntities, resolvers as TaskResolvers } from './task'
|
|
17
|
-
import { entities as ProjectEntities, resolvers as ProjectResolvers
|
|
26
|
+
import { entities as ProjectEntities, resolvers as ProjectResolvers } from './project'
|
|
18
27
|
|
|
19
28
|
export const entities = [
|
|
20
29
|
/* ENTITIES */
|
|
30
|
+
...TaskResourceEntities,
|
|
31
|
+
...ResourceEntities,
|
|
32
|
+
...ConstructionDetailTypeEntities,
|
|
21
33
|
...ConstructionTypeEntities,
|
|
34
|
+
...InspectionDrawingTypeEntities,
|
|
35
|
+
...InspectionPartEntities,
|
|
22
36
|
...WorkerTypeEntities,
|
|
23
37
|
...ManagerEntities,
|
|
24
|
-
...CheckItemEntities,
|
|
25
|
-
...ChecklistEntities,
|
|
26
38
|
...TaskEntities,
|
|
27
39
|
...ProjectEntities
|
|
28
40
|
]
|
|
@@ -30,14 +42,15 @@ export const entities = [
|
|
|
30
42
|
export const schema = {
|
|
31
43
|
resolverClasses: [
|
|
32
44
|
/* RESOLVER CLASSES */
|
|
45
|
+
...TaskResourceResolvers,
|
|
46
|
+
...ResourceResolvers,
|
|
47
|
+
...ConstructionDetailTypeResolvers,
|
|
33
48
|
...ConstructionTypeResolvers,
|
|
49
|
+
...InspectionDrawingTypeResolvers,
|
|
50
|
+
...InspectionPartResolvers,
|
|
34
51
|
...WorkerTypeResolvers,
|
|
35
52
|
...ManagerResolvers,
|
|
36
|
-
...CheckItemResolvers,
|
|
37
|
-
...ChecklistResolvers,
|
|
38
53
|
...TaskResolvers,
|
|
39
54
|
...ProjectResolvers
|
|
40
55
|
]
|
|
41
56
|
}
|
|
42
|
-
|
|
43
|
-
export const types = [...ProjectTypes]
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { InspectionDrawingType } from './inspection-drawing-type'
|
|
2
|
+
import { InspectionDrawingTypeQuery } from './inspection-drawing-type-query'
|
|
3
|
+
import { InspectionDrawingTypeMutation } from './inspection-drawing-type-mutation'
|
|
4
|
+
|
|
5
|
+
export const entities = [InspectionDrawingType]
|
|
6
|
+
export const resolvers = [InspectionDrawingTypeQuery, InspectionDrawingTypeMutation]
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
|
|
2
|
+
import { In } from 'typeorm'
|
|
3
|
+
import { getRepository } from '@things-factory/shell'
|
|
4
|
+
import { InspectionDrawingType } from './inspection-drawing-type'
|
|
5
|
+
import { InspectionDrawingTypePatch } from './inspection-drawing-type-type'
|
|
6
|
+
|
|
7
|
+
@Resolver(InspectionDrawingType)
|
|
8
|
+
export class InspectionDrawingTypeMutation {
|
|
9
|
+
@Directive('@transaction')
|
|
10
|
+
@Mutation(returns => [InspectionDrawingType], { description: "To modify multiple InspectionDrawingTypes' information" })
|
|
11
|
+
async updateMultipleInspectionDrawingType(
|
|
12
|
+
@Arg('patches', type => [InspectionDrawingTypePatch]) patches: InspectionDrawingTypePatch[],
|
|
13
|
+
@Ctx() context: ResolverContext
|
|
14
|
+
): Promise<InspectionDrawingType[]> {
|
|
15
|
+
const { domain, user, tx } = context.state
|
|
16
|
+
|
|
17
|
+
let results = []
|
|
18
|
+
const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
|
|
19
|
+
const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
|
|
20
|
+
const inspectionDrawingTypeRepo = getRepository(InspectionDrawingType, tx)
|
|
21
|
+
|
|
22
|
+
if (_createRecords.length > 0) {
|
|
23
|
+
for (let i = 0; i < _createRecords.length; i++) {
|
|
24
|
+
const newRecord = _createRecords[i]
|
|
25
|
+
|
|
26
|
+
const result = await inspectionDrawingTypeRepo.save({
|
|
27
|
+
...newRecord,
|
|
28
|
+
domain,
|
|
29
|
+
creator: user,
|
|
30
|
+
updater: user
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
results.push({ ...result, cuFlag: '+' })
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (_updateRecords.length > 0) {
|
|
38
|
+
for (let i = 0; i < _updateRecords.length; i++) {
|
|
39
|
+
const updateRecord = _updateRecords[i]
|
|
40
|
+
const inspectionDrawingType = await inspectionDrawingTypeRepo.findOneBy({ id: updateRecord.id })
|
|
41
|
+
|
|
42
|
+
const result = await inspectionDrawingTypeRepo.save({
|
|
43
|
+
...inspectionDrawingType,
|
|
44
|
+
...updateRecord,
|
|
45
|
+
updater: user
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
results.push({ ...result, cuFlag: 'M' })
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return results
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@Directive('@transaction')
|
|
56
|
+
@Mutation(returns => Boolean, { description: 'To delete multiple InspectionDrawingTypes' })
|
|
57
|
+
async deleteInspectionDrawingTypes(
|
|
58
|
+
@Arg('ids', type => [String]) ids: string[],
|
|
59
|
+
@Ctx() context: ResolverContext
|
|
60
|
+
): Promise<boolean> {
|
|
61
|
+
const { domain, tx } = context.state
|
|
62
|
+
|
|
63
|
+
await getRepository(InspectionDrawingType, tx).delete({
|
|
64
|
+
id: In(ids)
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
return true
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'
|
|
2
|
+
import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
|
|
3
|
+
import { User } from '@things-factory/auth-base'
|
|
4
|
+
import { InspectionDrawingType } from './inspection-drawing-type'
|
|
5
|
+
import { InspectionDrawingTypeList } from './inspection-drawing-type-type'
|
|
6
|
+
import { InspectionPart } from '../inspection-part/inspection-part'
|
|
7
|
+
|
|
8
|
+
@Resolver(InspectionDrawingType)
|
|
9
|
+
export class InspectionDrawingTypeQuery {
|
|
10
|
+
@Query(returns => InspectionDrawingType!, { nullable: true, description: 'To fetch a InspectionDrawingType' })
|
|
11
|
+
async inspectionDrawingType(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<InspectionDrawingType> {
|
|
12
|
+
const { domain } = context.state
|
|
13
|
+
|
|
14
|
+
return await getRepository(InspectionDrawingType).findOne({
|
|
15
|
+
where: { domain: { id: domain.id }, id }
|
|
16
|
+
})
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@Query(returns => InspectionDrawingTypeList, { description: 'To fetch multiple InspectionDrawingTypes' })
|
|
20
|
+
async inspectionDrawingTypes(
|
|
21
|
+
@Args(type => ListParam) params: ListParam,
|
|
22
|
+
@Ctx() context: ResolverContext
|
|
23
|
+
): Promise<InspectionDrawingTypeList> {
|
|
24
|
+
const { domain } = context.state
|
|
25
|
+
|
|
26
|
+
const queryBuilder = getQueryBuilderFromListParams({
|
|
27
|
+
domain,
|
|
28
|
+
params,
|
|
29
|
+
repository: await getRepository(InspectionDrawingType),
|
|
30
|
+
searchables: ['name']
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
const [items, total] = await queryBuilder.getManyAndCount()
|
|
34
|
+
|
|
35
|
+
return { items, total }
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@FieldResolver(type => [InspectionPart])
|
|
39
|
+
async inspectionParts(@Root() inspectionDrawingType: InspectionDrawingType): Promise<InspectionPart[]> {
|
|
40
|
+
return await getRepository(InspectionPart).find({
|
|
41
|
+
where: { inspectionDrawingType: { id: inspectionDrawingType.id } },
|
|
42
|
+
order: { sequence: 'ASC' }
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@FieldResolver(type => User)
|
|
47
|
+
async updater(@Root() inspectionDrawingType: InspectionDrawingType): Promise<User> {
|
|
48
|
+
return inspectionDrawingType.updaterId && (await getRepository(User).findOneBy({ id: inspectionDrawingType.updaterId }))
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@FieldResolver(type => User)
|
|
52
|
+
async creator(@Root() inspectionDrawingType: InspectionDrawingType): Promise<User> {
|
|
53
|
+
return inspectionDrawingType.creatorId && (await getRepository(User).findOneBy({ id: inspectionDrawingType.creatorId }))
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'
|
|
2
|
+
import { InspectionDrawingType } from './inspection-drawing-type'
|
|
3
|
+
|
|
4
|
+
@InputType()
|
|
5
|
+
export class InspectionDrawingTypePatch {
|
|
6
|
+
@Field(type => ID, { nullable: true })
|
|
7
|
+
id?: string
|
|
8
|
+
|
|
9
|
+
@Field({ nullable: true })
|
|
10
|
+
name?: string
|
|
11
|
+
|
|
12
|
+
@Field({ nullable: true })
|
|
13
|
+
cuFlag?: string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@ObjectType()
|
|
17
|
+
export class InspectionDrawingTypeList {
|
|
18
|
+
@Field(type => [InspectionDrawingType])
|
|
19
|
+
items: InspectionDrawingType[]
|
|
20
|
+
|
|
21
|
+
@Field(type => Int)
|
|
22
|
+
total: number
|
|
23
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CreateDateColumn,
|
|
3
|
+
UpdateDateColumn,
|
|
4
|
+
Entity,
|
|
5
|
+
Index,
|
|
6
|
+
Column,
|
|
7
|
+
RelationId,
|
|
8
|
+
ManyToOne,
|
|
9
|
+
OneToMany,
|
|
10
|
+
PrimaryGeneratedColumn
|
|
11
|
+
} from 'typeorm'
|
|
12
|
+
import { ObjectType, Field, ID } from 'type-graphql'
|
|
13
|
+
import { User } from '@things-factory/auth-base'
|
|
14
|
+
import { Domain } from '@things-factory/shell'
|
|
15
|
+
import { InspectionPart } from '../inspection-part/inspection-part'
|
|
16
|
+
|
|
17
|
+
@Entity()
|
|
18
|
+
@Index(
|
|
19
|
+
'ix_inspection_drawing_type_0',
|
|
20
|
+
(inspectionDrawingType: InspectionDrawingType) => [inspectionDrawingType.domain, inspectionDrawingType.name],
|
|
21
|
+
{
|
|
22
|
+
unique: true
|
|
23
|
+
}
|
|
24
|
+
)
|
|
25
|
+
@ObjectType({ description: 'Entity for InspectionDrawingType' })
|
|
26
|
+
export class InspectionDrawingType {
|
|
27
|
+
@PrimaryGeneratedColumn('uuid')
|
|
28
|
+
@Field(type => ID)
|
|
29
|
+
readonly id: string
|
|
30
|
+
|
|
31
|
+
@ManyToOne(type => Domain)
|
|
32
|
+
@Field({ nullable: true })
|
|
33
|
+
domain?: Domain
|
|
34
|
+
|
|
35
|
+
@RelationId((inspectionDrawingType: InspectionDrawingType) => inspectionDrawingType.domain)
|
|
36
|
+
domainId?: string
|
|
37
|
+
|
|
38
|
+
@Column({ nullable: false, comment: '검측 도면 타입 이름' })
|
|
39
|
+
@Field({ nullable: true })
|
|
40
|
+
name?: string
|
|
41
|
+
|
|
42
|
+
// 검측 부위 정보 (하위 테이블 참조)
|
|
43
|
+
@Field(() => [InspectionPart], { nullable: true })
|
|
44
|
+
@OneToMany(() => InspectionPart, inspectionPart => inspectionPart.inspectionDrawingType)
|
|
45
|
+
inspectionParts?: InspectionPart[]
|
|
46
|
+
|
|
47
|
+
@CreateDateColumn()
|
|
48
|
+
@Field({ nullable: true })
|
|
49
|
+
createdAt?: Date
|
|
50
|
+
|
|
51
|
+
@UpdateDateColumn()
|
|
52
|
+
@Field({ nullable: true })
|
|
53
|
+
updatedAt?: Date
|
|
54
|
+
|
|
55
|
+
@ManyToOne(type => User, { nullable: true })
|
|
56
|
+
@Field(type => User, { nullable: true })
|
|
57
|
+
creator?: User
|
|
58
|
+
|
|
59
|
+
@RelationId((inspectionDrawingType: InspectionDrawingType) => inspectionDrawingType.creator)
|
|
60
|
+
creatorId?: string
|
|
61
|
+
|
|
62
|
+
@ManyToOne(type => User, { nullable: true })
|
|
63
|
+
@Field(type => User, { nullable: true })
|
|
64
|
+
updater?: User
|
|
65
|
+
|
|
66
|
+
@RelationId((inspectionDrawingType: InspectionDrawingType) => inspectionDrawingType.updater)
|
|
67
|
+
updaterId?: string
|
|
68
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { InspectionPart } from './inspection-part'
|
|
2
|
+
import { InspectionPartQuery } from './inspection-part-query'
|
|
3
|
+
import { InspectionPartMutation } from './inspection-part-mutation'
|
|
4
|
+
|
|
5
|
+
export const entities = [InspectionPart]
|
|
6
|
+
export const resolvers = [InspectionPartQuery, InspectionPartMutation]
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
|
|
2
|
+
import { In } from 'typeorm'
|
|
3
|
+
import { getRepository } from '@things-factory/shell'
|
|
4
|
+
import { InspectionPart } from './inspection-part'
|
|
5
|
+
import { InspectionPartPatch } from './inspection-part-type'
|
|
6
|
+
import { InspectionDrawingType } from '../inspection-drawing-type/inspection-drawing-type'
|
|
7
|
+
|
|
8
|
+
@Resolver(InspectionPart)
|
|
9
|
+
export class InspectionPartMutation {
|
|
10
|
+
@Directive('@transaction')
|
|
11
|
+
@Mutation(returns => [InspectionPart], { description: "To modify multiple InspectionParts' information" })
|
|
12
|
+
async updateMultipleInspectionPart(
|
|
13
|
+
@Arg('patches', type => [InspectionPartPatch]) patches: InspectionPartPatch[],
|
|
14
|
+
@Arg('inspectionDrawingTypeId') inspectionDrawingTypeId: string,
|
|
15
|
+
@Ctx() context: ResolverContext
|
|
16
|
+
): Promise<InspectionPart[]> {
|
|
17
|
+
const { user, tx } = context.state
|
|
18
|
+
|
|
19
|
+
let results = []
|
|
20
|
+
|
|
21
|
+
const inspectionPartRepo = tx.getRepository(InspectionPart)
|
|
22
|
+
const inspectionDrawingType = await tx.getRepository(InspectionDrawingType).findOneBy({ id: inspectionDrawingTypeId })
|
|
23
|
+
|
|
24
|
+
await inspectionPartRepo.delete({ inspectionDrawingType: { id: inspectionDrawingTypeId } })
|
|
25
|
+
|
|
26
|
+
for (let i = 0; i < patches.length; i++) {
|
|
27
|
+
const result = await inspectionPartRepo.save({
|
|
28
|
+
...patches[i],
|
|
29
|
+
sequence: i,
|
|
30
|
+
inspectionDrawingType,
|
|
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 InspectionParts' })
|
|
43
|
+
async deleteInspectionParts(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {
|
|
44
|
+
const { domain, tx } = context.state
|
|
45
|
+
|
|
46
|
+
await getRepository(InspectionPart, tx).delete({
|
|
47
|
+
id: In(ids)
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
return true
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx } from 'type-graphql'
|
|
2
|
+
import { getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
|
|
3
|
+
import { User } from '@things-factory/auth-base'
|
|
4
|
+
import { InspectionPart } from './inspection-part'
|
|
5
|
+
import { InspectionPartList } from './inspection-part-type'
|
|
6
|
+
|
|
7
|
+
@Resolver(InspectionPart)
|
|
8
|
+
export class InspectionPartQuery {
|
|
9
|
+
@Query(returns => InspectionPart!, { nullable: true, description: 'To fetch a InspectionPart' })
|
|
10
|
+
async inspectionPart(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<InspectionPart> {
|
|
11
|
+
return await getRepository(InspectionPart).findOne({
|
|
12
|
+
where: { id }
|
|
13
|
+
})
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@Query(returns => InspectionPartList, { description: 'To fetch multiple InspectionParts' })
|
|
17
|
+
async inspectionParts(
|
|
18
|
+
@Args(type => ListParam) params: ListParam,
|
|
19
|
+
@Ctx() context: ResolverContext
|
|
20
|
+
): Promise<InspectionPartList> {
|
|
21
|
+
const queryBuilder = getQueryBuilderFromListParams({
|
|
22
|
+
params,
|
|
23
|
+
repository: await getRepository(InspectionPart),
|
|
24
|
+
searchables: ['name', 'description']
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
const [items, total] = await queryBuilder.getManyAndCount()
|
|
28
|
+
|
|
29
|
+
return { items, total }
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@FieldResolver(type => User)
|
|
33
|
+
async updater(@Root() inspectionPart: InspectionPart): Promise<User> {
|
|
34
|
+
return inspectionPart.updaterId && (await getRepository(User).findOneBy({ id: inspectionPart.updaterId }))
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@FieldResolver(type => User)
|
|
38
|
+
async creator(@Root() inspectionPart: InspectionPart): Promise<User> {
|
|
39
|
+
return inspectionPart.creatorId && (await getRepository(User).findOneBy({ id: inspectionPart.creatorId }))
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'
|
|
2
|
+
import { InspectionPart } from './inspection-part'
|
|
3
|
+
|
|
4
|
+
@InputType()
|
|
5
|
+
export class InspectionPartPatch {
|
|
6
|
+
@Field(type => ID, { nullable: true })
|
|
7
|
+
id?: string
|
|
8
|
+
|
|
9
|
+
@Field({ nullable: true })
|
|
10
|
+
name?: string
|
|
11
|
+
|
|
12
|
+
@Field(type => Int, { nullable: true })
|
|
13
|
+
sequence?: number
|
|
14
|
+
|
|
15
|
+
@Field({ nullable: true })
|
|
16
|
+
cuFlag?: string
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@ObjectType()
|
|
20
|
+
export class InspectionPartList {
|
|
21
|
+
@Field(type => [InspectionPart])
|
|
22
|
+
items: InspectionPart[]
|
|
23
|
+
|
|
24
|
+
@Field(type => Int)
|
|
25
|
+
total: number
|
|
26
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { CreateDateColumn, UpdateDateColumn, Entity, Index, Column, RelationId, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'
|
|
2
|
+
import { ObjectType, Field, ID, Int } from 'type-graphql'
|
|
3
|
+
import { User } from '@things-factory/auth-base'
|
|
4
|
+
import { InspectionDrawingType } from '../inspection-drawing-type/inspection-drawing-type'
|
|
5
|
+
|
|
6
|
+
@Entity()
|
|
7
|
+
@Index('ix_inspection_part_0', (inspectionPart: InspectionPart) => [inspectionPart.sequence])
|
|
8
|
+
@ObjectType({ description: 'Entity for InspectionPart' })
|
|
9
|
+
export class InspectionPart {
|
|
10
|
+
@PrimaryGeneratedColumn('uuid')
|
|
11
|
+
@Field(type => ID)
|
|
12
|
+
readonly id: string
|
|
13
|
+
|
|
14
|
+
@Column({ nullable: false, comment: '검측 부위' })
|
|
15
|
+
@Field({ nullable: true })
|
|
16
|
+
name?: string
|
|
17
|
+
|
|
18
|
+
@Column({ nullable: true, comment: '시퀀스' })
|
|
19
|
+
@Field(type => Int, { nullable: true })
|
|
20
|
+
sequence?: number
|
|
21
|
+
|
|
22
|
+
// 검측 도면 정보 (상위 테이블 참조)
|
|
23
|
+
@ManyToOne(type => InspectionDrawingType)
|
|
24
|
+
@Field(type => InspectionDrawingType, { nullable: true })
|
|
25
|
+
inspectionDrawingType?: InspectionDrawingType
|
|
26
|
+
|
|
27
|
+
@RelationId((inspectionPart: InspectionPart) => inspectionPart.inspectionDrawingType)
|
|
28
|
+
inspectionDrawingTypeId?: string
|
|
29
|
+
|
|
30
|
+
@CreateDateColumn()
|
|
31
|
+
@Field({ nullable: true })
|
|
32
|
+
createdAt?: Date
|
|
33
|
+
|
|
34
|
+
@UpdateDateColumn()
|
|
35
|
+
@Field({ nullable: true })
|
|
36
|
+
updatedAt?: Date
|
|
37
|
+
|
|
38
|
+
@ManyToOne(type => User, { nullable: true })
|
|
39
|
+
@Field(type => User, { nullable: true })
|
|
40
|
+
creator?: User
|
|
41
|
+
|
|
42
|
+
@RelationId((inspectionPart: InspectionPart) => inspectionPart.creator)
|
|
43
|
+
creatorId?: string
|
|
44
|
+
|
|
45
|
+
@ManyToOne(type => User, { nullable: true })
|
|
46
|
+
@Field(type => User, { nullable: true })
|
|
47
|
+
updater?: User
|
|
48
|
+
|
|
49
|
+
@RelationId((inspectionPart: InspectionPart) => inspectionPart.updater)
|
|
50
|
+
updaterId?: string
|
|
51
|
+
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { Project } from './project'
|
|
2
2
|
import { ProjectQuery } from './project-query'
|
|
3
3
|
import { ProjectMutation } from './project-mutation'
|
|
4
|
-
import { InspectionSummary } from './project-type'
|
|
5
4
|
|
|
6
5
|
export const entities = [Project]
|
|
7
6
|
export const resolvers = [ProjectQuery, ProjectMutation]
|
|
8
|
-
export const types = [InspectionSummary]
|