@dssp/project 0.0.9 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/client/pages/project/project-detail.ts +109 -30
  2. package/client/pages/project/project-list.ts +46 -10
  3. package/client/pages/project/project-schedule-list.ts +11 -3
  4. package/client/pages/project/project-schedule.ts +86 -339
  5. package/client/pages/project/project-setting-list.ts +11 -3
  6. package/client/pages/resource/construction-detail-type-popup.ts +201 -0
  7. package/client/pages/resource/construction-type-management.ts +40 -39
  8. package/client/pages/resource/inspection-drawing-type-management.ts +210 -0
  9. package/client/pages/resource/inspection-part-popup.ts +201 -0
  10. package/client/pages/resource/manager-management.ts +0 -27
  11. package/client/pages/{checklist/checklist-importer.ts → resource/resource-importer.ts} +11 -8
  12. package/client/pages/{checklist/checklist-list-page.ts → resource/resource-list-page.ts} +41 -25
  13. package/client/pages/resource/worker-type-management.ts +3 -37
  14. package/client/pages/task-resource/task-resource-importer.ts +97 -0
  15. package/client/pages/task-resource/task-resource-list-page.ts +356 -0
  16. package/client/route.ts +13 -1
  17. package/dist-client/pages/project/project-detail.d.ts +5 -1
  18. package/dist-client/pages/project/project-detail.js +123 -40
  19. package/dist-client/pages/project/project-detail.js.map +1 -1
  20. package/dist-client/pages/project/project-list.d.ts +33 -7
  21. package/dist-client/pages/project/project-list.js +26 -11
  22. package/dist-client/pages/project/project-list.js.map +1 -1
  23. package/dist-client/pages/project/project-schedule-list.js +11 -3
  24. package/dist-client/pages/project/project-schedule-list.js.map +1 -1
  25. package/dist-client/pages/project/project-schedule.d.ts +5 -1
  26. package/dist-client/pages/project/project-schedule.js +96 -337
  27. package/dist-client/pages/project/project-schedule.js.map +1 -1
  28. package/dist-client/pages/project/project-setting-list.js +11 -3
  29. package/dist-client/pages/project/project-setting-list.js.map +1 -1
  30. package/dist-client/pages/resource/construction-detail-type-popup.d.ts +2 -0
  31. package/dist-client/pages/resource/construction-detail-type-popup.js +197 -0
  32. package/dist-client/pages/resource/construction-detail-type-popup.js.map +1 -0
  33. package/dist-client/pages/resource/construction-type-management.d.ts +12 -0
  34. package/dist-client/pages/resource/construction-type-management.js +30 -38
  35. package/dist-client/pages/resource/construction-type-management.js.map +1 -1
  36. package/dist-client/pages/resource/inspection-drawing-type-management.d.ts +34 -0
  37. package/dist-client/pages/resource/inspection-drawing-type-management.js +198 -0
  38. package/dist-client/pages/resource/inspection-drawing-type-management.js.map +1 -0
  39. package/dist-client/pages/resource/inspection-part-popup.d.ts +2 -0
  40. package/dist-client/pages/resource/inspection-part-popup.js +197 -0
  41. package/dist-client/pages/resource/inspection-part-popup.js.map +1 -0
  42. package/dist-client/pages/resource/manager-management.js +0 -27
  43. package/dist-client/pages/resource/manager-management.js.map +1 -1
  44. package/dist-client/pages/{checklist/checklist-importer.d.ts → resource/resource-importer.d.ts} +2 -2
  45. package/dist-client/pages/{checklist/checklist-importer.js → resource/resource-importer.js} +10 -10
  46. package/dist-client/pages/resource/resource-importer.js.map +1 -0
  47. package/dist-client/pages/{checklist/checklist-list-page.d.ts → resource/resource-list-page.d.ts} +6 -6
  48. package/dist-client/pages/{checklist/checklist-list-page.js → resource/resource-list-page.js} +41 -32
  49. package/dist-client/pages/resource/resource-list-page.js.map +1 -0
  50. package/dist-client/pages/resource/worker-type-management.d.ts +7 -1
  51. package/dist-client/pages/resource/worker-type-management.js +3 -45
  52. package/dist-client/pages/resource/worker-type-management.js.map +1 -1
  53. package/dist-client/pages/task-resource/task-resource-importer.d.ts +10 -0
  54. package/dist-client/pages/task-resource/task-resource-importer.js +101 -0
  55. package/dist-client/pages/task-resource/task-resource-importer.js.map +1 -0
  56. package/dist-client/pages/task-resource/task-resource-list-page.d.ts +63 -0
  57. package/dist-client/pages/task-resource/task-resource-list-page.js +332 -0
  58. package/dist-client/pages/task-resource/task-resource-list-page.js.map +1 -0
  59. package/dist-client/route.d.ts +1 -1
  60. package/dist-client/route.js +9 -0
  61. package/dist-client/route.js.map +1 -1
  62. package/dist-client/tsconfig.tsbuildinfo +1 -1
  63. package/dist-server/controllers/import-task.d.ts +19 -0
  64. package/dist-server/controllers/import-task.js +104 -0
  65. package/dist-server/controllers/import-task.js.map +1 -0
  66. package/dist-server/index.d.ts +1 -0
  67. package/dist-server/index.js +1 -0
  68. package/dist-server/index.js.map +1 -1
  69. package/dist-server/migrations/1723861466413-seed-roles.d.ts +5 -0
  70. package/dist-server/migrations/1723861466413-seed-roles.js +117 -0
  71. package/dist-server/migrations/1723861466413-seed-roles.js.map +1 -0
  72. package/dist-server/migrations/1723861466414-seed-codes.d.ts +5 -0
  73. package/dist-server/migrations/1723861466414-seed-codes.js +132 -0
  74. package/dist-server/migrations/1723861466414-seed-codes.js.map +1 -0
  75. package/dist-server/migrations/1723861476419-seed-resources.d.ts +5 -0
  76. package/dist-server/migrations/1723861476419-seed-resources.js +57 -0
  77. package/dist-server/migrations/1723861476419-seed-resources.js.map +1 -0
  78. package/dist-server/migrations/1723861478420-seed-/bsample-project.d.ts +5 -0
  79. package/dist-server/migrations/1723861478420-seed-/bsample-project.js +68 -0
  80. package/dist-server/migrations/1723861478420-seed-/bsample-project.js.map +1 -0
  81. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.d.ts +5 -0
  82. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js +189 -0
  83. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js.map +1 -0
  84. package/dist-server/migrations/index.d.ts +1 -0
  85. package/dist-server/migrations/index.js +12 -0
  86. package/dist-server/migrations/index.js.map +1 -0
  87. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.d.ts +6 -0
  88. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js +56 -0
  89. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js.map +1 -0
  90. package/dist-server/service/construction-detail-type/construction-detail-type-query.d.ts +9 -0
  91. package/dist-server/service/construction-detail-type/construction-detail-type-query.js +53 -0
  92. package/dist-server/service/construction-detail-type/construction-detail-type-query.js.map +1 -0
  93. package/dist-server/service/construction-detail-type/construction-detail-type-type.d.ts +11 -0
  94. package/dist-server/service/construction-detail-type/construction-detail-type-type.js +43 -0
  95. package/dist-server/service/construction-detail-type/construction-detail-type-type.js.map +1 -0
  96. package/dist-server/service/construction-detail-type/construction-detail-type.d.ts +15 -0
  97. package/dist-server/service/construction-detail-type/construction-detail-type.js +69 -0
  98. package/dist-server/service/construction-detail-type/construction-detail-type.js.map +1 -0
  99. package/dist-server/service/construction-detail-type/index.d.ts +5 -0
  100. package/dist-server/service/construction-detail-type/index.js +9 -0
  101. package/dist-server/service/construction-detail-type/index.js.map +1 -0
  102. package/dist-server/service/construction-type/construction-type-query.d.ts +2 -0
  103. package/dist-server/service/construction-type/construction-type-query.js +14 -0
  104. package/dist-server/service/construction-type/construction-type-query.js.map +1 -1
  105. package/dist-server/service/construction-type/construction-type.d.ts +2 -0
  106. package/dist-server/service/construction-type/construction-type.js +6 -0
  107. package/dist-server/service/construction-type/construction-type.js.map +1 -1
  108. package/dist-server/service/index.d.ts +7 -5
  109. package/dist-server/service/index.js +21 -10
  110. package/dist-server/service/index.js.map +1 -1
  111. package/dist-server/service/inspection-drawing-type/index.d.ts +5 -0
  112. package/dist-server/service/inspection-drawing-type/index.js +9 -0
  113. package/dist-server/service/inspection-drawing-type/index.js.map +1 -0
  114. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.d.ts +6 -0
  115. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js +64 -0
  116. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js.map +1 -0
  117. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.d.ts +12 -0
  118. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js +83 -0
  119. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js.map +1 -0
  120. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.d.ts +10 -0
  121. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js +39 -0
  122. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js.map +1 -0
  123. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.d.ts +16 -0
  124. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js +72 -0
  125. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js.map +1 -0
  126. package/dist-server/service/inspection-part/index.d.ts +5 -0
  127. package/dist-server/service/inspection-part/index.js +9 -0
  128. package/dist-server/service/inspection-part/index.js.map +1 -0
  129. package/dist-server/service/inspection-part/inspection-part-mutation.d.ts +6 -0
  130. package/dist-server/service/inspection-part/inspection-part-mutation.js +55 -0
  131. package/dist-server/service/inspection-part/inspection-part-mutation.js.map +1 -0
  132. package/dist-server/service/inspection-part/inspection-part-query.d.ts +10 -0
  133. package/dist-server/service/inspection-part/inspection-part-query.js +66 -0
  134. package/dist-server/service/inspection-part/inspection-part-query.js.map +1 -0
  135. package/dist-server/service/inspection-part/inspection-part-type.d.ts +11 -0
  136. package/dist-server/service/inspection-part/inspection-part-type.js +43 -0
  137. package/dist-server/service/inspection-part/inspection-part-type.js.map +1 -0
  138. package/dist-server/service/inspection-part/inspection-part.d.ts +15 -0
  139. package/dist-server/service/inspection-part/inspection-part.js +69 -0
  140. package/dist-server/service/inspection-part/inspection-part.js.map +1 -0
  141. package/dist-server/service/project/index.d.ts +0 -2
  142. package/dist-server/service/project/index.js +1 -3
  143. package/dist-server/service/project/index.js.map +1 -1
  144. package/dist-server/service/project/project-query.d.ts +7 -5
  145. package/dist-server/service/project/project-query.js +34 -38
  146. package/dist-server/service/project/project-query.js.map +1 -1
  147. package/dist-server/service/project/project-type.d.ts +3 -6
  148. package/dist-server/service/project/project-type.js +25 -35
  149. package/dist-server/service/project/project-type.js.map +1 -1
  150. package/dist-server/service/project/project.d.ts +3 -2
  151. package/dist-server/service/project/project.js +10 -10
  152. package/dist-server/service/project/project.js.map +1 -1
  153. package/dist-server/service/resource/index.d.ts +6 -0
  154. package/dist-server/service/resource/index.js +10 -0
  155. package/dist-server/service/resource/index.js.map +1 -0
  156. package/dist-server/service/resource/resource-mutation.d.ts +10 -0
  157. package/dist-server/service/resource/resource-mutation.js +132 -0
  158. package/dist-server/service/resource/resource-mutation.js.map +1 -0
  159. package/dist-server/service/resource/resource-query.d.ts +11 -0
  160. package/dist-server/service/{checklist/checklist-query.js → resource/resource-query.js} +33 -38
  161. package/dist-server/service/resource/resource-query.js.map +1 -0
  162. package/dist-server/service/resource/resource-type.d.ts +17 -0
  163. package/dist-server/service/resource/resource-type.js +65 -0
  164. package/dist-server/service/resource/resource-type.js.map +1 -0
  165. package/dist-server/service/resource/resource.d.ts +24 -0
  166. package/dist-server/service/resource/resource.js +93 -0
  167. package/dist-server/service/resource/resource.js.map +1 -0
  168. package/dist-server/service/task/task-mutation.js +6 -0
  169. package/dist-server/service/task/task-mutation.js.map +1 -1
  170. package/dist-server/service/task/task-query.d.ts +9 -1
  171. package/dist-server/service/task/task-query.js +142 -20
  172. package/dist-server/service/task/task-query.js.map +1 -1
  173. package/dist-server/service/task/task-type.d.ts +13 -0
  174. package/dist-server/service/task/task-type.js +57 -12
  175. package/dist-server/service/task/task-type.js.map +1 -1
  176. package/dist-server/service/task/task.d.ts +12 -5
  177. package/dist-server/service/task/task.js +51 -16
  178. package/dist-server/service/task/task.js.map +1 -1
  179. package/dist-server/service/task-resource/index.d.ts +6 -0
  180. package/dist-server/service/task-resource/index.js +10 -0
  181. package/dist-server/service/task-resource/index.js.map +1 -0
  182. package/dist-server/service/task-resource/task-resource-mutation.d.ts +10 -0
  183. package/dist-server/service/task-resource/task-resource-mutation.js +132 -0
  184. package/dist-server/service/task-resource/task-resource-mutation.js.map +1 -0
  185. package/dist-server/service/task-resource/task-resource-query.d.ts +7 -0
  186. package/dist-server/service/task-resource/task-resource-query.js +50 -0
  187. package/dist-server/service/task-resource/task-resource-query.js.map +1 -0
  188. package/dist-server/service/task-resource/task-resource-type.d.ts +17 -0
  189. package/dist-server/service/task-resource/task-resource-type.js +65 -0
  190. package/dist-server/service/task-resource/task-resource-type.js.map +1 -0
  191. package/dist-server/service/task-resource/task-resource.d.ts +13 -0
  192. package/dist-server/service/task-resource/task-resource.js +59 -0
  193. package/dist-server/service/task-resource/task-resource.js.map +1 -0
  194. package/dist-server/tsconfig.tsbuildinfo +1 -1
  195. package/helps/project/checklist-type-detail.md +160 -0
  196. package/helps/project/checklist-type.md +160 -0
  197. package/helps/project/task-resource.md +160 -0
  198. package/package.json +11 -7
  199. package/server/controllers/import-task.ts +140 -0
  200. package/server/index.ts +1 -0
  201. package/server/migrations/1723861466413-seed-roles.ts +128 -0
  202. package/server/migrations/1723861466414-seed-codes.ts +139 -0
  203. package/server/migrations/1723861476419-seed-resources.ts +62 -0
  204. package/server/migrations/1723861478420-seed-/bsample-project.ts +87 -0
  205. package/server/migrations/1723861478421-seed-/bsample-tasks.ts +194 -0
  206. package/server/migrations/index.ts +9 -0
  207. package/server/service/construction-detail-type/construction-detail-type-mutation.ts +57 -0
  208. package/server/service/construction-detail-type/construction-detail-type-query.ts +31 -0
  209. package/server/service/construction-detail-type/construction-detail-type-type.ts +26 -0
  210. package/server/service/construction-detail-type/construction-detail-type.ts +52 -0
  211. package/server/service/construction-detail-type/index.ts +6 -0
  212. package/server/service/construction-type/construction-type-query.ts +9 -0
  213. package/server/service/construction-type/construction-type.ts +8 -2
  214. package/server/service/index.ts +24 -11
  215. package/server/service/inspection-drawing-type/index.ts +6 -0
  216. package/server/service/inspection-drawing-type/inspection-drawing-type-mutation.ts +69 -0
  217. package/server/service/inspection-drawing-type/inspection-drawing-type-query.ts +55 -0
  218. package/server/service/inspection-drawing-type/inspection-drawing-type-type.ts +23 -0
  219. package/server/service/inspection-drawing-type/inspection-drawing-type.ts +68 -0
  220. package/server/service/inspection-part/index.ts +6 -0
  221. package/server/service/inspection-part/inspection-part-mutation.ts +52 -0
  222. package/server/service/inspection-part/inspection-part-query.ts +41 -0
  223. package/server/service/inspection-part/inspection-part-type.ts +26 -0
  224. package/server/service/inspection-part/inspection-part.ts +51 -0
  225. package/server/service/project/index.ts +0 -2
  226. package/server/service/project/project-query.ts +30 -38
  227. package/server/service/project/project-type.ts +22 -27
  228. package/server/service/project/project.ts +11 -12
  229. package/server/service/resource/index.ts +7 -0
  230. package/server/service/resource/resource-mutation.ts +137 -0
  231. package/server/service/resource/resource-query.ts +50 -0
  232. package/server/service/resource/resource-type.ts +41 -0
  233. package/server/service/resource/resource.ts +82 -0
  234. package/server/service/task/task-mutation.ts +8 -9
  235. package/server/service/task/task-query.ts +135 -22
  236. package/server/service/task/task-type.ts +41 -15
  237. package/server/service/task/task.ts +44 -15
  238. package/server/service/task-resource/index.ts +7 -0
  239. package/server/service/task-resource/task-resource-mutation.ts +140 -0
  240. package/server/service/task-resource/task-resource-query.ts +36 -0
  241. package/server/service/task-resource/task-resource-type.ts +41 -0
  242. package/server/service/task-resource/task-resource.ts +51 -0
  243. package/things-factory.config.js +1 -0
  244. package/translations/en.json +15 -1
  245. package/translations/ko.json +9 -5
  246. package/dist-client/pages/checklist/checklist-importer.js.map +0 -1
  247. package/dist-client/pages/checklist/checklist-list-page.js.map +0 -1
  248. package/dist-server/service/check-item/check-item-mutation.d.ts +0 -10
  249. package/dist-server/service/check-item/check-item-mutation.js +0 -129
  250. package/dist-server/service/check-item/check-item-mutation.js.map +0 -1
  251. package/dist-server/service/check-item/check-item-query.d.ts +0 -11
  252. package/dist-server/service/check-item/check-item-query.js +0 -86
  253. package/dist-server/service/check-item/check-item-query.js.map +0 -1
  254. package/dist-server/service/check-item/check-item-type.d.ts +0 -18
  255. package/dist-server/service/check-item/check-item-type.js +0 -69
  256. package/dist-server/service/check-item/check-item-type.js.map +0 -1
  257. package/dist-server/service/check-item/check-item.d.ts +0 -18
  258. package/dist-server/service/check-item/check-item.js +0 -84
  259. package/dist-server/service/check-item/check-item.js.map +0 -1
  260. package/dist-server/service/check-item/index.d.ts +0 -5
  261. package/dist-server/service/check-item/index.js +0 -9
  262. package/dist-server/service/check-item/index.js.map +0 -1
  263. package/dist-server/service/checklist/checklist-mutation.d.ts +0 -10
  264. package/dist-server/service/checklist/checklist-mutation.js +0 -129
  265. package/dist-server/service/checklist/checklist-mutation.js.map +0 -1
  266. package/dist-server/service/checklist/checklist-query.d.ts +0 -11
  267. package/dist-server/service/checklist/checklist-query.js.map +0 -1
  268. package/dist-server/service/checklist/checklist-type.d.ts +0 -18
  269. package/dist-server/service/checklist/checklist-type.js +0 -69
  270. package/dist-server/service/checklist/checklist-type.js.map +0 -1
  271. package/dist-server/service/checklist/checklist.d.ts +0 -26
  272. package/dist-server/service/checklist/checklist.js +0 -120
  273. package/dist-server/service/checklist/checklist.js.map +0 -1
  274. package/dist-server/service/checklist/index.d.ts +0 -5
  275. package/dist-server/service/checklist/index.js +0 -9
  276. package/dist-server/service/checklist/index.js.map +0 -1
  277. package/server/service/check-item/check-item-mutation.ts +0 -142
  278. package/server/service/check-item/check-item-query.ts +0 -56
  279. package/server/service/check-item/check-item-type.ts +0 -49
  280. package/server/service/check-item/check-item.ts +0 -74
  281. package/server/service/check-item/index.ts +0 -6
  282. package/server/service/checklist/checklist-mutation.ts +0 -142
  283. package/server/service/checklist/checklist-query.ts +0 -56
  284. package/server/service/checklist/checklist-type.ts +0 -49
  285. package/server/service/checklist/checklist.ts +0 -105
  286. package/server/service/checklist/index.ts +0 -6
