@things-factory/dataset 7.0.0-alpha.0 → 7.0.0-alpha.18

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 (187) hide show
  1. package/client/activities/activity-data-collect-edit.ts +1 -7
  2. package/client/activities/activity-data-collect-view.ts +7 -0
  3. package/client/activities/activity-data-review-edit.ts +66 -32
  4. package/client/activities/activity-data-review-view.ts +75 -29
  5. package/client/activities/activity-ooc-resolve-edit.ts +44 -48
  6. package/client/activities/activity-ooc-resolve-view.ts +25 -35
  7. package/client/activities/activity-ooc-review-edit.ts +36 -29
  8. package/client/activities/activity-ooc-review-view.ts +9 -19
  9. package/client/bootstrap.ts +5 -9
  10. package/client/pages/data-entry/data-entry-list-page.ts +8 -23
  11. package/client/pages/data-ooc/data-ooc-list-page.ts +71 -27
  12. package/client/pages/data-ooc/{data-ooc-view-page.ts → data-ooc-page.ts} +45 -1
  13. package/client/pages/data-ooc/data-ooc-view.ts +198 -41
  14. package/client/pages/data-ooc/data-oocs-page.ts +200 -0
  15. package/client/pages/data-sample/data-sample-list-page.ts +53 -31
  16. package/client/pages/data-sample/{data-sample-view-page.ts → data-sample-page.ts} +8 -1
  17. package/client/pages/data-sample/data-sample-search-page.ts +30 -25
  18. package/client/pages/data-sample/data-sample-view.ts +192 -21
  19. package/client/pages/data-sample/data-samples-page.ts +249 -0
  20. package/client/pages/data-sensor/data-sensor-list-page.ts +28 -6
  21. package/client/pages/data-set/data-item-list.ts +14 -8
  22. package/client/pages/data-set/data-set-list-page.ts +11 -21
  23. package/client/pages/data-summary/data-summary-list-page.ts +12 -24
  24. package/client/route.ts +10 -2
  25. package/dist-client/activities/activity-data-collect-edit.js +1 -7
  26. package/dist-client/activities/activity-data-collect-edit.js.map +1 -1
  27. package/dist-client/activities/activity-data-collect-view.js +7 -0
  28. package/dist-client/activities/activity-data-collect-view.js.map +1 -1
  29. package/dist-client/activities/activity-data-review-edit.d.ts +1 -1
  30. package/dist-client/activities/activity-data-review-edit.js +63 -33
  31. package/dist-client/activities/activity-data-review-edit.js.map +1 -1
  32. package/dist-client/activities/activity-data-review-view.d.ts +1 -1
  33. package/dist-client/activities/activity-data-review-view.js +72 -30
  34. package/dist-client/activities/activity-data-review-view.js.map +1 -1
  35. package/dist-client/activities/activity-ooc-resolve-edit.d.ts +1 -1
  36. package/dist-client/activities/activity-ooc-resolve-edit.js +44 -48
  37. package/dist-client/activities/activity-ooc-resolve-edit.js.map +1 -1
  38. package/dist-client/activities/activity-ooc-resolve-view.d.ts +13 -0
  39. package/dist-client/activities/activity-ooc-resolve-view.js +24 -34
  40. package/dist-client/activities/activity-ooc-resolve-view.js.map +1 -1
  41. package/dist-client/activities/activity-ooc-review-edit.js +39 -29
  42. package/dist-client/activities/activity-ooc-review-edit.js.map +1 -1
  43. package/dist-client/activities/activity-ooc-review-view.js +9 -19
  44. package/dist-client/activities/activity-ooc-review-view.js.map +1 -1
  45. package/dist-client/bootstrap.d.ts +4 -4
  46. package/dist-client/bootstrap.js +4 -4
  47. package/dist-client/bootstrap.js.map +1 -1
  48. package/dist-client/pages/data-entry/data-entry-list-page.js +3 -15
  49. package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
  50. package/dist-client/pages/data-ooc/data-ooc-list-page.d.ts +6 -0
  51. package/dist-client/pages/data-ooc/data-ooc-list-page.js +67 -24
  52. package/dist-client/pages/data-ooc/data-ooc-list-page.js.map +1 -1
  53. package/dist-client/pages/data-ooc/{data-ooc-view-page.js → data-ooc-page.js} +46 -2
  54. package/dist-client/pages/data-ooc/data-ooc-page.js.map +1 -0
  55. package/dist-client/pages/data-ooc/data-ooc-view.d.ts +11 -4
  56. package/dist-client/pages/data-ooc/data-ooc-view.js +193 -48
  57. package/dist-client/pages/data-ooc/data-ooc-view.js.map +1 -1
  58. package/dist-client/pages/data-ooc/data-oocs-page.d.ts +18 -0
  59. package/dist-client/pages/data-ooc/data-oocs-page.js +200 -0
  60. package/dist-client/pages/data-ooc/data-oocs-page.js.map +1 -0
  61. package/dist-client/pages/data-sample/data-sample-list-page.d.ts +6 -1
  62. package/dist-client/pages/data-sample/data-sample-list-page.js +51 -28
  63. package/dist-client/pages/data-sample/data-sample-list-page.js.map +1 -1
  64. package/dist-client/pages/data-sample/{data-sample-view-page.js → data-sample-page.js} +9 -2
  65. package/dist-client/pages/data-sample/data-sample-page.js.map +1 -0
  66. package/dist-client/pages/data-sample/data-sample-search-page.d.ts +6 -1
  67. package/dist-client/pages/data-sample/data-sample-search-page.js +28 -22
  68. package/dist-client/pages/data-sample/data-sample-search-page.js.map +1 -1
  69. package/dist-client/pages/data-sample/data-sample-view.d.ts +18 -0
  70. package/dist-client/pages/data-sample/data-sample-view.js +186 -19
  71. package/dist-client/pages/data-sample/data-sample-view.js.map +1 -1
  72. package/dist-client/pages/data-sample/data-samples-page.d.ts +21 -0
  73. package/dist-client/pages/data-sample/data-samples-page.js +249 -0
  74. package/dist-client/pages/data-sample/data-samples-page.js.map +1 -0
  75. package/dist-client/pages/data-sensor/data-sensor-list-page.js +28 -6
  76. package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +1 -1
  77. package/dist-client/pages/data-set/data-item-list.js +14 -8
  78. package/dist-client/pages/data-set/data-item-list.js.map +1 -1
  79. package/dist-client/pages/data-set/data-set-list-page.js +3 -10
  80. package/dist-client/pages/data-set/data-set-list-page.js.map +1 -1
  81. package/dist-client/pages/data-summary/data-summary-list-page.js +12 -21
  82. package/dist-client/pages/data-summary/data-summary-list-page.js.map +1 -1
  83. package/dist-client/route.js +8 -2
  84. package/dist-client/route.js.map +1 -1
  85. package/dist-client/tsconfig.tsbuildinfo +1 -1
  86. package/dist-server/activities/activity-data-collect.js.map +1 -1
  87. package/dist-server/activities/activity-data-review.js.map +1 -1
  88. package/dist-server/activities/activity-ooc-review.js +3 -2
  89. package/dist-server/activities/activity-ooc-review.js.map +1 -1
  90. package/dist-server/controllers/create-data-sample.js +27 -29
  91. package/dist-server/controllers/create-data-sample.js.map +1 -1
  92. package/dist-server/controllers/{generate-data-summary.js → finalize-data-collection.js} +10 -30
  93. package/dist-server/controllers/finalize-data-collection.js.map +1 -0
  94. package/dist-server/controllers/issue-collect-data.js +55 -0
  95. package/dist-server/controllers/issue-collect-data.js.map +1 -0
  96. package/dist-server/controllers/query-data-summary-by-period.js +4 -9
  97. package/dist-server/controllers/query-data-summary-by-period.js.map +1 -1
  98. package/dist-server/engine/index.js +4 -0
  99. package/dist-server/engine/index.js.map +1 -0
  100. package/dist-server/engine/task/create-data-sample.js +80 -0
  101. package/dist-server/engine/task/create-data-sample.js.map +1 -0
  102. package/dist-server/engine/task/index.js +5 -0
  103. package/dist-server/engine/task/index.js.map +1 -0
  104. package/dist-server/engine/task/issue-collect-data.js +40 -0
  105. package/dist-server/engine/task/issue-collect-data.js.map +1 -0
  106. package/dist-server/index.js +1 -0
  107. package/dist-server/index.js.map +1 -1
  108. package/dist-server/routes.js +36 -65
  109. package/dist-server/routes.js.map +1 -1
  110. package/dist-server/service/data-ooc/data-ooc-query.js +32 -0
  111. package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
  112. package/dist-server/service/data-ooc/data-ooc-subscription.js +4 -4
  113. package/dist-server/service/data-ooc/data-ooc-subscription.js.map +1 -1
  114. package/dist-server/service/data-ooc/data-ooc.js +44 -37
  115. package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
  116. package/dist-server/service/data-sample/data-sample-query.js +24 -0
  117. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  118. package/dist-server/service/data-sample/data-sample.js +30 -31
  119. package/dist-server/service/data-sample/data-sample.js.map +1 -1
  120. package/dist-server/service/data-sensor/data-sensor-query.js +16 -1
  121. package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
  122. package/dist-server/service/data-sensor/data-sensor-type.js +8 -0
  123. package/dist-server/service/data-sensor/data-sensor-type.js.map +1 -1
  124. package/dist-server/service/data-sensor/data-sensor.js +15 -1
  125. package/dist-server/service/data-sensor/data-sensor.js.map +1 -1
  126. package/dist-server/service/data-set/data-item-type.js +17 -2
  127. package/dist-server/service/data-set/data-item-type.js.map +1 -1
  128. package/dist-server/service/data-set/data-set-mutation.js +2 -2
  129. package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
  130. package/dist-server/service/data-set/data-set-query.js +2 -2
  131. package/dist-server/service/data-set/data-set-query.js.map +1 -1
  132. package/dist-server/service/data-summary/data-summary-mutation.js +34 -5
  133. package/dist-server/service/data-summary/data-summary-mutation.js.map +1 -1
  134. package/dist-server/service/data-summary/data-summary.js +8 -8
  135. package/dist-server/service/data-summary/data-summary.js.map +1 -1
  136. package/dist-server/tsconfig.tsbuildinfo +1 -1
  137. package/helps/config/dataArchive.md +21 -0
  138. package/helps/config/dataReport.md +34 -0
  139. package/helps/dataset/task/create-data-sample.ja.md +28 -0
  140. package/helps/dataset/task/create-data-sample.ko.md +28 -0
  141. package/helps/dataset/task/create-data-sample.md +28 -0
  142. package/helps/dataset/task/create-data-sample.ms.md +30 -0
  143. package/helps/dataset/task/create-data-sample.zh.md +28 -0
  144. package/helps/dataset/task/issue-collect-data.ja.md +35 -0
  145. package/helps/dataset/task/issue-collect-data.ko.md +32 -0
  146. package/helps/dataset/task/issue-collect-data.md +32 -0
  147. package/helps/dataset/task/issue-collect-data.ms.md +34 -0
  148. package/helps/dataset/task/issue-collect-data.zh.md +32 -0
  149. package/helps/dataset/ui/data-item-list.ko.md +17 -2
  150. package/package.json +14 -11
  151. package/server/activities/activity-data-collect.ts +3 -11
  152. package/server/activities/activity-data-review.ts +1 -5
  153. package/server/activities/activity-ooc-review.ts +6 -16
  154. package/server/controllers/create-data-sample.ts +31 -38
  155. package/server/controllers/{generate-data-summary.ts → finalize-data-collection.ts} +7 -39
  156. package/server/controllers/issue-collect-data.ts +61 -0
  157. package/server/controllers/query-data-summary-by-period.ts +5 -18
  158. package/server/engine/index.ts +1 -0
  159. package/server/engine/task/create-data-sample.ts +92 -0
  160. package/server/engine/task/index.ts +2 -0
  161. package/server/engine/task/issue-collect-data.ts +45 -0
  162. package/server/index.ts +1 -0
  163. package/server/routes.ts +47 -76
  164. package/server/service/data-ooc/data-ooc-query.ts +17 -0
  165. package/server/service/data-ooc/data-ooc-subscription.ts +7 -7
  166. package/server/service/data-ooc/data-ooc.ts +39 -51
  167. package/server/service/data-sample/data-sample-query.ts +17 -17
  168. package/server/service/data-sample/data-sample.ts +29 -52
  169. package/server/service/data-sensor/data-sensor-query.ts +13 -1
  170. package/server/service/data-sensor/data-sensor-type.ts +6 -0
  171. package/server/service/data-sensor/data-sensor.ts +13 -11
  172. package/server/service/data-set/data-item-type.ts +19 -10
  173. package/server/service/data-set/data-set-mutation.ts +9 -31
  174. package/server/service/data-set/data-set-query.ts +7 -7
  175. package/server/service/data-summary/data-summary-mutation.ts +24 -7
  176. package/server/service/data-summary/data-summary.ts +10 -23
  177. package/things-factory.config.js +10 -2
  178. package/translations/en.json +17 -3
  179. package/translations/ja.json +14 -2
  180. package/translations/ko.json +16 -2
  181. package/translations/ms.json +13 -1
  182. package/translations/zh.json +14 -2
  183. package/dist-client/pages/data-ooc/data-ooc-view-page.js.map +0 -1
  184. package/dist-client/pages/data-sample/data-sample-view-page.js.map +0 -1
  185. package/dist-server/controllers/generate-data-summary.js.map +0 -1
  186. /package/dist-client/pages/data-ooc/{data-ooc-view-page.d.ts → data-ooc-page.d.ts} +0 -0
  187. /package/dist-client/pages/data-sample/{data-sample-view-page.d.ts → data-sample-page.d.ts} +0 -0
