@dssp/supervision 1.0.0-alpha.9 → 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 (360) hide show
  1. package/dist-client/graphql/building-inspection.d.ts +1 -0
  2. package/dist-client/graphql/building-inspection.js +102 -0
  3. package/dist-client/graphql/building-inspection.js.map +1 -0
  4. package/dist-client/pages/action-plan/action-plan-list-page.d.ts +1 -2
  5. package/dist-client/pages/action-plan/action-plan-list-page.js +1 -2
  6. package/dist-client/pages/action-plan/action-plan-list-page.js.map +1 -1
  7. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.d.ts +22 -0
  8. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js +171 -0
  9. package/dist-client/pages/building-inspection/building-inspection-detail-ai-defect.js.map +1 -0
  10. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.d.ts +59 -0
  11. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js +868 -0
  12. package/dist-client/pages/building-inspection/building-inspection-detail-ai-measurement.js.map +1 -0
  13. package/dist-client/pages/building-inspection/building-inspection-detail-camera.d.ts +8 -6
  14. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js +116 -65
  15. package/dist-client/pages/building-inspection/building-inspection-detail-camera.js.map +1 -1
  16. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.d.ts +11 -0
  17. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js +147 -72
  18. package/dist-client/pages/building-inspection/building-inspection-detail-checklist.js.map +1 -1
  19. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.d.ts +1 -0
  20. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js +78 -14
  21. package/dist-client/pages/building-inspection/building-inspection-detail-drawing.js.map +1 -1
  22. package/dist-client/pages/building-inspection/building-inspection-list.d.ts +26 -2
  23. package/dist-client/pages/building-inspection/building-inspection-list.js +375 -34
  24. package/dist-client/pages/building-inspection/building-inspection-list.js.map +1 -1
  25. package/dist-client/pages/building-inspection/building-inspection-management.d.ts +81 -0
  26. package/dist-client/pages/building-inspection/building-inspection-management.js +1512 -0
  27. package/dist-client/pages/building-inspection/building-inspection-management.js.map +1 -0
  28. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.d.ts +3 -0
  29. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js +112 -20
  30. package/dist-client/pages/building-inspection/component/building-inspection-detail-header.js.map +1 -1
  31. package/dist-client/pages/building-inspection/component/daily-worklog-popup.d.ts +27 -0
  32. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js +542 -0
  33. package/dist-client/pages/building-inspection/component/daily-worklog-popup.js.map +1 -0
  34. package/dist-client/pages/building-inspection/component/field-document/field-document-constants.d.ts +18 -0
  35. package/dist-client/pages/building-inspection/component/field-document/field-document-constants.js +630 -0
  36. package/dist-client/pages/building-inspection/component/field-document/field-document-constants.js.map +1 -0
  37. package/dist-client/pages/building-inspection/component/field-document/field-document-detail-popup.d.ts +10 -0
  38. package/dist-client/pages/building-inspection/component/field-document/field-document-detail-popup.js +219 -0
  39. package/dist-client/pages/building-inspection/component/field-document/field-document-detail-popup.js.map +1 -0
  40. package/dist-client/pages/building-inspection/component/field-document/field-document-list-panel.d.ts +25 -0
  41. package/dist-client/pages/building-inspection/component/field-document/field-document-list-panel.js +545 -0
  42. package/dist-client/pages/building-inspection/component/field-document/field-document-list-panel.js.map +1 -0
  43. package/dist-client/pages/building-inspection/component/field-document/field-document-popup.d.ts +39 -0
  44. package/dist-client/pages/building-inspection/component/field-document/field-document-popup.js +675 -0
  45. package/dist-client/pages/building-inspection/component/field-document/field-document-popup.js.map +1 -0
  46. package/dist-client/pages/building-inspection/component/image-preview-popup.d.ts +15 -0
  47. package/dist-client/pages/building-inspection/component/image-preview-popup.js +348 -0
  48. package/dist-client/pages/building-inspection/component/image-preview-popup.js.map +1 -0
  49. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.d.ts +25 -0
  50. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js +491 -0
  51. package/dist-client/pages/building-inspection/component/inspection-document/inspection-request-document.js.map +1 -0
  52. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.d.ts +31 -0
  53. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js +485 -0
  54. package/dist-client/pages/building-inspection/component/inspection-document/inspection-result-notification.js.map +1 -0
  55. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.d.ts +27 -0
  56. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js +416 -0
  57. package/dist-client/pages/building-inspection/component/inspection-document/photo-album-popup.js.map +1 -0
  58. package/dist-client/pages/building-inspection/component/inspection-event-provider.d.ts +4 -2
  59. package/dist-client/pages/building-inspection/component/inspection-event-provider.js +156 -37
  60. package/dist-client/pages/building-inspection/component/inspection-event-provider.js.map +1 -1
  61. package/dist-client/pages/building-inspection/inspection-create-popup.js +23 -12
  62. package/dist-client/pages/building-inspection/inspection-create-popup.js.map +1 -1
  63. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.d.ts +3 -0
  64. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.js +817 -0
  65. package/dist-client/pages/building-inspection/inspection-with-checklist-create-popup.js.map +1 -0
  66. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.d.ts +16 -2
  67. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js +250 -45
  68. package/dist-client/pages/building-inspection-grid/building-inspection-grid-detail.js.map +1 -1
  69. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js +10 -6
  70. package/dist-client/pages/building-inspection-grid/component/grid-inspection-create-popup.js.map +1 -1
  71. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.d.ts +19 -0
  72. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js +205 -0
  73. package/dist-client/pages/building-inspection-grid/component/grid-inspection-list-layer.js.map +1 -0
  74. package/dist-client/pages/checklist/attachment-list-popup.d.ts +1 -0
  75. package/dist-client/pages/checklist/attachment-list-popup.js +251 -69
  76. package/dist-client/pages/checklist/attachment-list-popup.js.map +1 -1
  77. package/dist-client/pages/checklist/checklist-view.d.ts +5 -4
  78. package/dist-client/pages/checklist/checklist-view.js +305 -37
  79. package/dist-client/pages/checklist/checklist-view.js.map +1 -1
  80. package/dist-client/pages/checklist/comment-list-popup.js +15 -5
  81. package/dist-client/pages/checklist/comment-list-popup.js.map +1 -1
  82. package/dist-client/pages/checklist/file-preview-popup.js +0 -1
  83. package/dist-client/pages/checklist/file-preview-popup.js.map +1 -1
  84. package/dist-client/pages/checklist/inspection-info-popup.d.ts +49 -0
  85. package/dist-client/pages/checklist/inspection-info-popup.js +683 -0
  86. package/dist-client/pages/checklist/inspection-info-popup.js.map +1 -0
  87. package/dist-client/pages/checklist/inspection-tab-popup.d.ts +18 -0
  88. package/dist-client/pages/checklist/inspection-tab-popup.js +196 -0
  89. package/dist-client/pages/checklist/inspection-tab-popup.js.map +1 -0
  90. package/dist-client/pages/checklist-database/checklist-database.d.ts +35 -0
  91. package/dist-client/pages/checklist-database/checklist-database.js +540 -0
  92. package/dist-client/pages/checklist-database/checklist-database.js.map +1 -0
  93. package/dist-client/pages/checklist-template/checklist-template-item.js +39 -3
  94. package/dist-client/pages/checklist-template/checklist-template-item.js.map +1 -1
  95. package/dist-client/pages/checklist-template/checklist-template-list.js +3 -2
  96. package/dist-client/pages/checklist-template/checklist-template-list.js.map +1 -1
  97. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.d.ts +2 -0
  98. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.js +223 -0
  99. package/dist-client/pages/checklist-template/construction-checklist-template-item-popup.js.map +1 -0
  100. package/dist-client/pages/checklist-template/construction-checklist-template-list.d.ts +55 -0
  101. package/dist-client/pages/checklist-template/construction-checklist-template-list.js +404 -0
  102. package/dist-client/pages/checklist-template/construction-checklist-template-list.js.map +1 -0
  103. package/dist-client/pages/issue/issue-list-page.d.ts +1 -2
  104. package/dist-client/pages/issue/issue-list-page.js +1 -2
  105. package/dist-client/pages/issue/issue-list-page.js.map +1 -1
  106. package/dist-client/pages/project-checklist/project-checklist-management.d.ts +58 -0
  107. package/dist-client/pages/project-checklist/project-checklist-management.js +1076 -0
  108. package/dist-client/pages/project-checklist/project-checklist-management.js.map +1 -0
  109. package/dist-client/pages/project-report/project-report-list-page.d.ts +1 -2
  110. package/dist-client/pages/project-report/project-report-list-page.js +1 -2
  111. package/dist-client/pages/project-report/project-report-list-page.js.map +1 -1
  112. package/dist-client/pages/supervisor/supervisor-list-page.d.ts +1 -2
  113. package/dist-client/pages/supervisor/supervisor-list-page.js +1 -2
  114. package/dist-client/pages/supervisor/supervisor-list-page.js.map +1 -1
  115. package/dist-client/route.d.ts +1 -1
  116. package/dist-client/route.js +18 -0
  117. package/dist-client/route.js.map +1 -1
  118. package/dist-client/stt/speech-to-text.d.ts +13 -8
  119. package/dist-client/stt/speech-to-text.js +282 -40
  120. package/dist-client/stt/speech-to-text.js.map +1 -1
  121. package/dist-client/tsconfig.tsbuildinfo +1 -1
  122. package/dist-server/service/action-plan/action-plan-mutation.js +5 -6
  123. package/dist-server/service/action-plan/action-plan-mutation.js.map +1 -1
  124. package/dist-server/service/action-plan/action-plan-query.d.ts +2 -2
  125. package/dist-server/service/action-plan/action-plan-query.js +5 -11
  126. package/dist-server/service/action-plan/action-plan-query.js.map +1 -1
  127. package/dist-server/service/building-inspection/building-inspection-mutation.d.ts +2 -3
  128. package/dist-server/service/building-inspection/building-inspection-mutation.js +102 -34
  129. package/dist-server/service/building-inspection/building-inspection-mutation.js.map +1 -1
  130. package/dist-server/service/building-inspection/building-inspection-query.d.ts +9 -7
  131. package/dist-server/service/building-inspection/building-inspection-query.js +168 -52
  132. package/dist-server/service/building-inspection/building-inspection-query.js.map +1 -1
  133. package/dist-server/service/building-inspection/building-inspection-type.d.ts +32 -11
  134. package/dist-server/service/building-inspection/building-inspection-type.js +111 -23
  135. package/dist-server/service/building-inspection/building-inspection-type.js.map +1 -1
  136. package/dist-server/service/building-inspection/building-inspection.d.ts +5 -0
  137. package/dist-server/service/building-inspection/building-inspection.js +37 -4
  138. package/dist-server/service/building-inspection/building-inspection.js.map +1 -1
  139. package/dist-server/service/building-inspection/index.d.ts +3 -4
  140. package/dist-server/service/building-inspection/index.js +10 -3
  141. package/dist-server/service/building-inspection/index.js.map +1 -1
  142. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.d.ts +6 -0
  143. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js +66 -0
  144. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-mutation.js.map +1 -0
  145. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.d.ts +16 -0
  146. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js +171 -0
  147. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-query.js.map +1 -0
  148. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.d.ts +23 -0
  149. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js +90 -0
  150. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog-type.js.map +1 -0
  151. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.d.ts +33 -0
  152. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js +132 -0
  153. package/dist-server/service/building-inspection-daily-worklog/building-inspection-daily-worklog.js.map +1 -0
  154. package/dist-server/service/building-inspection-daily-worklog/index.d.ts +5 -0
  155. package/dist-server/service/building-inspection-daily-worklog/index.js +9 -0
  156. package/dist-server/service/building-inspection-daily-worklog/index.js.map +1 -0
  157. package/dist-server/service/building-inspection-history/building-inspection-history-query.d.ts +16 -0
  158. package/dist-server/service/building-inspection-history/building-inspection-history-query.js +120 -0
  159. package/dist-server/service/building-inspection-history/building-inspection-history-query.js.map +1 -0
  160. package/dist-server/service/building-inspection-history/building-inspection-history-type.d.ts +5 -0
  161. package/dist-server/service/building-inspection-history/building-inspection-history-type.js +21 -0
  162. package/dist-server/service/building-inspection-history/building-inspection-history-type.js.map +1 -0
  163. package/dist-server/service/building-inspection-history/building-inspection-history.d.ts +35 -0
  164. package/dist-server/service/building-inspection-history/building-inspection-history.js +162 -0
  165. package/dist-server/service/building-inspection-history/building-inspection-history.js.map +1 -0
  166. package/dist-server/service/building-inspection-history/event-subscriber.d.ts +7 -0
  167. package/dist-server/service/building-inspection-history/event-subscriber.js +21 -0
  168. package/dist-server/service/building-inspection-history/event-subscriber.js.map +1 -0
  169. package/dist-server/service/building-inspection-history/index.d.ts +6 -0
  170. package/dist-server/service/building-inspection-history/index.js +10 -0
  171. package/dist-server/service/building-inspection-history/index.js.map +1 -0
  172. package/dist-server/service/checklist/checklist-mutation.d.ts +0 -5
  173. package/dist-server/service/checklist/checklist-mutation.js +1 -67
  174. package/dist-server/service/checklist/checklist-mutation.js.map +1 -1
  175. package/dist-server/service/checklist/checklist-query.d.ts +7 -0
  176. package/dist-server/service/checklist/checklist-query.js +83 -0
  177. package/dist-server/service/checklist/checklist-query.js.map +1 -1
  178. package/dist-server/service/checklist/checklist-type.d.ts +0 -13
  179. package/dist-server/service/checklist/checklist-type.js +1 -49
  180. package/dist-server/service/checklist/checklist-type.js.map +1 -1
  181. package/dist-server/service/checklist/checklist.d.ts +24 -7
  182. package/dist-server/service/checklist/checklist.js +75 -30
  183. package/dist-server/service/checklist/checklist.js.map +1 -1
  184. package/dist-server/service/checklist/event-subscriber.d.ts +7 -0
  185. package/dist-server/service/checklist/event-subscriber.js +21 -0
  186. package/dist-server/service/checklist/event-subscriber.js.map +1 -0
  187. package/dist-server/service/checklist/index.d.ts +1 -2
  188. package/dist-server/service/checklist/index.js +1 -2
  189. package/dist-server/service/checklist/index.js.map +1 -1
  190. package/dist-server/service/checklist-history/checklist-history-query.d.ts +11 -0
  191. package/dist-server/service/checklist-history/checklist-history-query.js +77 -0
  192. package/dist-server/service/checklist-history/checklist-history-query.js.map +1 -0
  193. package/dist-server/service/checklist-history/checklist-history-type.d.ts +5 -0
  194. package/dist-server/service/checklist-history/checklist-history-type.js +21 -0
  195. package/dist-server/service/checklist-history/checklist-history-type.js.map +1 -0
  196. package/dist-server/service/{checklist → checklist-history}/checklist-history.d.ts +19 -1
  197. package/dist-server/service/{checklist → checklist-history}/checklist-history.js +97 -14
  198. package/dist-server/service/checklist-history/checklist-history.js.map +1 -0
  199. package/dist-server/service/checklist-history/event-subscriber.d.ts +7 -0
  200. package/dist-server/service/checklist-history/event-subscriber.js +21 -0
  201. package/dist-server/service/checklist-history/event-subscriber.js.map +1 -0
  202. package/dist-server/service/checklist-history/index.d.ts +6 -0
  203. package/dist-server/service/checklist-history/index.js +10 -0
  204. package/dist-server/service/checklist-history/index.js.map +1 -0
  205. package/dist-server/service/checklist-item/checklist-item-query.d.ts +1 -1
  206. package/dist-server/service/checklist-item/checklist-item-query.js +5 -3
  207. package/dist-server/service/checklist-item/checklist-item-query.js.map +1 -1
  208. package/dist-server/service/checklist-item/checklist-item.d.ts +2 -0
  209. package/dist-server/service/checklist-item/checklist-item.js +11 -1
  210. package/dist-server/service/checklist-item/checklist-item.js.map +1 -1
  211. package/dist-server/service/checklist-item/index.d.ts +0 -1
  212. package/dist-server/service/checklist-item/index.js +1 -2
  213. package/dist-server/service/checklist-item/index.js.map +1 -1
  214. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.d.ts +1 -0
  215. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js +33 -6
  216. package/dist-server/service/checklist-item-comment/checklist-item-comment-mutation.js.map +1 -1
  217. package/dist-server/service/checklist-item-history/checklist-item-history-query.d.ts +16 -0
  218. package/dist-server/service/checklist-item-history/checklist-item-history-query.js +123 -0
  219. package/dist-server/service/checklist-item-history/checklist-item-history-query.js.map +1 -0
  220. package/dist-server/service/checklist-item-history/checklist-item-history-type.d.ts +5 -0
  221. package/dist-server/service/checklist-item-history/checklist-item-history-type.js +21 -0
  222. package/dist-server/service/checklist-item-history/checklist-item-history-type.js.map +1 -0
  223. package/dist-server/service/checklist-item-history/checklist-item-history.d.ts +27 -0
  224. package/dist-server/service/checklist-item-history/checklist-item-history.js +133 -0
  225. package/dist-server/service/checklist-item-history/checklist-item-history.js.map +1 -0
  226. package/dist-server/service/checklist-item-history/event-subscriber.d.ts +7 -0
  227. package/dist-server/service/checklist-item-history/event-subscriber.js +21 -0
  228. package/dist-server/service/checklist-item-history/event-subscriber.js.map +1 -0
  229. package/dist-server/service/checklist-item-history/index.d.ts +6 -0
  230. package/dist-server/service/checklist-item-history/index.js +10 -0
  231. package/dist-server/service/checklist-item-history/index.js.map +1 -0
  232. package/dist-server/service/checklist-template/checklist-template-query.d.ts +1 -1
  233. package/dist-server/service/checklist-template/checklist-template-query.js +2 -5
  234. package/dist-server/service/checklist-template/checklist-template-query.js.map +1 -1
  235. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js +13 -1
  236. package/dist-server/service/checklist-template-item/checklist-template-item-mutation.js.map +1 -1
  237. package/dist-server/service/checklist-template-item/checklist-template-item-type.d.ts +3 -0
  238. package/dist-server/service/checklist-template-item/checklist-template-item-type.js +9 -0
  239. package/dist-server/service/checklist-template-item/checklist-template-item-type.js.map +1 -1
  240. package/dist-server/service/checklist-template-item/checklist-template-item.d.ts +7 -0
  241. package/dist-server/service/checklist-template-item/checklist-template-item.js +22 -2
  242. package/dist-server/service/checklist-template-item/checklist-template-item.js.map +1 -1
  243. package/dist-server/service/checklist-template-item/spec-matching-service.d.ts +2 -0
  244. package/dist-server/service/checklist-template-item/spec-matching-service.js +51 -0
  245. package/dist-server/service/checklist-template-item/spec-matching-service.js.map +1 -0
  246. package/dist-server/service/checklist-type/checklist-type-query.d.ts +1 -1
  247. package/dist-server/service/checklist-type/checklist-type-query.js +2 -5
  248. package/dist-server/service/checklist-type/checklist-type-query.js.map +1 -1
  249. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.d.ts +7 -0
  250. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.js +107 -0
  251. package/dist-server/service/construction-checklist-template/construction-checklist-template-mutation.js.map +1 -0
  252. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.d.ts +10 -0
  253. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.js +62 -0
  254. package/dist-server/service/construction-checklist-template/construction-checklist-template-query.js.map +1 -0
  255. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.d.ts +11 -0
  256. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.js +43 -0
  257. package/dist-server/service/construction-checklist-template/construction-checklist-template-type.js.map +1 -0
  258. package/dist-server/service/construction-checklist-template/construction-checklist-template.d.ts +18 -0
  259. package/dist-server/service/construction-checklist-template/construction-checklist-template.js +80 -0
  260. package/dist-server/service/construction-checklist-template/construction-checklist-template.js.map +1 -0
  261. package/dist-server/service/construction-checklist-template/index.d.ts +5 -0
  262. package/dist-server/service/construction-checklist-template/index.js +9 -0
  263. package/dist-server/service/construction-checklist-template/index.js.map +1 -0
  264. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.d.ts +6 -0
  265. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.js +56 -0
  266. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-mutation.js.map +1 -0
  267. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.d.ts +9 -0
  268. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.js +53 -0
  269. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-query.js.map +1 -0
  270. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.d.ts +17 -0
  271. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.js +67 -0
  272. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item-type.js.map +1 -0
  273. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.d.ts +24 -0
  274. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.js +113 -0
  275. package/dist-server/service/construction-checklist-template-item/construction-checklist-template-item.js.map +1 -0
  276. package/dist-server/service/construction-checklist-template-item/index.d.ts +5 -0
  277. package/dist-server/service/construction-checklist-template-item/index.js +9 -0
  278. package/dist-server/service/construction-checklist-template-item/index.js.map +1 -0
  279. package/dist-server/service/field-document/field-document-auto-file.d.ts +21 -0
  280. package/dist-server/service/field-document/field-document-auto-file.js +47 -0
  281. package/dist-server/service/field-document/field-document-auto-file.js.map +1 -0
  282. package/dist-server/service/field-document/field-document-mutation.d.ts +9 -0
  283. package/dist-server/service/field-document/field-document-mutation.js +136 -0
  284. package/dist-server/service/field-document/field-document-mutation.js.map +1 -0
  285. package/dist-server/service/field-document/field-document-query.d.ts +14 -0
  286. package/dist-server/service/field-document/field-document-query.js +120 -0
  287. package/dist-server/service/field-document/field-document-query.js.map +1 -0
  288. package/dist-server/service/field-document/field-document-summary-service.d.ts +2 -0
  289. package/dist-server/service/field-document/field-document-summary-service.js +55 -0
  290. package/dist-server/service/field-document/field-document-summary-service.js.map +1 -0
  291. package/dist-server/service/field-document/field-document-type.d.ts +23 -0
  292. package/dist-server/service/field-document/field-document-type.js +84 -0
  293. package/dist-server/service/field-document/field-document-type.js.map +1 -0
  294. package/dist-server/service/field-document/field-document.d.ts +29 -0
  295. package/dist-server/service/field-document/field-document.js +127 -0
  296. package/dist-server/service/field-document/field-document.js.map +1 -0
  297. package/dist-server/service/field-document/index.d.ts +5 -0
  298. package/dist-server/service/field-document/index.js +9 -0
  299. package/dist-server/service/field-document/index.js.map +1 -0
  300. package/dist-server/service/index.d.ts +9 -1
  301. package/dist-server/service/index.js +42 -3
  302. package/dist-server/service/index.js.map +1 -1
  303. package/dist-server/service/issue/issue-mutation.js +5 -6
  304. package/dist-server/service/issue/issue-mutation.js.map +1 -1
  305. package/dist-server/service/issue/issue-query.d.ts +2 -2
  306. package/dist-server/service/issue/issue-query.js +5 -11
  307. package/dist-server/service/issue/issue-query.js.map +1 -1
  308. package/dist-server/service/project-checklist/index.d.ts +5 -0
  309. package/dist-server/service/project-checklist/index.js +9 -0
  310. package/dist-server/service/project-checklist/index.js.map +1 -0
  311. package/dist-server/service/project-checklist/project-checklist-mutation.d.ts +7 -0
  312. package/dist-server/service/project-checklist/project-checklist-mutation.js +118 -0
  313. package/dist-server/service/project-checklist/project-checklist-mutation.js.map +1 -0
  314. package/dist-server/service/project-checklist/project-checklist-query.d.ts +12 -0
  315. package/dist-server/service/project-checklist/project-checklist-query.js +76 -0
  316. package/dist-server/service/project-checklist/project-checklist-query.js.map +1 -0
  317. package/dist-server/service/project-checklist/project-checklist-type.d.ts +18 -0
  318. package/dist-server/service/project-checklist/project-checklist-type.js +69 -0
  319. package/dist-server/service/project-checklist/project-checklist-type.js.map +1 -0
  320. package/dist-server/service/project-checklist/project-checklist.d.ts +20 -0
  321. package/dist-server/service/project-checklist/project-checklist.js +90 -0
  322. package/dist-server/service/project-checklist/project-checklist.js.map +1 -0
  323. package/dist-server/service/project-checklist/spec-matching-service.d.ts +17 -0
  324. package/dist-server/service/project-checklist/spec-matching-service.js +85 -0
  325. package/dist-server/service/project-checklist/spec-matching-service.js.map +1 -0
  326. package/dist-server/service/project-checklist-item/index.d.ts +4 -0
  327. package/dist-server/service/project-checklist-item/index.js +9 -0
  328. package/dist-server/service/project-checklist-item/index.js.map +1 -0
  329. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.d.ts +2 -0
  330. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.js +13 -0
  331. package/dist-server/service/project-checklist-item/project-checklist-item-mutation.js.map +1 -0
  332. package/dist-server/service/project-checklist-item/project-checklist-item-query.d.ts +5 -0
  333. package/dist-server/service/project-checklist-item/project-checklist-item-query.js +34 -0
  334. package/dist-server/service/project-checklist-item/project-checklist-item-query.js.map +1 -0
  335. package/dist-server/service/project-checklist-item/project-checklist-item-type.d.ts +5 -0
  336. package/dist-server/service/project-checklist-item/project-checklist-item-type.js +21 -0
  337. package/dist-server/service/project-checklist-item/project-checklist-item-type.js.map +1 -0
  338. package/dist-server/service/project-checklist-item/project-checklist-item.d.ts +19 -0
  339. package/dist-server/service/project-checklist-item/project-checklist-item.js +92 -0
  340. package/dist-server/service/project-checklist-item/project-checklist-item.js.map +1 -0
  341. package/dist-server/service/project-report/project-report-mutation.js +5 -6
  342. package/dist-server/service/project-report/project-report-mutation.js.map +1 -1
  343. package/dist-server/service/project-report/project-report-query.d.ts +2 -2
  344. package/dist-server/service/project-report/project-report-query.js +5 -11
  345. package/dist-server/service/project-report/project-report-query.js.map +1 -1
  346. package/dist-server/service/project-report/project-report.d.ts +0 -2
  347. package/dist-server/service/project-report/project-report.js +0 -6
  348. package/dist-server/service/project-report/project-report.js.map +1 -1
  349. package/dist-server/service/supervisor/supervisor-mutation.js +5 -6
  350. package/dist-server/service/supervisor/supervisor-mutation.js.map +1 -1
  351. package/dist-server/service/supervisor/supervisor-query.d.ts +2 -2
  352. package/dist-server/service/supervisor/supervisor-query.js +5 -11
  353. package/dist-server/service/supervisor/supervisor-query.js.map +1 -1
  354. package/dist-server/tsconfig.tsbuildinfo +1 -1
  355. package/package.json +14 -13
  356. package/things-factory.config.js +9 -1
  357. package/dist-server/service/building-inspection/building-inspection-history.d.ts +0 -17
  358. package/dist-server/service/building-inspection/building-inspection-history.js +0 -86
  359. package/dist-server/service/building-inspection/building-inspection-history.js.map +0 -1
  360. package/dist-server/service/checklist/checklist-history.js.map +0 -1
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjectChecklistMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const typeorm_1 = require("typeorm");
7
+ const project_checklist_1 = require("./project-checklist");
8
+ const project_checklist_type_1 = require("./project-checklist-type");
9
+ const project_checklist_item_1 = require("../project-checklist-item/project-checklist-item");
10
+ const spec_matching_service_1 = require("./spec-matching-service");
11
+ let ProjectChecklistMutation = class ProjectChecklistMutation {
12
+ async createProjectChecklist(projectId, constructionTypeId, constructionDetailTypeId, name, items, siteSpecPdfUrl, context) {
13
+ const { domain, user, tx } = context.state;
14
+ const checklistRepo = tx.getRepository(project_checklist_1.ProjectChecklist);
15
+ const itemRepo = tx.getRepository(project_checklist_item_1.ProjectChecklistItem);
16
+ const checklist = await checklistRepo.save({
17
+ domain,
18
+ projectId,
19
+ constructionTypeId,
20
+ constructionDetailTypeId,
21
+ name,
22
+ creator: user,
23
+ updater: user
24
+ });
25
+ const savedItems = [];
26
+ for (let i = 0; i < items.length; i++) {
27
+ const item = items[i];
28
+ const saved = await itemRepo.save({
29
+ projectChecklist: checklist,
30
+ mainType: item.mainType || null,
31
+ name: item.name,
32
+ sequence: i,
33
+ creator: user,
34
+ updater: user
35
+ });
36
+ savedItems.push(saved);
37
+ }
38
+ // 검사항목별 KCS 표준 / 현장 시방서 기준 매칭을 백그라운드(비동기)로 트리거
39
+ (0, spec_matching_service_1.queueUpdateProjectChecklistCriteria)(savedItems.map(v => v.id), siteSpecPdfUrl);
40
+ return checklist;
41
+ }
42
+ async updateProjectChecklist(id, name, items, siteSpecPdfUrl, context) {
43
+ const { user, tx } = context.state;
44
+ const checklistRepo = tx.getRepository(project_checklist_1.ProjectChecklist);
45
+ const itemRepo = tx.getRepository(project_checklist_item_1.ProjectChecklistItem);
46
+ const checklist = await checklistRepo.findOneBy({ id });
47
+ // 이름 수정
48
+ checklist.name = name;
49
+ checklist.updater = user;
50
+ await checklistRepo.save(checklist);
51
+ // 기존 아이템 삭제 후 재삽입
52
+ await itemRepo.delete({ projectChecklist: { id } });
53
+ const savedItems = [];
54
+ for (let i = 0; i < items.length; i++) {
55
+ const item = items[i];
56
+ const saved = await itemRepo.save({
57
+ projectChecklist: checklist,
58
+ mainType: item.mainType || null,
59
+ name: item.name,
60
+ sequence: i,
61
+ creator: user,
62
+ updater: user
63
+ });
64
+ savedItems.push(saved);
65
+ }
66
+ // 검사항목별 KCS 표준 / 현장 시방서 기준 매칭을 백그라운드(비동기)로 트리거
67
+ (0, spec_matching_service_1.queueUpdateProjectChecklistCriteria)(savedItems.map(v => v.id), siteSpecPdfUrl);
68
+ return checklist;
69
+ }
70
+ async deleteProjectChecklists(ids, context) {
71
+ const { domain, tx } = context.state;
72
+ await tx.getRepository(project_checklist_1.ProjectChecklist).softDelete({
73
+ domain: { id: domain.id },
74
+ id: (0, typeorm_1.In)(ids)
75
+ });
76
+ return true;
77
+ }
78
+ };
79
+ exports.ProjectChecklistMutation = ProjectChecklistMutation;
80
+ tslib_1.__decorate([
81
+ (0, type_graphql_1.Directive)('@transaction'),
82
+ (0, type_graphql_1.Mutation)(returns => project_checklist_1.ProjectChecklist, { description: '프로젝트 체크리스트 생성' }),
83
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('projectId')),
84
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('constructionTypeId')),
85
+ tslib_1.__param(2, (0, type_graphql_1.Arg)('constructionDetailTypeId')),
86
+ tslib_1.__param(3, (0, type_graphql_1.Arg)('name')),
87
+ tslib_1.__param(4, (0, type_graphql_1.Arg)('items', type => [project_checklist_type_1.ProjectChecklistItemInput])),
88
+ tslib_1.__param(5, (0, type_graphql_1.Arg)('siteSpecPdfUrl', { nullable: true })),
89
+ tslib_1.__param(6, (0, type_graphql_1.Ctx)()),
90
+ tslib_1.__metadata("design:type", Function),
91
+ tslib_1.__metadata("design:paramtypes", [String, String, String, String, Array, String, Object]),
92
+ tslib_1.__metadata("design:returntype", Promise)
93
+ ], ProjectChecklistMutation.prototype, "createProjectChecklist", null);
94
+ tslib_1.__decorate([
95
+ (0, type_graphql_1.Directive)('@transaction'),
96
+ (0, type_graphql_1.Mutation)(returns => project_checklist_1.ProjectChecklist, { description: '프로젝트 체크리스트 수정' }),
97
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
98
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('name')),
99
+ tslib_1.__param(2, (0, type_graphql_1.Arg)('items', type => [project_checklist_type_1.ProjectChecklistItemInput])),
100
+ tslib_1.__param(3, (0, type_graphql_1.Arg)('siteSpecPdfUrl', { nullable: true })),
101
+ tslib_1.__param(4, (0, type_graphql_1.Ctx)()),
102
+ tslib_1.__metadata("design:type", Function),
103
+ tslib_1.__metadata("design:paramtypes", [String, String, Array, String, Object]),
104
+ tslib_1.__metadata("design:returntype", Promise)
105
+ ], ProjectChecklistMutation.prototype, "updateProjectChecklist", null);
106
+ tslib_1.__decorate([
107
+ (0, type_graphql_1.Directive)('@transaction'),
108
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: '프로젝트 체크리스트 삭제' }),
109
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
110
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
111
+ tslib_1.__metadata("design:type", Function),
112
+ tslib_1.__metadata("design:paramtypes", [Array, Object]),
113
+ tslib_1.__metadata("design:returntype", Promise)
114
+ ], ProjectChecklistMutation.prototype, "deleteProjectChecklists", null);
115
+ exports.ProjectChecklistMutation = ProjectChecklistMutation = tslib_1.__decorate([
116
+ (0, type_graphql_1.Resolver)(project_checklist_1.ProjectChecklist)
117
+ ], ProjectChecklistMutation);
118
+ //# sourceMappingURL=project-checklist-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-checklist-mutation.js","sourceRoot":"","sources":["../../../server/service/project-checklist/project-checklist-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { ProjectChecklist } from './project-checklist'\nimport { ProjectChecklistItemInput } from './project-checklist-type'\nimport { ProjectChecklistItem } from '../project-checklist-item/project-checklist-item'\nimport { queueUpdateProjectChecklistCriteria } from './spec-matching-service'\n\n@Resolver(ProjectChecklist)\nexport class ProjectChecklistMutation {\n @Directive('@transaction')\n @Mutation(returns => ProjectChecklist, { description: '프로젝트 체크리스트 생성' })\n async createProjectChecklist(\n @Arg('projectId') projectId: string,\n @Arg('constructionTypeId') constructionTypeId: string,\n @Arg('constructionDetailTypeId') constructionDetailTypeId: string,\n @Arg('name') name: string,\n @Arg('items', type => [ProjectChecklistItemInput]) items: ProjectChecklistItemInput[],\n @Arg('siteSpecPdfUrl', { nullable: true }) siteSpecPdfUrl: string,\n @Ctx() context: ResolverContext\n ): Promise<ProjectChecklist> {\n const { domain, user, tx } = context.state\n\n const checklistRepo = tx.getRepository(ProjectChecklist)\n const itemRepo = tx.getRepository(ProjectChecklistItem)\n\n const checklist = await checklistRepo.save({\n domain,\n projectId,\n constructionTypeId,\n constructionDetailTypeId,\n name,\n creator: user,\n updater: user\n })\n\n const savedItems = []\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const saved = await itemRepo.save({\n projectChecklist: checklist,\n mainType: item.mainType || null,\n name: item.name,\n sequence: i,\n creator: user,\n updater: user\n })\n savedItems.push(saved)\n }\n\n // 검사항목별 KCS 표준 / 현장 시방서 기준 매칭을 백그라운드(비동기)로 트리거\n queueUpdateProjectChecklistCriteria(savedItems.map(v => v.id), siteSpecPdfUrl)\n\n return checklist\n }\n\n @Directive('@transaction')\n @Mutation(returns => ProjectChecklist, { description: '프로젝트 체크리스트 수정' })\n async updateProjectChecklist(\n @Arg('id') id: string,\n @Arg('name') name: string,\n @Arg('items', type => [ProjectChecklistItemInput]) items: ProjectChecklistItemInput[],\n @Arg('siteSpecPdfUrl', { nullable: true }) siteSpecPdfUrl: string,\n @Ctx() context: ResolverContext\n ): Promise<ProjectChecklist> {\n const { user, tx } = context.state\n\n const checklistRepo = tx.getRepository(ProjectChecklist)\n const itemRepo = tx.getRepository(ProjectChecklistItem)\n\n const checklist = await checklistRepo.findOneBy({ id })\n\n // 이름 수정\n checklist.name = name\n checklist.updater = user\n await checklistRepo.save(checklist)\n\n // 기존 아이템 삭제 후 재삽입\n await itemRepo.delete({ projectChecklist: { id } })\n\n const savedItems = []\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const saved = await itemRepo.save({\n projectChecklist: checklist,\n mainType: item.mainType || null,\n name: item.name,\n sequence: i,\n creator: user,\n updater: user\n })\n savedItems.push(saved)\n }\n\n // 검사항목별 KCS 표준 / 현장 시방서 기준 매칭을 백그라운드(비동기)로 트리거\n queueUpdateProjectChecklistCriteria(savedItems.map(v => v.id), siteSpecPdfUrl)\n\n return checklist\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: '프로젝트 체크리스트 삭제' })\n async deleteProjectChecklists(\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(ProjectChecklist).softDelete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { Domain, ListParam } from '@things-factory/shell';
2
+ import { User } from '@things-factory/auth-base';
3
+ import { ProjectChecklist } from './project-checklist';
4
+ import { ProjectChecklistList } from './project-checklist-type';
5
+ import { ProjectChecklistItem } from '../project-checklist-item/project-checklist-item';
6
+ export declare class ProjectChecklistQuery {
7
+ projectChecklists(params: ListParam): Promise<ProjectChecklistList>;
8
+ domain(t: ProjectChecklist): Promise<Domain>;
9
+ updater(t: ProjectChecklist): Promise<User>;
10
+ creator(t: ProjectChecklist): Promise<User>;
11
+ projectChecklistItems(t: ProjectChecklist): Promise<ProjectChecklistItem[]>;
12
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjectChecklistQuery = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const auth_base_1 = require("@things-factory/auth-base");
8
+ const project_checklist_1 = require("./project-checklist");
9
+ const project_checklist_type_1 = require("./project-checklist-type");
10
+ const project_checklist_item_1 = require("../project-checklist-item/project-checklist-item");
11
+ let ProjectChecklistQuery = class ProjectChecklistQuery {
12
+ async projectChecklists(params) {
13
+ const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
14
+ params,
15
+ repository: await (0, shell_1.getRepository)(project_checklist_1.ProjectChecklist),
16
+ searchables: ['name']
17
+ });
18
+ const [items, total] = await queryBuilder.getManyAndCount();
19
+ return { items, total };
20
+ }
21
+ async domain(t) {
22
+ return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: t.domainId });
23
+ }
24
+ async updater(t) {
25
+ return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: t.updaterId });
26
+ }
27
+ async creator(t) {
28
+ return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: t.creatorId });
29
+ }
30
+ async projectChecklistItems(t) {
31
+ return await (0, shell_1.getRepository)(project_checklist_item_1.ProjectChecklistItem).find({
32
+ where: { projectChecklist: { id: t.id } },
33
+ order: { sequence: 'ASC' }
34
+ });
35
+ }
36
+ };
37
+ exports.ProjectChecklistQuery = ProjectChecklistQuery;
38
+ tslib_1.__decorate([
39
+ (0, type_graphql_1.Query)(returns => project_checklist_type_1.ProjectChecklistList, { description: '프로젝트 체크리스트 목록' }),
40
+ tslib_1.__param(0, (0, type_graphql_1.Args)()),
41
+ tslib_1.__metadata("design:type", Function),
42
+ tslib_1.__metadata("design:paramtypes", [shell_1.ListParam]),
43
+ tslib_1.__metadata("design:returntype", Promise)
44
+ ], ProjectChecklistQuery.prototype, "projectChecklists", null);
45
+ tslib_1.__decorate([
46
+ (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
47
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
48
+ tslib_1.__metadata("design:type", Function),
49
+ tslib_1.__metadata("design:paramtypes", [project_checklist_1.ProjectChecklist]),
50
+ tslib_1.__metadata("design:returntype", Promise)
51
+ ], ProjectChecklistQuery.prototype, "domain", null);
52
+ tslib_1.__decorate([
53
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
54
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
55
+ tslib_1.__metadata("design:type", Function),
56
+ tslib_1.__metadata("design:paramtypes", [project_checklist_1.ProjectChecklist]),
57
+ tslib_1.__metadata("design:returntype", Promise)
58
+ ], ProjectChecklistQuery.prototype, "updater", null);
59
+ tslib_1.__decorate([
60
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
61
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
62
+ tslib_1.__metadata("design:type", Function),
63
+ tslib_1.__metadata("design:paramtypes", [project_checklist_1.ProjectChecklist]),
64
+ tslib_1.__metadata("design:returntype", Promise)
65
+ ], ProjectChecklistQuery.prototype, "creator", null);
66
+ tslib_1.__decorate([
67
+ (0, type_graphql_1.FieldResolver)(type => [project_checklist_item_1.ProjectChecklistItem]),
68
+ tslib_1.__param(0, (0, type_graphql_1.Root)()),
69
+ tslib_1.__metadata("design:type", Function),
70
+ tslib_1.__metadata("design:paramtypes", [project_checklist_1.ProjectChecklist]),
71
+ tslib_1.__metadata("design:returntype", Promise)
72
+ ], ProjectChecklistQuery.prototype, "projectChecklistItems", null);
73
+ exports.ProjectChecklistQuery = ProjectChecklistQuery = tslib_1.__decorate([
74
+ (0, type_graphql_1.Resolver)(project_checklist_1.ProjectChecklist)
75
+ ], ProjectChecklistQuery);
76
+ //# sourceMappingURL=project-checklist-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-checklist-query.js","sourceRoot":"","sources":["../../../server/service/project-checklist/project-checklist-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA8E;AAC9E,iDAAuG;AACvG,yDAAgD;AAChD,2DAAsD;AACtD,qEAA+D;AAC/D,6FAAuF;AAGhF,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAE1B,AAAN,KAAK,CAAC,iBAAiB,CAAS,MAAiB;QAC/C,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,oCAAgB,CAAC;YACjD,WAAW,EAAE,CAAC,MAAM,CAAC;SACtB,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,MAAM,CAAS,CAAmB;QACtC,OAAO,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IAClE,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,CAAmB;QACvC,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;IACjE,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,CAAmB;QACvC,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;IACjE,CAAC;IAGK,AAAN,KAAK,CAAC,qBAAqB,CAAS,CAAmB;QACrD,OAAO,MAAM,IAAA,qBAAa,EAAC,6CAAoB,CAAC,CAAC,IAAI,CAAC;YACpD,KAAK,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;YACzC,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC3B,CAAC,CAAA;IACJ,CAAC;CACF,CAAA;AApCY,sDAAqB;AAE1B;IADL,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,6CAAoB,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IAChD,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAS,iBAAS;;8DAUhD;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAI,oCAAgB;;mDAEvC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAI,oCAAgB;;oDAExC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAI,oCAAgB;;oDAExC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,6CAAoB,CAAC,CAAC;IACjB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAI,oCAAgB;;kEAKtD;gCAnCU,qBAAqB;IADjC,IAAA,uBAAQ,EAAC,oCAAgB,CAAC;GACd,qBAAqB,CAoCjC","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Ctx } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ProjectChecklist } from './project-checklist'\nimport { ProjectChecklistList } from './project-checklist-type'\nimport { ProjectChecklistItem } from '../project-checklist-item/project-checklist-item'\n\n@Resolver(ProjectChecklist)\nexport class ProjectChecklistQuery {\n @Query(returns => ProjectChecklistList, { description: '프로젝트 체크리스트 목록' })\n async projectChecklists(@Args() params: ListParam): Promise<ProjectChecklistList> {\n const queryBuilder = getQueryBuilderFromListParams({\n params,\n repository: await getRepository(ProjectChecklist),\n searchables: ['name']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() t: ProjectChecklist): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: t.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() t: ProjectChecklist): Promise<User> {\n return await getRepository(User).findOneBy({ id: t.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() t: ProjectChecklist): Promise<User> {\n return await getRepository(User).findOneBy({ id: t.creatorId })\n }\n\n @FieldResolver(type => [ProjectChecklistItem])\n async projectChecklistItems(@Root() t: ProjectChecklist): Promise<ProjectChecklistItem[]> {\n return await getRepository(ProjectChecklistItem).find({\n where: { projectChecklist: { id: t.id } },\n order: { sequence: 'ASC' }\n })\n }\n}\n"]}
@@ -0,0 +1,18 @@
1
+ import { ProjectChecklist } from './project-checklist';
2
+ export declare class ProjectChecklistPatch {
3
+ id?: string;
4
+ projectId?: string;
5
+ constructionTypeId?: string;
6
+ constructionDetailTypeId?: string;
7
+ name?: string;
8
+ }
9
+ export declare class ProjectChecklistItemInput {
10
+ mainType?: string;
11
+ name: string;
12
+ inspctionCriteria?: string;
13
+ sequence?: number;
14
+ }
15
+ export declare class ProjectChecklistList {
16
+ items: ProjectChecklist[];
17
+ total: number;
18
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjectChecklistList = exports.ProjectChecklistItemInput = exports.ProjectChecklistPatch = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const project_checklist_1 = require("./project-checklist");
7
+ let ProjectChecklistPatch = class ProjectChecklistPatch {
8
+ };
9
+ exports.ProjectChecklistPatch = ProjectChecklistPatch;
10
+ tslib_1.__decorate([
11
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
12
+ tslib_1.__metadata("design:type", String)
13
+ ], ProjectChecklistPatch.prototype, "id", void 0);
14
+ tslib_1.__decorate([
15
+ (0, type_graphql_1.Field)({ nullable: true }),
16
+ tslib_1.__metadata("design:type", String)
17
+ ], ProjectChecklistPatch.prototype, "projectId", void 0);
18
+ tslib_1.__decorate([
19
+ (0, type_graphql_1.Field)({ nullable: true }),
20
+ tslib_1.__metadata("design:type", String)
21
+ ], ProjectChecklistPatch.prototype, "constructionTypeId", void 0);
22
+ tslib_1.__decorate([
23
+ (0, type_graphql_1.Field)({ nullable: true }),
24
+ tslib_1.__metadata("design:type", String)
25
+ ], ProjectChecklistPatch.prototype, "constructionDetailTypeId", void 0);
26
+ tslib_1.__decorate([
27
+ (0, type_graphql_1.Field)({ nullable: true }),
28
+ tslib_1.__metadata("design:type", String)
29
+ ], ProjectChecklistPatch.prototype, "name", void 0);
30
+ exports.ProjectChecklistPatch = ProjectChecklistPatch = tslib_1.__decorate([
31
+ (0, type_graphql_1.InputType)()
32
+ ], ProjectChecklistPatch);
33
+ let ProjectChecklistItemInput = class ProjectChecklistItemInput {
34
+ };
35
+ exports.ProjectChecklistItemInput = ProjectChecklistItemInput;
36
+ tslib_1.__decorate([
37
+ (0, type_graphql_1.Field)({ nullable: true }),
38
+ tslib_1.__metadata("design:type", String)
39
+ ], ProjectChecklistItemInput.prototype, "mainType", void 0);
40
+ tslib_1.__decorate([
41
+ (0, type_graphql_1.Field)(),
42
+ tslib_1.__metadata("design:type", String)
43
+ ], ProjectChecklistItemInput.prototype, "name", void 0);
44
+ tslib_1.__decorate([
45
+ (0, type_graphql_1.Field)({ nullable: true }),
46
+ tslib_1.__metadata("design:type", String)
47
+ ], ProjectChecklistItemInput.prototype, "inspctionCriteria", void 0);
48
+ tslib_1.__decorate([
49
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true }),
50
+ tslib_1.__metadata("design:type", Number)
51
+ ], ProjectChecklistItemInput.prototype, "sequence", void 0);
52
+ exports.ProjectChecklistItemInput = ProjectChecklistItemInput = tslib_1.__decorate([
53
+ (0, type_graphql_1.InputType)()
54
+ ], ProjectChecklistItemInput);
55
+ let ProjectChecklistList = class ProjectChecklistList {
56
+ };
57
+ exports.ProjectChecklistList = ProjectChecklistList;
58
+ tslib_1.__decorate([
59
+ (0, type_graphql_1.Field)(type => [project_checklist_1.ProjectChecklist]),
60
+ tslib_1.__metadata("design:type", Array)
61
+ ], ProjectChecklistList.prototype, "items", void 0);
62
+ tslib_1.__decorate([
63
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
64
+ tslib_1.__metadata("design:type", Number)
65
+ ], ProjectChecklistList.prototype, "total", void 0);
66
+ exports.ProjectChecklistList = ProjectChecklistList = tslib_1.__decorate([
67
+ (0, type_graphql_1.ObjectType)()
68
+ ], ProjectChecklistList);
69
+ //# sourceMappingURL=project-checklist-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-checklist-type.js","sourceRoot":"","sources":["../../../server/service/project-checklist/project-checklist-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,2DAAsD;AAG/C,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAejC,CAAA;AAfY,sDAAqB;AAEhC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAC3B;AAGX;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACR;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iEACC;AAG3B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uEACO;AAGjC;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACb;gCAdF,qBAAqB;IADjC,IAAA,wBAAS,GAAE;GACC,qBAAqB,CAejC;AAGM,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;CAYrC,CAAA;AAZY,8DAAyB;AAEpC;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACT;AAGjB;IADC,IAAA,oBAAK,GAAE;;uDACI;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oEACA;AAG1B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACtB;oCAXN,yBAAyB;IADrC,IAAA,wBAAS,GAAE;GACC,yBAAyB,CAYrC;AAGM,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;CAMhC,CAAA;AANY,oDAAoB;AAE/B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oCAAgB,CAAC,CAAC;;mDACT;AAGzB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;mDACN;+BALF,oBAAoB;IADhC,IAAA,yBAAU,GAAE;GACA,oBAAoB,CAMhC","sourcesContent":["import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'\nimport { ProjectChecklist } from './project-checklist'\n\n@InputType()\nexport class ProjectChecklistPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n projectId?: string\n\n @Field({ nullable: true })\n constructionTypeId?: string\n\n @Field({ nullable: true })\n constructionDetailTypeId?: string\n\n @Field({ nullable: true })\n name?: string\n}\n\n@InputType()\nexport class ProjectChecklistItemInput {\n @Field({ nullable: true })\n mainType?: string\n\n @Field()\n name: string\n\n @Field({ nullable: true })\n inspctionCriteria?: string\n\n @Field(type => Int, { nullable: true })\n sequence?: number\n}\n\n@ObjectType()\nexport class ProjectChecklistList {\n @Field(type => [ProjectChecklist])\n items: ProjectChecklist[]\n\n @Field(type => Int)\n total: number\n}\n"]}
@@ -0,0 +1,20 @@
1
+ import { Domain } from '@things-factory/shell';
2
+ import { User } from '@things-factory/auth-base';
3
+ import { ProjectChecklistItem } from '../project-checklist-item/project-checklist-item';
4
+ export declare class ProjectChecklist {
5
+ readonly id: string;
6
+ domain?: Domain;
7
+ domainId?: string;
8
+ projectId: string;
9
+ constructionTypeId: string;
10
+ constructionDetailTypeId: string;
11
+ name: string;
12
+ projectChecklistItems?: ProjectChecklistItem[];
13
+ createdAt?: Date;
14
+ updatedAt?: Date;
15
+ deletedAt?: Date;
16
+ creator?: User;
17
+ creatorId?: string;
18
+ updater?: User;
19
+ updaterId?: string;
20
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjectChecklist = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const typeorm_1 = require("typeorm");
6
+ const type_graphql_1 = require("type-graphql");
7
+ const shell_1 = require("@things-factory/shell");
8
+ const auth_base_1 = require("@things-factory/auth-base");
9
+ const project_checklist_item_1 = require("../project-checklist-item/project-checklist-item");
10
+ let ProjectChecklist = class ProjectChecklist {
11
+ };
12
+ exports.ProjectChecklist = ProjectChecklist;
13
+ tslib_1.__decorate([
14
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
15
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
16
+ tslib_1.__metadata("design:type", String)
17
+ ], ProjectChecklist.prototype, "id", void 0);
18
+ tslib_1.__decorate([
19
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
20
+ (0, type_graphql_1.Field)({ nullable: true }),
21
+ tslib_1.__metadata("design:type", shell_1.Domain)
22
+ ], ProjectChecklist.prototype, "domain", void 0);
23
+ tslib_1.__decorate([
24
+ (0, typeorm_1.RelationId)((t) => t.domain),
25
+ tslib_1.__metadata("design:type", String)
26
+ ], ProjectChecklist.prototype, "domainId", void 0);
27
+ tslib_1.__decorate([
28
+ (0, typeorm_1.Column)({ nullable: false, comment: '프로젝트 ID' }),
29
+ (0, type_graphql_1.Field)({ nullable: false }),
30
+ tslib_1.__metadata("design:type", String)
31
+ ], ProjectChecklist.prototype, "projectId", void 0);
32
+ tslib_1.__decorate([
33
+ (0, typeorm_1.Column)({ nullable: false, comment: '공종 ID (construction_types FK)' }),
34
+ (0, type_graphql_1.Field)({ nullable: false }),
35
+ tslib_1.__metadata("design:type", String)
36
+ ], ProjectChecklist.prototype, "constructionTypeId", void 0);
37
+ tslib_1.__decorate([
38
+ (0, typeorm_1.Column)({ nullable: false, comment: '세부공종 ID (construction_detail_types FK)' }),
39
+ (0, type_graphql_1.Field)({ nullable: false }),
40
+ tslib_1.__metadata("design:type", String)
41
+ ], ProjectChecklist.prototype, "constructionDetailTypeId", void 0);
42
+ tslib_1.__decorate([
43
+ (0, typeorm_1.Column)({ nullable: false, comment: '체크리스트 이름' }),
44
+ (0, type_graphql_1.Field)({ nullable: false }),
45
+ tslib_1.__metadata("design:type", String)
46
+ ], ProjectChecklist.prototype, "name", void 0);
47
+ tslib_1.__decorate([
48
+ (0, type_graphql_1.Field)(() => [project_checklist_item_1.ProjectChecklistItem], { nullable: true }),
49
+ (0, typeorm_1.OneToMany)(() => project_checklist_item_1.ProjectChecklistItem, item => item.projectChecklist),
50
+ tslib_1.__metadata("design:type", Array)
51
+ ], ProjectChecklist.prototype, "projectChecklistItems", void 0);
52
+ tslib_1.__decorate([
53
+ (0, typeorm_1.CreateDateColumn)(),
54
+ (0, type_graphql_1.Field)({ nullable: true }),
55
+ tslib_1.__metadata("design:type", Date)
56
+ ], ProjectChecklist.prototype, "createdAt", void 0);
57
+ tslib_1.__decorate([
58
+ (0, typeorm_1.UpdateDateColumn)(),
59
+ (0, type_graphql_1.Field)({ nullable: true }),
60
+ tslib_1.__metadata("design:type", Date)
61
+ ], ProjectChecklist.prototype, "updatedAt", void 0);
62
+ tslib_1.__decorate([
63
+ (0, typeorm_1.DeleteDateColumn)(),
64
+ (0, type_graphql_1.Field)({ nullable: true }),
65
+ tslib_1.__metadata("design:type", Date)
66
+ ], ProjectChecklist.prototype, "deletedAt", void 0);
67
+ tslib_1.__decorate([
68
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
69
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
70
+ tslib_1.__metadata("design:type", auth_base_1.User)
71
+ ], ProjectChecklist.prototype, "creator", void 0);
72
+ tslib_1.__decorate([
73
+ (0, typeorm_1.RelationId)((t) => t.creator),
74
+ tslib_1.__metadata("design:type", String)
75
+ ], ProjectChecklist.prototype, "creatorId", void 0);
76
+ tslib_1.__decorate([
77
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
78
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
79
+ tslib_1.__metadata("design:type", auth_base_1.User)
80
+ ], ProjectChecklist.prototype, "updater", void 0);
81
+ tslib_1.__decorate([
82
+ (0, typeorm_1.RelationId)((t) => t.updater),
83
+ tslib_1.__metadata("design:type", String)
84
+ ], ProjectChecklist.prototype, "updaterId", void 0);
85
+ exports.ProjectChecklist = ProjectChecklist = tslib_1.__decorate([
86
+ (0, typeorm_1.Entity)({ comment: '프로젝트 체크리스트' }),
87
+ (0, typeorm_1.Index)('ix_project_checklist_0', (t) => [t.domain, t.projectId, t.name], { unique: true, where: '"deleted_at" IS NULL' }),
88
+ (0, type_graphql_1.ObjectType)()
89
+ ], ProjectChecklist);
90
+ //# sourceMappingURL=project-checklist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-checklist.js","sourceRoot":"","sources":["../../../server/service/project-checklist/project-checklist.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 } from 'type-graphql'\n\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { ProjectChecklistItem } from '../project-checklist-item/project-checklist-item'\n\n@Entity({ comment: '프로젝트 체크리스트' })\n@Index(\n 'ix_project_checklist_0',\n (t: ProjectChecklist) => [t.domain, t.projectId, t.name],\n { unique: true, where: '\"deleted_at\" IS NULL' }\n)\n@ObjectType()\nexport class ProjectChecklist {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((t: ProjectChecklist) => t.domain)\n domainId?: string\n\n @Column({ nullable: false, comment: '프로젝트 ID' })\n @Field({ nullable: false })\n projectId: string\n\n @Column({ nullable: false, comment: '공종 ID (construction_types FK)' })\n @Field({ nullable: false })\n constructionTypeId: string\n\n @Column({ nullable: false, comment: '세부공종 ID (construction_detail_types FK)' })\n @Field({ nullable: false })\n constructionDetailTypeId: string\n\n @Column({ nullable: false, comment: '체크리스트 이름' })\n @Field({ nullable: false })\n name: string\n\n @Field(() => [ProjectChecklistItem], { nullable: true })\n @OneToMany(() => ProjectChecklistItem, item => item.projectChecklist)\n projectChecklistItems?: ProjectChecklistItem[]\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((t: ProjectChecklist) => t.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((t: ProjectChecklist) => t.updater)\n updaterId?: string\n}\n"]}
@@ -0,0 +1,17 @@
1
+ export interface MatchedCriteria {
2
+ kcsCriteria: string | null;
3
+ siteSpecCriteria: string | null;
4
+ }
5
+ /**
6
+ * 검사항목(query) 1건에 대해 KCS 표준 기준과 현장 시방서 기준을 매칭 API로 조회한다.
7
+ * - KCS 표준은 API 서버에 파일(kcs.csv)이 이미 존재한다.
8
+ * - 현장 시방서는 업로드한 PDF URL(siteSpecPdfUrl)을 넘길 때만 매칭된다.
9
+ * - 첨부파일이 없으면 site_spec_pdf_url 파라미터는 생략한다.
10
+ */
11
+ export declare function matchInspectionCriteria(query: string, siteSpecPdfUrl?: string): Promise<MatchedCriteria>;
12
+ /**
13
+ * 검사항목 ID 목록에 대해 KCS/현장 시방서 기준을 매칭하여 저장한다.
14
+ * (트랜잭션 커밋 후 백그라운드에서 실행되므로 전역 repository 사용)
15
+ */
16
+ export declare function updateProjectChecklistCriteria(itemIds: string[], siteSpecPdfUrl?: string): Promise<void>;
17
+ export declare function queueUpdateProjectChecklistCriteria(itemIds: string[], siteSpecPdfUrl?: string): void;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.matchInspectionCriteria = matchInspectionCriteria;
4
+ exports.updateProjectChecklistCriteria = updateProjectChecklistCriteria;
5
+ exports.queueUpdateProjectChecklistCriteria = queueUpdateProjectChecklistCriteria;
6
+ const shell_1 = require("@things-factory/shell");
7
+ const project_checklist_item_1 = require("../project-checklist-item/project-checklist-item");
8
+ const SPEC_MATCHING_API_URL = 'https://hatiolab-korea-uni.ettisoft.com/api/run/spec-matching';
9
+ const API_USERNAME = 'admin';
10
+ const API_PASSWORD = 'admin1234';
11
+ /**
12
+ * 검사항목(query) 1건에 대해 KCS 표준 기준과 현장 시방서 기준을 매칭 API로 조회한다.
13
+ * - KCS 표준은 API 서버에 파일(kcs.csv)이 이미 존재한다.
14
+ * - 현장 시방서는 업로드한 PDF URL(siteSpecPdfUrl)을 넘길 때만 매칭된다.
15
+ * - 첨부파일이 없으면 site_spec_pdf_url 파라미터는 생략한다.
16
+ */
17
+ async function matchInspectionCriteria(query, siteSpecPdfUrl) {
18
+ var _a, _b;
19
+ // operato-runner /api/run/{module} 은 multipart 폼필드 'input'(JSON 문자열)으로 입력을 받는다
20
+ const params = { query, top_k: 1 };
21
+ // 첨부파일(현장 시방서 PDF)이 없으면 site_spec_pdf_url 은 생략
22
+ if (siteSpecPdfUrl) {
23
+ params.site_spec_pdf_url = siteSpecPdfUrl;
24
+ }
25
+ const form = new FormData();
26
+ form.append('input', JSON.stringify(params));
27
+ // Content-Type은 FormData가 boundary와 함께 자동 설정하므로 지정하지 않음
28
+ const headers = {
29
+ Authorization: `Basic ${Buffer.from(`${API_USERNAME}:${API_PASSWORD}`).toString('base64')}`
30
+ };
31
+ try {
32
+ const response = await fetch(SPEC_MATCHING_API_URL, {
33
+ method: 'POST',
34
+ headers,
35
+ body: form
36
+ });
37
+ const outer = await (response === null || response === void 0 ? void 0 : response.json());
38
+ console.log('data :', outer);
39
+ // runner 응답: { result: <모듈 main() 반환>, exit_code, ... }, 모듈 반환: { status, result: {...} }
40
+ const moduleReturn = outer === null || outer === void 0 ? void 0 : outer.result;
41
+ if ((moduleReturn === null || moduleReturn === void 0 ? void 0 : moduleReturn.status) === 'success') {
42
+ const result = moduleReturn.result || {};
43
+ const kcsMatch = ((_a = result.kcs_matches) === null || _a === void 0 ? void 0 : _a[0]) || null;
44
+ const siteSpecMatch = ((_b = result.site_spec_matches) === null || _b === void 0 ? void 0 : _b[0]) || null;
45
+ return {
46
+ kcsCriteria: kcsMatch ? JSON.stringify(kcsMatch) : null,
47
+ siteSpecCriteria: (siteSpecMatch === null || siteSpecMatch === void 0 ? void 0 : siteSpecMatch.text) || null
48
+ };
49
+ }
50
+ }
51
+ catch (error) {
52
+ console.error('spec-matching API 호출 실패:', error);
53
+ }
54
+ return { kcsCriteria: null, siteSpecCriteria: null };
55
+ }
56
+ /**
57
+ * 검사항목 ID 목록에 대해 KCS/현장 시방서 기준을 매칭하여 저장한다.
58
+ * (트랜잭션 커밋 후 백그라운드에서 실행되므로 전역 repository 사용)
59
+ */
60
+ async function updateProjectChecklistCriteria(itemIds, siteSpecPdfUrl) {
61
+ const repository = (0, shell_1.getRepository)(project_checklist_item_1.ProjectChecklistItem);
62
+ for (const id of itemIds) {
63
+ try {
64
+ const item = await repository.findOneBy({ id });
65
+ if (!item)
66
+ continue;
67
+ const { kcsCriteria, siteSpecCriteria } = await matchInspectionCriteria(item.name, siteSpecPdfUrl);
68
+ await repository.update({ id }, { kcsCriteria, siteSpecCriteria });
69
+ }
70
+ catch (error) {
71
+ console.error('project-checklist 검사 기준 매칭 실패:', error);
72
+ }
73
+ }
74
+ }
75
+ // 검사 기준 매칭을 백그라운드(비동기)로 트리거 — 저장 응답을 막지 않는다.
76
+ function queueUpdateProjectChecklistCriteria(itemIds, siteSpecPdfUrl) {
77
+ if (!itemIds || itemIds.length === 0)
78
+ return;
79
+ setTimeout(() => {
80
+ updateProjectChecklistCriteria(itemIds, siteSpecPdfUrl).catch(err => {
81
+ console.error('Background spec-matching update failed (project-checklist):', err);
82
+ });
83
+ }, 0);
84
+ }
85
+ //# sourceMappingURL=spec-matching-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-matching-service.js","sourceRoot":"","sources":["../../../server/service/project-checklist/spec-matching-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRepository } from '@things-factory/shell'\nimport { ProjectChecklistItem } from '../project-checklist-item/project-checklist-item'\n\nconst SPEC_MATCHING_API_URL: string = 'https://hatiolab-korea-uni.ettisoft.com/api/run/spec-matching'\nconst API_USERNAME: string = 'admin'\nconst API_PASSWORD: string = 'admin1234'\n\nexport interface MatchedCriteria {\n // KCS 시방서 기준: kcs_matches[0] 오브젝트 전체를 JSON 문자열로 저장 (file_label 등 포함)\n kcsCriteria: string | null\n // 현장 시방서 기준: site_spec_matches[0].text\n siteSpecCriteria: string | null\n}\n\n/**\n * 검사항목(query) 1건에 대해 KCS 표준 기준과 현장 시방서 기준을 매칭 API로 조회한다.\n * - KCS 표준은 API 서버에 파일(kcs.csv)이 이미 존재한다.\n * - 현장 시방서는 업로드한 PDF URL(siteSpecPdfUrl)을 넘길 때만 매칭된다.\n * - 첨부파일이 없으면 site_spec_pdf_url 파라미터는 생략한다.\n */\nexport async function matchInspectionCriteria(query: string, siteSpecPdfUrl?: string): Promise<MatchedCriteria> {\n // operato-runner /api/run/{module} 은 multipart 폼필드 'input'(JSON 문자열)으로 입력을 받는다\n const params: any = { query, top_k: 1 }\n // 첨부파일(현장 시방서 PDF)이 없으면 site_spec_pdf_url 은 생략\n if (siteSpecPdfUrl) {\n params.site_spec_pdf_url = siteSpecPdfUrl\n }\n\n const form = new FormData()\n form.append('input', JSON.stringify(params))\n\n // Content-Type은 FormData가 boundary와 함께 자동 설정하므로 지정하지 않음\n const headers: any = {\n Authorization: `Basic ${Buffer.from(`${API_USERNAME}:${API_PASSWORD}`).toString('base64')}`\n }\n\n try {\n const response = await fetch(SPEC_MATCHING_API_URL, {\n method: 'POST',\n headers,\n body: form\n })\n\n const outer = await response?.json()\n\n console.log('data :', outer)\n // runner 응답: { result: <모듈 main() 반환>, exit_code, ... }, 모듈 반환: { status, result: {...} }\n const moduleReturn = outer?.result\n if (moduleReturn?.status === 'success') {\n const result = moduleReturn.result || {}\n const kcsMatch = result.kcs_matches?.[0] || null\n const siteSpecMatch = result.site_spec_matches?.[0] || null\n\n return {\n kcsCriteria: kcsMatch ? JSON.stringify(kcsMatch) : null,\n siteSpecCriteria: siteSpecMatch?.text || null\n }\n }\n } catch (error) {\n console.error('spec-matching API 호출 실패:', error)\n }\n\n return { kcsCriteria: null, siteSpecCriteria: null }\n}\n\n/**\n * 검사항목 ID 목록에 대해 KCS/현장 시방서 기준을 매칭하여 저장한다.\n * (트랜잭션 커밋 후 백그라운드에서 실행되므로 전역 repository 사용)\n */\nexport async function updateProjectChecklistCriteria(itemIds: string[], siteSpecPdfUrl?: string): Promise<void> {\n const repository = getRepository(ProjectChecklistItem)\n\n for (const id of itemIds) {\n try {\n const item = await repository.findOneBy({ id })\n if (!item) continue\n const { kcsCriteria, siteSpecCriteria } = await matchInspectionCriteria(item.name, siteSpecPdfUrl)\n await repository.update({ id }, { kcsCriteria, siteSpecCriteria })\n } catch (error) {\n console.error('project-checklist 검사 기준 매칭 실패:', error)\n }\n }\n}\n\n// 검사 기준 매칭을 백그라운드(비동기)로 트리거 — 저장 응답을 막지 않는다.\nexport function queueUpdateProjectChecklistCriteria(itemIds: string[], siteSpecPdfUrl?: string): void {\n if (!itemIds || itemIds.length === 0) return\n\n setTimeout(() => {\n updateProjectChecklistCriteria(itemIds, siteSpecPdfUrl).catch(err => {\n console.error('Background spec-matching update failed (project-checklist):', err)\n })\n }, 0)\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { ProjectChecklistItem } from './project-checklist-item';
2
+ import { ProjectChecklistItemMutation } from './project-checklist-item-mutation';
3
+ export declare const entities: (typeof ProjectChecklistItem)[];
4
+ export declare const resolvers: (typeof ProjectChecklistItemMutation)[];
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvers = exports.entities = void 0;
4
+ const project_checklist_item_1 = require("./project-checklist-item");
5
+ const project_checklist_item_query_1 = require("./project-checklist-item-query");
6
+ const project_checklist_item_mutation_1 = require("./project-checklist-item-mutation");
7
+ exports.entities = [project_checklist_item_1.ProjectChecklistItem];
8
+ exports.resolvers = [project_checklist_item_query_1.ProjectChecklistItemQuery, project_checklist_item_mutation_1.ProjectChecklistItemMutation];
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/project-checklist-item/index.ts"],"names":[],"mappings":";;;AAAA,qEAA+D;AAC/D,iFAA0E;AAC1E,uFAAgF;AAEnE,QAAA,QAAQ,GAAG,CAAC,6CAAoB,CAAC,CAAA;AACjC,QAAA,SAAS,GAAG,CAAC,wDAAyB,EAAE,8DAA4B,CAAC,CAAA","sourcesContent":["import { ProjectChecklistItem } from './project-checklist-item'\nimport { ProjectChecklistItemQuery } from './project-checklist-item-query'\nimport { ProjectChecklistItemMutation } from './project-checklist-item-mutation'\n\nexport const entities = [ProjectChecklistItem]\nexport const resolvers = [ProjectChecklistItemQuery, ProjectChecklistItemMutation]\n"]}
@@ -0,0 +1,2 @@
1
+ export declare class ProjectChecklistItemMutation {
2
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProjectChecklistItemMutation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const project_checklist_item_1 = require("./project-checklist-item");
7
+ let ProjectChecklistItemMutation = class ProjectChecklistItemMutation {
8
+ };
9
+ exports.ProjectChecklistItemMutation = ProjectChecklistItemMutation;
10
+ exports.ProjectChecklistItemMutation = ProjectChecklistItemMutation = tslib_1.__decorate([
11
+ (0, type_graphql_1.Resolver)(project_checklist_item_1.ProjectChecklistItem)
12
+ ], ProjectChecklistItemMutation);
13
+ //# sourceMappingURL=project-checklist-item-mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-checklist-item-mutation.js","sourceRoot":"","sources":["../../../server/service/project-checklist-item/project-checklist-item-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAuC;AACvC,qEAA+D;AAGxD,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;CAAG,CAAA;AAA/B,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,uBAAQ,EAAC,6CAAoB,CAAC;GAClB,4BAA4B,CAAG","sourcesContent":["import { Resolver } from 'type-graphql'\nimport { ProjectChecklistItem } from './project-checklist-item'\n\n@Resolver(ProjectChecklistItem)\nexport class ProjectChecklistItemMutation {}\n"]}
@@ -0,0 +1,5 @@
1
+ import { ListParam } from '@things-factory/shell';
2
+ import { ProjectChecklistItemList } from './project-checklist-item-type';
3
+ export declare class ProjectChecklistItemQuery {
4
+ projectChecklistItems(params: ListParam, context: ResolverContext): Promise<ProjectChecklistItemList>;
5
+ }