@@ -0,0 +1,128 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm'
2
+
3
+ import { logger } from '@things-factory/env'
4
+ import { Domain, getRepository } from '@things-factory/shell'
5
+ import { Privilege, Role, User } from '@things-factory/auth-base'
6
+
7
+ const SEED_ROLES = [
8
+ {
9
+ name: '감리사',
10
+ description: '감리사',
11
+ privileges: [
12
+ {
13
+ name: 'query',
14
+ category: 'board'
15
+ },
16
+ {
17
+ name: 'query',
18
+ category: 'attachment'
19
+ }
20
+ ]
21
+ },
22
+ {
23
+ name: '설계사',
24
+ description: '설계사',
25
+ privileges: [
26
+ {
27
+ name: 'query',
28
+ category: 'board'
29
+ },
30
+ {
31
+ name: 'query',
32
+ category: 'attachment'
33
+ }
34
+ ]
35
+ },
36
+ {
37
+ name: '현장관리자',
38
+ description: '현장관리자',
39
+ privileges: [
40
+ {
41
+ name: 'query',
42
+ category: 'board'
43
+ },
44
+ {
45
+ name: 'query',
46
+ category: 'attachment'
47
+ }
48
+ ]
49
+ },
50
+ {
51
+ name: '시공자',
52
+ description: '시공자',
53
+ privileges: [
54
+ {
55
+ name: 'query',
56
+ category: 'board'
57
+ },
58
+ {
59
+ name: 'query',
60
+ category: 'attachment'
61
+ }
62
+ ]
63
+ }
64
+ ]
65
+
66
+ export class Roles1723861466413 implements MigrationInterface {
67
+ public async up(queryRunner: QueryRunner): Promise<void> {
68
+ const domainRepository = getRepository(Domain)
69
+ const roleRepository = getRepository(Role)
70
+ const userRepository = getRepository(User)
71
+ const privilegeRepository = getRepository(Privilege)
72
+
73
+ const domain: Domain = await domainRepository.findOne({
74
+ where: { name: 'SYSTEM' }
75
+ })
76
+
77
+ const admin: User = await userRepository.findOne({
78
+ where: { email: 'admin@hatiolab.com' }
79
+ })
80
+
81
+ try {
82
+ for (let i = 0; i < SEED_ROLES.length; i++) {
83
+ const { name, description, privileges } = SEED_ROLES[i]
84
+
85
+ const role = await roleRepository.save({
86
+ domain,
87
+ name,
88
+ description,
89
+ creator: admin,
90
+ updater: admin
91
+ })
92
+
93
+ const ps = []
94
+
95
+ for (const privilege of privileges) {
96
+ const { name, category } = privilege
97
+ ps.push(
98
+ await privilegeRepository.findOne({
99
+ where: {
100
+ name,
101
+ category
102
+ }
103
+ })
104
+ )
105
+ }
106
+
107
+ role.privileges = ps
108
+
109
+ await roleRepository.save(role)
110
+ }
111
+ } catch (e) {
112
+ logger.error(e)
113
+ }
114
+ }
115
+
116
+ public async down(queryRunner: QueryRunner): Promise<void> {
117
+ const domainRepository = getRepository(Domain)
118
+ const roleRepository = getRepository(Role)
119
+
120
+ const domain: Domain = await domainRepository.findOne({
121
+ where: { name: 'SYSTEM' }
122
+ })
123
+
124
+ SEED_ROLES.reverse().forEach(async ({ name }) => {
125
+ await roleRepository.delete({ name, domain: { id: domain.id } })
126
+ })
127
+ }
128
+ }
@@ -0,0 +1,139 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm'
2
+
3
+ import { logger } from '@things-factory/env'
4
+ import { Domain, getRepository } from '@things-factory/shell'
5
+ import { User } from '@things-factory/auth-base'
6
+ import { CommonCode, CommonCodeDetail } from '@things-factory/code-base'
7
+
8
+ const SEED_COMMON_CODES = [
9
+ {
10
+ name: 'EMPLOYEE_TYPE',
11
+ description: '직원 유형',
12
+ details: [
13
+ {
14
+ name: 'FULLTIME',
15
+ description: '풀타임 정규직',
16
+ labels: null,
17
+ rank: 1
18
+ },
19
+ {
20
+ name: 'PARTTIME',
21
+ description: '파트타임 정규직',
22
+ labels: null,
23
+ rank: 2
24
+ },
25
+ {
26
+ name: 'TEMPORARY',
27
+ description: '임시직',
28
+ labels: null,
29
+ rank: 3
30
+ }
31
+ ]
32
+ },
33
+ {
34
+ name: 'JOB_POSITION',
35
+ description: '직급',
36
+ details: [
37
+ {
38
+ name: '임원',
39
+ description: '임원',
40
+ labels: null,
41
+ rank: 1
42
+ },
43
+ {
44
+ name: '직원',
45
+ description: '직원',
46
+ labels: null,
47
+ rank: 2
48
+ }
49
+ ]
50
+ },
51
+ {
52
+ name: 'JOB_RESPONSIBILITY',
53
+ description: '직책',
54
+ details: [
55
+ {
56
+ name: '감리사',
57
+ description: '감리사',
58
+ labels: null,
59
+ rank: 1
60
+ },
61
+ {
62
+ name: '설계사',
63
+ description: '설계사',
64
+ labels: null,
65
+ rank: 2
66
+ },
67
+ {
68
+ name: '현장관리자',
69
+ description: '현장관리자',
70
+ labels: null,
71
+ rank: 3
72
+ },
73
+ {
74
+ name: '시공자',
75
+ description: '시공자',
76
+ labels: null,
77
+ rank: 4
78
+ }
79
+ ]
80
+ }
81
+ ]
82
+
83
+ export class SeedCodes1723861466414 implements MigrationInterface {
84
+ public async up(queryRunner: QueryRunner): Promise<void> {
85
+ const commonCodeRepository = getRepository(CommonCode)
86
+ const commonCodeDetailRepository = getRepository(CommonCodeDetail)
87
+ const domainRepository = getRepository(Domain)
88
+ const userRepository = getRepository(User)
89
+
90
+ const domain: Domain = await domainRepository.findOne({
91
+ where: { name: 'SYSTEM' }
92
+ })
93
+ const user = await userRepository.findOne({ where: { id: domain.owner } })
94
+
95
+ try {
96
+ for (let i = 0; i < SEED_COMMON_CODES.length; i++) {
97
+ const { name, description, details } = SEED_COMMON_CODES[i]
98
+
99
+ const commonCode = await commonCodeRepository.save({
100
+ domain,
101
+ name,
102
+ description,
103
+ creator: user,
104
+ updater: user
105
+ })
106
+
107
+ for (const commonCodeDetail of details) {
108
+ const { name, description, labels, rank } = commonCodeDetail
109
+
110
+ await commonCodeDetailRepository.save({
111
+ domain,
112
+ commonCode,
113
+ name,
114
+ description,
115
+ labels,
116
+ rank
117
+ })
118
+ }
119
+ }
120
+ } catch (e) {
121
+ logger.error(e)
122
+ }
123
+ }
124
+
125
+ public async down(queryRunner: QueryRunner): Promise<void> {
126
+ const domainRepository = getRepository(Domain)
127
+
128
+ const domain: Domain = await domainRepository.findOne({
129
+ where: { name: 'SYSTEM' }
130
+ })
131
+
132
+ const repository = getRepository(CommonCode)
133
+
134
+ SEED_COMMON_CODES.reverse().forEach(async commonCode => {
135
+ let record = await repository.findOne({ where: { name: commonCode.name, domain: { id: domain.id } } })
136
+ record && (await repository.remove(record))
137
+ })
138
+ }
139
+ }
@@ -0,0 +1,62 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm'
2
+
3
+ import { logger } from '@things-factory/env'
4
+ import { Domain, getRepository } from '@things-factory/shell'
5
+ import { User } from '@things-factory/auth-base'
6
+ import { ResourceType, Resource } from '../service/resource/resource'
7
+
8
+ const SEED_RESOURCES = [
9
+ { name: '철근/형틀공', type: ResourceType.HUMAN, unit: 'man/day' },
10
+ { name: '방수공', type: ResourceType.HUMAN, unit: 'man/day' },
11
+ { name: '목공', type: ResourceType.HUMAN, unit: 'man/day' },
12
+ { name: '금속공', type: ResourceType.HUMAN, unit: 'man/day' },
13
+ { name: '타일공', type: ResourceType.HUMAN, unit: 'man/day' },
14
+ { name: '창호공', type: ResourceType.HUMAN, unit: 'man/day' },
15
+ { name: '도배공', type: ResourceType.HUMAN, unit: 'man/day' },
16
+ { name: '조적공', type: ResourceType.HUMAN, unit: 'man/day' }
17
+ ]
18
+
19
+ export class SeedResources1723861476419 implements MigrationInterface {
20
+ public async up(queryRunner: QueryRunner): Promise<void> {
21
+ const resourceRepository = getRepository(Resource)
22
+ const domainRepository = getRepository(Domain)
23
+ const userRepository = getRepository(User)
24
+
25
+ const domain: Domain = await domainRepository.findOne({
26
+ where: { name: 'SYSTEM' }
27
+ })
28
+ const user = await userRepository.findOne({ where: { id: domain.owner } })
29
+
30
+ try {
31
+ for (let i = 0; i < SEED_RESOURCES.length; i++) {
32
+ const { name, type, unit } = SEED_RESOURCES[i]
33
+
34
+ const resource = await resourceRepository.save({
35
+ domain,
36
+ name,
37
+ type,
38
+ unit,
39
+ creator: user,
40
+ updater: user
41
+ })
42
+ }
43
+ } catch (e) {
44
+ logger.error(e)
45
+ }
46
+ }
47
+
48
+ public async down(queryRunner: QueryRunner): Promise<void> {
49
+ const domainRepository = getRepository(Domain)
50
+
51
+ const domain: Domain = await domainRepository.findOne({
52
+ where: { name: 'SYSTEM' }
53
+ })
54
+
55
+ const repository = getRepository(Resource)
56
+
57
+ SEED_RESOURCES.reverse().forEach(async resource => {
58
+ let record = await repository.findOne({ where: { name: resource.name, domain: { id: domain.id } } })
59
+ record && (await repository.remove(record))
60
+ })
61
+ }
62
+ }
@@ -0,0 +1,87 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm'
2
+
3
+ import { logger } from '@things-factory/env'
4
+ import { Domain, getRepository } from '@things-factory/shell'
5
+ import { User } from '@things-factory/auth-base'
6
+ import { BuildingComplex } from '@dssp/building-complex'
7
+ import { Project, ProjectStatus } from '../service/project/project'
8
+
9
+ const SEED_SAMPLE_BUILDING_COMPLEX = {
10
+ address: '서울시 마포구 공덕동 아파트 17번지',
11
+ longitude: 37.548239525193,
12
+ latitude: 126.95315808838,
13
+ clientCompany: 'A 고객',
14
+ constructionCompany: 'B 건설',
15
+ supervisoryComapny: 'C 감리',
16
+ designCompany: 'D 디자인',
17
+ constructionType: '아파트',
18
+ etc: '',
19
+ householdCount: 500,
20
+ buildingCount: 5,
21
+ notice: '',
22
+ planXScale: 20,
23
+ planYScale: 20,
24
+ area: 22700
25
+ }
26
+
27
+ const SEED_SAMPLE_PROJECT = {
28
+ name: '서울시 마포구 공덕동 아파트 신축공사',
29
+ state: ProjectStatus.ONGOING,
30
+ startDate: '2024-01-01',
31
+ endDate: '2025-12-31',
32
+ totalProgress: 40,
33
+ weeklyProgress: 37
34
+ }
35
+
36
+ export class SeedSampleProject1723861478420 implements MigrationInterface {
37
+ public async up(queryRunner: QueryRunner): Promise<void> {
38
+ const buildingRepository = getRepository(BuildingComplex)
39
+ const projectRepository = getRepository(Project)
40
+ const domainRepository = getRepository(Domain)
41
+ const userRepository = getRepository(User)
42
+
43
+ const domain: Domain = await domainRepository.findOne({
44
+ where: { name: 'SYSTEM' }
45
+ })
46
+ const user = await userRepository.findOne({ where: { id: domain.owner } })
47
+
48
+ try {
49
+ const buildingComplex = await buildingRepository.save({
50
+ domain,
51
+ ...SEED_SAMPLE_BUILDING_COMPLEX,
52
+ creator: user,
53
+ updater: user
54
+ })
55
+
56
+ const project = await projectRepository.save({
57
+ domain,
58
+ ...SEED_SAMPLE_PROJECT,
59
+ buildingComplex,
60
+ creator: user,
61
+ updater: user
62
+ })
63
+ } catch (e) {
64
+ logger.error(e)
65
+ }
66
+ }
67
+
68
+ public async down(queryRunner: QueryRunner): Promise<void> {
69
+ const domainRepository = getRepository(Domain)
70
+
71
+ const domain: Domain = await domainRepository.findOne({
72
+ where: { name: 'SYSTEM' }
73
+ })
74
+
75
+ const repository = getRepository(Project)
76
+
77
+ let project = await repository.findOne({ where: { name: SEED_SAMPLE_PROJECT.name, domain: { id: domain.id } } })
78
+ project && (await repository.remove(project))
79
+
80
+ const buildRepository = getRepository(BuildingComplex)
81
+
82
+ let buildingComplex = await buildRepository.findOne({
83
+ where: { address: SEED_SAMPLE_BUILDING_COMPLEX.address, domain: { id: domain.id } }
84
+ })
85
+ buildingComplex && (await buildRepository.remove(buildingComplex))
86
+ }
87
+ }
@@ -0,0 +1,194 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm'
2
+
3
+ import { logger } from '@things-factory/env'
4
+ import { Domain, getRepository } from '@things-factory/shell'
5
+ import { User } from '@things-factory/auth-base'
6
+ import { Project } from '../service/project/project'
7
+
8
+ import { importTasks } from '../controllers/import-task'
9
+
10
+ const SEED_SAMPLE_PROJECT = {
11
+ name: '서울시 마포구 공덕동 아파트 신축공사'
12
+ }
13
+
14
+ const SEED_SAMPLE_TASKS = [
15
+ {
16
+ code: '골조공사',
17
+ title: '골조공사',
18
+ progress: 60,
19
+ children: [
20
+ {
21
+ code: '골조공사:기초공사',
22
+ title: '기초공사',
23
+ startDate: '2024-01-01',
24
+ duration: 3,
25
+ resources: [{ type: '철근/형틀공', allocated: 6 }]
26
+ },
27
+ {
28
+ code: '골조공사:1층',
29
+ title: '1층',
30
+ duration: 10,
31
+ dependsOn: '골조공사:기초공사',
32
+ resources: [{ type: '철근/형틀공', allocated: 6 }]
33
+ },
34
+ {
35
+ code: '골조공사:2층',
36
+ title: '2층',
37
+ duration: 10,
38
+ dependsOn: '골조공사:1층',
39
+ resources: [{ type: '철근/형틀공', allocated: 6 }]
40
+ },
41
+ {
42
+ code: '골조공사:옥탑공사',
43
+ title: '옥탑공사',
44
+ duration: 6,
45
+ dependsOn: '골조공사:2층',
46
+ resources: [{ type: '철근/형틀공', allocated: 6 }]
47
+ }
48
+ ]
49
+ },
50
+ {
51
+ code: '단열공사',
52
+ title: '단열공사',
53
+ children: [
54
+ {
55
+ code: '단열공사:단열재부착',
56
+ title: '단열재부착',
57
+ startDate: '2024-01-12',
58
+ duration: 2
59
+ }
60
+ ]
61
+ },
62
+ {
63
+ code: '조적공사',
64
+ title: '조적공사',
65
+ children: [
66
+ {
67
+ code: '조적공사:조적시공',
68
+ title: '조적시공',
69
+ startDate: '2024-01-12',
70
+ duration: 3
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ code: '창호공사',
76
+ title: '창호공사',
77
+ progress: 60,
78
+ children: [
79
+ {
80
+ code: '창호공사:실측및발주',
81
+ title: '실측및발주',
82
+ dependsOn: '골조공사:1층',
83
+ duration: 1
84
+ },
85
+ {
86
+ code: '창호공사:창호 프레임 설치',
87
+ title: '창호 프레임 설치',
88
+ duration: 3,
89
+ dependsOn: '창호공사:실측및발주',
90
+ resources: [{ type: '창호공', allocated: 4 }]
91
+ },
92
+ {
93
+ code: '창호공사:창호 유리 설치',
94
+ title: '창호 유리 설치',
95
+ duration: 2,
96
+ dependsOn: '창호공사:창호 프레임 설치',
97
+ resources: [{ type: '창호공', allocated: 2 }]
98
+ }
99
+ ]
100
+ },
101
+ {
102
+ code: '방수공사',
103
+ title: '방수공사',
104
+ progress: 60,
105
+ children: [
106
+ {
107
+ code: '방수공사:골조 조인트부분 방수',
108
+ title: '골조 조인트부분 방수',
109
+ startDate: '2024-01-01',
110
+ duration: 3,
111
+ resources: [{ type: '방수공', allocated: 1 }]
112
+ },
113
+ {
114
+ code: '방수공사:개구부 주변 방수',
115
+ title: '개구부 주변 방수',
116
+ duration: 2,
117
+ dependsOn: '방수공사:골조 조인트부분 방수',
118
+ resources: [{ type: '방수공', allocated: 1 }]
119
+ },
120
+ {
121
+ code: '방수공사:테라스 방수',
122
+ title: '테라스 방수',
123
+ duration: 5,
124
+ dependsOn: '방수공사:개구부 주변 방수',
125
+ resources: [{ type: '방수공', allocated: 1 }]
126
+ },
127
+ {
128
+ code: '방수공사:화장실/다용도실 방수',
129
+ title: '화장실/다용도실 방수',
130
+ duration: 5,
131
+ dependsOn: '방수공사:테라스 방수',
132
+ resources: [{ type: '방수공', allocated: 1 }]
133
+ }
134
+ ]
135
+ },
136
+ {
137
+ code: '내부목공사',
138
+ title: '내부목공사',
139
+ progress: 60,
140
+ children: [
141
+ {
142
+ code: '내부목공사:벽체다루끼/경량스터드',
143
+ title: '벽체다루끼/경량스터드',
144
+ startDate: '2024-01-20',
145
+ duration: 5,
146
+ resources: [{ type: '목공', allocated: 4 }]
147
+ },
148
+ {
149
+ code: '내부목공사:벽체 석고보드 취부',
150
+ title: '벽체 석고보드 취부',
151
+ duration: 5,
152
+ dependsOn: '내부목공사:벽체다루끼/경량스터드',
153
+ resources: [{ type: '목공', allocated: 4 }]
154
+ },
155
+ {
156
+ code: '내부목공사:ABC',
157
+ title: 'ABC',
158
+ duration: 4,
159
+ dependsOn: '내부목공사:벽체 석고보드 취부',
160
+ resources: [{ type: '목공', allocated: 4 }]
161
+ }
162
+ ]
163
+ }
164
+ ]
165
+
166
+ export class SeedSampleTasks1723861478421 implements MigrationInterface {
167
+ public async up(queryRunner: QueryRunner): Promise<void> {
168
+ const projectRepository = getRepository(Project)
169
+ const domainRepository = getRepository(Domain)
170
+ const userRepository = getRepository(User)
171
+
172
+ const domain: Domain = await domainRepository.findOne({
173
+ where: { name: 'SYSTEM' }
174
+ })
175
+ const user = await userRepository.findOne({ where: { id: domain.owner } })
176
+ const project = await projectRepository.findOne({ where: { domain: { id: domain.id }, name: SEED_SAMPLE_PROJECT.name } })
177
+
178
+ try {
179
+ await importTasks(project, SEED_SAMPLE_TASKS, { state: { domain, user } as any })
180
+ } catch (e) {
181
+ logger.error(e)
182
+ }
183
+ }
184
+
185
+ public async down(queryRunner: QueryRunner): Promise<void> {
186
+ const domainRepository = getRepository(Domain)
187
+
188
+ const domain: Domain = await domainRepository.findOne({
189
+ where: { name: 'SYSTEM' }
190
+ })
191
+
192
+ const repository = getRepository(Project)
193
+ }
194
+ }
@@ -0,0 +1,9 @@
1
+ const glob = require('glob')
2
+ const path = require('path')
3
+
4
+ export var migrations = []
5
+
6
+ glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {
7
+ if (file.indexOf('index.js') !== -1) return
8
+ migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])
9
+ })
@@ -0,0 +1,57 @@
1
+ import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
2
+ import { In } from 'typeorm'
3
+ import { deleteAttachmentsByRef } from '@things-factory/attachment-base'
4
+ import { ConstructionDetailType } from './construction-detail-type'
5
+ import { ConstructionDetailTypePatch } from './construction-detail-type-type'
6
+ import { ConstructionType } from '../construction-type/construction-type'
7
+
8
+ @Resolver(ConstructionDetailType)
9
+ export class ConstructionDetailTypeMutation {
10
+ @Directive('@transaction')
11
+ @Mutation(returns => [ConstructionDetailType], { description: "To modify multiple ConstructionDetailTypes' information" })
12
+ async updateMultipleConstructionDetailType(
13
+ @Arg('patches', type => [ConstructionDetailTypePatch]) patches: ConstructionDetailTypePatch[],
14
+ @Arg('constructionTypeId') constructionTypeId: string,
15
+ @Ctx() context: ResolverContext
16
+ ): Promise<ConstructionDetailType[]> {
17
+ const { domain, user, tx } = context.state
18
+
19
+ let results = []
20
+
21
+ const constructionDetailTypeRepo = tx.getRepository(ConstructionDetailType)
22
+ const constructionType = await tx.getRepository(ConstructionType).findOneBy({ id: constructionTypeId })
23
+
24
+ await constructionDetailTypeRepo.delete({ constructionType: { id: constructionTypeId } })
25
+
26
+ for (let i = 0; i < patches.length; i++) {
27
+ const result = await constructionDetailTypeRepo.save({
28
+ ...patches[i],
29
+ sequence: i,
30
+ constructionType,
31
+ creator: user,
32
+ updater: user
33
+ })
34
+
35
+ results.push({ ...result, cuFlag: '+' })
36
+ }
37
+
38
+ return results
39
+ }
40
+
41
+ @Directive('@transaction')
42
+ @Mutation(returns => Boolean, { description: 'To delete multiple ConstructionDetailTypes' })
43
+ async deleteConstructionDetailTypes(
44
+ @Arg('ids', type => [String]) ids: string[],
45
+ @Ctx() context: ResolverContext
46
+ ): Promise<boolean> {
47
+ const { domain, tx } = context.state
48
+
49
+ await tx.getRepository(ConstructionDetailType).delete({
50
+ id: In(ids)
51
+ })
52
+
53
+ await deleteAttachmentsByRef(null, { refBys: ids }, context)
54
+
55
+ return true
56
+ }
57
+ }