@dssp/supervision 0.0.22 → 0.0.24

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.
@@ -12,7 +12,7 @@ export declare class BuildingInspectionQuery {
12
12
  projectByBuildingLevelId(buildingLevelId: string, context: ResolverContext): Promise<Project>;
13
13
  buildingInspectionsOfBuildingLevel(params: BuildingInspectionsOfBuildingLevel, context: ResolverContext): Promise<BuildingInspectionList>;
14
14
  buildingInspectionSummaryOfBuildingLevel(buildingLevelId: string, context: ResolverContext): Promise<BuildingInspectionSummary>;
15
- buildingInspectionDateSummaryOfLevelAndMonth(buildingLevelId: string, yearMonth: string, context: ResolverContext): Promise<BuildingInspectionSummary[]>;
15
+ buildingInspectionDateSummaryOfLevelAndPeriod(buildingLevelId: string, startDate: string, endDate: string, context: ResolverContext): Promise<BuildingInspectionSummary[]>;
16
16
  buildingInspectionSummary(buildingLevel: BuildingLevel): Promise<BuildingInspectionSummary>;
17
17
  buildingInspectionSummaryOfProject(projectId: string, context: ResolverContext): Promise<BuildingInspectionSummary>;
18
18
  checklist(buildingInspection: BuildingInspection): Promise<Checklist>;
@@ -88,10 +88,7 @@ let BuildingInspectionQuery = class BuildingInspectionQuery {
88
88
  };
89
89
  }
90
90
  // 층 별로 검수 개수 써머리
