@dssp/supervision 1.0.0-alpha.41 → 1.0.0-alpha.48

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 (34) hide show
  1. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.d.ts +56 -0
  2. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js +789 -0
  3. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js.map +1 -0
  4. package/dist-client/pages/building-inspection/building-inspection-detail-camera.d.ts +8 -6
  5. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js +114 -65
  6. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js.map +1 -1
  7. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.d.ts +3 -0
  8. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js +77 -8
  9. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js.map +1 -1
  10. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js +21 -6
  11. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js.map +1 -1
  12. package/dist-client/pages/checklist-template/checklist-template-item.js +14 -3
  13. package/dist-client/pages/checklist-template/checklist-template-item.js.map +1 -1
  14. package/dist-client/route.d.ts +1 -1
  15. package/dist-client/route.js +3 -0
  16. package/dist-client/route.js.map +1 -1
  17. package/dist-client/tsconfig.tsbuildinfo +1 -1
  18. package/dist-server/service/checklist/checklist-query.d.ts +1 -0
  19. package/dist-server/service/checklist/checklist-query.js +20 -0
  20. package/dist-server/service/checklist/checklist-query.js.map +1 -1
  21. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js +4 -1
  22. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js.map +1 -1
  23. package/dist-server/service/checklist-template-item/checklist-template-item-type.d.ts +2 -0
  24. package/dist-server/service/checklist-template-item/checklist-template-item-type.js +5 -0
  25. package/dist-server/service/checklist-template-item/checklist-template-item-type.js.map +1 -1
  26. package/dist-server/service/checklist-template-item/checklist-template-item.d.ts +6 -0
  27. package/dist-server/service/checklist-template-item/checklist-template-item.js +16 -1
  28. package/dist-server/service/checklist-template-item/checklist-template-item.js.map +1 -1
  29. package/dist-server/service/checklist-template-item/spec-matching-service.d.ts +2 -0
  30. package/dist-server/service/checklist-template-item/spec-matching-service.js +50 -0
  31. package/dist-server/service/checklist-template-item/spec-matching-service.js.map +1 -0
  32. package/dist-server/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +5 -4
  34. package/things-factory.config.js +1 -0
