@dssp/project 1.0.0-alpha.0 → 1.0.0-alpha.14

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 (259) hide show
  1. package/dist-client/pages/lib/select2-component.js +1 -1
  2. package/dist-client/pages/lib/select2-component.js.map +1 -1
  3. package/dist-client/pages/lib/waether.d.ts +2 -1
  4. package/dist-client/pages/lib/waether.js +7 -3
  5. package/dist-client/pages/lib/waether.js.map +1 -1
  6. package/dist-client/pages/project/component/project-update-header.js.map +1 -1
  7. package/dist-client/pages/project/popup/checklist/attachment-list-popup.d.ts +1 -0
  8. package/dist-client/pages/project/popup/checklist/attachment-list-popup.js +309 -0
  9. package/dist-client/pages/project/popup/checklist/attachment-list-popup.js.map +1 -0
  10. package/dist-client/pages/project/popup/checklist/comment-list-popup.d.ts +1 -0
  11. package/dist-client/pages/project/popup/checklist/comment-list-popup.js +357 -0
  12. package/dist-client/pages/project/popup/checklist/comment-list-popup.js.map +1 -0
  13. package/dist-client/pages/project/popup/checklist/schedule-checklist-create-popup.d.ts +2 -0
  14. package/dist-client/pages/project/popup/checklist/schedule-checklist-create-popup.js +684 -0
  15. package/dist-client/pages/project/popup/checklist/schedule-checklist-create-popup.js.map +1 -0
  16. package/dist-client/pages/project/popup/checklist/schedule-checklist-view.d.ts +37 -0
  17. package/dist-client/pages/project/popup/checklist/schedule-checklist-view.js +627 -0
  18. package/dist-client/pages/project/popup/checklist/schedule-checklist-view.js.map +1 -0
  19. package/dist-client/pages/project/popup/popup-plan-export.d.ts +10 -0
  20. package/dist-client/pages/project/popup/popup-plan-export.js +236 -0
  21. package/dist-client/pages/project/popup/popup-plan-export.js.map +1 -0
  22. package/dist-client/pages/project/popup/popup-plan-upload.d.ts +3 -0
  23. package/dist-client/pages/project/popup/popup-plan-upload.js +130 -4
  24. package/dist-client/pages/project/popup/popup-plan-upload.js.map +1 -1
  25. package/dist-client/pages/project/popup/popup-project-create.js.map +1 -1
  26. package/dist-client/pages/project/popup/popup-schedule-upload.js.map +1 -1
  27. package/dist-client/pages/project/project-completed-list.js +0 -1
  28. package/dist-client/pages/project/project-completed-list.js.map +1 -1
  29. package/dist-client/pages/project/project-detail.d.ts +2 -1
  30. package/dist-client/pages/project/project-detail.js +269 -80
  31. package/dist-client/pages/project/project-detail.js.map +1 -1
  32. package/dist-client/pages/project/project-list.d.ts +12 -0
  33. package/dist-client/pages/project/project-list.js +15 -8
  34. package/dist-client/pages/project/project-list.js.map +1 -1
  35. package/dist-client/pages/project/project-plan-management.js +29 -13
  36. package/dist-client/pages/project/project-plan-management.js.map +1 -1
  37. package/dist-client/pages/project/project-schedule-list.js.map +1 -1
  38. package/dist-client/pages/project/project-schedule.d.ts +2 -0
  39. package/dist-client/pages/project/project-schedule.js +16 -1
  40. package/dist-client/pages/project/project-schedule.js.map +1 -1
  41. package/dist-client/pages/project/project-setting-list.js +25 -24
  42. package/dist-client/pages/project/project-setting-list.js.map +1 -1
  43. package/dist-client/pages/project/project-update.d.ts +1 -0
  44. package/dist-client/pages/project/project-update.js +128 -17
  45. package/dist-client/pages/project/project-update.js.map +1 -1
  46. package/dist-client/pages/resource/construction-detail-type-popup.js.map +1 -1
  47. package/dist-client/pages/resource/construction-type-management.js.map +1 -1
  48. package/dist-client/pages/resource/inspection-drawing-type-management.js.map +1 -1
  49. package/dist-client/pages/resource/inspection-part-popup.js.map +1 -1
  50. package/dist-client/pages/resource/resource-importer.js.map +1 -1
  51. package/dist-client/pages/resource/resource-list-page.js.map +1 -1
  52. package/dist-client/pages/resource/worker-type-management.js.map +1 -1
  53. package/dist-client/pages/task/task-importer.js.map +1 -1
  54. package/dist-client/pages/task/task-list-page.js.map +1 -1
  55. package/dist-client/pages/task-resource/task-resource-importer.js.map +1 -1
  56. package/dist-client/pages/task-resource/task-resource-list-page.js.map +1 -1
  57. package/dist-client/route.js.map +1 -1
  58. package/dist-client/tsconfig.tsbuildinfo +1 -1
  59. package/dist-server/controllers/export-tasks.js +1 -2
  60. package/dist-server/controllers/export-tasks.js.map +1 -1
  61. package/dist-server/controllers/import-task.js +1 -2
  62. package/dist-server/controllers/import-task.js.map +1 -1
  63. package/dist-server/controllers/parse-excel.d.ts +0 -2
  64. package/dist-server/controllers/parse-excel.js +1 -2
  65. package/dist-server/controllers/parse-excel.js.map +1 -1
  66. package/dist-server/middlewares/index.js +1 -2
  67. package/dist-server/middlewares/index.js.map +1 -1
  68. package/dist-server/migrations/1723861466413-seed-roles.js.map +1 -1
  69. package/dist-server/migrations/1723861466414-seed-codes.js.map +1 -1
  70. package/dist-server/migrations/1723861476419-seed-resources.js.map +1 -1
  71. package/dist-server/migrations/1723861478420-seed-/bsample-project.js.map +1 -1
  72. package/dist-server/migrations/1723861478421-seed-/bsample-tasks.js.map +1 -1
  73. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js +2 -2
  74. package/dist-server/service/construction-detail-type/construction-detail-type-mutation.js.map +1 -1
  75. package/dist-server/service/construction-detail-type/construction-detail-type-query.js +2 -2
  76. package/dist-server/service/construction-detail-type/construction-detail-type-query.js.map +1 -1
  77. package/dist-server/service/construction-detail-type/construction-detail-type-type.js +4 -4
  78. package/dist-server/service/construction-detail-type/construction-detail-type-type.js.map +1 -1
  79. package/dist-server/service/construction-detail-type/construction-detail-type.js +2 -2
  80. package/dist-server/service/construction-detail-type/construction-detail-type.js.map +1 -1
  81. package/dist-server/service/construction-type/construction-type-mutation.js +2 -2
  82. package/dist-server/service/construction-type/construction-type-mutation.js.map +1 -1
  83. package/dist-server/service/construction-type/construction-type-query.js +2 -2
  84. package/dist-server/service/construction-type/construction-type-query.js.map +1 -1
  85. package/dist-server/service/construction-type/construction-type-type.js +4 -4
  86. package/dist-server/service/construction-type/construction-type-type.js.map +1 -1
  87. package/dist-server/service/construction-type/construction-type.js +2 -2
  88. package/dist-server/service/construction-type/construction-type.js.map +1 -1
  89. package/dist-server/service/index.d.ts +1 -0
  90. package/dist-server/service/index.js +1 -0
  91. package/dist-server/service/index.js.map +1 -1
  92. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js +2 -2
  93. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-mutation.js.map +1 -1
  94. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js +2 -2
  95. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-query.js.map +1 -1
  96. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js +4 -4
  97. package/dist-server/service/inspection-drawing-type/inspection-drawing-type-type.js.map +1 -1
  98. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js +2 -2
  99. package/dist-server/service/inspection-drawing-type/inspection-drawing-type.js.map +1 -1
  100. package/dist-server/service/inspection-part/inspection-part-mutation.js +2 -2
  101. package/dist-server/service/inspection-part/inspection-part-mutation.js.map +1 -1
  102. package/dist-server/service/inspection-part/inspection-part-query.js +2 -2
  103. package/dist-server/service/inspection-part/inspection-part-query.js.map +1 -1
  104. package/dist-server/service/inspection-part/inspection-part-type.js +4 -4
  105. package/dist-server/service/inspection-part/inspection-part-type.js.map +1 -1
  106. package/dist-server/service/inspection-part/inspection-part.js +2 -2
  107. package/dist-server/service/inspection-part/inspection-part.js.map +1 -1
  108. package/dist-server/service/manager/index.d.ts +2 -0
  109. package/dist-server/service/manager/index.js +3 -1
  110. package/dist-server/service/manager/index.js.map +1 -1
  111. package/dist-server/service/manager/manager-mutation.js +2 -2
  112. package/dist-server/service/manager/manager-mutation.js.map +1 -1
  113. package/dist-server/service/manager/manager-query.js +3 -3
  114. package/dist-server/service/manager/manager-query.js.map +1 -1
  115. package/dist-server/service/manager/manager-type.js +4 -4
  116. package/dist-server/service/manager/manager-type.js.map +1 -1
  117. package/dist-server/service/manager/manager.js +2 -2
  118. package/dist-server/service/manager/manager.js.map +1 -1
  119. package/dist-server/service/project/project-mutation.d.ts +1 -0
  120. package/dist-server/service/project/project-mutation.js +109 -15
  121. package/dist-server/service/project/project-mutation.js.map +1 -1
  122. package/dist-server/service/project/project-query.d.ts +1 -0
  123. package/dist-server/service/project/project-query.js +14 -3
  124. package/dist-server/service/project/project-query.js.map +1 -1
  125. package/dist-server/service/project/project-type.d.ts +1 -0
  126. package/dist-server/service/project/project-type.js +13 -9
  127. package/dist-server/service/project/project-type.js.map +1 -1
  128. package/dist-server/service/project/project.d.ts +6 -0
  129. package/dist-server/service/project/project.js +15 -4
  130. package/dist-server/service/project/project.js.map +1 -1
  131. package/dist-server/service/resource/resource-mutation.js +2 -2
  132. package/dist-server/service/resource/resource-mutation.js.map +1 -1
  133. package/dist-server/service/resource/resource-query.js +2 -2
  134. package/dist-server/service/resource/resource-query.js.map +1 -1
  135. package/dist-server/service/resource/resource-type.js +6 -6
  136. package/dist-server/service/resource/resource-type.js.map +1 -1
  137. package/dist-server/service/resource/resource.js +3 -3
  138. package/dist-server/service/resource/resource.js.map +1 -1
  139. package/dist-server/service/task/task-mutation.js +2 -2
  140. package/dist-server/service/task/task-mutation.js.map +1 -1
  141. package/dist-server/service/task/task-query.js +4 -4
  142. package/dist-server/service/task/task-query.js.map +1 -1
  143. package/dist-server/service/task/task-type.js +10 -10
  144. package/dist-server/service/task/task-type.js.map +1 -1
  145. package/dist-server/service/task/task.js +7 -8
  146. package/dist-server/service/task/task.js.map +1 -1
  147. package/dist-server/service/task-resource/task-resource-mutation.js +2 -2
  148. package/dist-server/service/task-resource/task-resource-mutation.js.map +1 -1
  149. package/dist-server/service/task-resource/task-resource-query.js +2 -2
  150. package/dist-server/service/task-resource/task-resource-query.js.map +1 -1
  151. package/dist-server/service/task-resource/task-resource-type.js +6 -6
  152. package/dist-server/service/task-resource/task-resource-type.js.map +1 -1
  153. package/dist-server/service/task-resource/task-resource.js +2 -2
  154. package/dist-server/service/task-resource/task-resource.js.map +1 -1
  155. package/dist-server/service/worker-type/worker-type-mutation.js +2 -2
  156. package/dist-server/service/worker-type/worker-type-mutation.js.map +1 -1
  157. package/dist-server/service/worker-type/worker-type-query.js +2 -2
  158. package/dist-server/service/worker-type/worker-type-query.js.map +1 -1
  159. package/dist-server/service/worker-type/worker-type-type.js +4 -4
  160. package/dist-server/service/worker-type/worker-type-type.js.map +1 -1
  161. package/dist-server/service/worker-type/worker-type.js +2 -2
  162. package/dist-server/service/worker-type/worker-type.js.map +1 -1
  163. package/dist-server/tsconfig.tsbuildinfo +1 -1
  164. package/package.json +13 -11
  165. package/client/bootstrap.ts +0 -0
  166. package/client/index.ts +0 -0
  167. package/client/pages/lib/select2-component.ts +0 -175
  168. package/client/pages/lib/waether.ts +0 -159
  169. package/client/pages/project/component/project-update-header.ts +0 -88
  170. package/client/pages/project/popup/popup-plan-upload.ts +0 -138
  171. package/client/pages/project/popup/popup-project-create.ts +0 -147
  172. package/client/pages/project/popup/popup-schedule-upload.ts +0 -102
  173. package/client/pages/project/project-completed-list.ts +0 -281
  174. package/client/pages/project/project-detail.ts +0 -738
  175. package/client/pages/project/project-list.ts +0 -418
  176. package/client/pages/project/project-plan-management.ts +0 -476
  177. package/client/pages/project/project-schedule-list.ts +0 -294
  178. package/client/pages/project/project-schedule.ts +0 -393
  179. package/client/pages/project/project-setting-list.ts +0 -393
  180. package/client/pages/project/project-update.ts +0 -876
  181. package/client/pages/resource/construction-detail-type-popup.ts +0 -201
  182. package/client/pages/resource/construction-type-management.ts +0 -212
  183. package/client/pages/resource/inspection-drawing-type-management.ts +0 -245
  184. package/client/pages/resource/inspection-part-popup.ts +0 -201
  185. package/client/pages/resource/resource-importer.ts +0 -97
  186. package/client/pages/resource/resource-list-page.ts +0 -356
  187. package/client/pages/resource/worker-type-management.ts +0 -192
  188. package/client/pages/task/task-importer.ts +0 -94
  189. package/client/pages/task/task-list-page.ts +0 -340
  190. package/client/pages/task-resource/task-resource-importer.ts +0 -97
  191. package/client/pages/task-resource/task-resource-list-page.ts +0 -356
  192. package/client/route.ts +0 -55
  193. package/client/tsconfig.json +0 -11
  194. package/server/controllers/export-tasks.ts +0 -40
  195. package/server/controllers/import-task.ts +0 -134
  196. package/server/controllers/index.ts +0 -0
  197. package/server/controllers/parse-excel.ts +0 -86
  198. package/server/controllers/types.ts +0 -20
  199. package/server/index.ts +0 -4
  200. package/server/middlewares/index.ts +0 -3
  201. package/server/migrations/1723861466413-seed-roles.ts +0 -128
  202. package/server/migrations/1723861466414-seed-codes.ts +0 -157
  203. package/server/migrations/1723861476419-seed-resources.ts +0 -62
  204. package/server/migrations/1723861478420-seed-/bsample-project.ts +0 -87
  205. package/server/migrations/1723861478421-seed-/bsample-tasks.ts +0 -194
  206. package/server/migrations/index.ts +0 -9
  207. package/server/routes.ts +0 -108
  208. package/server/service/construction-detail-type/construction-detail-type-mutation.ts +0 -57
  209. package/server/service/construction-detail-type/construction-detail-type-query.ts +0 -31
  210. package/server/service/construction-detail-type/construction-detail-type-type.ts +0 -26
  211. package/server/service/construction-detail-type/construction-detail-type.ts +0 -52
  212. package/server/service/construction-detail-type/index.ts +0 -6
  213. package/server/service/construction-type/construction-type-mutation.ts +0 -66
  214. package/server/service/construction-type/construction-type-query.ts +0 -56
  215. package/server/service/construction-type/construction-type-type.ts +0 -26
  216. package/server/service/construction-type/construction-type.ts +0 -74
  217. package/server/service/construction-type/index.ts +0 -6
  218. package/server/service/index.ts +0 -56
  219. package/server/service/inspection-drawing-type/index.ts +0 -6
  220. package/server/service/inspection-drawing-type/inspection-drawing-type-mutation.ts +0 -69
  221. package/server/service/inspection-drawing-type/inspection-drawing-type-query.ts +0 -55
  222. package/server/service/inspection-drawing-type/inspection-drawing-type-type.ts +0 -23
  223. package/server/service/inspection-drawing-type/inspection-drawing-type.ts +0 -68
  224. package/server/service/inspection-part/index.ts +0 -6
  225. package/server/service/inspection-part/inspection-part-mutation.ts +0 -52
  226. package/server/service/inspection-part/inspection-part-query.ts +0 -41
  227. package/server/service/inspection-part/inspection-part-type.ts +0 -26
  228. package/server/service/inspection-part/inspection-part.ts +0 -51
  229. package/server/service/manager/index.ts +0 -6
  230. package/server/service/manager/manager-mutation.ts +0 -42
  231. package/server/service/manager/manager-query.ts +0 -28
  232. package/server/service/manager/manager-type.ts +0 -40
  233. package/server/service/manager/manager.ts +0 -29
  234. package/server/service/project/index.ts +0 -6
  235. package/server/service/project/project-mutation.ts +0 -255
  236. package/server/service/project/project-query.ts +0 -105
  237. package/server/service/project/project-type.ts +0 -72
  238. package/server/service/project/project.ts +0 -134
  239. package/server/service/resource/index.ts +0 -7
  240. package/server/service/resource/resource-mutation.ts +0 -137
  241. package/server/service/resource/resource-query.ts +0 -50
  242. package/server/service/resource/resource-type.ts +0 -41
  243. package/server/service/resource/resource.ts +0 -82
  244. package/server/service/task/index.ts +0 -6
  245. package/server/service/task/task-mutation.ts +0 -135
  246. package/server/service/task/task-query.ts +0 -169
  247. package/server/service/task/task-type.ts +0 -75
  248. package/server/service/task/task.ts +0 -130
  249. package/server/service/task-resource/index.ts +0 -7
  250. package/server/service/task-resource/task-resource-mutation.ts +0 -140
  251. package/server/service/task-resource/task-resource-query.ts +0 -36
  252. package/server/service/task-resource/task-resource-type.ts +0 -41
  253. package/server/service/task-resource/task-resource.ts +0 -51
  254. package/server/service/worker-type/index.ts +0 -6
  255. package/server/service/worker-type/worker-type-mutation.ts +0 -66
  256. package/server/service/worker-type/worker-type-query.ts +0 -47
  257. package/server/service/worker-type/worker-type-type.ts +0 -26
  258. package/server/service/worker-type/worker-type.ts +0 -68
  259. package/server/tsconfig.json +0 -10