91
- async buildingInspectionDateSummaryOfLevelAndMonth(buildingLevelId, yearMonth, context) {
92
- const [year, month] = yearMonth.split('-'); // 'YYYY-MM' 형식에서 연도와 월 추출
93
- const startDate = `${year}-${month}-01`;
94
- const endDate = new Date(Number(year), Number(month), 0).toISOString().split('T')[0]; // 해당 월의 마지막 날짜 계산
91
+ async buildingInspectionDateSummaryOfLevelAndPeriod(buildingLevelId, startDate, endDate, context) {
95
92
  const buildingInspectionSummary = await (0, shell_1.getRepository)(building_inspection_1.BuildingInspection)
96
93
  .createQueryBuilder('bi')
97
94
  .select(`TO_CHAR(bi.request_date, 'YYYY-MM-DD') AS "requestDate"`)
@@ -214,12 +211,13 @@ tslib_1.__decorate([
214
211
  tslib_1.__decorate([
215
212
  (0, type_graphql_1.Query)(returns => [building_inspection_type_1.BuildingInspectionSummary], { nullable: true, description: 'To fetch a BuildingInspection Summary' }),
216
213
  tslib_1.__param(0, (0, type_graphql_1.Arg)('buildingLevelId')),
217
- tslib_1.__param(1, (0, type_graphql_1.Arg)('yearMonth')),
218
- tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
214
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('startDate')),
215
+ tslib_1.__param(2, (0, type_graphql_1.Arg)('endDate')),
216
+ tslib_1.__param(3, (0, type_graphql_1.Ctx)()),
219
217
  tslib_1.__metadata("design:type", Function),
220
- tslib_1.__metadata("design:paramtypes", [String, String, Object]),
218
+ tslib_1.__metadata("design:paramtypes", [String, String, String, Object]),
221
219
  tslib_1.__metadata("design:returntype", Promise)
222
- ], BuildingInspectionQuery.prototype, "buildingInspectionDateSummaryOfLevelAndMonth", null);
220
+ ], BuildingInspectionQuery.prototype, "buildingInspectionDateSummaryOfLevelAndPeriod", null);
223
221
  tslib_1.__decorate([
224
222
  (0, type_graphql_1.FieldResolver)(type => building_inspection_type_1.BuildingInspectionSummary),
225
223
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
@@ -1 +1 @@
1
- {"version":3,"file":"building-inspection-query.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Arg, Args, Ctx } from 'type-graphql'\nimport { Attachment } from '@things-factory/attachment-base'\nimport { getRepository, getQueryBuilderFromListParams, ListParam } from '@things-factory/shell'\nimport { BuildingInspection, BuildingInspectionStatus } from './building-inspection'\nimport {\n BuildingInspectionList,\n BuildingInspectionsOfBuildingLevel,\n BuildingInspectionsOfProject,\n BuildingInspectionSummary\n} from './building-inspection-type'\nimport { BuildingLevel } from '@dssp/building-complex'\nimport { Checklist } from '../checklist/checklist'\nimport { Project } from '@dssp/project'\n\n@Resolver(BuildingInspection)\nexport class BuildingInspectionQuery {\n @Query(returns => BuildingInspection!, { nullable: true, description: 'To fetch a BuildingInspection' })\n async buildingInspection(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BuildingInspection> {\n return await getRepository(BuildingInspection).findOne({\n where: { id }\n })\n }\n\n @Query(returns => BuildingInspectionList, { description: 'To fetch multiple BuildingInspections' })\n async buildingInspections(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<BuildingInspectionList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n params,\n repository: await getRepository(BuildingInspection),\n searchables: ['name']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => BuildingInspectionList, { description: 'To fetch multiple BuildingInspections' })\n async buildingInspectionsOfProject(\n @Arg('params') params: BuildingInspectionsOfProject,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionList> {\n const { domain } = context.state\n const { projectId, limit } = params\n\n const queryBuilder = getRepository(BuildingInspection)\n .createQueryBuilder('bi')\n .innerJoin('building_levels', 'bl', 'bi.building_level_id = bl.id')\n .innerJoin('buildings', 'b', 'bl.building_id = b.id')\n .innerJoin('building_complexes', 'bc', 'b.building_complex_id = bc.id')\n .innerJoin('projects', 'p', 'bc.id = p.building_complex_id')\n .innerJoin('checklists', 'c', 'bi.checklist_id = c.id')\n .where('p.domain = :domain', { domain: domain.id })\n .andWhere('p.id = :projectId', { projectId })\n .orderBy('bi.created_at', 'DESC')\n\n if (limit) {\n queryBuilder.limit(limit)\n }\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => Project!, { description: 'To fetch Project' })\n async projectByBuildingLevelId(\n @Arg('buildingLevelId') buildingLevelId: string,\n @Ctx() context: ResolverContext\n ): Promise<Project> {\n const queryBuilder = getRepository(Project)\n .createQueryBuilder('p')\n .innerJoin('building_complexes', 'bc', 'p.building_complex_id = bc.id')\n .innerJoin('buildings', 'b', 'b.building_complex_id = bc.id')\n .innerJoin('building_levels', 'bl', 'bl.building_id = b.id')\n .where('bl.id = :buildingLevelId', { buildingLevelId })\n\n const result = await queryBuilder.getOne()\n\n return result\n }\n\n @Query(returns => BuildingInspectionList, { description: 'To fetch multiple BuildingInspections' })\n async buildingInspectionsOfBuildingLevel(\n @Arg('params') params: BuildingInspectionsOfBuildingLevel,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionList> {\n const { buildingLevelId, limit } = params\n\n const queryBuilder = getRepository(BuildingInspection)\n .createQueryBuilder('bi')\n .innerJoin('building_levels', 'bl', 'bi.building_level_id = bl.id')\n .innerJoin('checklists', 'c', 'bi.checklist_id = c.id')\n .where('bl.id = :buildingLevelId', { buildingLevelId })\n .orderBy('bi.updated_at', 'DESC')\n\n if (limit) {\n queryBuilder.limit(limit)\n }\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n // 층 별로 검수 개수 써머리\n @Query(returns => BuildingInspectionSummary!, { nullable: true, description: 'To fetch a BuildingInspection Summary' })\n async buildingInspectionSummaryOfBuildingLevel(\n @Arg('buildingLevelId') buildingLevelId: string,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionSummary> {\n const buildingInspectionSummary = await getRepository(BuildingInspection)\n .createQueryBuilder('bi')\n .select(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.WAIT}' THEN 1 ELSE NULL END) AS wait`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.REQUEST}' THEN 1 ELSE NULL END) AS request`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.PASS}' THEN 1 ELSE NULL END) AS pass`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.FAIL}' THEN 1 ELSE NULL END) AS fail`)\n .where('bi.building_level_id = :buildingLevelId', { buildingLevelId })\n .groupBy('bi.building_level_id')\n .getRawOne()\n\n return {\n wait: buildingInspectionSummary?.wait || 0,\n request: buildingInspectionSummary?.request || 0,\n pass: buildingInspectionSummary?.pass || 0,\n fail: buildingInspectionSummary?.fail || 0\n }\n }\n\n // 층 별로 검수 개수 써머리\n @Query(returns => [BuildingInspectionSummary]!, { nullable: true, description: 'To fetch a BuildingInspection Summary' })\n async buildingInspectionDateSummaryOfLevelAndMonth(\n @Arg('buildingLevelId') buildingLevelId: string,\n @Arg('yearMonth') yearMonth: string,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionSummary[]> {\n const [year, month] = yearMonth.split('-') // 'YYYY-MM' 형식에서 연도와 월 추출\n const startDate = `${year}-${month}-01`\n const endDate = new Date(Number(year), Number(month), 0).toISOString().split('T')[0] // 해당 월의 마지막 날짜 계산\n\n const buildingInspectionSummary = await getRepository(BuildingInspection)\n .createQueryBuilder('bi')\n .select(`TO_CHAR(bi.request_date, 'YYYY-MM-DD') AS \"requestDate\"`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.WAIT}' THEN 1 ELSE NULL END) AS wait`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.REQUEST}' THEN 1 ELSE NULL END) AS request`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.PASS}' THEN 1 ELSE NULL END) AS pass`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.FAIL}' THEN 1 ELSE NULL END) AS fail`)\n .where('bi.building_level_id = :buildingLevelId', { buildingLevelId })\n .andWhere('bi.request_date BETWEEN :startDate AND :endDate', { startDate, endDate })\n .groupBy('bi.building_level_id')\n .addGroupBy('bi.request_date')\n .getRawMany()\n\n return buildingInspectionSummary\n }\n\n // 층 별로 검수 개수 써머리\n @FieldResolver(type => BuildingInspectionSummary)\n async buildingInspectionSummary(@Root() buildingLevel: BuildingLevel): Promise<BuildingInspectionSummary> {\n const buildingInspectionSummary = await getRepository(BuildingInspection)\n .createQueryBuilder('bi')\n .select(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.WAIT}' THEN 1 ELSE NULL END) AS wait`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.REQUEST}' THEN 1 ELSE NULL END) AS request`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.PASS}' THEN 1 ELSE NULL END) AS pass`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.FAIL}' THEN 1 ELSE NULL END) AS fail`)\n .where('bi.building_level_id = :buildingLevelId', { buildingLevelId: buildingLevel.id })\n .groupBy('bi.building_level_id')\n .getRawOne()\n\n return {\n wait: buildingInspectionSummary?.wait || 0,\n request: buildingInspectionSummary?.request || 0,\n pass: buildingInspectionSummary?.pass || 0,\n fail: buildingInspectionSummary?.fail || 0\n }\n }\n\n @Query(returns => BuildingInspectionSummary, { description: '프로젝트의 검측상태 별 카운트' })\n async buildingInspectionSummaryOfProject(\n @Arg('projectId') projectId: string,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionSummary> {\n const { domain } = context.state\n\n const result = await getRepository(Project)\n .createQueryBuilder('p')\n .select(`COUNT(CASE WHEN bi.status = '${BuildingInspectionStatus.WAIT}' THEN 1 ELSE NULL END) AS wait`)\n .addSelect(`COUNT(CASE WHEN bi.status = '${BuildingInspectionStatus.REQUEST}' THEN 1 ELSE NULL END) AS request`)\n .addSelect(`COUNT(CASE WHEN bi.status = '${BuildingInspectionStatus.PASS}' THEN 1 ELSE NULL END) AS pass`)\n .addSelect(`COUNT(CASE WHEN bi.status = '${BuildingInspectionStatus.FAIL}' THEN 1 ELSE NULL END) AS fail`)\n .innerJoin('p.buildingComplex', 'bc')\n .innerJoin('bc.buildings', 'b')\n .innerJoin('b.buildingLevels', 'bl')\n .leftJoin('building_inspections', 'bi', 'bi.building_level_id = bl.id AND bi.deleted_at IS NULL')\n .where('p.domain = :domain', { domain: domain.id })\n .andWhere('p.id = :projectId', { projectId })\n .groupBy('p.id')\n .getRawOne()\n\n return {\n wait: result?.wait || 0,\n request: result?.request || 0,\n pass: result?.pass || 0,\n fail: result?.fail || 0\n }\n }\n\n @FieldResolver(type => Checklist)\n async checklist(@Root() buildingInspection: BuildingInspection): Promise<Checklist> {\n return await getRepository(Checklist).findOneBy({ id: buildingInspection.checklistId })\n }\n\n @FieldResolver(type => BuildingLevel)\n async buildingLevel(@Root() buildingInspection: BuildingInspection): Promise<BuildingLevel> {\n return await getRepository(BuildingLevel).findOneBy({ id: buildingInspection.buildingLevelId })\n }\n\n @FieldResolver(type => [Attachment])\n async attatchments(@Root() buildingInspection: BuildingInspection): Promise<Attachment[] | undefined> {\n const attachment: Attachment[] = await getRepository(Attachment).find({\n where: {\n refType: BuildingInspection.name,\n refBy: buildingInspection.id\n }\n })\n return attachment\n }\n}\n"]}
1
+ {"version":3,"file":"building-inspection-query.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Arg, Args, Ctx } from 'type-graphql'\nimport { Attachment } from '@things-factory/attachment-base'\nimport { getRepository, getQueryBuilderFromListParams, ListParam } from '@things-factory/shell'\nimport { BuildingInspection, BuildingInspectionStatus } from './building-inspection'\nimport {\n BuildingInspectionList,\n BuildingInspectionsOfBuildingLevel,\n BuildingInspectionsOfProject,\n BuildingInspectionSummary\n} from './building-inspection-type'\nimport { BuildingLevel } from '@dssp/building-complex'\nimport { Checklist } from '../checklist/checklist'\nimport { Project } from '@dssp/project'\n\n@Resolver(BuildingInspection)\nexport class BuildingInspectionQuery {\n @Query(returns => BuildingInspection!, { nullable: true, description: 'To fetch a BuildingInspection' })\n async buildingInspection(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<BuildingInspection> {\n return await getRepository(BuildingInspection).findOne({\n where: { id }\n })\n }\n\n @Query(returns => BuildingInspectionList, { description: 'To fetch multiple BuildingInspections' })\n async buildingInspections(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<BuildingInspectionList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n params,\n repository: await getRepository(BuildingInspection),\n searchables: ['name']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => BuildingInspectionList, { description: 'To fetch multiple BuildingInspections' })\n async buildingInspectionsOfProject(\n @Arg('params') params: BuildingInspectionsOfProject,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionList> {\n const { domain } = context.state\n const { projectId, limit } = params\n\n const queryBuilder = getRepository(BuildingInspection)\n .createQueryBuilder('bi')\n .innerJoin('building_levels', 'bl', 'bi.building_level_id = bl.id')\n .innerJoin('buildings', 'b', 'bl.building_id = b.id')\n .innerJoin('building_complexes', 'bc', 'b.building_complex_id = bc.id')\n .innerJoin('projects', 'p', 'bc.id = p.building_complex_id')\n .innerJoin('checklists', 'c', 'bi.checklist_id = c.id')\n .where('p.domain = :domain', { domain: domain.id })\n .andWhere('p.id = :projectId', { projectId })\n .orderBy('bi.created_at', 'DESC')\n\n if (limit) {\n queryBuilder.limit(limit)\n }\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => Project!, { description: 'To fetch Project' })\n async projectByBuildingLevelId(\n @Arg('buildingLevelId') buildingLevelId: string,\n @Ctx() context: ResolverContext\n ): Promise<Project> {\n const queryBuilder = getRepository(Project)\n .createQueryBuilder('p')\n .innerJoin('building_complexes', 'bc', 'p.building_complex_id = bc.id')\n .innerJoin('buildings', 'b', 'b.building_complex_id = bc.id')\n .innerJoin('building_levels', 'bl', 'bl.building_id = b.id')\n .where('bl.id = :buildingLevelId', { buildingLevelId })\n\n const result = await queryBuilder.getOne()\n\n return result\n }\n\n @Query(returns => BuildingInspectionList, { description: 'To fetch multiple BuildingInspections' })\n async buildingInspectionsOfBuildingLevel(\n @Arg('params') params: BuildingInspectionsOfBuildingLevel,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionList> {\n const { buildingLevelId, limit } = params\n\n const queryBuilder = getRepository(BuildingInspection)\n .createQueryBuilder('bi')\n .innerJoin('building_levels', 'bl', 'bi.building_level_id = bl.id')\n .innerJoin('checklists', 'c', 'bi.checklist_id = c.id')\n .where('bl.id = :buildingLevelId', { buildingLevelId })\n .orderBy('bi.updated_at', 'DESC')\n\n if (limit) {\n queryBuilder.limit(limit)\n }\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n // 층 별로 검수 개수 써머리\n @Query(returns => BuildingInspectionSummary!, { nullable: true, description: 'To fetch a BuildingInspection Summary' })\n async buildingInspectionSummaryOfBuildingLevel(\n @Arg('buildingLevelId') buildingLevelId: string,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionSummary> {\n const buildingInspectionSummary = await getRepository(BuildingInspection)\n .createQueryBuilder('bi')\n .select(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.WAIT}' THEN 1 ELSE NULL END) AS wait`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.REQUEST}' THEN 1 ELSE NULL END) AS request`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.PASS}' THEN 1 ELSE NULL END) AS pass`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.FAIL}' THEN 1 ELSE NULL END) AS fail`)\n .where('bi.building_level_id = :buildingLevelId', { buildingLevelId })\n .groupBy('bi.building_level_id')\n .getRawOne()\n\n return {\n wait: buildingInspectionSummary?.wait || 0,\n request: buildingInspectionSummary?.request || 0,\n pass: buildingInspectionSummary?.pass || 0,\n fail: buildingInspectionSummary?.fail || 0\n }\n }\n\n // 층 별로 검수 개수 써머리\n @Query(returns => [BuildingInspectionSummary]!, { nullable: true, description: 'To fetch a BuildingInspection Summary' })\n async buildingInspectionDateSummaryOfLevelAndPeriod(\n @Arg('buildingLevelId') buildingLevelId: string,\n @Arg('startDate') startDate: string,\n @Arg('endDate') endDate: string,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionSummary[]> {\n const buildingInspectionSummary = await getRepository(BuildingInspection)\n .createQueryBuilder('bi')\n .select(`TO_CHAR(bi.request_date, 'YYYY-MM-DD') AS \"requestDate\"`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.WAIT}' THEN 1 ELSE NULL END) AS wait`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.REQUEST}' THEN 1 ELSE NULL END) AS request`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.PASS}' THEN 1 ELSE NULL END) AS pass`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.FAIL}' THEN 1 ELSE NULL END) AS fail`)\n .where('bi.building_level_id = :buildingLevelId', { buildingLevelId })\n .andWhere('bi.request_date BETWEEN :startDate AND :endDate', { startDate, endDate })\n .groupBy('bi.building_level_id')\n .addGroupBy('bi.request_date')\n .getRawMany()\n\n return buildingInspectionSummary\n }\n\n // 층 별로 검수 개수 써머리\n @FieldResolver(type => BuildingInspectionSummary)\n async buildingInspectionSummary(@Root() buildingLevel: BuildingLevel): Promise<BuildingInspectionSummary> {\n const buildingInspectionSummary = await getRepository(BuildingInspection)\n .createQueryBuilder('bi')\n .select(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.WAIT}' THEN 1 ELSE NULL END) AS wait`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.REQUEST}' THEN 1 ELSE NULL END) AS request`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.PASS}' THEN 1 ELSE NULL END) AS pass`)\n .addSelect(`COUNT(CASE WHEN bi.status='${BuildingInspectionStatus.FAIL}' THEN 1 ELSE NULL END) AS fail`)\n .where('bi.building_level_id = :buildingLevelId', { buildingLevelId: buildingLevel.id })\n .groupBy('bi.building_level_id')\n .getRawOne()\n\n return {\n wait: buildingInspectionSummary?.wait || 0,\n request: buildingInspectionSummary?.request || 0,\n pass: buildingInspectionSummary?.pass || 0,\n fail: buildingInspectionSummary?.fail || 0\n }\n }\n\n @Query(returns => BuildingInspectionSummary, { description: '프로젝트의 검측상태 별 카운트' })\n async buildingInspectionSummaryOfProject(\n @Arg('projectId') projectId: string,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspectionSummary> {\n const { domain } = context.state\n\n const result = await getRepository(Project)\n .createQueryBuilder('p')\n .select(`COUNT(CASE WHEN bi.status = '${BuildingInspectionStatus.WAIT}' THEN 1 ELSE NULL END) AS wait`)\n .addSelect(`COUNT(CASE WHEN bi.status = '${BuildingInspectionStatus.REQUEST}' THEN 1 ELSE NULL END) AS request`)\n .addSelect(`COUNT(CASE WHEN bi.status = '${BuildingInspectionStatus.PASS}' THEN 1 ELSE NULL END) AS pass`)\n .addSelect(`COUNT(CASE WHEN bi.status = '${BuildingInspectionStatus.FAIL}' THEN 1 ELSE NULL END) AS fail`)\n .innerJoin('p.buildingComplex', 'bc')\n .innerJoin('bc.buildings', 'b')\n .innerJoin('b.buildingLevels', 'bl')\n .leftJoin('building_inspections', 'bi', 'bi.building_level_id = bl.id AND bi.deleted_at IS NULL')\n .where('p.domain = :domain', { domain: domain.id })\n .andWhere('p.id = :projectId', { projectId })\n .groupBy('p.id')\n .getRawOne()\n\n return {\n wait: result?.wait || 0,\n request: result?.request || 0,\n pass: result?.pass || 0,\n fail: result?.fail || 0\n }\n }\n\n @FieldResolver(type => Checklist)\n async checklist(@Root() buildingInspection: BuildingInspection): Promise<Checklist> {\n return await getRepository(Checklist).findOneBy({ id: buildingInspection.checklistId })\n }\n\n @FieldResolver(type => BuildingLevel)\n async buildingLevel(@Root() buildingInspection: BuildingInspection): Promise<BuildingLevel> {\n return await getRepository(BuildingLevel).findOneBy({ id: buildingInspection.buildingLevelId })\n }\n\n @FieldResolver(type => [Attachment])\n async attatchments(@Root() buildingInspection: BuildingInspection): Promise<Attachment[] | undefined> {\n const attachment: Attachment[] = await getRepository(Attachment).find({\n where: {\n refType: BuildingInspection.name,\n refBy: buildingInspection.id\n }\n })\n return attachment\n }\n}\n"]}