@@ -9,6 +9,7 @@ export declare class ChecklistQuery {
9
9
  checklist(id: string, context: ResolverContext): Promise<Checklist>;
10
10
  checklists(params: ListParam, context: ResolverContext): Promise<ChecklistList>;
11
11
  checklistItems(checklist: Checklist): Promise<ChecklistItem[]>;
12
+ checklistAttachments(checklist: Checklist, description?: string): Promise<Attachment[]>;
12
13
  buildingInspection(checklist: Checklist): Promise<BuildingInspection>;
13
14
  nameListAttachment(checklist: Checklist): Promise<Attachment | null>;
14
15
  taskConstructor(checklist: Checklist): Promise<User>;
@@ -34,6 +34,18 @@ let ChecklistQuery = class ChecklistQuery {
34
34
  .orderBy('ci.sequence', 'ASC')
35
35
  .getMany();
36
36
  }
37
+ async checklistAttachments(checklist, description) {
38
+ return await (0, shell_1.getRepository)(attachment_base_1.Attachment).find({
39
+ where: {
40
+ refType: checklist_1.Checklist.name,
41
+ refBy: checklist.id,
42
+ description: description // 검측 상태로 받으며 어떤 스탭에 올렸는지로 시공자/감리자 구분
43
+ },
44
+ order: {
45
+ createdAt: 'DESC'
46
+ }
47
+ });
48
+ }
37
49
  async buildingInspection(checklist) {
38
50
  return await (0, shell_1.getRepository)(building_inspection_1.BuildingInspection).findOneBy({ checklist: { id: checklist.id } });
39
51
  }
@@ -95,6 +107,14 @@ tslib_1.__decorate([
95
107
  tslib_1.__metadata("design:paramtypes", [checklist_1.Checklist]),
96
108
  tslib_1.__metadata("design:returntype", Promise)
97
109
  ], ChecklistQuery.prototype, "checklistItems", null);
110
+ tslib_1.__decorate([
111
+ (0, type_graphql_1.FieldResolver)(type => [attachment_base_1.Attachment]),
112
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
113
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('description', { nullable: true })),
114
+ tslib_1.__metadata("design:type", Function),
115
+ tslib_1.__metadata("design:paramtypes", [checklist_1.Checklist, String]),
116
+ tslib_1.__metadata("design:returntype", Promise)
117
+ ], ChecklistQuery.prototype, "checklistAttachments", null);
98
118
  tslib_1.__decorate([
99
119
  (0, type_graphql_1.FieldResolver)(type => building_inspection_1.BuildingInspection),
100
120
  tslib_1.__param(0, (0, type_graphql_1.Root)()),
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-query.js","sourceRoot":"","sources":["../../../server/service/checklist/checklist-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx } from 'type-graphql'\nimport { getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Checklist } from './checklist'\nimport { ChecklistList } from './checklist-type'\nimport { ChecklistItem } from '../checklist-item/checklist-item'\nimport { BuildingInspection } from '../building-inspection/building-inspection'\nimport { Attachment } from '@things-factory/attachment-base'\n\n@Resolver(Checklist)\nexport class ChecklistQuery {\n @Query(returns => Checklist!, { nullable: true, description: 'To fetch a Checklist' })\n async checklist(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Checklist> {\n const { domain } = context.state\n\n return await getRepository(Checklist).findOne({\n where: { id }\n })\n }\n\n @Query(returns => ChecklistList, { description: 'To fetch multiple Checklists' })\n async checklists(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ChecklistList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n params,\n repository: await getRepository(Checklist),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => [ChecklistItem])\n async checklistItems(@Root() checklist: Checklist): Promise<ChecklistItem[]> {\n return await getRepository(ChecklistItem)\n .createQueryBuilder('ci')\n .where('ci.checklist_id = :checklistId', { checklistId: checklist.id })\n .orderBy('ci.sequence', 'ASC')\n .getMany()\n }\n\n @FieldResolver(type => BuildingInspection)\n async buildingInspection(@Root() checklist: Checklist): Promise<BuildingInspection> {\n return await getRepository(BuildingInspection).findOneBy({ checklist: { id: checklist.id } })\n }\n\n @FieldResolver(type => Attachment, { nullable: true })\n async nameListAttachment(@Root() checklist: Checklist): Promise<Attachment | null> {\n return await getRepository(Attachment).findOneBy({ refBy: checklist.id, refType: 'Checklist_NameList' })\n }\n\n @FieldResolver(type => User)\n async taskConstructor(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.taskConstructorId) return null\n return await getRepository(User).findOneBy({ id: checklist.taskConstructorId })\n }\n\n @FieldResolver(type => User)\n async overallConstructor(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.overallConstructorId) return null\n return await getRepository(User).findOneBy({ id: checklist.overallConstructorId })\n }\n\n @FieldResolver(type => User)\n async taskSupervisory(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.taskSupervisoryId) return null\n return await getRepository(User).findOneBy({ id: checklist.taskSupervisoryId })\n }\n\n @FieldResolver(type => User)\n async overallSupervisory(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.overallSupervisoryId) return null\n return await getRepository(User).findOneBy({ id: checklist.overallSupervisoryId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.updaterId) return null\n return await getRepository(User).findOneBy({ id: checklist.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.creatorId) return null\n return await getRepository(User).findOneBy({ id: checklist.creatorId })\n }\n}\n"]}
1
+ {"version":3,"file":"checklist-query.js","sourceRoot":"","sources":["../../../server/service/checklist/checklist-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAmF;AACnF,iDAA+F;AAC/F,yDAAgD;AAChD,2CAAuC;AACvC,qDAAgD;AAChD,qEAAgE;AAChE,oFAA+E;AAC/E,qEAA4D;AAGrD,IAAM,cAAc,GAApB,MAAM,cAAc;IAEnB,AAAN,KAAK,CAAC,SAAS,CAAY,EAAU,EAAS,OAAwB;QACpE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,qBAAa,EAAC,qBAAS,CAAC,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,EAAE,EAAE,EAAE;SACd,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,UAAU,CAAS,MAAiB,EAAS,OAAwB;QACzE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,qBAAS,CAAC;YAC1C,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CAAS,SAAoB;QAC/C,OAAO,MAAM,IAAA,qBAAa,EAAC,8BAAa,CAAC;aACtC,kBAAkB,CAAC,IAAI,CAAC;aACxB,KAAK,CAAC,gCAAgC,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;aACtE,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;aAC7B,OAAO,EAAE,CAAA;IACd,CAAC;IAGK,AAAN,KAAK,CAAC,oBAAoB,CAChB,SAAoB,EACY,WAAoB;QAE5D,OAAO,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,IAAI,CAAC;YAC1C,KAAK,EAAE;gBACL,OAAO,EAAE,qBAAS,CAAC,IAAI;gBACvB,KAAK,EAAE,SAAS,CAAC,EAAE;gBACnB,WAAW,EAAE,WAAW,CAAC,qCAAqC;aAC/D;YACD,KAAK,EAAE;gBACL,SAAS,EAAE,MAAM;aAClB;SACF,CAAC,CAAA;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,kBAAkB,CAAS,SAAoB;QACnD,OAAO,MAAM,IAAA,qBAAa,EAAC,wCAAkB,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC/F,CAAC;IAGK,AAAN,KAAK,CAAC,kBAAkB,CAAS,SAAoB;QACnD,OAAO,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAA;IAC1G,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe,CAAS,SAAoB;QAChD,IAAI,CAAC,SAAS,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QAC7C,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACjF,CAAC;IAGK,AAAN,KAAK,CAAC,kBAAkB,CAAS,SAAoB;QACnD,IAAI,CAAC,SAAS,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAA;QAChD,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAA;IACpF,CAAC;IAGK,AAAN,KAAK,CAAC,eAAe,CAAS,SAAoB;QAChD,IAAI,CAAC,SAAS,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QAC7C,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACjF,CAAC;IAGK,AAAN,KAAK,CAAC,kBAAkB,CAAS,SAAoB;QACnD,IAAI,CAAC,SAAS,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAA;QAChD,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAA;IACpF,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,SAAoB;QACxC,IAAI,CAAC,SAAS,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QACrC,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;IACzE,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,SAAoB;QACxC,IAAI,CAAC,SAAS,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QACrC,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA;IACzE,CAAC;CACF,CAAA;AAhGY,wCAAc;AAEnB;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,qBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;IACrE,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;+CAM5C;AAGK;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,8BAAa,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAC/D,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;gDAYzC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,8BAAa,CAAC,CAAC;IACjB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAY,qBAAS;;oDAMhD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,4BAAU,CAAC,CAAC;IAEjC,mBAAA,IAAA,mBAAI,GAAE,CAAA;IACN,mBAAA,IAAA,kBAAG,EAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;;6CADpB,qBAAS;;0DAa7B;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,wCAAkB,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAY,qBAAS;;wDAEpD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,4BAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAY,qBAAS;;wDAEpD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACL,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAY,qBAAS;;qDAGjD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACF,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAY,qBAAS;;wDAGpD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACL,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAY,qBAAS;;qDAGjD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACF,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAY,qBAAS;;wDAGpD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAY,qBAAS;;6CAGzC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAY,qBAAS;;6CAGzC;yBA/FU,cAAc;IAD1B,IAAA,uBAAQ,EAAC,qBAAS,CAAC;GACP,cAAc,CAgG1B","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx } from 'type-graphql'\nimport { getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Checklist } from './checklist'\nimport { ChecklistList } from './checklist-type'\nimport { ChecklistItem } from '../checklist-item/checklist-item'\nimport { BuildingInspection } from '../building-inspection/building-inspection'\nimport { Attachment } from '@things-factory/attachment-base'\n\n@Resolver(Checklist)\nexport class ChecklistQuery {\n @Query(returns => Checklist!, { nullable: true, description: 'To fetch a Checklist' })\n async checklist(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Checklist> {\n const { domain } = context.state\n\n return await getRepository(Checklist).findOne({\n where: { id }\n })\n }\n\n @Query(returns => ChecklistList, { description: 'To fetch multiple Checklists' })\n async checklists(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ChecklistList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n params,\n repository: await getRepository(Checklist),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => [ChecklistItem])\n async checklistItems(@Root() checklist: Checklist): Promise<ChecklistItem[]> {\n return await getRepository(ChecklistItem)\n .createQueryBuilder('ci')\n .where('ci.checklist_id = :checklistId', { checklistId: checklist.id })\n .orderBy('ci.sequence', 'ASC')\n .getMany()\n }\n\n @FieldResolver(type => [Attachment])\n async checklistAttachments(\n @Root() checklist: Checklist,\n @Arg('description', { nullable: true }) description?: string\n ): Promise<Attachment[]> {\n return await getRepository(Attachment).find({\n where: {\n refType: Checklist.name,\n refBy: checklist.id,\n description: description // 검측 상태로 받으며 어떤 스탭에 올렸는지로 시공자/감리자 구분\n },\n order: {\n createdAt: 'DESC'\n }\n })\n }\n\n @FieldResolver(type => BuildingInspection)\n async buildingInspection(@Root() checklist: Checklist): Promise<BuildingInspection> {\n return await getRepository(BuildingInspection).findOneBy({ checklist: { id: checklist.id } })\n }\n\n @FieldResolver(type => Attachment, { nullable: true })\n async nameListAttachment(@Root() checklist: Checklist): Promise<Attachment | null> {\n return await getRepository(Attachment).findOneBy({ refBy: checklist.id, refType: 'Checklist_NameList' })\n }\n\n @FieldResolver(type => User)\n async taskConstructor(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.taskConstructorId) return null\n return await getRepository(User).findOneBy({ id: checklist.taskConstructorId })\n }\n\n @FieldResolver(type => User)\n async overallConstructor(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.overallConstructorId) return null\n return await getRepository(User).findOneBy({ id: checklist.overallConstructorId })\n }\n\n @FieldResolver(type => User)\n async taskSupervisory(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.taskSupervisoryId) return null\n return await getRepository(User).findOneBy({ id: checklist.taskSupervisoryId })\n }\n\n @FieldResolver(type => User)\n async overallSupervisory(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.overallSupervisoryId) return null\n return await getRepository(User).findOneBy({ id: checklist.overallSupervisoryId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.updaterId) return null\n return await getRepository(User).findOneBy({ id: checklist.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() checklist: Checklist): Promise<User> {\n if (!checklist.creatorId) return null\n return await getRepository(User).findOneBy({ id: checklist.creatorId })\n }\n}\n"]}
@@ -7,6 +7,7 @@ const typeorm_1 = require("typeorm");
7
7
  const checklist_template_item_1 = require("./checklist-template-item");
