@dssp/supervision 1.0.0-alpha.84 → 1.0.0-alpha.92

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist-client/graphql/building-inspection.js +2 -1
  2. package/dist-client/graphql/building-inspection.js.map +1 -1
  3. package/dist-client/pages/building-inspection/inspection-create-popup.js +5 -4
  4. package/dist-client/pages/building-inspection/inspection-create-popup.js.map +1 -1
  5. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.js +31 -5
  6. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.js.map +1 -1
  7. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js +5 -4
  8. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js.map +1 -1
  9. package/dist-client/pages/checklist/checklist-view.js +114 -2
  10. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  11. package/dist-client/pages/checklist-database/checklist-database.js +2 -1
  12. package/dist-client/pages/checklist-database/checklist-database.js.map +1 -1
  13. package/dist-client/pages/checklist-template/checklist-template-list.js +2 -1
  14. package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -1
  15. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.js +0 -19
  16. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.js.map +1 -1
  17. package/dist-client/pages/project-checklist/project-checklist-management.d.ts +6 -0
  18. package/dist-client/pages/project-checklist/project-checklist-management.js +161 -17
  19. package/dist-client/pages/project-checklist/project-checklist-management.js.map +1 -1
  20. package/dist-client/tsconfig.tsbuildinfo +1 -1
  21. package/dist-server/service/building-inspection/building-inspection-mutation.js +5 -1
  22. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
  23. package/dist-server/service/building-inspection/building-inspection-type.d.ts +3 -1
  24. package/dist-server/service/building-inspection/building-inspection-type.js +8 -0
  25. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
  26. package/dist-server/service/checklist-item/checklist-item.d.ts +2 -0
  27. package/dist-server/service/checklist-item/checklist-item.js +11 -1
  28. package/dist-server/service/checklist-item/checklist-item.js.map +1 -1
  29. package/dist-server/service/checklist-item-history/checklist-item-history.d.ts +2 -0
  30. package/dist-server/service/checklist-item-history/checklist-item-history.js +11 -1
  31. package/dist-server/service/checklist-item-history/checklist-item-history.js.map +1 -1
  32. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.js +1 -5
  33. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.js.map +1 -1
  34. package/dist-server/service/project-checklist/project-checklist-mutation.d.ts +2 -2
  35. package/dist-server/service/project-checklist/project-checklist-mutation.js +19 -10
  36. package/dist-server/service/project-checklist/project-checklist-mutation.js.map +1 -1
  37. package/dist-server/service/project-checklist/spec-matching-service.d.ts +17 -0
  38. package/dist-server/service/project-checklist/spec-matching-service.js +85 -0
  39. package/dist-server/service/project-checklist/spec-matching-service.js.map +1 -0
  40. package/dist-server/service/project-checklist-item/project-checklist-item.d.ts +2 -0
  41. package/dist-server/service/project-checklist-item/project-checklist-item.js +11 -1
  42. package/dist-server/service/project-checklist-item/project-checklist-item.js.map +1 -1
  43. package/dist-server/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +2 -2
  45. package/dist-server/service/construction-checklist-template-item/spec-matching-service.d.ts +0 -2
  46. package/dist-server/service/construction-checklist-template-item/spec-matching-service.js +0 -50
  47. package/dist-server/service/construction-checklist-template-item/spec-matching-service.js.map +0 -1
@@ -63,6 +63,8 @@ let BuildingInspectionMutation = class BuildingInspectionMutation {
63
63
  mainType: item.mainType,
64
64
  detailType: item.detailType,
65
65
  inspctionCriteria: item.inspctionCriteria,
66
+ kcsCriteria: item.kcsCriteria,
67
+ siteSpecCriteria: item.siteSpecCriteria,
66
68
  sequence: idx,
67
69
  checklist: savedChecklist,
68
70
  creator: user,
@@ -301,7 +303,9 @@ let BuildingInspectionMutation = class BuildingInspectionMutation {
301
303
  name: item.name,
302
304
  mainType: item.mainType,
303
305
  detailType: item.detailType,
304
- inspctionCriteria: item.inspctionCriteria
306
+ inspctionCriteria: item.inspctionCriteria,
307
+ kcsCriteria: item.kcsCriteria,
308
+ siteSpecCriteria: item.siteSpecCriteria
305
309
  }));
