@things-factory/dataset 6.0.90 → 6.0.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/pages/data-summary/data-summary-period-page.ts +25 -7
- package/dist-client/pages/data-summary/data-summary-group-page.d.ts +82 -0
- package/dist-client/pages/data-summary/data-summary-group-page.js +435 -0
- package/dist-client/pages/data-summary/data-summary-group-page.js.map +1 -0
- package/dist-client/pages/data-summary/data-summary-importer.d.ts +22 -0
- package/dist-client/pages/data-summary/data-summary-importer.js +100 -0
- package/dist-client/pages/data-summary/data-summary-importer.js.map +1 -0
- package/dist-client/pages/data-summary/data-summary-period-page.d.ts +1 -0
- package/dist-client/pages/data-summary/data-summary-period-page.js +28 -7
- package/dist-client/pages/data-summary/data-summary-period-page.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/controllers/generate-summary-data.js +88 -0
- package/dist-server/controllers/generate-summary-data.js.map +1 -0
- package/dist-server/controllers/query-data-summary-by-period.js +20 -8
- package/dist-server/controllers/query-data-summary-by-period.js.map +1 -1
- package/dist-server/service/data-summary/data-summary-query.js +6 -5
- package/dist-server/service/data-summary/data-summary-query.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/server/controllers/query-data-summary-by-period.ts +21 -7
- package/server/service/data-summary/data-summary-query.ts +2 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@things-factory/dataset",
|
3
|
-
"version": "6.0.
|
3
|
+
"version": "6.0.92",
|
4
4
|
"main": "dist-server/index.js",
|
5
5
|
"browser": "dist-client/index.js",
|
6
6
|
"things-factory": true,
|
@@ -36,19 +36,19 @@
|
|
36
36
|
"@operato/shell": "^1.0.1",
|
37
37
|
"@operato/styles": "^1.0.0",
|
38
38
|
"@operato/utils": "^1.0.1",
|
39
|
-
"@things-factory/auth-base": "^6.0.
|
40
|
-
"@things-factory/aws-base": "^6.0.
|
41
|
-
"@things-factory/board-service": "^6.0.
|
42
|
-
"@things-factory/env": "^6.0.
|
43
|
-
"@things-factory/organization": "^6.0.
|
44
|
-
"@things-factory/scheduler-client": "^6.0.
|
45
|
-
"@things-factory/shell": "^6.0.
|
46
|
-
"@things-factory/work-shift": "^6.0.
|
47
|
-
"@things-factory/worklist": "^6.0.
|
39
|
+
"@things-factory/auth-base": "^6.0.91",
|
40
|
+
"@things-factory/aws-base": "^6.0.91",
|
41
|
+
"@things-factory/board-service": "^6.0.91",
|
42
|
+
"@things-factory/env": "^6.0.91",
|
43
|
+
"@things-factory/organization": "^6.0.91",
|
44
|
+
"@things-factory/scheduler-client": "^6.0.91",
|
45
|
+
"@things-factory/shell": "^6.0.91",
|
46
|
+
"@things-factory/work-shift": "^6.0.91",
|
47
|
+
"@things-factory/worklist": "^6.0.91",
|
48
48
|
"cron-parser": "^4.3.0",
|
49
49
|
"moment-timezone": "^0.5.40",
|
50
50
|
"simple-statistics": "^7.8.3",
|
51
51
|
"statistics": "^3.3.0"
|
52
52
|
},
|
53
|
-
"gitHead": "
|
53
|
+
"gitHead": "6b20d32f29809cd6c99fd22296f809816a6c954d"
|
54
54
|
}
|
@@ -5,7 +5,6 @@ import { getQueryBuilderFromListParams, getRepository, ListParam } from '@things
|
|
5
5
|
import { DataSet, DataSetSummaryPeriodType } from '../service/data-set/data-set'
|
6
6
|
|
7
7
|
import { DataSummary } from '../service/data-summary/data-summary'
|
8
|
-
import { DataSummaryList } from '../service/data-summary/data-summary-type'
|
9
8
|
|
10
9
|
const STAT_FUNCTION_MAP = {
|
11
10
|
sum: 'sum',
|
@@ -57,6 +56,7 @@ async function getTimesForPeriod(
|
|
57
56
|
export async function queryDataSummaryByPeriod(
|
58
57
|
period: 'today' | 'this month' | '30 days' | 'this year' | '12 months',
|
59
58
|
dataSetName: string,
|
59
|
+
dataKeys: string[] | null,
|
60
60
|
params: ListParam,
|
61
61
|
context: ResolverContext
|
62
62
|
): Promise<DataSummary[]> {
|
@@ -80,7 +80,19 @@ export async function queryDataSummaryByPeriod(
|
|
80
80
|
throw new Error(`given dataSet(${dataSetName}) is not allowed for getting summary for ${period}`)
|
81
81
|
}
|
82
82
|
|
83
|
-
|
83
|
+
// dataKeys 가 설정되지 않았다면, dataSet의 dataKeySet을 그대로 적용한다는 의미임.
|
84
|
+
// dataKeys == [] 라면, dataKeySet을 적용하지 않는다는 의미임.
|
85
|
+
// dataKeys에는 dataKeySet의 dataKey 값을 따라야 한다.
|
86
|
+
const dataKeyItems = !dataSet.dataKeySet?.dataKeyItems
|
87
|
+
? []
|
88
|
+
: dataKeys
|
89
|
+
? dataKeys
|
90
|
+
.map(dataKey => {
|
91
|
+
return dataSet.dataKeySet.dataKeyItems.find(item => item.dataKey == dataKey)
|
92
|
+
})
|
93
|
+
.filter(Boolean)
|
94
|
+
: dataSet.dataKeySet.dataKeyItems
|
95
|
+
|
84
96
|
const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)
|
85
97
|
const dataItems = dataSet.dataItems.filter(item => item.stat)
|
86
98
|
|
@@ -138,7 +150,7 @@ export async function queryDataSummaryByPeriod(
|
|
138
150
|
period == 'today'
|
139
151
|
? 'summary.date, summary.period'
|
140
152
|
: ['this year', '12 months'].includes(period)
|
141
|
-
? 'month
|
153
|
+
? 'month'
|
142
154
|
: 'summary.date'
|
143
155
|
const groupByKeys = dataKeyItems
|
144
156
|
.map((item, index) => {
|
@@ -162,7 +174,7 @@ export async function queryDataSummaryByPeriod(
|
|
162
174
|
? [{ sort: 'month', order: 'DESC' }]
|
163
175
|
: [{ sort: 'summary.date', order: 'DESC' }]
|
164
176
|
|
165
|
-
|
177
|
+
var queryBuilder = getQueryBuilderFromListParams({
|
166
178
|
repository: getRepository(DataSummary),
|
167
179
|
params,
|
168
180
|
domain,
|
@@ -172,13 +184,12 @@ export async function queryDataSummaryByPeriod(
|
|
172
184
|
.select('summary.dataSet')
|
173
185
|
.addSelect('ds.name', 'name')
|
174
186
|
.addSelect('ds.description', 'description')
|
175
|
-
.addSelect(selectKeys)
|
176
187
|
.addSelect(selectData)
|
177
188
|
.addSelect('SUM(summary.count)', 'count')
|
178
189
|
.addSelect('SUM(summary.countOoc)', 'countOoc')
|
179
190
|
.addSelect('SUM(summary.countOos)', 'countOos')
|
180
191
|
|
181
|
-
selectPeriod(queryBuilder)
|
192
|
+
queryBuilder = selectPeriod(queryBuilder)
|
182
193
|
.innerJoin('summary.dataSet', 'ds', 'ds.id = :dataSetName', {
|
183
194
|
dataSetName: dataSet.id
|
184
195
|
})
|
@@ -189,7 +200,10 @@ export async function queryDataSummaryByPeriod(
|
|
189
200
|
.addGroupBy('ds.name')
|
190
201
|
.addGroupBy('ds.description')
|
191
202
|
.addGroupBy(groupByPeriod)
|
192
|
-
|
203
|
+
|
204
|
+
if (dataKeyItems.length > 0) {
|
205
|
+
queryBuilder.addSelect(selectKeys).addGroupBy(groupByKeys)
|
206
|
+
}
|
193
207
|
|
194
208
|
orderByPeriod.map(orderBy => {
|
195
209
|
const { sort, order } = orderBy
|
@@ -39,10 +39,11 @@ export class DataSummaryQuery {
|
|
39
39
|
async dataSummaryByPeriod(
|
40
40
|
@Arg('period') period: 'today' | 'this month' | '30 days' | 'this year' | '12 months',
|
41
41
|
@Arg('dataSetName') dataSetName: string,
|
42
|
+
@Arg('dataKeys', type => [String], { nullable: true }) dataKeys: string[] | null,
|
42
43
|
@Args() params: ListParam,
|
43
44
|
@Ctx() context: ResolverContext
|
44
45
|
): Promise<DynamicDataSummary[]> {
|
45
|
-
return await queryDataSummaryByPeriod(period, dataSetName, params, context)
|
46
|
+
return await queryDataSummaryByPeriod(period, dataSetName, dataKeys, params, context)
|
46
47
|
}
|
47
48
|
|
48
49
|
@Directive('@privilege(category: "data-summary", privilege: "query", domainOwnerGranted: true)')
|