8
8
  const checklist_template_item_type_1 = require("./checklist-template-item-type");
9
9
  const checklist_template_1 = require("../checklist-template/checklist-template");
10
+ const spec_matching_service_1 = require("./spec-matching-service");
10
11
  let ChecklistTemplateItemMutation = class ChecklistTemplateItemMutation {
11
12
  async updateMultipleChecklistTemplateItems(patches, checklistTemplateId, context) {
12
13
  const { domain, user, tx } = context.state;
@@ -15,9 +16,11 @@ let ChecklistTemplateItemMutation = class ChecklistTemplateItemMutation {
15
16
  const checklistTemplate = await tx.getRepository(checklist_template_1.ChecklistTemplate).findOneBy({ id: checklistTemplateId });
16
17
  await checklistTemplateItemRepo.delete({ checklistTemplate: { id: checklistTemplateId } });
17
18
  for (let i = 0; i < patches.length; i++) {
18
- const result = await checklistTemplateItemRepo.save(Object.assign(Object.assign({}, patches[i]), { sequence: i, checklistTemplate, creator: user, updater: user }));
19
+ const result = await checklistTemplateItemRepo.save(Object.assign(Object.assign({}, patches[i]), { sequence: i, checklistTemplate, inspctionCriteria: '', criteriaRequestStatus: checklist_template_item_1.CriteriaRequestStatus.REQUEST, creator: user, updater: user }));
19
20
  results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
20
21
  }
22
+ // 저장 후 inspctionCriteria 비동기 업데이트 트리거 (ChecklistTemplateItem.name -> 외부 API 호출)
23
+ (0, spec_matching_service_1.queueUpdateInspctionCriteria)(results.map(v => v.id));
21
24
  return results;
22
25
  }
23
26
  async deleteChecklistTemplateItem(id, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-template-item-mutation.js","sourceRoot":"","sources":["../../../server/service/checklist-template-item/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 { ChecklistTemplateItem } from './checklist-template-item'\nimport { ChecklistTemplateItemPatch } from './checklist-template-item-type'\nimport { ChecklistTemplate } from '../checklist-template/checklist-template'\n\n@Resolver(ChecklistTemplateItem)\nexport class ChecklistTemplateItemMutation {\n @Directive('@transaction')\n @Mutation(returns => [ChecklistTemplateItem], { description: \"To modify multiple ChecklistTemplateItems' information\" })\n async updateMultipleChecklistTemplateItems(\n @Arg('patches', type => [ChecklistTemplateItemPatch]) patches: ChecklistTemplateItemPatch[],\n @Arg('checklistTemplateId') checklistTemplateId: string,\n @Ctx() context: ResolverContext\n ): Promise<ChecklistTemplateItem[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n\n const checklistTemplateItemRepo = tx.getRepository(ChecklistTemplateItem)\n const checklistTemplate = await tx.getRepository(ChecklistTemplate).findOneBy({ id: checklistTemplateId })\n\n await checklistTemplateItemRepo.delete({ checklistTemplate: { id: checklistTemplateId } })\n\n for (let i = 0; i < patches.length; i++) {\n const result = await checklistTemplateItemRepo.save({\n ...patches[i],\n sequence: i,\n checklistTemplate,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ChecklistTemplateItem' })\n async deleteChecklistTemplateItem(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ChecklistTemplateItem).delete({ id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple ChecklistTemplateItems' })\n async deleteChecklistTemplateItems(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ChecklistTemplateItem).delete({\n id: In(ids)\n })\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"checklist-template-item-mutation.js","sourceRoot":"","sources":["../../../server/service/checklist-template-item/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 { ChecklistTemplateItem, CriteriaRequestStatus } from './checklist-template-item'\nimport { ChecklistTemplateItemPatch } from './checklist-template-item-type'\nimport { ChecklistTemplate } from '../checklist-template/checklist-template'\nimport { queueUpdateInspctionCriteria } from './spec-matching-service'\n\n@Resolver(ChecklistTemplateItem)\nexport class ChecklistTemplateItemMutation {\n @Directive('@transaction')\n @Mutation(returns => [ChecklistTemplateItem], { description: \"To modify multiple ChecklistTemplateItems' information\" })\n async updateMultipleChecklistTemplateItems(\n @Arg('patches', type => [ChecklistTemplateItemPatch]) patches: ChecklistTemplateItemPatch[],\n @Arg('checklistTemplateId') checklistTemplateId: string,\n @Ctx() context: ResolverContext\n ): Promise<ChecklistTemplateItem[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n\n const checklistTemplateItemRepo = tx.getRepository(ChecklistTemplateItem)\n const checklistTemplate = await tx.getRepository(ChecklistTemplate).findOneBy({ id: checklistTemplateId })\n\n await checklistTemplateItemRepo.delete({ checklistTemplate: { id: checklistTemplateId } })\n\n for (let i = 0; i < patches.length; i++) {\n const result = await checklistTemplateItemRepo.save({\n ...patches[i],\n sequence: i,\n checklistTemplate,\n inspctionCriteria: '',\n criteriaRequestStatus: CriteriaRequestStatus.REQUEST,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n\n // 저장 후 inspctionCriteria 비동기 업데이트 트리거 (ChecklistTemplateItem.name -> 외부 API 호출)\n queueUpdateInspctionCriteria(results.map(v => v.id))\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ChecklistTemplateItem' })\n async deleteChecklistTemplateItem(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ChecklistTemplateItem).delete({ id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple ChecklistTemplateItems' })\n async deleteChecklistTemplateItems(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ChecklistTemplateItem).delete({\n id: In(ids)\n })\n\n return true\n }\n}\n"]}
@@ -1,9 +1,11 @@
1
1
  import { ChecklistTemplateItem } from './checklist-template-item';
2
2
  import { ChecklistTypeMainType } from '../checklist-type/checklist-type';
3
+ import { CriteriaRequestStatus } from './checklist-template-item';
3
4
  export declare class ChecklistTemplateItemPatch {
4
5
  id?: string;
5
6
  name?: string;
6
7
  inspctionCriteria?: string;
8
+ criteriaRequestStatus?: CriteriaRequestStatus;
7
9
  sequence?: number;
8
10
  mainType?: ChecklistTypeMainType;
9
11
  detailType?: string;
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const type_graphql_1 = require("type-graphql");
6
6
  const checklist_template_item_1 = require("./checklist-template-item");
7
7
  const checklist_type_1 = require("../checklist-type/checklist-type");
8
+ const checklist_template_item_2 = require("./checklist-template-item");
8
9
  let ChecklistTemplateItemPatch = class ChecklistTemplateItemPatch {
9
10
  };
10
11
  exports.ChecklistTemplateItemPatch = ChecklistTemplateItemPatch;
@@ -20,6 +21,10 @@ tslib_1.__decorate([
20
21
  (0, type_graphql_1.Field)({ nullable: true }),
21
22
  tslib_1.__metadata("design:type", String)
22
23
  ], ChecklistTemplateItemPatch.prototype, "inspctionCriteria", void 0);
24
+ tslib_1.__decorate([
25
+ (0, type_graphql_1.Field)(type => checklist_template_item_2.CriteriaRequestStatus, { nullable: true }),
26
+ tslib_1.__metadata("design:type", String)
27
+ ], ChecklistTemplateItemPatch.prototype, "criteriaRequestStatus", void 0);
23
28
  tslib_1.__decorate([
24
29
  (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true }),
25
30
  tslib_1.__metadata("design:type", Number)
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-template-item-type.js","sourceRoot":"","sources":["../../../server/service/checklist-template-item/checklist-template-item-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,uEAAiE;AACjE,qEAAwE;AAGjE,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;CAwBtC,CAAA;AAxBY,gEAA0B;AAErC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDAC3B;AAGX;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qEACA;AAG1B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACtB;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACM;AAGhC;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8DACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uEACE;AAG5B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACX;qCAvBJ,0BAA0B;IADtC,IAAA,wBAAS,GAAE;GACC,0BAA0B,CAwBtC;AAGM,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAMrC,CAAA;AANY,8DAAyB;AAEpC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,+CAAqB,CAAC,CAAC;;wDACT;AAG9B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;wDACN;oCALF,yBAAyB;IADrC,IAAA,yBAAU,GAAE;GACA,yBAAyB,CAMrC","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { ChecklistTemplateItem } from './checklist-template-item'\nimport { ChecklistTypeMainType } from '../checklist-type/checklist-type'\n\n@InputType()\nexport class ChecklistTemplateItemPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n @Field({ nullable: true })\n mainType?: ChecklistTypeMainType\n\n @Field({ nullable: true })\n detailType?: string\n\n @Field({ nullable: true })\n checklistTemplateId?: string\n\n @Field({ nullable: true })\n cuFlag?: string\n}\n\n@ObjectType()\nexport class ChecklistTemplateItemList {\n @Field(type => [ChecklistTemplateItem])\n items: ChecklistTemplateItem[]\n\n @Field(type => Int)\n total: number\n}\n"]}
1
+ {"version":3,"file":"checklist-template-item-type.js","sourceRoot":"","sources":["../../../server/service/checklist-template-item/checklist-template-item-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,uEAAiE;AACjE,qEAAwE;AACxE,uEAAiE;AAG1D,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;CA2BtC,CAAA;AA3BY,gEAA0B;AAErC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDAC3B;AAGX;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qEACA;AAG1B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,+CAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yEACZ;AAG7C;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACtB;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACM;AAGhC;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8DACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uEACE;AAG5B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACX;qCA1BJ,0BAA0B;IADtC,IAAA,wBAAS,GAAE;GACC,0BAA0B,CA2BtC;AAGM,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAMrC,CAAA;AANY,8DAAyB;AAEpC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,+CAAqB,CAAC,CAAC;;wDACT;AAG9B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;wDACN;oCALF,yBAAyB;IADrC,IAAA,yBAAU,GAAE;GACA,yBAAyB,CAMrC","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { ChecklistTemplateItem } from './checklist-template-item'\nimport { ChecklistTypeMainType } from '../checklist-type/checklist-type'\nimport { CriteriaRequestStatus } from './checklist-template-item'\n\n@InputType()\nexport class ChecklistTemplateItemPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Field(type => CriteriaRequestStatus, { nullable: true })\n criteriaRequestStatus?: CriteriaRequestStatus\n\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n @Field({ nullable: true })\n mainType?: ChecklistTypeMainType\n\n @Field({ nullable: true })\n detailType?: string\n\n @Field({ nullable: true })\n checklistTemplateId?: string\n\n @Field({ nullable: true })\n cuFlag?: string\n}\n\n@ObjectType()\nexport class ChecklistTemplateItemList {\n @Field(type => [ChecklistTemplateItem])\n items: ChecklistTemplateItem[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -1,10 +1,16 @@
1
1
  import { User } from '@things-factory/auth-base';
2
2
  import { ChecklistTemplate } from '../checklist-template/checklist-template';
3
3
  import { ChecklistTypeMainType } from '../checklist-type/checklist-type';
4
+ export declare enum CriteriaRequestStatus {
5
+ REQUEST = "10",
6
+ SUCCESS = "20",
7
+ FAIL = "30"
8
+ }
4
9
  export declare class ChecklistTemplateItem {
5
10
  readonly id: string;
6
11
  name: string;
7
12
  inspctionCriteria?: string;
13
+ criteriaRequestStatus?: CriteriaRequestStatus;
8
14
  sequence?: number;
9
15
  mainType: ChecklistTypeMainType;
10
16
  detailType: string;
@@ -1,12 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChecklistTemplateItem = void 0;
3
+ exports.ChecklistTemplateItem = exports.CriteriaRequestStatus = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const typeorm_1 = require("typeorm");
6
6
  const type_graphql_1 = require("type-graphql");
7
7
  const auth_base_1 = require("@things-factory/auth-base");
8
8
  const checklist_template_1 = require("../checklist-template/checklist-template");
9
9
  const checklist_type_1 = require("../checklist-type/checklist-type");
10
+ var CriteriaRequestStatus;
11
+ (function (CriteriaRequestStatus) {
12
+ CriteriaRequestStatus["REQUEST"] = "10";
13
+ CriteriaRequestStatus["SUCCESS"] = "20";
14
+ CriteriaRequestStatus["FAIL"] = "30";
15
+ })(CriteriaRequestStatus || (exports.CriteriaRequestStatus = CriteriaRequestStatus = {}));
16
+ (0, type_graphql_1.registerEnumType)(CriteriaRequestStatus, {
17
+ name: 'CriteriaRequestStatus',
18
+ description: '검사 기준 API 요청 상태'
19
+ });
10
20
  let ChecklistTemplateItem = class ChecklistTemplateItem {
11
21
  };
12
22
  exports.ChecklistTemplateItem = ChecklistTemplateItem;
@@ -25,6 +35,11 @@ tslib_1.__decorate([
25
35
  (0, type_graphql_1.Field)({ nullable: true }),
26
36
  tslib_1.__metadata("design:type", String)
27
37
  ], ChecklistTemplateItem.prototype, "inspctionCriteria", void 0);
38
+ tslib_1.__decorate([
39
+ (0, typeorm_1.Column)({ nullable: true, comment: '검사 기준 API 요청 상태 (10: API 요청, 20: 성공, 30: 실패)' }),
40
+ (0, type_graphql_1.Field)(type => CriteriaRequestStatus, { nullable: true }),
41
+ tslib_1.__metadata("design:type", String)
42
+ ], ChecklistTemplateItem.prototype, "criteriaRequestStatus", void 0);
28
43
  tslib_1.__decorate([
29
44
  (0, typeorm_1.Column)({ nullable: true, comment: '시퀀스' }),
30
45
  (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"checklist-template-item.js","sourceRoot":"","sources":["../../../server/service/checklist-template-item/checklist-template-item.ts"],"names":[],"mappings":";;;;AAAA,qCAAkI;AAClI,+CAAyD;AAEzD,yDAAgD;AAChD,iFAA4E;AAC5E,qEAAwE;AAUjE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAsDjC,CAAA;AAtDY,sDAAqB;AAGvB;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;iDACC;AAInB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC7C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;mDACf;AAIZ;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC5C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gEACA;AAI1B;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC1C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACtB;AAIjB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IACtE,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;uDACI;AAI/B;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;IACtD,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;yDACT;AAKlB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,sCAAiB,CAAC;IACpC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,sCAAiB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjC,sCAAiB;gEAAA;AAGrC;IADC,IAAA,oBAAU,EAAC,CAAC,qBAA4C,EAAE,EAAE,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;;kEAC1E;AAI5B;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;wDAAA;AAIhB;IAFC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;wDAAA;AAIhB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;sDAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,qBAA4C,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC;;wDAC1E;AAIlB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAC9B,gBAAI;sDAAA;AAGd;IADC,IAAA,oBAAU,EAAC,CAAC,qBAA4C,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC;;wDAC1E;gCArDP,qBAAqB;IARjC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACpC,IAAA,eAAK,EACJ,8BAA8B,EAC9B,CAAC,GAA0B,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,EAC/F,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB;IACA,IAAA,eAAK,EAAC,8BAA8B,EAAE,CAAC,GAA0B,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvF,IAAA,yBAAU,GAAE;GACA,qBAAqB,CAsDjC","sourcesContent":["import { CreateDateColumn, UpdateDateColumn, Entity, Index, Column, RelationId, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'\nimport { ObjectType, Field, ID, Int } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { ChecklistTemplate } from '../checklist-template/checklist-template'\nimport { ChecklistTypeMainType } from '../checklist-type/checklist-type'\n\n@Entity({ comment: '체크리스트 템플릿 아이템' })\n@Index(\n 'ix_checklist_template_item_0',\n (cti: ChecklistTemplateItem) => [cti.checklistTemplate, cti.mainType, cti.detailType, cti.name],\n { unique: true }\n)\n@Index('ix_checklist_template_item_1', (cti: ChecklistTemplateItem) => [cti.detailType])\n@ObjectType()\nexport class ChecklistTemplateItem {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: false, comment: '검사 항목' })\n @Field({ nullable: false })\n name: string\n\n @Column({ nullable: true, comment: '검사 기준' })\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Column({ nullable: true, comment: '시퀀스' })\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n @Column({ nullable: false, comment: '메인 구분 (10: 기본 업무, 20: 기본 외 업무)' })\n @Field({ nullable: false })\n mainType: ChecklistTypeMainType\n\n @Column({ nullable: false, comment: '상세 구분 ID (F.K)' })\n @Field({ nullable: false })\n detailType: string\n\n // 체크리스트 템플릿 정보 (상위 테이블 참조)\n @ManyToOne(type => ChecklistTemplate)\n @Field(type => ChecklistTemplate, { nullable: true })\n checklistTemplate?: ChecklistTemplate\n\n @RelationId((checklistTemplateItem: ChecklistTemplateItem) => checklistTemplateItem.checklistTemplate)\n checklistTemplateId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((checklistTemplateItem: ChecklistTemplateItem) => checklistTemplateItem.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((checklistTemplateItem: ChecklistTemplateItem) => checklistTemplateItem.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"checklist-template-item.js","sourceRoot":"","sources":["../../../server/service/checklist-template-item/checklist-template-item.ts"],"names":[],"mappings":"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","sourcesContent":["import { CreateDateColumn, UpdateDateColumn, Entity, Index, Column, RelationId, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'\nimport { ObjectType, Field, ID, Int, registerEnumType } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { ChecklistTemplate } from '../checklist-template/checklist-template'\nimport { ChecklistTypeMainType } from '../checklist-type/checklist-type'\n\nexport enum CriteriaRequestStatus {\n REQUEST = '10',\n SUCCESS = '20',\n FAIL = '30'\n}\n\nregisterEnumType(CriteriaRequestStatus, {\n name: 'CriteriaRequestStatus',\n description: '검사 기준 API 요청 상태'\n})\n\n@Entity({ comment: '체크리스트 템플릿 아이템' })\n@Index(\n 'ix_checklist_template_item_0',\n (cti: ChecklistTemplateItem) => [cti.checklistTemplate, cti.mainType, cti.detailType, cti.name],\n { unique: true }\n)\n@Index('ix_checklist_template_item_1', (cti: ChecklistTemplateItem) => [cti.detailType])\n@ObjectType()\nexport class ChecklistTemplateItem {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column({ nullable: false, comment: '검사 항목' })\n @Field({ nullable: false })\n name: string\n\n @Column({ nullable: true, comment: '검사 기준' })\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Column({ nullable: true, comment: '검사 기준 API 요청 상태 (10: API 요청, 20: 성공, 30: 실패)' })\n @Field(type => CriteriaRequestStatus, { nullable: true })\n criteriaRequestStatus?: CriteriaRequestStatus\n\n @Column({ nullable: true, comment: '시퀀스' })\n @Field(type => Int, { nullable: true })\n sequence?: number\n\n @Column({ nullable: false, comment: '메인 구분 (10: 기본 업무, 20: 기본 외 업무)' })\n @Field({ nullable: false })\n mainType: ChecklistTypeMainType\n\n @Column({ nullable: false, comment: '상세 구분 ID (F.K)' })\n @Field({ nullable: false })\n detailType: string\n\n // 체크리스트 템플릿 정보 (상위 테이블 참조)\n @ManyToOne(type => ChecklistTemplate)\n @Field(type => ChecklistTemplate, { nullable: true })\n checklistTemplate?: ChecklistTemplate\n\n @RelationId((checklistTemplateItem: ChecklistTemplateItem) => checklistTemplateItem.checklistTemplate)\n checklistTemplateId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((checklistTemplateItem: ChecklistTemplateItem) => checklistTemplateItem.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((checklistTemplateItem: ChecklistTemplateItem) => checklistTemplateItem.updater)\n updaterId?: string\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function updateInspctionCriteriaForChecklistTemplateItems(ids: string[]): Promise<void>;
2
+ export declare function queueUpdateInspctionCriteria(ids: string[]): void;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateInspctionCriteriaForChecklistTemplateItems = updateInspctionCriteriaForChecklistTemplateItems;
4
+ exports.queueUpdateInspctionCriteria = queueUpdateInspctionCriteria;
5
+ const shell_1 = require("@things-factory/shell");
6
+ const checklist_template_item_1 = require("./checklist-template-item");
7
+ const SPEC_MATCHING_API_BASE_URL = 'https://hatiolab-korea-uni.ettisoft.com';
8
+ const API_USERNAME = 'admin';
9
+ const API_PASSWORD = 'admin1234';
10
+ async function updateInspctionCriteriaForChecklistTemplateItems(ids) {
11
+ var _a, _b;
12
+ const repository = (0, shell_1.getRepository)(checklist_template_item_1.ChecklistTemplateItem);
13
+ const url = `${SPEC_MATCHING_API_BASE_URL}/api/run/spec-matching`;
14
+ const headers = {};
15
+ headers['Authorization'] = `Basic ${Buffer.from(`${API_USERNAME}:${API_PASSWORD}`).toString('base64')}`;
16
+ for (const id of ids) {
17
+ try {
18
+ const item = await repository.findOneBy({ id });
19
+ const form = new FormData();
20
+ form.append('input', JSON.stringify({ item: item.name }));
21
+ const response = await fetch(url, {
22
+ method: 'POST',
23
+ headers,
24
+ body: form
25
+ });
26
+ const data = ((_a = (await (response === null || response === void 0 ? void 0 : response.json()))) === null || _a === void 0 ? void 0 : _a.result) || {};
27
+ console.log('data :', data);
28
+ if ((data === null || data === void 0 ? void 0 : data.status) === 'success') {
29
+ const criteria = ((_b = data.result) === null || _b === void 0 ? void 0 : _b['검사기준']) || '';
30
+ await repository.update({ id }, { inspctionCriteria: criteria, criteriaRequestStatus: checklist_template_item_1.CriteriaRequestStatus.SUCCESS });
31
+ }
32
+ else {
33
+ await repository.update({ id }, { criteriaRequestStatus: checklist_template_item_1.CriteriaRequestStatus.FAIL });
34
+ }
35
+ }
36
+ catch (error) {
37
+ await repository.update({ id }, { criteriaRequestStatus: checklist_template_item_1.CriteriaRequestStatus.FAIL });
38
+ }
39
+ }
40
+ }
41
+ function queueUpdateInspctionCriteria(ids) {
42
+ if (!ids || ids.length === 0)
43
+ return;
44
+ setTimeout(() => {
45
+ updateInspctionCriteriaForChecklistTemplateItems(ids).catch(err => {
46
+ console.error('Background spec-matching update failed:', err);
47
+ });
48
+ }, 0);
49
+ }
50
+ //# sourceMappingURL=spec-matching-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-matching-service.js","sourceRoot":"","sources":["../../../server/service/checklist-template-item/spec-matching-service.ts"],"names":[],"mappings":";;AAOA,4GAgCC;AAED,oEAQC;AAjDD,iDAAqD;AACrD,uEAAwF;AAExF,MAAM,0BAA0B,GAAW,yCAAyC,CAAA;AACpF,MAAM,YAAY,GAAW,OAAO,CAAA;AACpC,MAAM,YAAY,GAAW,WAAW,CAAA;AAEjC,KAAK,UAAU,gDAAgD,CAAC,GAAa;;IAClF,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,+CAAqB,CAAC,CAAA;IAEvD,MAAM,GAAG,GAAG,GAAG,0BAA0B,wBAAwB,CAAA;IACjE,MAAM,OAAO,GAAQ,EAAE,CAAA;IACvB,OAAO,CAAC,eAAe,CAAC,GAAG,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,IAAI,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;IAEvG,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YAC/C,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;YAC3B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACzD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;YAEF,MAAM,IAAI,GAAG,CAAA,MAAA,CAAC,MAAM,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE,CAAA,CAAC,0CAAE,MAAM,KAAI,EAAE,CAAA;YAEnD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAE3B,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,MAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAG,MAAM,CAAC,KAAI,EAAE,CAAA;gBAC5C,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,+CAAqB,CAAC,OAAO,EAAE,CAAC,CAAA;YACxH,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,+CAAqB,CAAC,IAAI,EAAE,CAAC,CAAA;YACxF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,qBAAqB,EAAE,+CAAqB,CAAC,IAAI,EAAE,CAAC,CAAA;QACxF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,4BAA4B,CAAC,GAAa;IACxD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAEpC,UAAU,CAAC,GAAG,EAAE;QACd,gDAAgD,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAChE,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,CAAC,CAAA;AACP,CAAC","sourcesContent":["import { getRepository } from '@things-factory/shell'\nimport { ChecklistTemplateItem, CriteriaRequestStatus } from './checklist-template-item'\n\nconst SPEC_MATCHING_API_BASE_URL: string = 'https://hatiolab-korea-uni.ettisoft.com'\nconst API_USERNAME: string = 'admin'\nconst API_PASSWORD: string = 'admin1234'\n\nexport async function updateInspctionCriteriaForChecklistTemplateItems(ids: string[]): Promise<void> {\n const repository = getRepository(ChecklistTemplateItem)\n\n const url = `${SPEC_MATCHING_API_BASE_URL}/api/run/spec-matching`\n const headers: any = {}\n headers['Authorization'] = `Basic ${Buffer.from(`${API_USERNAME}:${API_PASSWORD}`).toString('base64')}`\n\n for (const id of ids) {\n try {\n const item = await repository.findOneBy({ id })\n const form = new FormData()\n form.append('input', JSON.stringify({ item: item.name }))\n const response = await fetch(url, {\n method: 'POST',\n headers,\n body: form\n })\n\n const data = (await response?.json())?.result || {}\n\n console.log('data :', data)\n\n if (data?.status === 'success') {\n const criteria = data.result?.['검사기준'] || ''\n await repository.update({ id }, { inspctionCriteria: criteria, criteriaRequestStatus: CriteriaRequestStatus.SUCCESS })\n } else {\n await repository.update({ id }, { criteriaRequestStatus: CriteriaRequestStatus.FAIL })\n }\n } catch (error) {\n await repository.update({ id }, { criteriaRequestStatus: CriteriaRequestStatus.FAIL })\n }\n }\n}\n\nexport function queueUpdateInspctionCriteria(ids: string[]): void {\n if (!ids || ids.length === 0) return\n\n setTimeout(() => {\n updateInspctionCriteriaForChecklistTemplateItems(ids).catch(err => {\n console.error('Background spec-matching update failed:', err)\n })\n }, 0)\n}\n"]}