306
310
  await this.createBuildingInspection({
307
311
  buildingLevelId: buildingLevel.id,
@@ -1 +1 @@
1
- {"version":3,"file":"building-inspection-mutation.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { BuildingInspection, ProjectType } from './building-inspection'\nimport { NewBuildingInspection, UpdateBuildingInspection, UpdateBuildingInspectionSubmitType } from './building-inspection-type'\nimport { BuildingInspectionStatus } from './building-inspection'\nimport { Checklist, DocumentNoType } from '../checklist/checklist'\nimport { ChecklistItem } from '../checklist-item/checklist-item'\nimport { getRepository } from '@things-factory/shell'\nimport { BuildingLevel } from '@dssp/building-complex'\nimport { config } from '@things-factory/env'\nimport { ChecklistReferenceType } from '../checklist/checklist'\nimport { autoFileDocument, getProjectIdByBuildingLevelId } from '../field-document/field-document-auto-file'\n\nconst projectType = config.get('projectType', ProjectType.DSSP)\n\n@Resolver(BuildingInspection)\nexport class BuildingInspectionMutation {\n @Directive('@transaction')\n @Mutation(returns => BuildingInspection, { description: 'To create Building Inspection information' })\n async createBuildingInspection(\n @Arg('patch') patch: NewBuildingInspection,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspection> {\n const { user, tx } = context.state\n const { buildingLevelId, checklist, checklistItem, cellX, cellY, managerId } = patch\n const buildingInspectionRepository = tx.getRepository(BuildingInspection)\n const checklistRepository = tx.getRepository(Checklist)\n const checklistItemRepository = tx.getRepository(ChecklistItem)\n\n // 1. 벨리데이션\n if (!checklist.constructionType) throw new Error('공종 타입이 없습니다.')\n if (!checklist.constructionDetailType) throw new Error('상세 공종 타입이 없습니다.')\n if (!checklist.name) throw new Error('체크리스트 이름이 없습니다.')\n if (checklistItem.length === 0) throw new Error('체크리스트 아이템이 없습니다.')\n\n if (projectType === ProjectType.DSSP) {\n if (!cellX || !cellY) throw new Error('셀 좌표가 없습니다.')\n if (!managerId) throw new Error('담당자가 없습니다.')\n if (!buildingLevelId) throw new Error('층 아이디가 없습니다.')\n if (!checklist.location) throw new Error('위치가 없습니다.')\n } else if (projectType === ProjectType.DCSP) {\n if (!checklist.inspectionDrawingType) throw new Error('검측 도면 타입이 없습니다.')\n if (checklist.inspectionParts.length === 0) throw new Error('검측 부위가 없습니다.')\n if (!buildingLevelId) throw new Error('층 아이디가 없습니다.')\n if (!checklist.location) throw new Error('위치가 없습니다.')\n }\n\n // 2. checklist 저장\n const checklistDocumentNo = await getRecentDocumentNoByBuildingLevelId(buildingLevelId, DocumentNoType.CHECKLIST, tx)\n const inspectionRequestDocumentNo = checklistDocumentNo.replace(\n `검측 제${DocumentNoType.CHECKLIST}-`,\n `검측 제${DocumentNoType.INSPECTION_REQUEST}-`\n )\n const inspectionResultDocumentNo = checklistDocumentNo.replace(\n `검측 제${DocumentNoType.CHECKLIST}-`,\n `검측 제${DocumentNoType.INSPECTION_RESULT}-`\n )\n\n const savedChecklist = await checklistRepository.save({\n ...checklist,\n projectType,\n checklistReferenceType: ChecklistReferenceType.INSPECTION,\n documentNo: checklistDocumentNo,\n inspectionRequestDocumentNo,\n inspectionResultDocumentNo,\n creator: user,\n updater: user\n })\n\n // 3. checklistItem 저장\n const checklistItems = checklistItem.map((item, idx) => ({\n name: item.name,\n mainType: item.mainType,\n detailType: item.detailType,\n inspctionCriteria: item.inspctionCriteria,\n sequence: idx,\n checklist: savedChecklist,\n creator: user,\n updater: user\n }))\n await checklistItemRepository.save(checklistItems)\n\n // 4. buildingInspection 저장\n const result = await buildingInspectionRepository.save({\n status: BuildingInspectionStatus.WAIT,\n buildingLevel: { id: buildingLevelId },\n checklist: savedChecklist,\n projectType,\n manager: managerId ? { id: managerId } : null,\n cellX,\n cellY,\n creator: user,\n updater: user\n })\n\n // 5. 현장 문서 자동 등록 (040202 검측체크리스트관리)\n const projectId = await getProjectIdByBuildingLevelId(buildingLevelId, tx.getRepository('projects'))\n if (projectId) {\n await autoFileDocument({\n projectId,\n code: '040202',\n name: `체크리스트 - ${savedChecklist.name || ''}`,\n sourceType: 'CHECKLIST',\n sourceRefId: result.id,\n context\n })\n }\n\n return result\n }\n\n // 검측 상태 변경 & 체크리스트 갱신\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To create Building Inspection And Checklist information' })\n async updateBuildingInspectionChecklist(\n @Arg('buildingInspection') buildingInspection: UpdateBuildingInspectionSubmitType,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { user, tx } = context.state\n const { id: buildingInspectionId, memo, requestDate, checklist, checklistItem } = buildingInspection\n const buildingInspectionRepo = tx.getRepository(BuildingInspection)\n const checklistRepo = tx.getRepository(Checklist)\n const checklistItemRepo = tx.getRepository(ChecklistItem)\n const oldBuildingInspection = await buildingInspectionRepo.findOneBy({ id: buildingInspectionId })\n const status = oldBuildingInspection.status\n const isConstructor: boolean =\n status == BuildingInspectionStatus.WAIT ||\n status == BuildingInspectionStatus.OVERALL_WAIT ||\n status == BuildingInspectionStatus.FAIL\n let inspectionStatus = null\n let signedUserType = null // 싸인을 한 유저 타입\n let inspectionRequestData = {}\n let inspectionResultData = {}\n\n // 1. 벨리데이션\n if (!buildingInspectionId) throw new Error('검측 아이디가 없습니다.')\n if (!status) throw new Error('검측 상태가 없습니다.')\n if (status == BuildingInspectionStatus.PASS) throw new Error('검측 상태가 수정할 수 있는 상태가 아닙니다.')\n\n if (isConstructor) {\n // 시공자 타입별 밸리데이션\n if (checklistItem.length !== checklistItem.filter(v => v.constructionConfirmStatus).length) {\n throw new Error('아이템을 모두 체크해야 합니다.')\n }\n if (status == BuildingInspectionStatus.OVERALL_WAIT && !checklist.overallConstructorSignature) {\n throw new Error('총괄 시공책임자 사인이 없습니다.')\n }\n if (status == BuildingInspectionStatus.WAIT && !checklist.taskConstructorSignature) {\n throw new Error('공종별 시공관리자 사인이 없습니다.')\n }\n\n // 시공자 상태 데이터\n const isPassed = checklistItem.length === checklistItem.filter(v => v.constructionConfirmStatus === 'T').length\n\n if (!isPassed) {\n // 1. 검측이 불햡격 = 상태는 불합격으로, 시공자 싸인은 모두 초기화\n inspectionStatus = BuildingInspectionStatus.FAIL\n checklist.overallConstructorSignature = null\n checklist.taskConstructorSignature = null\n } else if (isPassed && (status === BuildingInspectionStatus.WAIT || status === BuildingInspectionStatus.FAIL)) {\n // 2. 검측이 합격이면서 공종 시공자 스탭 = 상태는 총괄 시공자 스탭으로\n inspectionStatus = BuildingInspectionStatus.OVERALL_WAIT\n signedUserType = 'taskConstructor'\n } else if (isPassed && status === BuildingInspectionStatus.OVERALL_WAIT) {\n // 3. 검측이 합격이면서 총괄 시공자 스탭 = 상태는 공종 감리자 스탭으로, 감리자 싸인은 모두 초기화\n inspectionStatus = BuildingInspectionStatus.REQUEST\n checklist.overallSupervisorySignature = null\n checklist.taskSupervisorySignature = null\n signedUserType = 'overallConstructor'\n inspectionRequestData = {\n inspectionRequestMemo: checklist.inspectionRequestMemo,\n inspectionRequestUpdatedAt: new Date()\n }\n }\n } else {\n // 감리자 타입별 밸리데이션\n if (checklistItem.length !== checklistItem.filter(v => v.supervisoryConfirmStatus).length) {\n throw new Error('아이템을 모두 체크해야 합니다.')\n }\n if (status == BuildingInspectionStatus.OVERALL_REQUEST && !checklist.overallSupervisorySignature) {\n throw new Error('총괄 감리책임자 사인이 없습니다.')\n }\n if (status == BuildingInspectionStatus.REQUEST && !checklist.taskSupervisorySignature) {\n throw new Error('공종별 감리 책임자 사인이 없습니다.')\n }\n\n // 감리자 상태 데이터\n const isPassed = checklistItem.length === checklistItem.filter(v => v.supervisoryConfirmStatus === 'T').length\n if (!isPassed) {\n // 1. 검측이 불햡격 = 상태는 불합격으로, 시공자 싸인은 모두 초기화\n inspectionStatus = BuildingInspectionStatus.FAIL\n checklist.overallConstructorSignature = null\n checklist.taskConstructorSignature = null\n } else if (isPassed && status === BuildingInspectionStatus.REQUEST) {\n // 2. 검측이 합격이면서 공종 감리자 스탭 = 상태는 총괄 감리자 스탭으로\n inspectionStatus = BuildingInspectionStatus.OVERALL_REQUEST\n signedUserType = 'taskSupervisory'\n } else if (isPassed && status === BuildingInspectionStatus.OVERALL_REQUEST) {\n // 3. 검측이 합격이면서 총괄 감리자 스탭 = 상태는 합격으로\n inspectionStatus = BuildingInspectionStatus.PASS\n signedUserType = 'overallSupervisory'\n inspectionResultData = {\n inspectionResultStatus: checklist.inspectionResultStatus,\n inspectionResultMemo: checklist.inspectionResultMemo,\n inspectionResultType: checklist.inspectionResultType,\n inspectionResultUpdatedAt: new Date()\n }\n }\n }\n\n // 2. buildingInspection 저장\n await buildingInspectionRepo.save({\n ...oldBuildingInspection,\n status: inspectionStatus,\n failCount:\n inspectionStatus === BuildingInspectionStatus.FAIL\n ? (oldBuildingInspection.failCount || 0) + 1\n : oldBuildingInspection.failCount || 0,\n ...(requestDate !== undefined && { requestDate }),\n memo: memo,\n updater: user\n })\n\n // 현장 문서 자동 등록 (040201 검측요청/결과통보서) - REQUEST 상태 전환 시\n if (inspectionStatus === BuildingInspectionStatus.REQUEST) {\n const buildingLevelId = oldBuildingInspection.buildingLevelId\n if (buildingLevelId) {\n const projectId = await getProjectIdByBuildingLevelId(buildingLevelId, tx.getRepository('projects'))\n if (projectId) {\n await autoFileDocument({\n projectId,\n code: '040201',\n name: `검측요청서 - ${buildingInspectionId}`,\n sourceType: 'INSPECTION_REQUEST',\n sourceRefId: buildingInspectionId,\n context\n })\n }\n }\n }\n\n // 3. checklist 저장\n const oldChecklist = await checklistRepo.findOneBy({ id: checklist.id })\n const inspectionDateField = isConstructor ? 'constructionInspectionDate' : 'supervisorInspectionDate'\n const signedUser = signedUserType ? { [signedUserType]: user } : {}\n\n await checklistRepo.save({\n ...oldChecklist,\n [inspectionDateField]: new Date(),\n overallConstructorSignature: checklist.overallConstructorSignature,\n taskConstructorSignature: checklist.taskConstructorSignature,\n overallSupervisorySignature: checklist.overallSupervisorySignature,\n taskSupervisorySignature: checklist.taskSupervisorySignature,\n ...signedUser,\n ...inspectionRequestData,\n ...inspectionResultData,\n updater: user\n })\n\n // 4. checklistItem 저장\n for (let item of checklistItem) {\n const confirmStatusField = isConstructor ? 'constructionConfirmStatus' : 'supervisoryConfirmStatus'\n const existingItem = await checklistItemRepo.findOneBy({ id: item.id })\n await checklistItemRepo.save({\n ...existingItem,\n [confirmStatusField]: item[confirmStatusField],\n updater: user\n })\n }\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => BuildingInspection, { description: 'To update Building Inspection information' })\n async updateBuildingInspection(\n @Arg('patch') patch: UpdateBuildingInspection,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspection> {\n const { user, tx } = context.state\n const buildingInspectionRepo = tx.getRepository(BuildingInspection)\n\n // 벨리데이션\n if (!patch.id) throw new Error('검측 아이디가 없습니다.')\n\n const buildingInspection = await buildingInspectionRepo.findOneBy({ id: patch.id })\n\n // 완료 상태인 검측데이터면 삭제 못함\n if (buildingInspection.status === BuildingInspectionStatus.PASS) {\n throw new Error('완료 상태인 검측정보를 변경할 수 없습니다.')\n }\n\n const result = await buildingInspectionRepo.save({\n ...buildingInspection,\n ...patch,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple Checklists' })\n async deleteBuildingInspections(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx } = context.state\n const buildingInspectionRepository = tx.getRepository(BuildingInspection)\n const checklistRepository = tx.getRepository(Checklist)\n const checklistItemRepository = tx.getRepository(ChecklistItem)\n\n const buildingInspections = await buildingInspectionRepository.createQueryBuilder('bi').whereInIds(ids).getMany()\n\n // 완료 상태인 검측데이터가 한개라도 있으면 삭제 못함\n if (buildingInspections.filter(bi => bi.status === BuildingInspectionStatus.PASS).length > 0) {\n throw new Error('완료 상태인 검측정보를 변경할 수 없습니다.')\n }\n\n // 검측 데이터 제거\n await buildingInspectionRepository.softDelete({\n id: In(ids)\n })\n\n // 검측 데이터의 체크 리스트 제거\n const checklistIds = buildingInspections.map(bi => bi.checklistId)\n await checklistRepository.softDelete({\n id: In(checklistIds)\n })\n\n // 검측 데이터의 체크 리스트 아이템 제거\n await checklistItemRepository\n .createQueryBuilder()\n .softDelete()\n .where('checklist_id IN (:...checklistIds)', { checklistIds })\n .execute()\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To apply to all building inspection' })\n async applyToAllBuildingInspection(\n @Arg('buildingInspectionId') buildingInspectionId: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { user, tx } = context.state\n const buildingInspectionRepository = tx.getRepository(BuildingInspection)\n\n const buildingInspection = await buildingInspectionRepository.findOne({\n where: { id: buildingInspectionId },\n relations: ['buildingLevel', 'buildingLevel.building', 'checklist', 'checklist.checklistItems']\n })\n\n const checklist = buildingInspection.checklist\n const checklistItems = checklist.checklistItems\n const buildingLevels = await getRepository(BuildingLevel).find({\n where: { building: { id: buildingInspection.buildingLevel.building.id } }\n })\n\n // 해당 검측 정보가 속한 동의 모든 층에 같은 검측 데이터 등록\n for (let buildingLevel of buildingLevels) {\n // 같은 셀에 이미 검측 정보가 있으면 패스\n const existInspection = await buildingInspectionRepository.findOneBy({\n buildingLevel: { id: buildingLevel.id },\n cellX: buildingInspection.cellX,\n cellY: buildingInspection.cellY\n })\n if (existInspection) continue\n\n // 새로운 체크리스트 데이터\n const newChecklist = {\n name: checklist.name,\n location: `${buildingInspection.buildingLevel.building.name} ${buildingLevel.floor}층`,\n constructionType: checklist.constructionType,\n constructionDetailType: checklist.constructionDetailType,\n inspectionDrawingType: checklist.inspectionDrawingType,\n inspectionParts: checklist.inspectionParts\n }\n\n // 새로운 체크리스트 아이템 데이터\n const newChecklistItems = checklistItems.map(item => ({\n name: item.name,\n mainType: item.mainType,\n detailType: item.detailType,\n inspctionCriteria: item.inspctionCriteria\n }))\n\n await this.createBuildingInspection(\n {\n buildingLevelId: buildingLevel.id,\n checklist: newChecklist,\n checklistItem: newChecklistItems,\n cellX: buildingInspection.cellX,\n cellY: buildingInspection.cellY,\n managerId: buildingInspection.managerId\n },\n context\n )\n }\n\n return true\n }\n}\n\nasync function getRecentDocumentNoByBuildingLevelId(buildingLevelId: string, type: DocumentNoType, tx: any): Promise<string> {\n const project = await tx\n .createQueryBuilder()\n .select('p.documentNaming', 'documentNaming')\n .addSelect('bc.id', 'buildingComplexId')\n .from('projects', 'p')\n .innerJoin('building_complexes', 'bc', 'bc.id = p.building_complex_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 .getRawOne()\n\n const latestChecklist = await tx\n .getRepository(Checklist)\n .createQueryBuilder('c')\n .innerJoin('c.buildingInspection', 'bi')\n .innerJoin('bi.buildingLevel', 'bl')\n .innerJoin('bl.building', 'b')\n .where('b.building_complex_id = :buildingComplexId', { buildingComplexId: project.buildingComplexId })\n .andWhere('c.document_no LIKE :pattern', { pattern: `${project.documentNaming} 검측 제${type}-%` })\n .orderBy('c.created_at', 'DESC')\n .getOne()\n\n // 4. 시퀀스 번호 생성 (5자리)\n let sequence = '00001'\n if (latestChecklist) {\n const documentNoPattern = new RegExp(`${project.documentNaming} 검측 제${type}-(\\\\d{5})호`)\n const match = latestChecklist.documentNo.match(documentNoPattern)\n if (match) {\n sequence = (Number(match[1]) + 1).toString().padStart(5, '0')\n }\n }\n\n // 5. 최종 문서 번호 생성\n return `${project.documentNaming} 검측 제${type}-${sequence}호`\n}\n"]}
1
+ {"version":3,"file":"building-inspection-mutation.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { BuildingInspection, ProjectType } from './building-inspection'\nimport { NewBuildingInspection, UpdateBuildingInspection, UpdateBuildingInspectionSubmitType } from './building-inspection-type'\nimport { BuildingInspectionStatus } from './building-inspection'\nimport { Checklist, DocumentNoType } from '../checklist/checklist'\nimport { ChecklistItem } from '../checklist-item/checklist-item'\nimport { getRepository } from '@things-factory/shell'\nimport { BuildingLevel } from '@dssp/building-complex'\nimport { config } from '@things-factory/env'\nimport { ChecklistReferenceType } from '../checklist/checklist'\nimport { autoFileDocument, getProjectIdByBuildingLevelId } from '../field-document/field-document-auto-file'\n\nconst projectType = config.get('projectType', ProjectType.DSSP)\n\n@Resolver(BuildingInspection)\nexport class BuildingInspectionMutation {\n @Directive('@transaction')\n @Mutation(returns => BuildingInspection, { description: 'To create Building Inspection information' })\n async createBuildingInspection(\n @Arg('patch') patch: NewBuildingInspection,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspection> {\n const { user, tx } = context.state\n const { buildingLevelId, checklist, checklistItem, cellX, cellY, managerId } = patch\n const buildingInspectionRepository = tx.getRepository(BuildingInspection)\n const checklistRepository = tx.getRepository(Checklist)\n const checklistItemRepository = tx.getRepository(ChecklistItem)\n\n // 1. 벨리데이션\n if (!checklist.constructionType) throw new Error('공종 타입이 없습니다.')\n if (!checklist.constructionDetailType) throw new Error('상세 공종 타입이 없습니다.')\n if (!checklist.name) throw new Error('체크리스트 이름이 없습니다.')\n if (checklistItem.length === 0) throw new Error('체크리스트 아이템이 없습니다.')\n\n if (projectType === ProjectType.DSSP) {\n if (!cellX || !cellY) throw new Error('셀 좌표가 없습니다.')\n if (!managerId) throw new Error('담당자가 없습니다.')\n if (!buildingLevelId) throw new Error('층 아이디가 없습니다.')\n if (!checklist.location) throw new Error('위치가 없습니다.')\n } else if (projectType === ProjectType.DCSP) {\n if (!checklist.inspectionDrawingType) throw new Error('검측 도면 타입이 없습니다.')\n if (checklist.inspectionParts.length === 0) throw new Error('검측 부위가 없습니다.')\n if (!buildingLevelId) throw new Error('층 아이디가 없습니다.')\n if (!checklist.location) throw new Error('위치가 없습니다.')\n }\n\n // 2. checklist 저장\n const checklistDocumentNo = await getRecentDocumentNoByBuildingLevelId(buildingLevelId, DocumentNoType.CHECKLIST, tx)\n const inspectionRequestDocumentNo = checklistDocumentNo.replace(\n `검측 제${DocumentNoType.CHECKLIST}-`,\n `검측 제${DocumentNoType.INSPECTION_REQUEST}-`\n )\n const inspectionResultDocumentNo = checklistDocumentNo.replace(\n `검측 제${DocumentNoType.CHECKLIST}-`,\n `검측 제${DocumentNoType.INSPECTION_RESULT}-`\n )\n\n const savedChecklist = await checklistRepository.save({\n ...checklist,\n projectType,\n checklistReferenceType: ChecklistReferenceType.INSPECTION,\n documentNo: checklistDocumentNo,\n inspectionRequestDocumentNo,\n inspectionResultDocumentNo,\n creator: user,\n updater: user\n })\n\n // 3. checklistItem 저장\n const checklistItems = checklistItem.map((item, idx) => ({\n name: item.name,\n mainType: item.mainType,\n detailType: item.detailType,\n inspctionCriteria: item.inspctionCriteria,\n kcsCriteria: item.kcsCriteria,\n siteSpecCriteria: item.siteSpecCriteria,\n sequence: idx,\n checklist: savedChecklist,\n creator: user,\n updater: user\n }))\n await checklistItemRepository.save(checklistItems)\n\n // 4. buildingInspection 저장\n const result = await buildingInspectionRepository.save({\n status: BuildingInspectionStatus.WAIT,\n buildingLevel: { id: buildingLevelId },\n checklist: savedChecklist,\n projectType,\n manager: managerId ? { id: managerId } : null,\n cellX,\n cellY,\n creator: user,\n updater: user\n })\n\n // 5. 현장 문서 자동 등록 (040202 검측체크리스트관리)\n const projectId = await getProjectIdByBuildingLevelId(buildingLevelId, tx.getRepository('projects'))\n if (projectId) {\n await autoFileDocument({\n projectId,\n code: '040202',\n name: `체크리스트 - ${savedChecklist.name || ''}`,\n sourceType: 'CHECKLIST',\n sourceRefId: result.id,\n context\n })\n }\n\n return result\n }\n\n // 검측 상태 변경 & 체크리스트 갱신\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To create Building Inspection And Checklist information' })\n async updateBuildingInspectionChecklist(\n @Arg('buildingInspection') buildingInspection: UpdateBuildingInspectionSubmitType,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { user, tx } = context.state\n const { id: buildingInspectionId, memo, requestDate, checklist, checklistItem } = buildingInspection\n const buildingInspectionRepo = tx.getRepository(BuildingInspection)\n const checklistRepo = tx.getRepository(Checklist)\n const checklistItemRepo = tx.getRepository(ChecklistItem)\n const oldBuildingInspection = await buildingInspectionRepo.findOneBy({ id: buildingInspectionId })\n const status = oldBuildingInspection.status\n const isConstructor: boolean =\n status == BuildingInspectionStatus.WAIT ||\n status == BuildingInspectionStatus.OVERALL_WAIT ||\n status == BuildingInspectionStatus.FAIL\n let inspectionStatus = null\n let signedUserType = null // 싸인을 한 유저 타입\n let inspectionRequestData = {}\n let inspectionResultData = {}\n\n // 1. 벨리데이션\n if (!buildingInspectionId) throw new Error('검측 아이디가 없습니다.')\n if (!status) throw new Error('검측 상태가 없습니다.')\n if (status == BuildingInspectionStatus.PASS) throw new Error('검측 상태가 수정할 수 있는 상태가 아닙니다.')\n\n if (isConstructor) {\n // 시공자 타입별 밸리데이션\n if (checklistItem.length !== checklistItem.filter(v => v.constructionConfirmStatus).length) {\n throw new Error('아이템을 모두 체크해야 합니다.')\n }\n if (status == BuildingInspectionStatus.OVERALL_WAIT && !checklist.overallConstructorSignature) {\n throw new Error('총괄 시공책임자 사인이 없습니다.')\n }\n if (status == BuildingInspectionStatus.WAIT && !checklist.taskConstructorSignature) {\n throw new Error('공종별 시공관리자 사인이 없습니다.')\n }\n\n // 시공자 상태 데이터\n const isPassed = checklistItem.length === checklistItem.filter(v => v.constructionConfirmStatus === 'T').length\n\n if (!isPassed) {\n // 1. 검측이 불햡격 = 상태는 불합격으로, 시공자 싸인은 모두 초기화\n inspectionStatus = BuildingInspectionStatus.FAIL\n checklist.overallConstructorSignature = null\n checklist.taskConstructorSignature = null\n } else if (isPassed && (status === BuildingInspectionStatus.WAIT || status === BuildingInspectionStatus.FAIL)) {\n // 2. 검측이 합격이면서 공종 시공자 스탭 = 상태는 총괄 시공자 스탭으로\n inspectionStatus = BuildingInspectionStatus.OVERALL_WAIT\n signedUserType = 'taskConstructor'\n } else if (isPassed && status === BuildingInspectionStatus.OVERALL_WAIT) {\n // 3. 검측이 합격이면서 총괄 시공자 스탭 = 상태는 공종 감리자 스탭으로, 감리자 싸인은 모두 초기화\n inspectionStatus = BuildingInspectionStatus.REQUEST\n checklist.overallSupervisorySignature = null\n checklist.taskSupervisorySignature = null\n signedUserType = 'overallConstructor'\n inspectionRequestData = {\n inspectionRequestMemo: checklist.inspectionRequestMemo,\n inspectionRequestUpdatedAt: new Date()\n }\n }\n } else {\n // 감리자 타입별 밸리데이션\n if (checklistItem.length !== checklistItem.filter(v => v.supervisoryConfirmStatus).length) {\n throw new Error('아이템을 모두 체크해야 합니다.')\n }\n if (status == BuildingInspectionStatus.OVERALL_REQUEST && !checklist.overallSupervisorySignature) {\n throw new Error('총괄 감리책임자 사인이 없습니다.')\n }\n if (status == BuildingInspectionStatus.REQUEST && !checklist.taskSupervisorySignature) {\n throw new Error('공종별 감리 책임자 사인이 없습니다.')\n }\n\n // 감리자 상태 데이터\n const isPassed = checklistItem.length === checklistItem.filter(v => v.supervisoryConfirmStatus === 'T').length\n if (!isPassed) {\n // 1. 검측이 불햡격 = 상태는 불합격으로, 시공자 싸인은 모두 초기화\n inspectionStatus = BuildingInspectionStatus.FAIL\n checklist.overallConstructorSignature = null\n checklist.taskConstructorSignature = null\n } else if (isPassed && status === BuildingInspectionStatus.REQUEST) {\n // 2. 검측이 합격이면서 공종 감리자 스탭 = 상태는 총괄 감리자 스탭으로\n inspectionStatus = BuildingInspectionStatus.OVERALL_REQUEST\n signedUserType = 'taskSupervisory'\n } else if (isPassed && status === BuildingInspectionStatus.OVERALL_REQUEST) {\n // 3. 검측이 합격이면서 총괄 감리자 스탭 = 상태는 합격으로\n inspectionStatus = BuildingInspectionStatus.PASS\n signedUserType = 'overallSupervisory'\n inspectionResultData = {\n inspectionResultStatus: checklist.inspectionResultStatus,\n inspectionResultMemo: checklist.inspectionResultMemo,\n inspectionResultType: checklist.inspectionResultType,\n inspectionResultUpdatedAt: new Date()\n }\n }\n }\n\n // 2. buildingInspection 저장\n await buildingInspectionRepo.save({\n ...oldBuildingInspection,\n status: inspectionStatus,\n failCount:\n inspectionStatus === BuildingInspectionStatus.FAIL\n ? (oldBuildingInspection.failCount || 0) + 1\n : oldBuildingInspection.failCount || 0,\n ...(requestDate !== undefined && { requestDate }),\n memo: memo,\n updater: user\n })\n\n // 현장 문서 자동 등록 (040201 검측요청/결과통보서) - REQUEST 상태 전환 시\n if (inspectionStatus === BuildingInspectionStatus.REQUEST) {\n const buildingLevelId = oldBuildingInspection.buildingLevelId\n if (buildingLevelId) {\n const projectId = await getProjectIdByBuildingLevelId(buildingLevelId, tx.getRepository('projects'))\n if (projectId) {\n await autoFileDocument({\n projectId,\n code: '040201',\n name: `검측요청서 - ${buildingInspectionId}`,\n sourceType: 'INSPECTION_REQUEST',\n sourceRefId: buildingInspectionId,\n context\n })\n }\n }\n }\n\n // 3. checklist 저장\n const oldChecklist = await checklistRepo.findOneBy({ id: checklist.id })\n const inspectionDateField = isConstructor ? 'constructionInspectionDate' : 'supervisorInspectionDate'\n const signedUser = signedUserType ? { [signedUserType]: user } : {}\n\n await checklistRepo.save({\n ...oldChecklist,\n [inspectionDateField]: new Date(),\n overallConstructorSignature: checklist.overallConstructorSignature,\n taskConstructorSignature: checklist.taskConstructorSignature,\n overallSupervisorySignature: checklist.overallSupervisorySignature,\n taskSupervisorySignature: checklist.taskSupervisorySignature,\n ...signedUser,\n ...inspectionRequestData,\n ...inspectionResultData,\n updater: user\n })\n\n // 4. checklistItem 저장\n for (let item of checklistItem) {\n const confirmStatusField = isConstructor ? 'constructionConfirmStatus' : 'supervisoryConfirmStatus'\n const existingItem = await checklistItemRepo.findOneBy({ id: item.id })\n await checklistItemRepo.save({\n ...existingItem,\n [confirmStatusField]: item[confirmStatusField],\n updater: user\n })\n }\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => BuildingInspection, { description: 'To update Building Inspection information' })\n async updateBuildingInspection(\n @Arg('patch') patch: UpdateBuildingInspection,\n @Ctx() context: ResolverContext\n ): Promise<BuildingInspection> {\n const { user, tx } = context.state\n const buildingInspectionRepo = tx.getRepository(BuildingInspection)\n\n // 벨리데이션\n if (!patch.id) throw new Error('검측 아이디가 없습니다.')\n\n const buildingInspection = await buildingInspectionRepo.findOneBy({ id: patch.id })\n\n // 완료 상태인 검측데이터면 삭제 못함\n if (buildingInspection.status === BuildingInspectionStatus.PASS) {\n throw new Error('완료 상태인 검측정보를 변경할 수 없습니다.')\n }\n\n const result = await buildingInspectionRepo.save({\n ...buildingInspection,\n ...patch,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple Checklists' })\n async deleteBuildingInspections(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx } = context.state\n const buildingInspectionRepository = tx.getRepository(BuildingInspection)\n const checklistRepository = tx.getRepository(Checklist)\n const checklistItemRepository = tx.getRepository(ChecklistItem)\n\n const buildingInspections = await buildingInspectionRepository.createQueryBuilder('bi').whereInIds(ids).getMany()\n\n // 완료 상태인 검측데이터가 한개라도 있으면 삭제 못함\n if (buildingInspections.filter(bi => bi.status === BuildingInspectionStatus.PASS).length > 0) {\n throw new Error('완료 상태인 검측정보를 변경할 수 없습니다.')\n }\n\n // 검측 데이터 제거\n await buildingInspectionRepository.softDelete({\n id: In(ids)\n })\n\n // 검측 데이터의 체크 리스트 제거\n const checklistIds = buildingInspections.map(bi => bi.checklistId)\n await checklistRepository.softDelete({\n id: In(checklistIds)\n })\n\n // 검측 데이터의 체크 리스트 아이템 제거\n await checklistItemRepository\n .createQueryBuilder()\n .softDelete()\n .where('checklist_id IN (:...checklistIds)', { checklistIds })\n .execute()\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To apply to all building inspection' })\n async applyToAllBuildingInspection(\n @Arg('buildingInspectionId') buildingInspectionId: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { user, tx } = context.state\n const buildingInspectionRepository = tx.getRepository(BuildingInspection)\n\n const buildingInspection = await buildingInspectionRepository.findOne({\n where: { id: buildingInspectionId },\n relations: ['buildingLevel', 'buildingLevel.building', 'checklist', 'checklist.checklistItems']\n })\n\n const checklist = buildingInspection.checklist\n const checklistItems = checklist.checklistItems\n const buildingLevels = await getRepository(BuildingLevel).find({\n where: { building: { id: buildingInspection.buildingLevel.building.id } }\n })\n\n // 해당 검측 정보가 속한 동의 모든 층에 같은 검측 데이터 등록\n for (let buildingLevel of buildingLevels) {\n // 같은 셀에 이미 검측 정보가 있으면 패스\n const existInspection = await buildingInspectionRepository.findOneBy({\n buildingLevel: { id: buildingLevel.id },\n cellX: buildingInspection.cellX,\n cellY: buildingInspection.cellY\n })\n if (existInspection) continue\n\n // 새로운 체크리스트 데이터\n const newChecklist = {\n name: checklist.name,\n location: `${buildingInspection.buildingLevel.building.name} ${buildingLevel.floor}층`,\n constructionType: checklist.constructionType,\n constructionDetailType: checklist.constructionDetailType,\n inspectionDrawingType: checklist.inspectionDrawingType,\n inspectionParts: checklist.inspectionParts\n }\n\n // 새로운 체크리스트 아이템 데이터\n const newChecklistItems = checklistItems.map(item => ({\n name: item.name,\n mainType: item.mainType,\n detailType: item.detailType,\n inspctionCriteria: item.inspctionCriteria,\n kcsCriteria: item.kcsCriteria,\n siteSpecCriteria: item.siteSpecCriteria\n }))\n\n await this.createBuildingInspection(\n {\n buildingLevelId: buildingLevel.id,\n checklist: newChecklist,\n checklistItem: newChecklistItems,\n cellX: buildingInspection.cellX,\n cellY: buildingInspection.cellY,\n managerId: buildingInspection.managerId\n },\n context\n )\n }\n\n return true\n }\n}\n\nasync function getRecentDocumentNoByBuildingLevelId(buildingLevelId: string, type: DocumentNoType, tx: any): Promise<string> {\n const project = await tx\n .createQueryBuilder()\n .select('p.documentNaming', 'documentNaming')\n .addSelect('bc.id', 'buildingComplexId')\n .from('projects', 'p')\n .innerJoin('building_complexes', 'bc', 'bc.id = p.building_complex_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 .getRawOne()\n\n const latestChecklist = await tx\n .getRepository(Checklist)\n .createQueryBuilder('c')\n .innerJoin('c.buildingInspection', 'bi')\n .innerJoin('bi.buildingLevel', 'bl')\n .innerJoin('bl.building', 'b')\n .where('b.building_complex_id = :buildingComplexId', { buildingComplexId: project.buildingComplexId })\n .andWhere('c.document_no LIKE :pattern', { pattern: `${project.documentNaming} 검측 제${type}-%` })\n .orderBy('c.created_at', 'DESC')\n .getOne()\n\n // 4. 시퀀스 번호 생성 (5자리)\n let sequence = '00001'\n if (latestChecklist) {\n const documentNoPattern = new RegExp(`${project.documentNaming} 검측 제${type}-(\\\\d{5})호`)\n const match = latestChecklist.documentNo.match(documentNoPattern)\n if (match) {\n sequence = (Number(match[1]) + 1).toString().padStart(5, '0')\n }\n }\n\n // 5. 최종 문서 번호 생성\n return `${project.documentNaming} 검측 제${type}-${sequence}호`\n}\n"]}
@@ -12,7 +12,9 @@ export declare class ChecklistItemInputType {
12
12
  name: string;
13
13
  mainType: string;
14
14
  detailType: string;
15
- inspctionCriteria: string;
15
+ inspctionCriteria?: string;
16
+ kcsCriteria?: string;
17
+ siteSpecCriteria?: string;
16
18
  }