@@ -1,130 +0,0 @@
1
- import {
2
- CreateDateColumn,
3
- UpdateDateColumn,
4
- DeleteDateColumn,
5
- Entity,
6
- Index,
7
- Column,
8
- RelationId,
9
- ManyToOne,
10
- OneToMany,
11
- PrimaryGeneratedColumn
12
- } from 'typeorm'
13
- import { ObjectType, Field, ID, registerEnumType } from 'type-graphql'
14
-
15
- import { ScalarObject } from '@things-factory/shell'
16
- import { User } from '@things-factory/auth-base'
17
- import { Project } from '../project/project'
18
- // import { Checklist } from '@dssp/supervisor'
19
- import { TaskResource } from '../task-resource/task-resource'
20
-
21
- export enum TaskType {
22
- GROUP = 'group',
23
- TASK = 'task'
24
- }
25
-
26
- registerEnumType(TaskType, {
27
- name: 'TaskType',
28
- description: '작업 타입'
29
- })
30
-
31
- @Entity()
32
- @Index('ix_task_project_code', (task: Task) => [task.project, task.code], { unique: true, where: '"deleted_at" IS NULL' })
33
- @ObjectType({ description: '공정표 작업 정보' })
34
- export class Task {
35
- @PrimaryGeneratedColumn('uuid')
36
- @Field(type => ID)
37
- readonly id: string
38
-
39
- @Column({ nullable: false, comment: '프로젝트 내에서 유니크한 작업 코드' })
40
- @Field({ nullable: false })
41
- code: string
42
-
43
- @Column({ nullable: true, comment: '작업 명' })
44
- @Field({ nullable: true })
45
- name?: string
46
-
47
- @Column({ nullable: true, comment: '테스크 타입 (group: 공종, task: 세부 공종)' })
48
- @Field({ nullable: true })
49
- type?: TaskType
50
-
51
- @ManyToOne(type => Task, task => task.children, { nullable: true })
52
- @Field({ nullable: true })
53
- parent: Task
54
-
55
- @RelationId((task: Task) => task.parent)
56
- parentId?: string
57
-
58
- @OneToMany(type => Task, task => task.parent, { nullable: true })
59
- @Field(type => [Task], { nullable: true })
60
- children?: Task[]
61
-
62
- @Column({ nullable: true, comment: '시작일' })
63
- @Field({ nullable: true })
64
- startDate?: Date
65
-
66
- @Column({ nullable: true, comment: '종료일' })
67
- @Field({ nullable: true })
68
- endDate?: Date
69
-
70
- @Column({ nullable: true, comment: '기간' })
71
- @Field({ nullable: true })
72
- duration?: number
73
-
74
- @Column({ nullable: true, comment: '선행 태스크 코드' })
75
- @Field({ nullable: true })
76
- dependsOn?: string
77
-
78
- @ManyToOne(type => Project, project => project.tasks)
79
- @Field(type => Project)
80
- project?: Project
81
-
82
- @RelationId((task: Task) => task.project)
83
- projectId?: string
84
-
85
- @Column('simple-json', { nullable: true, default: null })
86
- @Field(type => ScalarObject, { nullable: true })
87
- tags?: string[]
88
-
89
- @Column({ nullable: true, comment: '진행율' })
90
- @Field({ nullable: true })
91
- progress?: number
92
-
93
- @Column({ nullable: true, comment: '스타일' })
94
- @Field({ nullable: true })
95
- style?: string
96
-
97
- // @OneToMany(type => Checklist, checklist => checklist.task, { nullable: true })
98
- // @Field(type => [Checklist], { nullable: true })
99
- // checklists?: Checklist[]
100
-
101
- @OneToMany(type => TaskResource, taskResource => taskResource.task, { cascade: true })
102
- @Field(type => [TaskResource], { nullable: true })
103
- taskResources?: TaskResource[]
104
-
105
- @CreateDateColumn()
106
- @Field({ nullable: true })
107
- createdAt?: Date
108
-
109
- @UpdateDateColumn()
110
- @Field({ nullable: true })
111
- updatedAt?: Date
112
-
113
- @DeleteDateColumn()
114
- @Field({ nullable: true })
115
- deletedAt?: Date
116
-
117
- @ManyToOne(type => User, { nullable: true })
118
- @Field(type => User, { nullable: true })
119
- creator?: User
120
-
121
- @RelationId((task: Task) => task.creator)
122
- creatorId?: string
123
-
124
- @ManyToOne(type => User, { nullable: true })
125
- @Field(type => User, { nullable: true })
126
- updater?: User
127
-
128
- @RelationId((task: Task) => task.updater)
129
- updaterId?: string
130
- }
@@ -1,7 +0,0 @@
1
- import { TaskResource } from './task-resource'
2
- import { TaskResourceQuery } from './task-resource-query'
3
- import { TaskResourceMutation } from './task-resource-mutation'
4
-
5
- export const entities = [TaskResource]
6
- export const resolvers = [TaskResourceQuery, TaskResourceMutation]
7
- export const subscribers = []
@@ -1,140 +0,0 @@
1
- import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
2
- import { In } from 'typeorm'
3
-
4
- import { TaskResource } from './task-resource'
5
- import { NewTaskResource, TaskResourcePatch } from './task-resource-type'
6
-
7
- @Resolver(TaskResource)
8
- export class TaskResourceMutation {
9
- @Directive('@transaction')
10
- @Directive('@privilege(category: "project", privilege: "mutation", domainOwnerGranted: true)')
11
- @Mutation(returns => TaskResource, { description: 'To create new TaskResource' })
12
- async createTaskResource(
13
- @Arg('taskResource') taskResource: NewTaskResource,
14
- @Ctx() context: ResolverContext
15
- ): Promise<TaskResource> {
16
- const { domain, user, tx } = context.state
17
-
18
- const result = await tx.getRepository(TaskResource).save({
19
- ...taskResource,
20
- domain,
21
- creator: user,
22
- updater: user
23
- })
24
-
25
- return result
26
- }
27
-
28
- @Directive('@transaction')
29
- @Directive('@privilege(category: "project", privilege: "mutation", domainOwnerGranted: true)')
30
- @Mutation(returns => TaskResource, { description: 'To modify TaskResource information' })
31
- async updateTaskResource(
32
- @Arg('id') id: string,
33
- @Arg('patch') patch: TaskResourcePatch,
34
- @Ctx() context: ResolverContext
35
- ): Promise<TaskResource> {
36
- const { domain, user, tx } = context.state
37
-
38
- const repository = tx.getRepository(TaskResource)
39
- const taskResource = await repository.findOne({
40
- where: { id }
41
- })
42
-
43
- const result = await repository.save({
44
- ...taskResource,
45
- ...patch,
46
- updater: user
47
- })
48
-
49
- return result
50
- }
51
-
52
- @Directive('@transaction')
53
- @Directive('@privilege(category: "project", privilege: "mutation", domainOwnerGranted: true)')
54
- @Mutation(returns => [TaskResource], { description: "To modify multiple TaskResources' information" })
55
- async updateMultipleTaskResource(
56
- @Arg('patches', type => [TaskResourcePatch]) patches: TaskResourcePatch[],
57
- @Ctx() context: ResolverContext
58
- ): Promise<TaskResource[]> {
59
- const { domain, user, tx } = context.state
60
-
61
- let results = []
62
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
63
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
64
- const taskResourceRepo = tx.getRepository(TaskResource)
65
-
66
- if (_createRecords.length > 0) {
67
- for (let i = 0; i < _createRecords.length; i++) {
68
- const newRecord = _createRecords[i]
69
-
70
- const result = await taskResourceRepo.save({
71
- ...newRecord,
72
- domain,
73
- creator: user,
74
- updater: user
75
- })
76
-
77
- results.push({ ...result, cuFlag: '+' })
78
- }
79
- }
80
-
81
- if (_updateRecords.length > 0) {
82
- for (let i = 0; i < _updateRecords.length; i++) {
83
- const updateRecord = _updateRecords[i]
84
- const taskResource = await taskResourceRepo.findOneBy({ id: updateRecord.id })
85
-
86
- const result = await taskResourceRepo.save({
87
- ...taskResource,
88
- ...updateRecord,
89
- updater: user
90
- })
91
-
92
- results.push({ ...result, cuFlag: 'M' })
93
- }
94
- }
95
-
96
- return results
97
- }
98
-
99
- @Directive('@transaction')
100
- @Directive('@privilege(category: "project", privilege: "mutation", domainOwnerGranted: true)')
101
- @Mutation(returns => Boolean, { description: 'To delete TaskResource' })
102
- async deleteTaskResource(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
103
- const { domain, tx } = context.state
104
-
105
- await tx.getRepository(TaskResource).delete({ id })
106
-
107
- return true
108
- }
109
-
110
- @Directive('@transaction')
111
- @Directive('@privilege(category: "project", privilege: "mutation", domainOwnerGranted: true)')
112
- @Mutation(returns => Boolean, { description: 'To delete multiple TaskResources' })
113
- async deleteTaskResources(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {
114
- const { domain, tx } = context.state
115
-
116
- await tx.getRepository(TaskResource).delete({
117
- id: In(ids)
118
- })
119
-
120
- return true
121
- }
122
-
123
- @Directive('@transaction')
124
- @Directive('@privilege(category: "project", privilege: "mutation", domainOwnerGranted: true)')
125
- @Mutation(returns => Boolean, { description: 'To import multiple TaskResources' })
126
- async importTaskResources(
127
- @Arg('taskResources', type => [TaskResourcePatch]) taskResources: TaskResourcePatch[],
128
- @Ctx() context: ResolverContext
129
- ): Promise<boolean> {
130
- const { domain, tx } = context.state
131
-
132
- await Promise.all(
133
- taskResources.map(async (taskResource: TaskResourcePatch) => {
134
- const createdTaskResource: TaskResource = await tx.getRepository(TaskResource).save({ domain, ...taskResource })
135
- })
136
- )
137
-
138
- return true
139
- }
140
- }
@@ -1,36 +0,0 @@
1
- import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'
2
- import { Attachment } from '@things-factory/attachment-base'
3
- import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
4
- import { User } from '@things-factory/auth-base'
5
- import { TaskResource } from './task-resource'
6
- import { TaskResourceList } from './task-resource-type'
7
-
8
- @Resolver(TaskResource)
9
- export class TaskResourceQuery {
10
- @Directive('@privilege(category: "project", privilege: "query", domainOwnerGranted: true)')
11
- @Query(returns => TaskResource!, { nullable: true, description: 'To fetch a TaskResource' })
12
- async taskResource(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<TaskResource> {
13
- const { domain } = context.state
14
-
15
- return await getRepository(TaskResource).findOne({
16
- where: { id }
17
- })
18
- }
19
-
20
- @Directive('@privilege(category: "project", privilege: "query", domainOwnerGranted: true)')
21
- @Query(returns => TaskResourceList, { description: 'To fetch multiple TaskResources' })
22
- async taskResources(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<TaskResourceList> {
23
- const { domain } = context.state
24
-
25
- const queryBuilder = getQueryBuilderFromListParams({
26
- domain,
27
- params,
28
- repository: await getRepository(TaskResource),
29
- searchables: ['name', 'description']
30
- })
31
-
32
- const [items, total] = await queryBuilder.getManyAndCount()
33
-
34
- return { items, total }
35
- }
36
- }
@@ -1,41 +0,0 @@
1
- import { InputType, Field, ID, ObjectType, Int } from 'type-graphql'
2
- import { TaskResource } from './task-resource'
3
-
4
- @InputType()
5
- export class NewTaskResource {
6
- @Field(type => ID)
7
- taskId: string
8
-
9
- @Field(type => ID)
10
- resourceId: string
11
-
12
- @Field()
13
- quantity: number
14
- }
15
-
16
- @InputType()
17
- export class TaskResourcePatch {
18
- @Field(type => ID, { nullable: true })
19
- id?: string
20
-
21
- @Field(type => ID, { nullable: true })
22
- taskId?: string
23
-
24
- @Field(type => ID, { nullable: true })
25
- resourceId?: string
26
-
27
- @Field({ nullable: true })
28
- quantity?: number
29
-
30
- @Field({ nullable: true })
31
- cuFlag?: string
32
- }
33
-
34
- @ObjectType()
35
- export class TaskResourceList {
36
- @Field(type => [TaskResource])
37
- items: TaskResource[]
38
-
39
- @Field(type => Int)
40
- total: number
41
- }
@@ -1,51 +0,0 @@
1
- import {
2
- Entity,
3
- PrimaryGeneratedColumn,
4
- RelationId,
5
- ManyToOne,
6
- Column,
7
- CreateDateColumn,
8
- UpdateDateColumn,
9
- DeleteDateColumn
10
- } from 'typeorm'
11
- import { ObjectType, Field, ID } from 'type-graphql'
12
- import { Task } from '../task/task'
13
- import { Resource } from '../resource/resource'
14
-
15
- @Entity()
16
- @ObjectType({ description: '작업에 소요되는 자원' })
17
- export class TaskResource {
18
- @PrimaryGeneratedColumn('uuid')
19
- @Field(type => ID)
20
- readonly id: string
21
-
22
- @ManyToOne(() => Task, task => task.taskResources, { nullable: false })
23
- @Field(type => Task)
24
- task: Task
25
-
26
- @RelationId((taskResource: TaskResource) => taskResource.task)
27
- taskId: string
28
-
29
- @ManyToOne(() => Resource, resource => resource.taskResources, { nullable: false })
30
- @Field(type => Resource)
31
- resource: Resource
32
-
33
- @RelationId((taskResource: TaskResource) => taskResource.resource)
34
- resourceId: string
35
-
36
- @Column({ type: 'float', nullable: false, comment: '소요량 (예: 8, 5 등)' })
37
- @Field({ nullable: false })
38
- quantity: number
39
-
40
- @CreateDateColumn()
41
- @Field({ nullable: true })
42
- createdAt?: Date
43
-
44
- @UpdateDateColumn()
45
- @Field({ nullable: true })
46
- updatedAt?: Date
47
-
48
- @DeleteDateColumn()
49
- @Field({ nullable: true })
50
- deletedAt?: Date
51
- }
@@ -1,6 +0,0 @@
1
- import { WorkerType } from './worker-type'
2
- import { WorkerTypeQuery } from './worker-type-query'
3
- import { WorkerTypeMutation } from './worker-type-mutation'
4
-
5
- export const entities = [WorkerType]
6
- export const resolvers = [WorkerTypeQuery, WorkerTypeMutation]
@@ -1,66 +0,0 @@
1
- import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
2
- import { In } from 'typeorm'
3
- import { WorkerType } from './worker-type'
4
- import { WorkerTypePatch } from './worker-type-type'
5
-
6
- @Resolver(WorkerType)
7
- export class WorkerTypeMutation {
8
- @Directive('@transaction')
9
- @Mutation(returns => [WorkerType], { description: "To modify multiple WorkerTypes' information" })
10
- async updateMultipleWorkerType(
11
- @Arg('patches', type => [WorkerTypePatch]) patches: WorkerTypePatch[],
12
- @Ctx() context: ResolverContext
13
- ): Promise<WorkerType[]> {
14
- const { domain, user, tx } = context.state
15
-
16
- let results = []
17
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
18
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
19
- const workerTypeRepo = tx.getRepository(WorkerType)
20
-
21
- if (_createRecords.length > 0) {
22
- for (let i = 0; i < _createRecords.length; i++) {
23
- const newRecord = _createRecords[i]
24
-
25
- const result = await workerTypeRepo.save({
26
- ...newRecord,
27
- domain,
28
- creator: user,
29
- updater: user
30
- })
31
-
32
- results.push({ ...result, cuFlag: '+' })
33
- }
34
- }
35
-
36
- if (_updateRecords.length > 0) {
37
- for (let i = 0; i < _updateRecords.length; i++) {
38
- const updateRecord = _updateRecords[i]
39
- const workerType = await workerTypeRepo.findOneBy({ id: updateRecord.id })
40
-
41
- const result = await workerTypeRepo.save({
42
- ...workerType,
43
- ...updateRecord,
44
- updater: user
45
- })
46
-
47
- results.push({ ...result, cuFlag: 'M' })
48
- }
49
- }
50
-
51
- return results
52
- }
53
-
54
- @Directive('@transaction')
55
- @Mutation(returns => Boolean, { description: 'To delete multiple WorkerTypes' })
56
- async deleteWorkerTypes(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {
57
- const { domain, tx } = context.state
58
-
59
- await tx.getRepository(WorkerType).softDelete({
60
- domain: { id: domain.id },
61
- id: In(ids)
62
- })
63
-
64
- return true
65
- }
66
- }
@@ -1,47 +0,0 @@
1
- import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx } from 'type-graphql'
2
- import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
3
- import { User } from '@things-factory/auth-base'
4
- import { WorkerType } from './worker-type'
5
- import { WorkerTypeList } from './worker-type-type'
6
-
7
- @Resolver(WorkerType)
8
- export class WorkerTypeQuery {
9
- @Query(returns => WorkerType!, { nullable: true, description: 'To fetch a WorkerType' })
10
- async workerType(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<WorkerType> {
11
- const { domain } = context.state
12
-
13
- return await getRepository(WorkerType).findOne({
14
- where: { domain: { id: domain.id }, id }
15
- })
16
- }
17
-
18
- @Query(returns => WorkerTypeList, { description: 'To fetch multiple WorkerTypes' })
19
- async workerTypes(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<WorkerTypeList> {
20
- const { domain } = context.state
21
-
22
- const queryBuilder = getQueryBuilderFromListParams({
23
- domain,
24
- params,
25
- repository: await getRepository(WorkerType)
26
- })
27
-
28
- const [items, total] = await queryBuilder.getManyAndCount()
29
-
30
- return { items, total }
31
- }
32
-
33
- @FieldResolver(type => Domain)
34
- async domain(@Root() workerType: WorkerType): Promise<Domain> {
35
- return await getRepository(Domain).findOneBy({ id: workerType.domainId })
36
- }
37
-
38
- @FieldResolver(type => User)
39
- async updater(@Root() workerType: WorkerType): Promise<User> {
40
- return await getRepository(User).findOneBy({ id: workerType.updaterId })
41
- }
42
-
43
- @FieldResolver(type => User)
44
- async creator(@Root() workerType: WorkerType): Promise<User> {
45
- return await getRepository(User).findOneBy({ id: workerType.creatorId })
46
- }
47
- }
@@ -1,26 +0,0 @@
1
- import { ObjectType, Field, InputType, Int, ID } from 'type-graphql'
2
- import { WorkerType } from './worker-type'
3
-
4
- @InputType()
5
- export class WorkerTypePatch {
6
- @Field(type => ID, { nullable: true })
7
- id?: string
8
-
9
- @Field({ nullable: true })
10
- name?: string
11
-
12
- @Field({ nullable: true })
13
- description?: string
14
-
15
- @Field()
16
- cuFlag: string
17
- }
18
-
19
- @ObjectType()
20
- export class WorkerTypeList {
21
- @Field(type => [WorkerType])
22
- items: WorkerType[]
23
-
24
- @Field(type => Int)
25
- total: number
26
- }
@@ -1,68 +0,0 @@
1
- import {
2
- CreateDateColumn,
3
- UpdateDateColumn,
4
- DeleteDateColumn,
5
- Entity,
6
- Index,
7
- Column,
8
- RelationId,
9
- ManyToOne,
10
- PrimaryGeneratedColumn
11
- } from 'typeorm'
12
- import { ObjectType, Field, ID } from 'type-graphql'
13
-
14
- import { Domain } from '@things-factory/shell'
15
- import { User } from '@things-factory/auth-base'
16
-
17
- @Entity()
18
- @Index('ix_worker_type_0', (workerType: WorkerType) => [workerType.domain, workerType.name], {
19
- unique: true,
20
- where: '"deleted_at" IS NULL'
21
- })
22
- @ObjectType({ description: '작업자 타입' })
23
- export class WorkerType {
24
- @PrimaryGeneratedColumn('uuid')
25
- @Field(type => ID)
26
- readonly id: string
27
-
28
- @ManyToOne(type => Domain)
29
- @Field({ nullable: true })
30
- domain?: Domain
31
-
32
- @RelationId((workerType: WorkerType) => workerType.domain)
33
- domainId?: string
34
-
35
- @Column({ nullable: false, comment: '타입 이름' })
36
- @Field({ nullable: false })
37
- name: string
38
-
39
- @Column({ nullable: true, comment: '설명' })
40
- @Field({ nullable: true })
41
- description?: string
42
-
43
- @CreateDateColumn()
44
- @Field({ nullable: true })
45
- createdAt?: Date
46
-
47
- @UpdateDateColumn()
48
- @Field({ nullable: true })
49
- updatedAt?: Date
50
-
51
- @DeleteDateColumn()
52
- @Field({ nullable: true })
53
- deletedAt?: Date
54
-
55
- @ManyToOne(type => User, { nullable: true })
56
- @Field(type => User, { nullable: true })
57
- creator?: User
58
-
59
- @RelationId((workerType: WorkerType) => workerType.creator)
60
- creatorId?: string
61
-
62
- @ManyToOne(type => User, { nullable: true })
63
- @Field(type => User, { nullable: true })
64
- updater?: User
65
-
66
- @RelationId((workerType: WorkerType) => workerType.updater)
67
- updaterId?: string
68
- }
@@ -1,10 +0,0 @@
1
- {
2
- "extends": "../../tsconfig-base.json",
3
- "compilerOptions": {
4
- "strict": false,
5
- "module": "commonjs",
6
- "outDir": "../dist-server",
7
- "baseUrl": "./"
8
- },
9
- "include": ["./**/*"]
10
- }