@@ -1,17 +1,9 @@
1
1
  import { Field, ID, ObjectType } from 'type-graphql'
2
- import {
3
- Column,
4
- CreateDateColumn,
5
- Entity,
6
- Index,
7
- ManyToOne,
8
- PrimaryGeneratedColumn,
9
- RelationId,
10
- UpdateDateColumn
11
- } from 'typeorm'
2
+ import { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn } from 'typeorm'
12
3
 
13
- import { Appliance, User } from '@things-factory/auth-base'
14
4
  import { Domain } from '@things-factory/shell'
5
+ import { Appliance, User } from '@things-factory/auth-base'
6
+ import { Scenario } from '@things-factory/integration-base'
15
7
 
16
8
  import { DataSet } from '../data-set/data-set'
17
9
 
@@ -91,6 +83,16 @@ export class DataSensor {
91
83
  @RelationId((dataSensor: DataSensor) => dataSensor.dataSet)
92
84
  dataSetId?: string
93
85
 
86
+ @ManyToOne(type => Scenario, { nullable: true })
87
+ @Field(type => Scenario, {
88
+ nullable: true,
89
+ description: 'The decoder scenario that automatically executes based on the trigger of raw data collection'
90
+ })
91
+ decoder?: Scenario
92
+
93
+ @RelationId((dataSensor: DataSensor) => dataSensor.decoder)
94
+ decoderId?: string
95
+
94
96
  @CreateDateColumn()
95
97
  @Field({ nullable: true })
96
98
  createdAt?: Date
@@ -7,6 +7,7 @@ export enum DataItemType {
7
7
  text = 'text',
8
8
  boolean = 'boolean',
9
9
  select = 'select',
10
+ radio = 'radio',
10
11
  date = 'date',
11
12
  datetime = 'datetime',
12
13
  file = 'file'
@@ -31,7 +32,7 @@ export enum DataItemStatType {
31
32
 
32
33
  registerEnumType(DataItemStatType, {
33
34
  name: 'DataItemStatType',
34
- description: 'stat type enumeration of a data-item'
35
+ description: 'stat/agg type enumeration of a data-item'
35
36
  })
36
37
 
37
38
  @ObjectType({ description: 'Entity for DataItem' })
@@ -44,15 +45,13 @@ export class DataItem {
44
45
 
45
46
  @Field({
46
47
  nullable: true,
47
- description:
48
- 'Specifies a key name to be used as a property in a JSON-like object, representing a subfield of a dataset record.'
48
+ description: 'Specifies a key name to be used as a property in a JSON-like object, representing a subfield of a dataset record.'
49
49
  })
50
50
  tag?: string
51
51
 
52
52
  @Field({
53
53
  nullable: true,
54
- description:
55
- 'Specifies a grouping identifier for data items with related content, allowing them to be displayed as subgroups within the overall dataset.'
54
+ description: 'Specifies a grouping identifier for data items with related content, allowing them to be displayed as subgroups within the overall dataset.'
56
55
  })
57
56
  group?: string
58
57
 
@@ -70,10 +69,16 @@ export class DataItem {
70
69
 
71
70
  @Field({
72
71
  nullable: true,
73
- description: 'The grouping logic for data summarization in the given field during periodic task deadlines.'
72
+ description: 'The grouping logic for data finalize in the given field during periodic task deadlines.'
74
73
  })
75
74
  stat?: DataItemStatType
76
75
 
76
+ @Field({
77
+ nullable: true,
78
+ description: 'Aggregation functions to be used in data summarizing logic for a given period.'
79
+ })
80
+ agg?: DataItemStatType
81
+
77
82
  @Field({ nullable: true, description: 'The unit of measurement for the data item' })
78
83
  unit?: string
79
84
 
@@ -97,15 +102,13 @@ export class DataItemPatch {
97
102
 
98
103
  @Field({
99
104
  nullable: true,
100
- description:
101
- 'Specifies a key name to be used as a property in a JSON-like object, representing a subfield of a dataset record.'
105
+ description: 'Specifies a key name to be used as a property in a JSON-like object, representing a subfield of a dataset record.'
102
106
  })
103
107
  tag?: string
104
108
 
105
109
  @Field({
106
110
  nullable: true,
107
- description:
108
- 'Specifies a grouping identifier for data items with related content, allowing them to be displayed as subgroups within the overall dataset.'
111
+ description: 'Specifies a grouping identifier for data items with related content, allowing them to be displayed as subgroups within the overall dataset.'
109
112
  })
110
113
  group?: string
111
114
 
@@ -121,6 +124,12 @@ export class DataItemPatch {
121
124
  })
122
125
  stat?: DataItemStatType
123
126
 
127
+ @Field({
128
+ nullable: true,
129
+ description: 'Aggregation functions to be used in data summarizing logic for a given period.'
130
+ })
131
+ agg?: DataItemStatType
132
+
124
133
  @Field({ nullable: true, description: 'The unit of measurement for the data item' })
125
134
  unit?: string
126
135
 
@@ -6,7 +6,7 @@ import { ApprovalLineItem, OrgMemberTargetType } from '@things-factory/organizat
6
6
  import { Application, CallbackBase, registerSchedule, unregisterSchedule } from '@things-factory/scheduler-client'
7
7
  import { AssigneeItem } from '@things-factory/worklist'
8
8
 
9
- import { getDataSummaryCrontabSchedule } from '../../controllers/generate-data-summary'
9
+ import { getDataFinalizeCrontabSchedule } from '../../controllers/finalize-data-collection'
10
10
  import { DataSet } from './data-set'
11
11
  import { DataSetPatch, NewDataSet } from './data-set-type'
12
12
 
@@ -139,11 +139,7 @@ export class DataSetMutation {
139
139
  @Directive('@privilege(category: "data-set", privilege: "mutation", domainOwnerGranted: true)')
140
140
  @Directive('@transaction')
141
141
  @Mutation(returns => DataSet, { description: 'To modify DataSet information' })
142
- async updateDataSet(
143
- @Arg('id') id: string,
144
- @Arg('patch') patch: DataSetPatch,
145
- @Ctx() context: ResolverContext
146
- ): Promise<DataSet> {
142
+ async updateDataSet(@Arg('id') id: string, @Arg('patch') patch: DataSetPatch, @Ctx() context: ResolverContext): Promise<DataSet> {
147
143
  const { domain, user, tx } = context.state
148
144
  const dataSetRepo = tx.getRepository(DataSet)
149
145
 
@@ -170,10 +166,7 @@ export class DataSetMutation {
170
166
  @Directive('@privilege(category: "data-set", privilege: "mutation", domainOwnerGranted: true)')
171
167
  @Directive('@transaction')
172
168
  @Mutation(returns => [DataSet], { description: "To modify multiple DataSets' information" })
173
- async updateMultipleDataSet(
174
- @Arg('patches', type => [DataSetPatch]) patches: DataSetPatch[],
175
- @Ctx() context: ResolverContext
176
- ): Promise<DataSet[]> {
169
+ async updateMultipleDataSet(@Arg('patches', type => [DataSetPatch]) patches: DataSetPatch[], @Ctx() context: ResolverContext): Promise<DataSet[]> {
177
170
  const { domain, user, tx } = context.state
178
171
  const dataSetRepo = tx.getRepository(DataSet)
179
172
 
@@ -266,10 +259,7 @@ export class DataSetMutation {
266
259
 
267
260
  @Directive('@transaction')
268
261
  @Mutation(returns => DataSet, { description: 'To start data collection schedule for the given dataset' })
269
- async startDataCollectionSchedule(
270
- @Arg('dataSetId') dataSetId: string,
271
- @Ctx() context: ResolverContext
272
- ): Promise<DataSet> {
262
+ async startDataCollectionSchedule(@Arg('dataSetId') dataSetId: string, @Ctx() context: ResolverContext): Promise<DataSet> {
273
263
  const { domain, tx } = context.state
274
264
 
275
265
  var repository = tx.getRepository(DataSet)
@@ -332,10 +322,7 @@ export class DataSetMutation {
332
322
  nullable: true,
333
323
  description: 'To stop data collection schedule for the given dataset'
334
324
  })
335
- async stopDataCollectionSchedule(
336
- @Arg('dataSetId') dataSetId: string,
337
- @Ctx() context: ResolverContext
338
- ): Promise<DataSet | undefined> {
325
+ async stopDataCollectionSchedule(@Arg('dataSetId') dataSetId: string, @Ctx() context: ResolverContext): Promise<DataSet | undefined> {
339
326
  const { domain, tx } = context.state
340
327
 
341
328
  var repository = tx.getRepository(DataSet)
@@ -365,10 +352,7 @@ export class DataSetMutation {
365
352
 
366
353
  @Directive('@transaction')
367
354
  @Mutation(returns => DataSet, { description: 'To start data summary schedule for the given dataset' })
368
- async startDataSummarySchedule(
369
- @Arg('dataSetId') dataSetId: string,
370
- @Ctx() context: ResolverContext
371
- ): Promise<DataSet> {
355
+ async startDataSummarySchedule(@Arg('dataSetId') dataSetId: string, @Ctx() context: ResolverContext): Promise<DataSet> {
372
356
  const { domain, tx } = context.state
373
357
 
374
358
  var repository = tx.getRepository(DataSet)
@@ -392,7 +376,7 @@ export class DataSetMutation {
392
376
  )
393
377
  }
394
378
 
395
- const schedule = await getDataSummaryCrontabSchedule(dataSet, context)
379
+ const schedule = await getDataFinalizeCrontabSchedule(dataSet, context)
396
380
 
397
381
  try {
398
382
  var handle = await registerSchedule({
@@ -442,10 +426,7 @@ export class DataSetMutation {
442
426
  nullable: true,
443
427
  description: 'To stop data summary schedule for the given dataset'
444
428
  })
445
- async stopDataSummarySchedule(
446
- @Arg('dataSetId') dataSetId: string,
447
- @Ctx() context: ResolverContext
448
- ): Promise<DataSet | undefined> {
429
+ async stopDataSummarySchedule(@Arg('dataSetId') dataSetId: string, @Ctx() context: ResolverContext): Promise<DataSet | undefined> {
449
430
  const { domain, tx } = context.state
450
431
 
451
432
  var repository = tx.getRepository(DataSet)
@@ -477,10 +458,7 @@ export class DataSetMutation {
477
458
  @Directive('@privilege(category: "data-set", privilege: "mutation", domainOwnerGranted: true)')
478
459
  @Directive('@transaction')
479
460
  @Mutation(returns => Boolean, { description: 'To import multiple data-sets' })
480
- async importDataSets(
481
- @Arg('dataSets', type => [DataSetPatch]) dataSets: DataSet[],
482
- @Ctx() context: ResolverContext
483
- ): Promise<boolean> {
461
+ async importDataSets(@Arg('dataSets', type => [DataSetPatch]) dataSets: DataSet[], @Ctx() context: ResolverContext): Promise<boolean> {
484
462
  const { domain, tx } = context.state
485
463
  const dataSetRepo = tx.getRepository(DataSet)
486
464
 
@@ -243,21 +243,21 @@ export class DataSetQuery {
243
243
  }
244
244
 
245
245
  @FieldResolver(type => Board, { nullable: true })
246
- async entryBoard(@Root() dataSet: DataSet) {
246
+ async entryBoard(@Root() dataSet: DataSet): Promise<Board> {
247
247
  if (dataSet.entryType == 'board' && dataSet.entryView) {
248
248
  return await getRepository(Board).findOneBy({ id: dataSet.entryView })
249
249
  }
250
250
  }
251
251
 
252
252
  @FieldResolver(type => Board, { nullable: true })
253
- async monitorBoard(@Root() dataSet: DataSet) {
253
+ async monitorBoard(@Root() dataSet: DataSet): Promise<Board> {
254
254
  if (dataSet.monitorType == 'board' && dataSet.monitorView) {
255
255
  return await getRepository(Board).findOneBy({ id: dataSet.monitorView })
256
256
  }
257
257
  }
258
258
 
259
259
  @FieldResolver(type => DataKeySet, { nullable: true })
260
- async dataKeySet(@Root() dataSet: DataSet) {
260
+ async dataKeySet(@Root() dataSet: DataSet): Promise<DataKeySet> {
261
261
  return (
262
262
  dataSet.dataKeySet ||
263
263
  (dataSet.dataKeySetId &&
@@ -267,8 +267,8 @@ export class DataSetQuery {
267
267
  )
268
268
  }
269
269
 
270
- @FieldResolver(type => Role)
271
- async normalScenario(@Root() dataSet: DataSet): Promise<Role> {
270
+ @FieldResolver(type => Scenario)
271
+ async normalScenario(@Root() dataSet: DataSet): Promise<Scenario> {
272
272
  return (
273
273
  dataSet.normalScenario ||
274
274
  (dataSet.normalScenarioId &&
@@ -278,8 +278,8 @@ export class DataSetQuery {
278
278
  )
279
279
  }
280
280
 
281
- @FieldResolver(type => Role)
282
- async outlierScenario(@Root() dataSet: DataSet): Promise<Role> {
281
+ @FieldResolver(type => Scenario)
282
+ async outlierScenario(@Root() dataSet: DataSet): Promise<Scenario> {
283
283
  return (
284
284
  dataSet.outlierScenario ||
285
285
  (dataSet.outlierScenarioId &&
@@ -2,27 +2,44 @@ import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
2
2
 
3
3
  import { DataSummary } from './data-summary'
4
4
 
5
- import { generateDataSummary, generateLatestDataSummaries } from '../../controllers/generate-data-summary'
5
+ import { finalizeDataCollection, finalizeLatestDataCollection } from '../../controllers/finalize-data-collection'
6
6
 
7
7
  @Resolver(DataSummary)
8
8
  export class DataSummaryMutation {
9
9
  @Directive('@transaction')
10
- @Mutation(returns => Boolean, { description: 'To generate new Data Summaries' })
11
- async generateLatestDataSummaries(
10
+ @Mutation(returns => Boolean, {
11
+ description: 'Deprecated. Use finalizeLatestDataCollection',
12
+ deprecationReason: 'This resolver has been replaced by finalizeLatestDataCollection'
13
+ })
14
+ async generateLatestDataSummaries(@Arg('dataSetId') dataSetId: string, @Ctx() context: ResolverContext): Promise<boolean> {
15
+ return await finalizeLatestDataCollection(dataSetId, context)
16
+ }
17
+
18
+ @Directive('@transaction')
19
+ @Mutation(returns => Boolean, { description: 'To finalize new Data Summaries' })
20
+ async finalizeLatestDataCollection(@Arg('dataSetId') dataSetId: string, @Ctx() context: ResolverContext): Promise<boolean> {
21
+ return await finalizeLatestDataCollection(dataSetId, context)
22
+ }
23
+
24
+ @Directive('@transaction')
25
+ @Mutation(returns => Boolean, { description: 'Deprecated. Use finalizeDataCollection', deprecationReason: 'This resolver has been replaced by finalizeDataCollection' })
26
+ async generateDataSummaries(
12
27
  @Arg('dataSetId') dataSetId: string,
28
+ @Arg('date') date: string,
29
+ @Arg('period') period: string,
13
30
  @Ctx() context: ResolverContext
14
31
  ): Promise<boolean> {
15
- return await generateLatestDataSummaries(dataSetId, context)
32
+ return await finalizeDataCollection(dataSetId, date, period, context)
16
33
  }
17
34
 
18
35
  @Directive('@transaction')
19
- @Mutation(returns => Boolean, { description: 'To generate new Data Summaries' })
20
- async generateDataSummaries(
36
+ @Mutation(returns => Boolean, { description: 'To finalize data collection for the given period' })
37
+ async finalizeDataCollection(
21
38
  @Arg('dataSetId') dataSetId: string,
22
39
  @Arg('date') date: string,
23
40
  @Arg('period') period: string,
24
41
  @Ctx() context: ResolverContext
25
42
  ): Promise<boolean> {
26
- return await generateDataSummary(dataSetId, date, period, context)
43
+ return await finalizeDataCollection(dataSetId, date, period, context)
27
44
  }
28
45
  }
@@ -1,13 +1,4 @@
1
- import {
2
- CreateDateColumn,
3
- UpdateDateColumn,
4
- Entity,
5
- Index,
6
- Column,
7
- RelationId,
8
- ManyToOne,
9
- PrimaryGeneratedColumn
10
- } from 'typeorm'
1
+ import { CreateDateColumn, UpdateDateColumn, Entity, Index, Column, RelationId, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'
11
2
  import { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'
12
3
 
13
4
  import { Domain, ScalarObject } from '@things-factory/shell'
@@ -25,18 +16,14 @@ import { DataSet, DataSetSummaryPeriodType } from '../data-set/data-set'
25
16
  dataSummary.key01,
26
17
  dataSummary.key02,
27
18
  dataSummary.key03,
28
- dataSummary.key05,
29
19
  dataSummary.key04,
20
+ dataSummary.key05,
30
21
  dataSummary.date,
31
22
  dataSummary.period
32
23
  ],
33
24
  { unique: true }
34
25
  )
35
- @Index(
36
- 'ix_data_summary_1',
37
- (dataSummary: DataSummary) => [dataSummary.domain, dataSummary.dataSet, dataSummary.date, dataSummary.period],
38
- { unique: false }
39
- )
26
+ @Index('ix_data_summary_1', (dataSummary: DataSummary) => [dataSummary.domain, dataSummary.dataSet, dataSummary.date, dataSummary.period], { unique: false })
40
27
  @ObjectType({ description: 'Entity for DataSummary' })
41
28
  export class DataSummary {
42
29
  @PrimaryGeneratedColumn('uuid')
@@ -62,11 +49,11 @@ export class DataSummary {
62
49
  @Field({ nullable: true })
63
50
  type?: DataSetSummaryPeriodType
64
51
 
65
- @Column({ nullable: true, default: '' })
52
+ @Column({ nullable: true, default: '', length: 20 })
66
53
  @Field({ nullable: true })
67
54
  date?: string = ''
68
55
 
69
- @Column({ nullable: true, default: '' })
56
+ @Column({ nullable: true, default: '', length: 20 })
70
57
  @Field({ nullable: true })
71
58
  period?: string = ''
72
59
 
@@ -106,23 +93,23 @@ export class DataSummary {
106
93
  @Field({ nullable: true })
107
94
  countOos?: number
108
95
 
109
- @Column({ nullable: true, default: '' })
96
+ @Column({ nullable: true, default: '', length: 100 })
110
97
  @Field({ nullable: true })
111
98
  key01?: string = ''
112
99
 
113
- @Column({ nullable: true, default: '' })
100
+ @Column({ nullable: true, default: '', length: 100 })
114
101
  @Field({ nullable: true })
115
102
  key02?: string = ''
116
103
 
117
- @Column({ nullable: true, default: '' })
104
+ @Column({ nullable: true, default: '', length: 100 })
118
105
  @Field({ nullable: true })
119
106
  key03?: string = ''
120
107
 
121
- @Column({ nullable: true, default: '' })
108
+ @Column({ nullable: true, default: '', length: 100 })
122
109
  @Field({ nullable: true })
123
110
  key04?: string = ''
124
111
 
125
- @Column({ nullable: true, default: '' })
112
+ @Column({ nullable: true, default: '', length: 100 })
126
113
  @Field({ nullable: true })
127
114
  key05?: string = ''
128
115
 
@@ -13,9 +13,13 @@ export default {
13
13
  page: 'data-sensor-list'
14
14
  },
15
15
  {
16
- tagname: 'data-sample-view-page',
16
+ tagname: 'data-sample-page',
17
17
  page: 'data-sample'
18
18
  },
19
+ {
20
+ tagname: 'data-samples-page',
21
+ page: 'data-samples'
22
+ },
19
23
  {
20
24
  tagname: 'data-sample-list-page',
21
25
  page: 'data-sample-list'
@@ -37,9 +41,13 @@ export default {
37
41
  page: 'data-summary-period'
38
42
  },
39
43
  {
40
- tagname: 'data-ooc-view-page',
44
+ tagname: 'data-ooc-page',
41
45
  page: 'data-ooc'
42
46
  },
47
+ {
48
+ tagname: 'data-oocs-page',
49
+ page: 'data-oocs'
50
+ },
43
51
  {
44
52
  tagname: 'data-ooc-list-page',
45
53
  page: 'data-ooc-list'
@@ -1,14 +1,17 @@
1
1
  {
2
2
  "button.corrected": "corrected",
3
+ "button.print": "print",
3
4
  "button.request-archive": "request archive",
4
5
  "button.reviewed": "reviewed",
5
6
  "error.dataset not found": "Cannot find dataSet with the given name({dataSetName})",
6
7
  "error.summary not supported": "The given dataSet({dataSetName}) does not support reports for {period}",
8
+ "field.agg-function": "aggregation func.",
7
9
  "field.appliance": "appliance",
8
10
  "field.assignees": "assignees",
9
11
  "field.collected-at": "collected at",
10
12
  "field.corrected-at": "corrected at",
11
- "field.corrective-action": "corrective action",
13
+ "field.corrective-action": "action",
14
+ "field.corrective-instruction": "instruction",
12
15
  "field.corrector": "corrector",
13
16
  "field.count": "count",
14
17
  "field.count-ooc": "oos count",
@@ -24,6 +27,8 @@
24
27
  "field.data-sample": "data sample",
25
28
  "field.data-set": "data set",
26
29
  "field.date": "date",
30
+ "field.decoder": "decoder",
31
+ "field.decoder-scenario": "decoder scenario",
27
32
  "field.device-id": "device id",
28
33
  "field.download-url": "download url",
29
34
  "field.entry-role": "entry role",
@@ -64,7 +69,7 @@
64
69
  "field.role": "role",
65
70
  "field.serial-no": "serial #",
66
71
  "field.spec": "spec",
67
- "field.stat-function": "stat func.",
72
+ "field.finalizing-function": "finalizing func.",
68
73
  "field.status": "status",
69
74
  "field.subgroup": "subgroup",
70
75
  "field.summary": "summary",
@@ -82,22 +87,28 @@
82
87
  "label.corrective action": "corrective action",
83
88
  "label.corrective instruction": "corrective instruction",
84
89
  "label.critical-limits": "critical limits",
90
+ "label.data-set": "data set",
85
91
  "label.data-set-type": "type",
92
+ "label.datasample review timeline": "data sample review timeline",
86
93
  "label.end-date": "end date",
87
94
  "label.group-by data-keys": "group by each data-keys",
88
95
  "label.maximum value": "maximum value",
89
96
  "label.minimum value": "minimum value",
97
+ "label.ooc resolve timeline": "OOC resolve timeline",
98
+ "label.ooc review timeline": "OOC review timeline",
90
99
  "label.pass-limits": "pass limits",
91
100
  "label.period-12-months": "12 months",
92
101
  "label.period-30-days": "30 days",
93
102
  "label.period-this-month": "this month",
94
103
  "label.period-this-year": "this year",
95
104
  "label.period-today": "today",
105
+ "label.raw-data": "raw data",
96
106
  "label.start-date": "start date",
97
107
  "label.state-corrected": "corrected",
98
108
  "label.state-issued": "issued",
99
109
  "label.state-reviewed": "reviewed",
100
110
  "label.target-limits": "target limits",
111
+ "label.timestamp": "timestamp",
101
112
  "text.automatically collected": "automatically collected",
102
113
  "text.corrective action placeholder": "Please enter details for implementing corrective and preventive actions",
103
114
  "text.corrective instruction placeholder": "Please enter instructions for corrective and preventive actions",
@@ -139,10 +150,13 @@
139
150
  "title.edit duration": "edit duration",
140
151
  "title.edit hashtag": "edit hashtag",
141
152
  "title.edit json": "edit json",
153
+ "title.lookup scenario": "lookup scenario",
142
154
  "title.open data sample report page": "open data sample report page",
143
155
  "title.open data sample search page": "open data sample search page",
144
156
  "title.open data sample view": "open data sample view",
145
157
  "title.open data summary view": "open data summary view",
146
158
  "title.ready": "ready",
147
- "title.view detail ooc data": "view detail ooc data"
159
+ "title.view detail ooc data": "view detail ooc data",
160
+ "title.Data Key Set Master": "data key set master",
161
+ "menu.Data Key Set Master": "Data Key Set Master"
148
162
  }
@@ -1,14 +1,17 @@
1
1
  {
2
2
  "button.corrected": "措置完了",
3
+ "button.print": "プリント",
3
4
  "button.request-archive": "資料保管の新規リクエスト",
4
5
  "button.reviewed": "検討完了",
5
6
  "error.dataset not found": "指定された名前の({dataSetName})データセットが見つかりません",
6
7
  "error.summary not supported": "指定されたデータセット({dataSetName})は{period}のレポートに対応していません",
8
+ "field.agg-function": "集計関数",
7
9
  "field.appliance": "アプライアンス",
8
10
  "field.assignees": "譲渡人リスト",
9
11
  "field.collected-at": "取集日時",
10
12
  "field.corrected-at": "措置時間",
11
- "field.corrective-action": "措置活動",
13
+ "field.corrective-action": "是正措置",
14
+ "field.corrective-instruction": "是正指示",
12
15
  "field.corrector": "措置者",
13
16
  "field.count": "件数",
14
17
  "field.count-ooc": "管理限界離脱件数",
@@ -24,11 +27,14 @@
24
27
  "field.data-sample": "データ サンプル",
25
28
  "field.data-set": "データ セット",
26
29
  "field.date": "日時",
30
+ "field.decoder": "デコーダー",
31
+ "field.decoder-scenario": "デコーダーシナリオ",
27
32
  "field.device-id": "デバイスID",
28
33
  "field.download-url": "ダウンロード アドレス",
29
34
  "field.entry-role": "入力担当ロール",
30
35
  "field.entry-type": "入力用画面タイプ",
31
36
  "field.entry-view": "入力用画面",
37
+ "field.finalizing-function": "最終処理関数",
32
38
  "field.hidden": "隠し",
33
39
  "field.item": "項目",
34
40
  "field.key": "キ",
@@ -64,7 +70,6 @@
64
70
  "field.role": "ロール",
65
71
  "field.serial-no": "シリアル番号",
66
72
  "field.spec": "明細",
67
- "field.stat-function": "統計関数",
68
73
  "field.status": "状態",
69
74
  "field.subgroup": "サブグループ名",
70
75
  "field.summary": "サマリー",
@@ -82,22 +87,28 @@
82
87
  "label.corrective action": "是正措置",
83
88
  "label.corrective instruction": "是正指示",
84
89
  "label.critical-limits": "許容限界範囲",
90
+ "label.data-set": "データ セット",
85
91
  "label.data-set-type": "タイプ",
92
+ "label.datasample review timeline": "データサンプルレビュータイムライン",
86
93
  "label.end-date": "終了日",
87
94
  "label.group-by data-keys": "各データキーごとにグループ化",
88
95
  "label.maximum value": "最大値",
89
96
  "label.minimum value": "最小値",
97
+ "label.ooc resolve timeline": "OOC 解決タイムライン",
98
+ "label.ooc review timeline": "OOC レビュータイムライン",
90
99
  "label.pass-limits": "通過許容範囲",
91
100
  "label.period-12-months": "12ヶ月",
92
101
  "label.period-30-days": "30日",
93
102
  "label.period-this-month": "今月",
94
103
  "label.period-this-year": "今年",
95
104
  "label.period-today": "今日",
105
+ "label.raw-data": "生データ",
96
106
  "label.start-date": "開始日",
97
107
  "label.state-corrected": "修正済",
98
108
  "label.state-issued": "発行済",
99
109
  "label.state-reviewed": "審査済",
100
110
  "label.target-limits": "管理目標範囲",
111
+ "label.timestamp": "タイムスタンプ",
101
112
  "text.automatically collected": "自動収集",
102
113
  "text.corrective action placeholder": "是正及び予防措置の実施事項を入力してください",
103
114
  "text.corrective instruction placeholder": "是正及び予防措置の指示事項を入力してください",
@@ -138,6 +149,7 @@
138
149
  "title.edit duration": "周期編集",
139
150
  "title.edit hashtag": "ハッシュタグ編集",
140
151
  "title.edit json": "JSON編集",
152
+ "title.lookup scenario": "ルックアップシナリオ",
141
153
  "title.open data sample report page": "データ サンプル レポート ページを開く",
142
154
  "title.open data sample search page": "データ サンプル検索ページを開く",
143
155
  "title.open data sample view": "データ サンプル ビューページを開く",