17
19
  export declare class NewBuildingInspection {
18
20
  buildingLevelId?: string;
@@ -54,6 +54,14 @@ tslib_1.__decorate([
54
54
  (0, type_graphql_1.Field)({ nullable: true }),
55
55
  tslib_1.__metadata("design:type", String)
56
56
  ], ChecklistItemInputType.prototype, "inspctionCriteria", void 0);
57
+ tslib_1.__decorate([
58
+ (0, type_graphql_1.Field)({ nullable: true }),
59
+ tslib_1.__metadata("design:type", String)
60
+ ], ChecklistItemInputType.prototype, "kcsCriteria", void 0);
61
+ tslib_1.__decorate([
62
+ (0, type_graphql_1.Field)({ nullable: true }),
63
+ tslib_1.__metadata("design:type", String)
64
+ ], ChecklistItemInputType.prototype, "siteSpecCriteria", void 0);
57
65
  exports.ChecklistItemInputType = ChecklistItemInputType = tslib_1.__decorate([
58
66
  (0, type_graphql_1.InputType)()
59
67
  ], ChecklistItemInputType);
@@ -1 +1 @@
1
- {"version":3,"file":"building-inspection-type.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { BuildingInspection } from './building-inspection'\nimport { InspectionResultStatus, InspectionResultType } from '../checklist/checklist'\n\n@InputType()\nexport class ChecklistInputType {\n @Field({ nullable: false })\n name: string\n\n @Field({ nullable: true })\n constructionType?: string\n\n @Field({ nullable: true })\n constructionDetailType?: string\n\n @Field({ nullable: true })\n location?: string\n\n @Field({ nullable: true })\n inspectionDrawingType?: string\n\n @Field(type => [String], { nullable: true })\n inspectionParts?: string[]\n}\n\n@InputType()\nexport class ChecklistItemInputType {\n @Field({ nullable: false })\n name: string\n\n @Field({ nullable: false })\n mainType: string\n\n @Field({ nullable: false })\n detailType: string\n\n @Field({ nullable: true })\n inspctionCriteria: string\n}\n\n@InputType()\nexport class NewBuildingInspection {\n @Field({ nullable: true })\n buildingLevelId?: string\n\n @Field(type => ChecklistInputType, { nullable: false })\n checklist: ChecklistInputType\n\n @Field(type => [ChecklistItemInputType], { nullable: false })\n checklistItem: ChecklistItemInputType[]\n\n @Field({ nullable: true })\n cellX?: number\n\n @Field({ nullable: true })\n cellY?: number\n\n @Field({ nullable: true })\n managerId?: string\n}\n\n@InputType()\nexport class ChecklistSubmitInputType {\n @Field({ nullable: false })\n id: string\n\n @Field({ nullable: true })\n overallConstructorSignature?: string\n\n @Field({ nullable: true })\n taskConstructorSignature?: string\n\n @Field({ nullable: true })\n overallSupervisorySignature?: string\n\n @Field({ nullable: true })\n taskSupervisorySignature?: string\n\n @Field({ nullable: true })\n inspectionRequestMemo?: string\n\n @Field({ nullable: true })\n inspectionResultMemo?: string\n\n @Field({ nullable: true })\n inspectionResultStatus?: InspectionResultStatus\n\n @Field({ nullable: true })\n inspectionResultType?: InspectionResultType\n}\n\n@InputType()\nexport class ChecklistItemSubmitInputType {\n @Field({ nullable: false })\n id: string\n\n @Field({ nullable: true })\n constructionConfirmStatus?: string\n\n @Field({ nullable: true })\n supervisoryConfirmStatus?: string\n}\n\n@InputType()\nexport class UpdateBuildingInspectionSubmitType {\n @Field({ nullable: false })\n id: string\n\n @Field({ nullable: true })\n memo?: string\n\n @Field({ nullable: true })\n requestDate?: string\n\n @Field(type => ChecklistSubmitInputType, { nullable: false })\n checklist: ChecklistSubmitInputType\n\n @Field(type => [ChecklistItemSubmitInputType], { nullable: false })\n checklistItem: ChecklistItemSubmitInputType[]\n}\n@InputType()\nexport class UpdateBuildingInspection {\n @Field({ nullable: false })\n id: string\n\n @Field(type => String, { nullable: true })\n drawingMarker?: string\n\n @Field(type => String, { nullable: true })\n memo?: string\n}\n\n@InputType()\nexport class BuildingInspectionsOfProject {\n @Field({ nullable: false })\n projectId: string\n\n @Field({ nullable: true })\n limit: number\n\n @Field({ nullable: true, description: '상태 필터 (WAIT, REQUEST, FAIL, RE_WAIT, PASS)' })\n statusFilter?: string\n}\n\n@InputType()\nexport class BuildingInspectionsOfBuilding {\n @Field({ nullable: false })\n buildingId: string\n\n @Field({ nullable: true })\n limit: number\n}\n\n@InputType()\nexport class BuildingInspectionsOfBuildingLevel {\n @Field({ nullable: false })\n buildingLevelId: string\n\n @Field({ nullable: true })\n limit: number\n\n @Field({ nullable: true })\n startDate?: string\n\n @Field({ nullable: true })\n endDate?: string\n}\n\n@ObjectType()\nexport class BuildingInspectionSummary {\n @Field(type => String, { nullable: true, description: '요청일자' })\n requestDate?: string\n\n @Field(type => Int, { description: '검측 대기 수' })\n wait: number\n\n @Field(type => Int, { description: '검측 요청 수' })\n request: number\n\n @Field(type => Int, { description: '검측 통과 수' })\n pass: number\n\n @Field(type => Int, { description: '검측 실패 수' })\n fail: number\n\n @Field(type => Int, { nullable: true, description: '재검측 대기 수 (failCount > 0 인 WAIT/OVERALL_WAIT)' })\n reWait?: number\n}\n\n@ObjectType()\nexport class BuildingInspectionList {\n @Field(type => [BuildingInspection])\n items: BuildingInspection[]\n\n @Field(type => Int)\n total: number\n}\n\n@ObjectType()\nexport class ProjectManagerOutput {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n phone?: string\n\n @Field({ nullable: true })\n position?: string\n\n @Field(type => ID)\n userId?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n updatedAt?: string\n}\n"]}
1
+ {"version":3,"file":"building-inspection-type.js","sourceRoot":"","sources":["../../../server/service/building-inspection/building-inspection-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { BuildingInspection } from './building-inspection'\nimport { InspectionResultStatus, InspectionResultType } from '../checklist/checklist'\n\n@InputType()\nexport class ChecklistInputType {\n @Field({ nullable: false })\n name: string\n\n @Field({ nullable: true })\n constructionType?: string\n\n @Field({ nullable: true })\n constructionDetailType?: string\n\n @Field({ nullable: true })\n location?: string\n\n @Field({ nullable: true })\n inspectionDrawingType?: string\n\n @Field(type => [String], { nullable: true })\n inspectionParts?: string[]\n}\n\n@InputType()\nexport class ChecklistItemInputType {\n @Field({ nullable: false })\n name: string\n\n @Field({ nullable: false })\n mainType: string\n\n @Field({ nullable: false })\n detailType: string\n\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Field({ nullable: true })\n kcsCriteria?: string\n\n @Field({ nullable: true })\n siteSpecCriteria?: string\n}\n\n@InputType()\nexport class NewBuildingInspection {\n @Field({ nullable: true })\n buildingLevelId?: string\n\n @Field(type => ChecklistInputType, { nullable: false })\n checklist: ChecklistInputType\n\n @Field(type => [ChecklistItemInputType], { nullable: false })\n checklistItem: ChecklistItemInputType[]\n\n @Field({ nullable: true })\n cellX?: number\n\n @Field({ nullable: true })\n cellY?: number\n\n @Field({ nullable: true })\n managerId?: string\n}\n\n@InputType()\nexport class ChecklistSubmitInputType {\n @Field({ nullable: false })\n id: string\n\n @Field({ nullable: true })\n overallConstructorSignature?: string\n\n @Field({ nullable: true })\n taskConstructorSignature?: string\n\n @Field({ nullable: true })\n overallSupervisorySignature?: string\n\n @Field({ nullable: true })\n taskSupervisorySignature?: string\n\n @Field({ nullable: true })\n inspectionRequestMemo?: string\n\n @Field({ nullable: true })\n inspectionResultMemo?: string\n\n @Field({ nullable: true })\n inspectionResultStatus?: InspectionResultStatus\n\n @Field({ nullable: true })\n inspectionResultType?: InspectionResultType\n}\n\n@InputType()\nexport class ChecklistItemSubmitInputType {\n @Field({ nullable: false })\n id: string\n\n @Field({ nullable: true })\n constructionConfirmStatus?: string\n\n @Field({ nullable: true })\n supervisoryConfirmStatus?: string\n}\n\n@InputType()\nexport class UpdateBuildingInspectionSubmitType {\n @Field({ nullable: false })\n id: string\n\n @Field({ nullable: true })\n memo?: string\n\n @Field({ nullable: true })\n requestDate?: string\n\n @Field(type => ChecklistSubmitInputType, { nullable: false })\n checklist: ChecklistSubmitInputType\n\n @Field(type => [ChecklistItemSubmitInputType], { nullable: false })\n checklistItem: ChecklistItemSubmitInputType[]\n}\n@InputType()\nexport class UpdateBuildingInspection {\n @Field({ nullable: false })\n id: string\n\n @Field(type => String, { nullable: true })\n drawingMarker?: string\n\n @Field(type => String, { nullable: true })\n memo?: string\n}\n\n@InputType()\nexport class BuildingInspectionsOfProject {\n @Field({ nullable: false })\n projectId: string\n\n @Field({ nullable: true })\n limit: number\n\n @Field({ nullable: true, description: '상태 필터 (WAIT, REQUEST, FAIL, RE_WAIT, PASS)' })\n statusFilter?: string\n}\n\n@InputType()\nexport class BuildingInspectionsOfBuilding {\n @Field({ nullable: false })\n buildingId: string\n\n @Field({ nullable: true })\n limit: number\n}\n\n@InputType()\nexport class BuildingInspectionsOfBuildingLevel {\n @Field({ nullable: false })\n buildingLevelId: string\n\n @Field({ nullable: true })\n limit: number\n\n @Field({ nullable: true })\n startDate?: string\n\n @Field({ nullable: true })\n endDate?: string\n}\n\n@ObjectType()\nexport class BuildingInspectionSummary {\n @Field(type => String, { nullable: true, description: '요청일자' })\n requestDate?: string\n\n @Field(type => Int, { description: '검측 대기 수' })\n wait: number\n\n @Field(type => Int, { description: '검측 요청 수' })\n request: number\n\n @Field(type => Int, { description: '검측 통과 수' })\n pass: number\n\n @Field(type => Int, { description: '검측 실패 수' })\n fail: number\n\n @Field(type => Int, { nullable: true, description: '재검측 대기 수 (failCount > 0 인 WAIT/OVERALL_WAIT)' })\n reWait?: number\n}\n\n@ObjectType()\nexport class BuildingInspectionList {\n @Field(type => [BuildingInspection])\n items: BuildingInspection[]\n\n @Field(type => Int)\n total: number\n}\n\n@ObjectType()\nexport class ProjectManagerOutput {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n phone?: string\n\n @Field({ nullable: true })\n position?: string\n\n @Field(type => ID)\n userId?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n updatedAt?: string\n}\n"]}
@@ -12,6 +12,8 @@ export declare class ChecklistItem {
12
12
  detailType?: string;
13
13
  name?: string;
14
14
  inspctionCriteria?: string;
15
+ kcsCriteria?: string;
16
+ siteSpecCriteria?: string;
15
17
  constructionConfirmStatus?: ChecklistItemConfirmStatus;
16
18
  supervisoryConfirmStatus?: ChecklistItemConfirmStatus;
17
19
  checklistItemComments?: ChecklistItemComment[];
@@ -45,10 +45,20 @@ tslib_1.__decorate([
45
45
  tslib_1.__metadata("design:type", String)
46
46
  ], ChecklistItem.prototype, "name", void 0);
47
47
  tslib_1.__decorate([
48
- (0, typeorm_1.Column)({ nullable: true, comment: '검사 기준' }),
48
+ (0, typeorm_1.Column)({ nullable: true, comment: '검사 기준 (레거시 단일 필드)' }),
49
49
  (0, type_graphql_1.Field)({ nullable: true }),
50
50
  tslib_1.__metadata("design:type", String)
51
51
  ], ChecklistItem.prototype, "inspctionCriteria", void 0);
52
+ tslib_1.__decorate([
53
+ (0, typeorm_1.Column)({ nullable: true, comment: 'KCS 시방서 기준 - kcs_matches[0] 오브젝트 전체를 JSON 문자열로 저장 (file_label 등 포함)' }),
54
+ (0, type_graphql_1.Field)({ nullable: true }),
55
+ tslib_1.__metadata("design:type", String)
56
+ ], ChecklistItem.prototype, "kcsCriteria", void 0);
57
+ tslib_1.__decorate([
58
+ (0, typeorm_1.Column)({ nullable: true, comment: '현장 시방서 기준 - site_spec_matches[0].text' }),
59
+ (0, type_graphql_1.Field)({ nullable: true }),
60
+ tslib_1.__metadata("design:type", String)
61
+ ], ChecklistItem.prototype, "siteSpecCriteria", void 0);
52
62
  tslib_1.__decorate([
53
63
  (0, typeorm_1.Column)({ nullable: true, comment: '시공 관리자 적합 여부 (T: 적합, F: 부적합)' }),
54
64
  (0, type_graphql_1.Field)({ nullable: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-item.js","sourceRoot":"","sources":["../../../server/service/checklist-item/checklist-item.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, ID, Int, registerEnumType } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Checklist } from '../checklist/checklist'\nimport { ChecklistItemComment } from '../checklist-item-comment/checklist-item-comment'\n\nexport enum ChecklistItemConfirmStatus {\n T = '적합',\n F = '부적합'\n}\n\nregisterEnumType(ChecklistItemConfirmStatus, {\n name: 'ChecklistItemConfirmStatus',\n description: '적합 상태'\n})\n\n@Entity({ comment: '체크 리스트 항목' })\n@Index('ix_checklist_item_0', (checklistItem: ChecklistItem) => [checklistItem.checklist], { where: '\"deleted_at\" IS NULL' })\n@ObjectType()\nexport class ChecklistItem {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: true, comment: '시퀀스' })\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n @Column({ nullable: false, comment: '구분 (텍스트)' })\n @Field({ nullable: false })\n mainType?: string\n\n @Column({ nullable: false, comment: '상세 구분 (텍스트)' })\n @Field({ nullable: false })\n detailType?: string\n\n @Column({ nullable: true, comment: '검사 항목' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '검사 기준' })\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Column({ nullable: true, comment: '시공 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n constructionConfirmStatus?: ChecklistItemConfirmStatus\n\n @Column({ nullable: true, comment: '감리 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n supervisoryConfirmStatus?: ChecklistItemConfirmStatus\n\n // 조치 사항 정보 (하위 테이블 참조)\n @OneToMany(() => ChecklistItemComment, checklistItemComment => checklistItemComment.checklistItem)\n @Field(() => [ChecklistItemComment])\n checklistItemComments?: ChecklistItemComment[]\n\n // 체크리스트 정보 (상위 테이블 참조)\n @ManyToOne(type => Checklist)\n @Field(type => Checklist, { nullable: true })\n checklist?: Checklist\n\n @RelationId((checklistItem: ChecklistItem) => checklistItem.checklist)\n checklistId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((checklistItem: ChecklistItem) => checklistItem.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((checklistItem: ChecklistItem) => checklistItem.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"checklist-item.js","sourceRoot":"","sources":["../../../server/service/checklist-item/checklist-item.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n DeleteDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, ID, Int, registerEnumType } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Checklist } from '../checklist/checklist'\nimport { ChecklistItemComment } from '../checklist-item-comment/checklist-item-comment'\n\nexport enum ChecklistItemConfirmStatus {\n T = '적합',\n F = '부적합'\n}\n\nregisterEnumType(ChecklistItemConfirmStatus, {\n name: 'ChecklistItemConfirmStatus',\n description: '적합 상태'\n})\n\n@Entity({ comment: '체크 리스트 항목' })\n@Index('ix_checklist_item_0', (checklistItem: ChecklistItem) => [checklistItem.checklist], { where: '\"deleted_at\" IS NULL' })\n@ObjectType()\nexport class ChecklistItem {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: true, comment: '시퀀스' })\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n @Column({ nullable: false, comment: '구분 (텍스트)' })\n @Field({ nullable: false })\n mainType?: string\n\n @Column({ nullable: false, comment: '상세 구분 (텍스트)' })\n @Field({ nullable: false })\n detailType?: string\n\n @Column({ nullable: true, comment: '검사 항목' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '검사 기준 (레거시 단일 필드)' })\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Column({ nullable: true, comment: 'KCS 시방서 기준 - kcs_matches[0] 오브젝트 전체를 JSON 문자열로 저장 (file_label 등 포함)' })\n @Field({ nullable: true })\n kcsCriteria?: string\n\n @Column({ nullable: true, comment: '현장 시방서 기준 - site_spec_matches[0].text' })\n @Field({ nullable: true })\n siteSpecCriteria?: string\n\n @Column({ nullable: true, comment: '시공 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n constructionConfirmStatus?: ChecklistItemConfirmStatus\n\n @Column({ nullable: true, comment: '감리 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n supervisoryConfirmStatus?: ChecklistItemConfirmStatus\n\n // 조치 사항 정보 (하위 테이블 참조)\n @OneToMany(() => ChecklistItemComment, checklistItemComment => checklistItemComment.checklistItem)\n @Field(() => [ChecklistItemComment])\n checklistItemComments?: ChecklistItemComment[]\n\n // 체크리스트 정보 (상위 테이블 참조)\n @ManyToOne(type => Checklist)\n @Field(type => Checklist, { nullable: true })\n checklist?: Checklist\n\n @RelationId((checklistItem: ChecklistItem) => checklistItem.checklist)\n checklistId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((checklistItem: ChecklistItem) => checklistItem.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((checklistItem: ChecklistItem) => checklistItem.updater)\n updaterId?: string\n}\n"]}
@@ -10,6 +10,8 @@ export declare class ChecklistItemHistory implements HistoryEntityInterface<Chec
10
10
  detailType?: string;
11
11
  name?: string;
12
12
  inspctionCriteria?: string;
13
+ kcsCriteria?: string;
14
+ siteSpecCriteria?: string;
13
15
  constructionConfirmStatus?: ChecklistItemConfirmStatus;
14
16
  supervisoryConfirmStatus?: ChecklistItemConfirmStatus;
15
17
  checklistId?: string;
@@ -44,10 +44,20 @@ tslib_1.__decorate([
44
44
  tslib_1.__metadata("design:type", String)
45
45
  ], ChecklistItemHistory.prototype, "name", void 0);
46
46
  tslib_1.__decorate([
47
- (0, typeorm_1.Column)({ nullable: true, comment: '검사 기준' }),
47
+ (0, typeorm_1.Column)({ nullable: true, comment: '검사 기준 (레거시 단일 필드)' }),
48
48
  (0, type_graphql_1.Field)({ nullable: true }),
49
49
  tslib_1.__metadata("design:type", String)
50
50
  ], ChecklistItemHistory.prototype, "inspctionCriteria", void 0);
51
+ tslib_1.__decorate([
52
+ (0, typeorm_1.Column)({ nullable: true, comment: 'KCS 시방서 기준 - kcs_matches[0] 오브젝트 전체를 JSON 문자열로 저장' }),
53
+ (0, type_graphql_1.Field)({ nullable: true }),
54
+ tslib_1.__metadata("design:type", String)
55
+ ], ChecklistItemHistory.prototype, "kcsCriteria", void 0);
56
+ tslib_1.__decorate([
57
+ (0, typeorm_1.Column)({ nullable: true, comment: '현장 시방서 기준 - site_spec_matches[0].text' }),
58
+ (0, type_graphql_1.Field)({ nullable: true }),
59
+ tslib_1.__metadata("design:type", String)
60
+ ], ChecklistItemHistory.prototype, "siteSpecCriteria", void 0);
51
61
  tslib_1.__decorate([
52
62
  (0, typeorm_1.Column)({ nullable: true, comment: '시공 관리자 적합 여부 (T: 적합, F: 부적합)' }),
53
63
  (0, type_graphql_1.Field)({ nullable: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-item-history.js","sourceRoot":"","sources":["../../../server/service/checklist-item-history/checklist-item-history.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\nimport { HistoryActionColumn, HistoryActionType, HistoryEntityInterface, HistoryOriginalIdColumn } from '@operato/typeorm-history'\nimport { User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { ChecklistItem, ChecklistItemConfirmStatus } from '../checklist-item/checklist-item'\nimport { ChecklistHistory } from '../checklist-history/checklist-history'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index('ix_checklist_item_history_0', (checklistItemHistory: ChecklistItemHistory) => [checklistItemHistory.originalId])\n@ObjectType({ description: 'History Entity of ChecklistItem' })\nexport class ChecklistItemHistory implements HistoryEntityInterface<ChecklistItem> {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @HistoryOriginalIdColumn()\n public originalId!: string\n\n @Column({ nullable: true, comment: '시퀀스' })\n @Field({ nullable: true })\n sequence?: number\n\n @Column({ nullable: false, comment: '구분 (텍스트)' })\n @Field({ nullable: false })\n mainType?: string\n\n @Column({ nullable: false, comment: '상세 구분 (텍스트)' })\n @Field({ nullable: false })\n detailType?: string\n\n @Column({ nullable: true, comment: '검사 항목' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '검사 기준' })\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Column({ nullable: true, comment: '시공 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n constructionConfirmStatus?: ChecklistItemConfirmStatus\n\n @Column({ nullable: true, comment: '감리 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n supervisoryConfirmStatus?: ChecklistItemConfirmStatus\n\n // 부모 체크리스트 ID (원본 엔티티 ID 저장)\n @Column({ nullable: true, comment: '체크리스트 ID' })\n @Field({ nullable: true })\n checklistId?: string\n\n // 상위 체크리스트 히스토리 스냅샷 FK (동일 트랜잭션 스냅샷 연결)\n @ManyToOne(type => ChecklistHistory, { nullable: true })\n @Field(type => ChecklistHistory, { nullable: true })\n checklistHistory?: ChecklistHistory\n\n @RelationId((checklistItemHistory: ChecklistItemHistory) => checklistItemHistory.checklistHistory)\n checklistHistoryId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n createdAt?: Date\n\n @CreateDateColumn()\n @Field({ nullable: true })\n loggedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((checklistItemHistory: ChecklistItemHistory) => checklistItemHistory.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((checklistItemHistory: ChecklistItemHistory) => checklistItemHistory.updater)\n updaterId?: string\n\n @HistoryActionColumn({\n nullable: false,\n type:\n DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'enum'\n : DATABASE_TYPE == 'oracle'\n ? 'varchar2'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n enum: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? HistoryActionType : undefined,\n length: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? undefined : 10\n })\n public action!: HistoryActionType\n}\n"]}
1
+ {"version":3,"file":"checklist-item-history.js","sourceRoot":"","sources":["../../../server/service/checklist-item-history/checklist-item-history.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, ObjectType } from 'type-graphql'\nimport { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'\nimport { HistoryActionColumn, HistoryActionType, HistoryEntityInterface, HistoryOriginalIdColumn } from '@operato/typeorm-history'\nimport { User } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { ChecklistItem, ChecklistItemConfirmStatus } from '../checklist-item/checklist-item'\nimport { ChecklistHistory } from '../checklist-history/checklist-history'\n\nconst ORMCONFIG = config.get('ormconfig', {})\nconst DATABASE_TYPE = ORMCONFIG.type\n\n@Entity()\n@Index('ix_checklist_item_history_0', (checklistItemHistory: ChecklistItemHistory) => [checklistItemHistory.originalId])\n@ObjectType({ description: 'History Entity of ChecklistItem' })\nexport class ChecklistItemHistory implements HistoryEntityInterface<ChecklistItem> {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @HistoryOriginalIdColumn()\n public originalId!: string\n\n @Column({ nullable: true, comment: '시퀀스' })\n @Field({ nullable: true })\n sequence?: number\n\n @Column({ nullable: false, comment: '구분 (텍스트)' })\n @Field({ nullable: false })\n mainType?: string\n\n @Column({ nullable: false, comment: '상세 구분 (텍스트)' })\n @Field({ nullable: false })\n detailType?: string\n\n @Column({ nullable: true, comment: '검사 항목' })\n @Field({ nullable: true })\n name?: string\n\n @Column({ nullable: true, comment: '검사 기준 (레거시 단일 필드)' })\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Column({ nullable: true, comment: 'KCS 시방서 기준 - kcs_matches[0] 오브젝트 전체를 JSON 문자열로 저장' })\n @Field({ nullable: true })\n kcsCriteria?: string\n\n @Column({ nullable: true, comment: '현장 시방서 기준 - site_spec_matches[0].text' })\n @Field({ nullable: true })\n siteSpecCriteria?: string\n\n @Column({ nullable: true, comment: '시공 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n constructionConfirmStatus?: ChecklistItemConfirmStatus\n\n @Column({ nullable: true, comment: '감리 관리자 적합 여부 (T: 적합, F: 부적합)' })\n @Field({ nullable: true })\n supervisoryConfirmStatus?: ChecklistItemConfirmStatus\n\n // 부모 체크리스트 ID (원본 엔티티 ID 저장)\n @Column({ nullable: true, comment: '체크리스트 ID' })\n @Field({ nullable: true })\n checklistId?: string\n\n // 상위 체크리스트 히스토리 스냅샷 FK (동일 트랜잭션 스냅샷 연결)\n @ManyToOne(type => ChecklistHistory, { nullable: true })\n @Field(type => ChecklistHistory, { nullable: true })\n checklistHistory?: ChecklistHistory\n\n @RelationId((checklistItemHistory: ChecklistItemHistory) => checklistItemHistory.checklistHistory)\n checklistHistoryId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n createdAt?: Date\n\n @CreateDateColumn()\n @Field({ nullable: true })\n loggedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((checklistItemHistory: ChecklistItemHistory) => checklistItemHistory.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((checklistItemHistory: ChecklistItemHistory) => checklistItemHistory.updater)\n updaterId?: string\n\n @HistoryActionColumn({\n nullable: false,\n type:\n DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'\n ? 'enum'\n : DATABASE_TYPE == 'oracle'\n ? 'varchar2'\n : DATABASE_TYPE == 'mssql'\n ? 'nvarchar'\n : 'varchar',\n enum: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? HistoryActionType : undefined,\n length: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? undefined : 10\n })\n public action!: HistoryActionType\n}\n"]}
@@ -7,8 +7,6 @@ const typeorm_1 = require("typeorm");
7
7
  const construction_checklist_template_item_1 = require("./construction-checklist-template-item");
8
8
  const construction_checklist_template_item_type_1 = require("./construction-checklist-template-item-type");
9
9
  const construction_checklist_template_1 = require("../construction-checklist-template/construction-checklist-template");
10
- const checklist_template_item_1 = require("../checklist-template-item/checklist-template-item");
11
- const spec_matching_service_1 = require("./spec-matching-service");
12
10
  let ConstructionChecklistTemplateItemMutation = class ConstructionChecklistTemplateItemMutation {
13
11
  async updateMultipleConstructionChecklistTemplateItems(constructionChecklistTemplateId, patches, context) {
14
12
  var _a, _b, _c, _d, _e;
@@ -21,11 +19,9 @@ let ConstructionChecklistTemplateItemMutation = class ConstructionChecklistTempl
21
19
  let results = [];
22
20
  for (let i = 0; i < patches.length; i++) {
23
21
  const patch = patches[i];
24
- const result = await itemRepo.save(Object.assign(Object.assign({}, patch), { recommendation1: ((_a = patch.recommendation1) === null || _a === void 0 ? void 0 : _a.trim()) || null, recommendation2: ((_b = patch.recommendation2) === null || _b === void 0 ? void 0 : _b.trim()) || null, recommendation3: ((_c = patch.recommendation3) === null || _c === void 0 ? void 0 : _c.trim()) || null, recommendation4: ((_d = patch.recommendation4) === null || _d === void 0 ? void 0 : _d.trim()) || null, recommendation5: ((_e = patch.recommendation5) === null || _e === void 0 ? void 0 : _e.trim()) || null, inspctionCriteria: '', criteriaRequestStatus: checklist_template_item_1.CriteriaRequestStatus.REQUEST, sequence: i, constructionChecklistTemplate: template, creator: user, updater: user }));
22
+ const result = await itemRepo.save(Object.assign(Object.assign({}, patch), { recommendation1: ((_a = patch.recommendation1) === null || _a === void 0 ? void 0 : _a.trim()) || null, recommendation2: ((_b = patch.recommendation2) === null || _b === void 0 ? void 0 : _b.trim()) || null, recommendation3: ((_c = patch.recommendation3) === null || _c === void 0 ? void 0 : _c.trim()) || null, recommendation4: ((_d = patch.recommendation4) === null || _d === void 0 ? void 0 : _d.trim()) || null, recommendation5: ((_e = patch.recommendation5) === null || _e === void 0 ? void 0 : _e.trim()) || null, sequence: i, constructionChecklistTemplate: template, creator: user, updater: user }));
25
23
  results.push(result);
26
24
  }
27
- // 검사기준 AI 비동기 요청
28
- (0, spec_matching_service_1.queueUpdateConstructionChecklistInspctionCriteria)(results.map(v => v.id));
29
25
  return results;
30
26
  }
31
27
  async deleteConstructionChecklistTemplateItems(ids, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"construction-checklist-template-item-mutation.js","sourceRoot":"","sources":["../../../server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { ConstructionChecklistTemplateItem } from './construction-checklist-template-item'\nimport { ConstructionChecklistTemplateItemPatch } from './construction-checklist-template-item-type'\nimport { ConstructionChecklistTemplate } from '../construction-checklist-template/construction-checklist-template'\nimport { CriteriaRequestStatus } from '../checklist-template-item/checklist-template-item'\nimport { queueUpdateConstructionChecklistInspctionCriteria } from './spec-matching-service'\n\n@Resolver(ConstructionChecklistTemplateItem)\nexport class ConstructionChecklistTemplateItemMutation {\n @Directive('@transaction')\n @Mutation(returns => [ConstructionChecklistTemplateItem], { description: '공종 체크리스트 템플릿 아이템 일괄 저장' })\n async updateMultipleConstructionChecklistTemplateItems(\n @Arg('constructionChecklistTemplateId') constructionChecklistTemplateId: string,\n @Arg('patches', type => [ConstructionChecklistTemplateItemPatch]) patches: ConstructionChecklistTemplateItemPatch[],\n @Ctx() context: ResolverContext\n ): Promise<ConstructionChecklistTemplateItem[]> {\n const { user, tx } = context.state\n\n const itemRepo = tx.getRepository(ConstructionChecklistTemplateItem)\n const template = await tx.getRepository(ConstructionChecklistTemplate).findOneBy({ id: constructionChecklistTemplateId })\n\n // 기존 아이템 삭제\n await itemRepo.delete({ constructionChecklistTemplate: { id: constructionChecklistTemplateId } })\n\n // 새로 저장\n let results = []\n for (let i = 0; i < patches.length; i++) {\n const patch = patches[i]\n const result = await itemRepo.save({\n ...patch,\n recommendation1: patch.recommendation1?.trim() || null,\n recommendation2: patch.recommendation2?.trim() || null,\n recommendation3: patch.recommendation3?.trim() || null,\n recommendation4: patch.recommendation4?.trim() || null,\n recommendation5: patch.recommendation5?.trim() || null,\n inspctionCriteria: '',\n criteriaRequestStatus: CriteriaRequestStatus.REQUEST,\n sequence: i,\n constructionChecklistTemplate: template,\n creator: user,\n updater: user\n })\n results.push(result)\n }\n\n // 검사기준 AI 비동기 요청\n queueUpdateConstructionChecklistInspctionCriteria(results.map(v => v.id))\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: '공종 체크리스트 템플릿 아이템 삭제' })\n async deleteConstructionChecklistTemplateItems(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx } = context.state\n\n await tx.getRepository(ConstructionChecklistTemplateItem).delete({ id: In(ids) })\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"construction-checklist-template-item-mutation.js","sourceRoot":"","sources":["../../../server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAC5B,iGAA0F;AAC1F,2GAAoG;AACpG,wHAAkH;AAG3G,IAAM,yCAAyC,GAA/C,MAAM,yCAAyC;IAG9C,AAAN,KAAK,CAAC,gDAAgD,CACZ,+BAAuC,EACb,OAAiD,EAC5G,OAAwB;;QAE/B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAElC,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,CAAC,wEAAiC,CAAC,CAAA;QACpE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,+DAA6B,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,+BAA+B,EAAE,CAAC,CAAA;QAEzH,YAAY;QACZ,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,6BAA6B,EAAE,EAAE,EAAE,EAAE,+BAA+B,EAAE,EAAE,CAAC,CAAA;QAEjG,QAAQ;QACR,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,iCAC7B,KAAK,KACR,eAAe,EAAE,CAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,IAAI,EAAE,KAAI,IAAI,EACtD,eAAe,EAAE,CAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,IAAI,EAAE,KAAI,IAAI,EACtD,eAAe,EAAE,CAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,IAAI,EAAE,KAAI,IAAI,EACtD,eAAe,EAAE,CAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,IAAI,EAAE,KAAI,IAAI,EACtD,eAAe,EAAE,CAAA,MAAA,KAAK,CAAC,eAAe,0CAAE,IAAI,EAAE,KAAI,IAAI,EACtD,QAAQ,EAAE,CAAC,EACX,6BAA6B,EAAE,QAAQ,EACvC,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;YACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtB,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAIK,AAAN,KAAK,CAAC,wCAAwC,CACd,GAAa,EACpC,OAAwB;QAE/B,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,EAAE,CAAC,aAAa,CAAC,wEAAiC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEjF,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAlDY,8FAAyC;AAG9C;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wEAAiC,CAAC,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;IAEjG,mBAAA,IAAA,kBAAG,EAAC,iCAAiC,CAAC,CAAA;IACtC,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,kFAAsC,CAAC,CAAC,CAAA;IAChE,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;iHA8BP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAElE,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;yGAOP;oDAjDU,yCAAyC;IADrD,IAAA,uBAAQ,EAAC,wEAAiC,CAAC;GAC/B,yCAAyC,CAkDrD","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { ConstructionChecklistTemplateItem } from './construction-checklist-template-item'\nimport { ConstructionChecklistTemplateItemPatch } from './construction-checklist-template-item-type'\nimport { ConstructionChecklistTemplate } from '../construction-checklist-template/construction-checklist-template'\n\n@Resolver(ConstructionChecklistTemplateItem)\nexport class ConstructionChecklistTemplateItemMutation {\n @Directive('@transaction')\n @Mutation(returns => [ConstructionChecklistTemplateItem], { description: '공종 체크리스트 템플릿 아이템 일괄 저장' })\n async updateMultipleConstructionChecklistTemplateItems(\n @Arg('constructionChecklistTemplateId') constructionChecklistTemplateId: string,\n @Arg('patches', type => [ConstructionChecklistTemplateItemPatch]) patches: ConstructionChecklistTemplateItemPatch[],\n @Ctx() context: ResolverContext\n ): Promise<ConstructionChecklistTemplateItem[]> {\n const { user, tx } = context.state\n\n const itemRepo = tx.getRepository(ConstructionChecklistTemplateItem)\n const template = await tx.getRepository(ConstructionChecklistTemplate).findOneBy({ id: constructionChecklistTemplateId })\n\n // 기존 아이템 삭제\n await itemRepo.delete({ constructionChecklistTemplate: { id: constructionChecklistTemplateId } })\n\n // 새로 저장\n let results = []\n for (let i = 0; i < patches.length; i++) {\n const patch = patches[i]\n const result = await itemRepo.save({\n ...patch,\n recommendation1: patch.recommendation1?.trim() || null,\n recommendation2: patch.recommendation2?.trim() || null,\n recommendation3: patch.recommendation3?.trim() || null,\n recommendation4: patch.recommendation4?.trim() || null,\n recommendation5: patch.recommendation5?.trim() || null,\n sequence: i,\n constructionChecklistTemplate: template,\n creator: user,\n updater: user\n })\n results.push(result)\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: '공종 체크리스트 템플릿 아이템 삭제' })\n async deleteConstructionChecklistTemplateItems(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { tx } = context.state\n\n await tx.getRepository(ConstructionChecklistTemplateItem).delete({ id: In(ids) })\n\n return true\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { ProjectChecklist } from './project-checklist';
2
2
  import { ProjectChecklistItemInput } from './project-checklist-type';
3
3
  export declare class ProjectChecklistMutation {
4
- createProjectChecklist(projectId: string, constructionTypeId: string, constructionDetailTypeId: string, name: string, items: ProjectChecklistItemInput[], context: ResolverContext): Promise<ProjectChecklist>;
5
- updateProjectChecklist(id: string, name: string, items: ProjectChecklistItemInput[], context: ResolverContext): Promise<ProjectChecklist>;
4
+ createProjectChecklist(projectId: string, constructionTypeId: string, constructionDetailTypeId: string, name: string, items: ProjectChecklistItemInput[], siteSpecPdfUrl: string, context: ResolverContext): Promise<ProjectChecklist>;
5
+ updateProjectChecklist(id: string, name: string, items: ProjectChecklistItemInput[], siteSpecPdfUrl: string, context: ResolverContext): Promise<ProjectChecklist>;
6
6
  deleteProjectChecklists(ids: string[], context: ResolverContext): Promise<boolean>;
7
7
  }
@@ -7,8 +7,9 @@ const typeorm_1 = require("typeorm");
7
7
  const project_checklist_1 = require("./project-checklist");
8
8
  const project_checklist_type_1 = require("./project-checklist-type");
9
9
  const project_checklist_item_1 = require("../project-checklist-item/project-checklist-item");
10
+ const spec_matching_service_1 = require("./spec-matching-service");
10
11
  let ProjectChecklistMutation = class ProjectChecklistMutation {
11
- async createProjectChecklist(projectId, constructionTypeId, constructionDetailTypeId, name, items, context) {
12
+ async createProjectChecklist(projectId, constructionTypeId, constructionDetailTypeId, name, items, siteSpecPdfUrl, context) {
12
13
  const { domain, user, tx } = context.state;
13
14
  const checklistRepo = tx.getRepository(project_checklist_1.ProjectChecklist);
14
15
  const itemRepo = tx.getRepository(project_checklist_item_1.ProjectChecklistItem);
@@ -21,21 +22,24 @@ let ProjectChecklistMutation = class ProjectChecklistMutation {
21
22
  creator: user,
22
23
  updater: user
23
24
  });
25
+ const savedItems = [];
24
26
  for (let i = 0; i < items.length; i++) {
25
27
  const item = items[i];
26
- await itemRepo.save({
28
+ const saved = await itemRepo.save({
27
29
  projectChecklist: checklist,
28
30
  mainType: item.mainType || null,
29
31
  name: item.name,
30
- inspctionCriteria: item.inspctionCriteria || null,
31
32
  sequence: i,
32
33
  creator: user,
33
34
  updater: user
34
35
  });
36
+ savedItems.push(saved);
35
37
  }
38
+ // 검사항목별 KCS 표준 / 현장 시방서 기준 매칭을 백그라운드(비동기)로 트리거
39
+ (0, spec_matching_service_1.queueUpdateProjectChecklistCriteria)(savedItems.map(v => v.id), siteSpecPdfUrl);
36
40
  return checklist;
37
41
  }
38
- async updateProjectChecklist(id, name, items, context) {
42
+ async updateProjectChecklist(id, name, items, siteSpecPdfUrl, context) {
39
43
  const { user, tx } = context.state;
40
44
  const checklistRepo = tx.getRepository(project_checklist_1.ProjectChecklist);
41
45
  const itemRepo = tx.getRepository(project_checklist_item_1.ProjectChecklistItem);
@@ -46,18 +50,21 @@ let ProjectChecklistMutation = class ProjectChecklistMutation {
46
50
  await checklistRepo.save(checklist);
47
51
  // 기존 아이템 삭제 후 재삽입
48
52
  await itemRepo.delete({ projectChecklist: { id } });
53
+ const savedItems = [];
49
54
  for (let i = 0; i < items.length; i++) {
50
55
  const item = items[i];
51
- await itemRepo.save({
56
+ const saved = await itemRepo.save({
52
57
  projectChecklist: checklist,
53
58
  mainType: item.mainType || null,
54
59
  name: item.name,
55
- inspctionCriteria: item.inspctionCriteria || null,
56
60
  sequence: i,
57
61
  creator: user,
58
62
  updater: user
59
63
  });
64
+ savedItems.push(saved);
60
65
  }
66
+ // 검사항목별 KCS 표준 / 현장 시방서 기준 매칭을 백그라운드(비동기)로 트리거
67
+ (0, spec_matching_service_1.queueUpdateProjectChecklistCriteria)(savedItems.map(v => v.id), siteSpecPdfUrl);
61
68
  return checklist;
62
69
  }
63
70
  async deleteProjectChecklists(ids, context) {
@@ -78,9 +85,10 @@ tslib_1.__decorate([
78
85
  tslib_1.__param(2, (0, type_graphql_1.Arg)('constructionDetailTypeId')),
79
86
  tslib_1.__param(3, (0, type_graphql_1.Arg)('name')),
80
87
  tslib_1.__param(4, (0, type_graphql_1.Arg)('items', type => [project_checklist_type_1.ProjectChecklistItemInput])),
81
- tslib_1.__param(5, (0, type_graphql_1.Ctx)()),
88
+ tslib_1.__param(5, (0, type_graphql_1.Arg)('siteSpecPdfUrl', { nullable: true })),
89
+ tslib_1.__param(6, (0, type_graphql_1.Ctx)()),
82
90
  tslib_1.__metadata("design:type", Function),
83
- tslib_1.__metadata("design:paramtypes", [String, String, String, String, Array, Object]),
91
+ tslib_1.__metadata("design:paramtypes", [String, String, String, String, Array, String, Object]),
84
92
  tslib_1.__metadata("design:returntype", Promise)
85
93
  ], ProjectChecklistMutation.prototype, "createProjectChecklist", null);
86
94
  tslib_1.__decorate([
@@ -89,9 +97,10 @@ tslib_1.__decorate([
89
97
  tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
90
98
  tslib_1.__param(1, (0, type_graphql_1.Arg)('name')),
91
99
  tslib_1.__param(2, (0, type_graphql_1.Arg)('items', type => [project_checklist_type_1.ProjectChecklistItemInput])),
92
- tslib_1.__param(3, (0, type_graphql_1.Ctx)()),
100
+ tslib_1.__param(3, (0, type_graphql_1.Arg)('siteSpecPdfUrl', { nullable: true })),
101
+ tslib_1.__param(4, (0, type_graphql_1.Ctx)()),
93
102
  tslib_1.__metadata("design:type", Function),
94
- tslib_1.__metadata("design:paramtypes", [String, String, Array, Object]),
103
+ tslib_1.__metadata("design:paramtypes", [String, String, Array, String, Object]),
95
104
  tslib_1.__metadata("design:returntype", Promise)
96
105
  ], ProjectChecklistMutation.prototype, "updateProjectChecklist", null);
97
106
  tslib_1.__decorate([