@things-factory/dataset 5.0.0-alpha.33 → 5.0.0-alpha.36
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.
- package/client/bootstrap.js +5 -2
- package/client/pages/data-entry/data-entry-form.js +7 -5
- package/client/pages/data-entry/data-entry-list-page.js +2 -102
- package/client/pages/data-ooc/data-ooc-list-page.js +1 -1
- package/client/pages/data-report/data-report-list-page.js +462 -0
- package/client/pages/data-sample/data-sample-list-page.js +1 -1
- package/client/pages/data-sensor/data-sensor-list-page.js +7 -7
- package/client/pages/data-set/data-set-list-page.js +12 -11
- package/client/route.js +4 -0
- package/dist-server/controllers/create-data-sample.js +4 -4
- package/dist-server/controllers/create-data-sample.js.map +1 -1
- package/dist-server/service/data-item/data-item-query.js +7 -2
- package/dist-server/service/data-item/data-item-query.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js +7 -2
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-query.js +7 -2
- package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-query.js +7 -2
- package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
- package/dist-server/service/data-set/data-set-query.js +54 -16
- package/dist-server/service/data-set/data-set-query.js.map +1 -1
- package/package.json +16 -16
- package/server/controllers/create-data-sample.ts +7 -5
- package/server/service/data-item/data-item-query.ts +9 -3
- package/server/service/data-ooc/data-ooc-query.ts +9 -3
- package/server/service/data-sample/data-sample-query.ts +9 -3
- package/server/service/data-sensor/data-sensor-query.ts +9 -3
- package/server/service/data-set/data-set-query.ts +56 -17
- package/things-factory.config.js +4 -0
- package/translations/en.json +8 -0
- package/translations/ko.json +8 -0
- package/translations/ms.json +8 -0
- package/translations/zh.json +8 -0
- package/yarn-error.log +4 -4
@@ -1,9 +1,9 @@
|
|
1
1
|
import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
2
|
-
import {
|
2
|
+
import { getRepository } from 'typeorm'
|
3
3
|
|
4
4
|
import { Role, User } from '@things-factory/auth-base'
|
5
5
|
import { Board } from '@things-factory/board-service'
|
6
|
-
import {
|
6
|
+
import { Domain, getQueryBuilderFromListParams, ListParam } from '@things-factory/shell'
|
7
7
|
|
8
8
|
import { DataItem } from '../data-item/data-item'
|
9
9
|
import { DataSample } from '../data-sample/data-sample'
|
@@ -29,27 +29,66 @@ export class DataSetQuery {
|
|
29
29
|
async dataSets(@Args() params: ListParam, @Ctx() context: any): Promise<DataSetList> {
|
30
30
|
const { domain } = context.state
|
31
31
|
|
32
|
-
const
|
33
|
-
|
32
|
+
const queryBuilder = getQueryBuilderFromListParams({
|
33
|
+
repository: getRepository(DataSet),
|
34
|
+
params,
|
35
|
+
domain,
|
36
|
+
alias: 'dataset'
|
37
|
+
})
|
38
|
+
|
39
|
+
const [items, total] = await queryBuilder.getManyAndCount()
|
34
40
|
|
35
41
|
return { items, total }
|
36
42
|
}
|
37
43
|
|
38
44
|
@Query(returns => DataSetList, { description: 'To fetch multiple DataSets for data entry manually' })
|
39
45
|
async dataSetsForEntry(@Args() params: ListParam, @Ctx() context: any): Promise<DataSetList> {
|
40
|
-
|
46
|
+
var { domain, user } = context.state
|
47
|
+
|
48
|
+
/* 조회한 사용자가 entry-role을 가진 data-set 리스트만 반환 */
|
49
|
+
user = await getRepository(User).findOne({
|
50
|
+
where: { id: user.id },
|
51
|
+
relations: ['roles']
|
52
|
+
})
|
53
|
+
const roles = user.roles.filter(role => role.domainId === domain.id).map(role => role.id)
|
54
|
+
|
55
|
+
const queryBuilder = getQueryBuilderFromListParams({
|
56
|
+
repository: getRepository(DataSet),
|
57
|
+
params,
|
58
|
+
domain,
|
59
|
+
alias: 'dataset'
|
60
|
+
})
|
41
61
|
|
42
|
-
|
62
|
+
queryBuilder.andWhere(`dataset.active = :active`, { active: true })
|
63
|
+
queryBuilder.andWhere(`dataset.entry_role_id IN (:...roles)`, { roles })
|
43
64
|
|
44
|
-
const
|
45
|
-
where.active = Equal(true)
|
65
|
+
const [items, total] = await queryBuilder.getManyAndCount()
|
46
66
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
67
|
+
return { items, total }
|
68
|
+
}
|
69
|
+
|
70
|
+
@Query(returns => DataSetList, { description: 'To fetch multiple DataSets to see data report' })
|
71
|
+
async dataSetsForReport(@Args() params: ListParam, @Ctx() context: any): Promise<DataSetList> {
|
72
|
+
var { domain, user } = context.state
|
73
|
+
|
74
|
+
/* 조회한 사용자가 supervisory 역할을 가진 data-set 리스트만 반환 */
|
75
|
+
user = await getRepository(User).findOne({
|
76
|
+
where: { id: user.id },
|
77
|
+
relations: ['roles']
|
52
78
|
})
|
79
|
+
const roles = user.roles.filter(role => role.domainId === domain.id).map(role => role.id)
|
80
|
+
|
81
|
+
const queryBuilder = getQueryBuilderFromListParams({
|
82
|
+
repository: getRepository(DataSet),
|
83
|
+
params,
|
84
|
+
domain,
|
85
|
+
alias: 'dataset'
|
86
|
+
})
|
87
|
+
|
88
|
+
queryBuilder.andWhere(`dataset.active = :active`, { active: true })
|
89
|
+
queryBuilder.andWhere(`dataset.supervisory_role_id IN (:...roles)`, { roles })
|
90
|
+
|
91
|
+
const [items, total] = await queryBuilder.getManyAndCount()
|
53
92
|
|
54
93
|
return { items, total }
|
55
94
|
}
|
@@ -117,14 +156,14 @@ export class DataSetQuery {
|
|
117
156
|
|
118
157
|
@FieldResolver(type => Date, { nullable: true })
|
119
158
|
async nextSchedule(@Root() dataSet: DataSet): Promise<Date> {
|
120
|
-
const {
|
159
|
+
const { domain, schedule, timezone } = dataSet
|
121
160
|
|
122
161
|
if (!schedule) {
|
123
162
|
return
|
124
163
|
}
|
125
164
|
|
126
165
|
var interval = parser.parseExpression(schedule, {
|
127
|
-
tz: timezone
|
166
|
+
tz: timezone || domain.timezone || 'UTC'
|
128
167
|
})
|
129
168
|
|
130
169
|
return interval.next().toDate()
|
@@ -132,14 +171,14 @@ export class DataSetQuery {
|
|
132
171
|
|
133
172
|
@FieldResolver(type => Date, { nullable: true })
|
134
173
|
async prevSchedule(@Root() dataSet: DataSet): Promise<Date> {
|
135
|
-
const {
|
174
|
+
const { domain, schedule, timezone } = dataSet
|
136
175
|
|
137
176
|
if (!schedule) {
|
138
177
|
return
|
139
178
|
}
|
140
179
|
|
141
180
|
var interval = parser.parseExpression(schedule, {
|
142
|
-
tz: timezone
|
181
|
+
tz: timezone || domain.timezone || 'UTC'
|
143
182
|
})
|
144
183
|
|
145
184
|
return interval.prev().toDate()
|
package/things-factory.config.js
CHANGED
package/translations/en.json
CHANGED
@@ -38,8 +38,16 @@
|
|
38
38
|
"field.use-case": "use case",
|
39
39
|
"field.work-date": "work date",
|
40
40
|
"field.work-shift": "work shift",
|
41
|
+
"label.acceptables": "acceptables",
|
42
|
+
"label.critical limits": "critical limits",
|
43
|
+
"label.minimum value": "minimum value",
|
44
|
+
"label.maximum value": "maximum value",
|
45
|
+
"label.pass limits": "pass limits",
|
46
|
+
"label.target limits": "target limits",
|
47
|
+
"text.automatically collected": "automatically collected",
|
41
48
|
"text.data sample created successfully": "a data sample created successfully",
|
42
49
|
"text.data ooc updated successfully": "a data ooc updated successfully",
|
50
|
+
"text.manually collected": "manually collected",
|
43
51
|
"title.data-entry-form": "data entry form",
|
44
52
|
"title.data-entry list": "data entry list",
|
45
53
|
"title.data-item list": "data item list",
|
package/translations/ko.json
CHANGED
@@ -38,8 +38,16 @@
|
|
38
38
|
"field.use-case": "사용 사례",
|
39
39
|
"field.work-date": "작업기준일",
|
40
40
|
"field.work-shift": "교대근무조",
|
41
|
+
"label.acceptables": "허용값",
|
42
|
+
"label.critical limits": "허용 한계범위",
|
43
|
+
"label.minimum value": "최소값",
|
44
|
+
"label.maximum value": "최대값",
|
45
|
+
"label.pass limits": "통과 허용범위",
|
46
|
+
"label.target limits": "관리 목표범위",
|
47
|
+
"text.automatically collected": "자동 수집",
|
41
48
|
"text.data sample created successfully": "데이타 샘플이 성공적으로 생성되었습니다",
|
42
49
|
"text.data ooc updated successfully": "이탈데이타 내용이 수정되었습니다",
|
50
|
+
"text.manually collected": "수동 수집",
|
43
51
|
"title.data-entry-form": "데이타 입력",
|
44
52
|
"title.data-item list": "데이타 아이템 조회",
|
45
53
|
"title.data-monitor-view": "데이타 모니터",
|
package/translations/ms.json
CHANGED
@@ -38,8 +38,16 @@
|
|
38
38
|
"field.use-case": "use case",
|
39
39
|
"field.work-date": "work date",
|
40
40
|
"field.work-shift": "work shift",
|
41
|
+
"label.acceptables": "acceptables",
|
42
|
+
"label.critical limits": "critical limits",
|
43
|
+
"label.minimum value": "minimum value",
|
44
|
+
"label.maximum value": "maximum value",
|
45
|
+
"label.pass limits": "pass limits",
|
46
|
+
"label.target limits": "target limits",
|
47
|
+
"text.automatically collected": "automatically collected",
|
41
48
|
"text.data sample created successfully": "a data sample created successfully",
|
42
49
|
"text.data ooc updated successfully": "a data ooc updated successfully",
|
50
|
+
"text.manually collected": "manually collected",
|
43
51
|
"title.data-entry-form": "data entry form",
|
44
52
|
"title.data-item list": "data item list",
|
45
53
|
"title.data-monitor-view": "data monitor view",
|
package/translations/zh.json
CHANGED
@@ -38,8 +38,16 @@
|
|
38
38
|
"field.use-case": "use case",
|
39
39
|
"field.work-date": "work date",
|
40
40
|
"field.work-shift": "work shift",
|
41
|
+
"label.acceptables": "acceptables",
|
42
|
+
"label.critical limits": "critical limits",
|
43
|
+
"label.minimum value": "minimum value",
|
44
|
+
"label.maximum value": "maximum value",
|
45
|
+
"label.pass limits": "pass limits",
|
46
|
+
"label.target limits": "target limits",
|
47
|
+
"text.automatically collected": "automatically collected",
|
41
48
|
"text.data sample created successfully": "a data sample created successfully",
|
42
49
|
"text.data ooc updated successfully": "a data ooc updated successfully",
|
50
|
+
"text.manually collected": "manually collected",
|
43
51
|
"title.data-entry-form": "data entry form",
|
44
52
|
"title.data-item list": "data item list",
|
45
53
|
"title.data-monitor-view": "data monitor view",
|
package/yarn-error.log
CHANGED
@@ -1176,7 +1176,7 @@ Lockfile:
|
|
1176
1176
|
"@babel/types" "^7.17.0"
|
1177
1177
|
convert-source-map "^1.7.0"
|
1178
1178
|
debug "^4.1.0"
|
1179
|
-
gensync "^1.0.0-beta.
|
1179
|
+
gensync "^1.0.0-beta.4"
|
1180
1180
|
json5 "^2.1.2"
|
1181
1181
|
semver "^6.3.0"
|
1182
1182
|
|
@@ -11884,9 +11884,9 @@ Lockfile:
|
|
11884
11884
|
resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.8.2.tgz#aab4f280adb522fdfbdc5e5b64d718d3683f04e9"
|
11885
11885
|
integrity sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg==
|
11886
11886
|
|
11887
|
-
gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.
|
11888
|
-
version "1.0.0-beta.
|
11889
|
-
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.
|
11887
|
+
gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.4:
|
11888
|
+
version "1.0.0-beta.4"
|
11889
|
+
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.4.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
11890
11890
|
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
11891
11891
|
|
11892
11892
|
get-caller-file@^1.0.1:
|