@things-factory/dataset 5.0.0-zeta.9 → 5.0.0

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 (62) hide show
  1. package/client/{pages/data-entry → components}/data-entry-form.js +1 -1
  2. package/client/index.js +1 -0
  3. package/client/pages/data-entry/data-entry-list-page.js +2 -2
  4. package/client/pages/data-ooc/data-ooc-list-page.js +12 -17
  5. package/client/pages/data-report/data-report-list-page.js +1 -1
  6. package/client/pages/data-sample/data-sample-list-page.js +11 -12
  7. package/client/pages/data-sensor/data-sensor-list-page.js +1 -1
  8. package/client/pages/data-set/data-set-list-page.js +3 -2
  9. package/config/config.development.js +1 -1
  10. package/config/config.production.js +13 -1
  11. package/dist-server/controllers/create-data-sample.js +4 -37
  12. package/dist-server/controllers/create-data-sample.js.map +1 -1
  13. package/dist-server/controllers/data-use-case.js +11 -5
  14. package/dist-server/controllers/data-use-case.js.map +1 -1
  15. package/dist-server/controllers/jasper-report.js +14 -9
  16. package/dist-server/controllers/jasper-report.js.map +1 -1
  17. package/dist-server/service/data-ooc/data-ooc-query.js +4 -17
  18. package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
  19. package/dist-server/service/data-ooc/data-ooc.js +7 -15
  20. package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
  21. package/dist-server/service/data-sample/data-sample-query.js +4 -4
  22. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  23. package/dist-server/service/data-sample/data-sample.js +7 -3
  24. package/dist-server/service/data-sample/data-sample.js.map +1 -1
  25. package/dist-server/service/data-set/data-set-mutation.js +5 -22
  26. package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
  27. package/dist-server/service/data-set/data-set-query.js +1 -1
  28. package/dist-server/service/data-set/data-set-type.js +12 -9
  29. package/dist-server/service/data-set/data-set-type.js.map +1 -1
  30. package/dist-server/service/data-set/data-set.js +1 -4
  31. package/dist-server/service/data-set/data-set.js.map +1 -1
  32. package/dist-server/service/data-set-history/data-set-history-query.js +2 -2
  33. package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -1
  34. package/dist-server/service/data-set-history/data-set-history.js +46 -55
  35. package/dist-server/service/data-set-history/data-set-history.js.map +1 -1
  36. package/dist-server/service/data-set-history/event-subscriber.js +26 -0
  37. package/dist-server/service/data-set-history/event-subscriber.js.map +1 -0
  38. package/dist-server/service/data-set-history/index.js +3 -1
  39. package/dist-server/service/data-set-history/index.js.map +1 -1
  40. package/dist-server/service/index.js +5 -1
  41. package/dist-server/service/index.js.map +1 -1
  42. package/package.json +18 -18
  43. package/server/controllers/create-data-sample.ts +5 -37
  44. package/server/controllers/data-use-case.ts +17 -6
  45. package/server/controllers/jasper-report.ts +58 -48
  46. package/server/service/data-ooc/data-ooc-query.ts +3 -11
  47. package/server/service/data-ooc/data-ooc.ts +6 -16
  48. package/server/service/data-sample/data-sample-query.ts +3 -3
  49. package/server/service/data-sample/data-sample.ts +6 -4
  50. package/server/service/data-set/data-set-mutation.ts +0 -31
  51. package/server/service/data-set/data-set-query.ts +1 -1
  52. package/server/service/data-set/data-set-type.ts +2 -1
  53. package/server/service/data-set/data-set.ts +3 -5
  54. package/server/service/data-set-history/data-set-history-query.ts +2 -2
  55. package/server/service/data-set-history/data-set-history.ts +61 -60
  56. package/server/service/data-set-history/event-subscriber.ts +17 -0
  57. package/server/service/data-set-history/index.ts +2 -0
  58. package/server/service/index.ts +10 -1
  59. package/translations/en.json +1 -1
  60. package/translations/ko.json +2 -2
  61. package/translations/ms.json +1 -1
  62. package/translations/zh.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"data-set-history.js","sourceRoot":"","sources":["../../../server/service/data-set-history/data-set-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-set-history.js","sourceRoot":"","sources":["../../../server/service/data-set-history/data-set-history.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DataSetHistoryEntitySubscriber = void 0;
10
+ const typeorm_1 = require("typeorm");
11
+ const typeorm_history_1 = require("@anchan828/typeorm-history");
12
+ const data_set_1 = require("../data-set/data-set");
13
+ const data_set_history_1 = require("./data-set-history");
14
+ let DataSetHistoryEntitySubscriber = class DataSetHistoryEntitySubscriber extends typeorm_history_1.HistoryEntitySubscriber {
15
+ get entity() {
16
+ return data_set_1.DataSet;
17
+ }
18
+ get historyEntity() {
19
+ return data_set_history_1.DataSetHistory;
20
+ }
21
+ };
22
+ DataSetHistoryEntitySubscriber = __decorate([
23
+ (0, typeorm_1.EventSubscriber)()
24
+ ], DataSetHistoryEntitySubscriber);
25
+ exports.DataSetHistoryEntitySubscriber = DataSetHistoryEntitySubscriber;
26
+ //# sourceMappingURL=event-subscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-subscriber.js","sourceRoot":"","sources":["../../../server/service/data-set-history/event-subscriber.ts"],"names":[],"mappings":";;;;;;;;;AAAA,qCAAyC;AAEzC,gEAAoE;AAEpE,mDAA8C;AAC9C,yDAAmD;AAGnD,IAAa,8BAA8B,GAA3C,MAAa,8BAA+B,SAAQ,yCAAgD;IAClG,IAAW,MAAM;QACf,OAAO,kBAAO,CAAA;IAChB,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,iCAAc,CAAA;IACvB,CAAC;CACF,CAAA;AARY,8BAA8B;IAD1C,IAAA,yBAAe,GAAE;GACL,8BAA8B,CAQ1C;AARY,wEAA8B"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolvers = exports.entities = void 0;
3
+ exports.subscribers = exports.resolvers = exports.entities = void 0;
4
4
  const data_set_history_1 = require("./data-set-history");
5
5
  const data_set_history_query_1 = require("./data-set-history-query");
6
+ const event_subscriber_1 = require("./event-subscriber");
6
7
  exports.entities = [data_set_history_1.DataSetHistory];
7
8
  exports.resolvers = [data_set_history_query_1.DataSetHistoryQuery];
9
+ exports.subscribers = [event_subscriber_1.DataSetHistoryEntitySubscriber];
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/data-set-history/index.ts"],"names":[],"mappings":";;;AAAA,yDAAmD;AACnD,qEAA8D;AAEjD,QAAA,QAAQ,GAAG,CAAC,iCAAc,CAAC,CAAA;AAC3B,QAAA,SAAS,GAAG,CAAC,4CAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/data-set-history/index.ts"],"names":[],"mappings":";;;AAAA,yDAAmD;AACnD,qEAA8D;AAC9D,yDAAmE;AAEtD,QAAA,QAAQ,GAAG,CAAC,iCAAc,CAAC,CAAA;AAC3B,QAAA,SAAS,GAAG,CAAC,4CAAmB,CAAC,CAAA;AACjC,QAAA,WAAW,GAAG,CAAC,iDAA8B,CAAC,CAAA"}
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.schema = exports.entities = void 0;
17
+ exports.schema = exports.subscribers = exports.entities = void 0;
18
18
  const data_item_1 = require("./data-item");
19
19
  /* IMPORT ENTITIES AND RESOLVERS */
20
20
  const data_ooc_1 = require("./data-ooc");
@@ -41,6 +41,10 @@ exports.entities = [
41
41
  ...data_set_history_1.entities,
42
42
  ...data_spec_1.entities
43
43
  ];
44
+ exports.subscribers = [
45
+ /* SUBSCRIBERS */
46
+ ...data_set_history_1.subscribers
47
+ ];
44
48
  exports.schema = {
45
49
  resolverClasses: [
46
50
  /* RESOLVER CLASSES */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAA0D;AAC1D,mCAAmC;AACnC,yCAAuF;AACvF,+CAAgG;AAChG,+CAAgG;AAChG,yCAAuF;AACvF,yDAA6G;AAC7G,2CAA0F;AAE1F,yBAAyB;AACzB,sDAAmC;AACnC,4DAAyC;AACzC,4DAAyC;AACzC,sDAAmC;AACnC,sEAAmD;AACnD,4DAAyC;AACzC,wDAAqC;AAExB,QAAA,QAAQ,GAAG;IACtB,cAAc;IACd,GAAG,oBAAgB;IACnB,GAAG,mBAAe;IAClB,GAAG,sBAAkB;IACrB,GAAG,sBAAkB;IACrB,GAAG,mBAAe;IAClB,GAAG,2BAAsB;IACzB,GAAG,oBAAgB;CACpB,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACtB,GAAG,oBAAgB;QACnB,GAAG,uBAAmB;QACtB,GAAG,uBAAmB;QACtB,GAAG,oBAAgB;QACnB,GAAG,4BAAuB;QAC1B,GAAG,qBAAiB;KACrB;CACF,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAA0D;AAC1D,mCAAmC;AACnC,yCAAuF;AACvF,+CAAgG;AAChG,+CAAgG;AAChG,yCAAuF;AACvF,yDAI2B;AAC3B,2CAA0F;AAE1F,yBAAyB;AACzB,sDAAmC;AACnC,4DAAyC;AACzC,4DAAyC;AACzC,sDAAmC;AACnC,sEAAmD;AACnD,4DAAyC;AACzC,wDAAqC;AAExB,QAAA,QAAQ,GAAG;IACtB,cAAc;IACd,GAAG,oBAAgB;IACnB,GAAG,mBAAe;IAClB,GAAG,sBAAkB;IACrB,GAAG,sBAAkB;IACrB,GAAG,mBAAe;IAClB,GAAG,2BAAsB;IACzB,GAAG,oBAAgB;CACpB,CAAA;AAEY,QAAA,WAAW,GAAG;IACzB,iBAAiB;IACjB,GAAG,8BAAyB;CAC7B,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACtB,GAAG,oBAAgB;QACnB,GAAG,uBAAmB;QACtB,GAAG,uBAAmB;QACtB,GAAG,oBAAgB;QACnB,GAAG,4BAAuB;QAC1B,GAAG,qBAAiB;KACrB;CACF,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/dataset",
3
- "version": "5.0.0-zeta.9",
3
+ "version": "5.0.0",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -24,24 +24,24 @@
24
24
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
25
25
  },
26
26
  "dependencies": {
27
- "@operato/app": "^1.0.0-beta.40",
28
- "@operato/data-grist": "^1.0.0-beta.40",
29
- "@operato/dataset": "^1.0.0-beta.40",
30
- "@operato/graphql": "^1.0.0-beta.40",
31
- "@operato/grist-editor": "^1.0.0-beta.40",
32
- "@operato/i18n": "^1.0.0-beta.40",
33
- "@operato/layout": "^1.0.0-beta.40",
34
- "@operato/shell": "^1.0.0-beta.40",
35
- "@operato/styles": "^1.0.0-beta.40",
36
- "@operato/utils": "^1.0.0-beta.40",
37
- "@things-factory/auth-base": "^5.0.0-zeta.9",
38
- "@things-factory/aws-base": "^5.0.0-zeta.9",
39
- "@things-factory/board-service": "^5.0.0-zeta.9",
40
- "@things-factory/env": "^5.0.0-zeta.9",
41
- "@things-factory/shell": "^5.0.0-zeta.9",
42
- "@things-factory/work-shift": "^5.0.0-zeta.9",
27
+ "@operato/app": "^1.0.0",
28
+ "@operato/data-grist": "^1.0.0",
29
+ "@operato/dataset": "^1.0.0",
30
+ "@operato/graphql": "^1.0.0",
31
+ "@operato/grist-editor": "^1.0.0",
32
+ "@operato/i18n": "^1.0.0",
33
+ "@operato/layout": "^1.0.0",
34
+ "@operato/shell": "^1.0.0",
35
+ "@operato/styles": "^1.0.0",
36
+ "@operato/utils": "^1.0.0",
37
+ "@things-factory/auth-base": "^5.0.0",
38
+ "@things-factory/aws-base": "^5.0.0",
39
+ "@things-factory/board-service": "^5.0.0",
40
+ "@things-factory/env": "^5.0.0",
41
+ "@things-factory/shell": "^5.0.0",
42
+ "@things-factory/work-shift": "^5.0.0",
43
43
  "cron-parser": "^4.3.0",
44
44
  "moment-timezone": "^0.5.34"
45
45
  },
46
- "gitHead": "af1562aba5cd179a7d10fc252b791e0a78049283"
46
+ "gitHead": "32cb91663e38de9ab1bb7a72af923c3bf8ac187b"
47
47
  }
@@ -55,20 +55,6 @@ export async function createDataSample(
55
55
  })
56
56
 
57
57
  const dataItems = dataSet.dataItems
58
-
59
- // TODO spec should be removed
60
- // const spec = dataItems.reduce((spec, dataItem) => {
61
- // spec[dataItem.tag] = {
62
- // spec: dataItem.spec,
63
- // name: dataItem.name,
64
- // description: dataItem.description,
65
- // unit: dataItem.unit,
66
- // hidden: dataItem.hidden
67
- // }
68
-
69
- // return spec
70
- // }, {})
71
-
72
58
  const collectedAt = dataSample.collectedAt || new Date()
73
59
 
74
60
  const timezone = dataSet.timezone || domain.timezone || 'UTC'
@@ -79,7 +65,6 @@ export async function createDataSample(
79
65
 
80
66
  // local time dataSet timezone or domain timezone or default 'UTC'
81
67
 
82
- // const collectedAt = dataSample.collectedAt || new Date()
83
68
  const localDateTz = moment(collectedAt).tz(timezone)
84
69
  const defaultPartitionKeys = {
85
70
  domain: domain.subdomain,
@@ -99,7 +84,7 @@ export async function createDataSample(
99
84
  ...dataSample.data
100
85
  })
101
86
 
102
- const { ooc, oos } = DataUseCase.evaluate(dataSet, dataItems, dataSample.data) || {}
87
+ const { ooc, oos, judgment } = DataUseCase.evaluate(dataSet, dataItems, dataSample.data) || {}
103
88
  const result = await tx.getRepository(DataSample).save({
104
89
  name: dataSet.name,
105
90
  description: dataSet.description,
@@ -108,9 +93,9 @@ export async function createDataSample(
108
93
  dataSetVersion: dataSet.version,
109
94
  domain,
110
95
  partitionKeys,
111
- // spec, // TODO spec should be removed
112
96
  ooc,
113
97
  oos,
98
+ judgment,
114
99
  collectedAt,
115
100
  workDate,
116
101
  workShift,
@@ -120,19 +105,7 @@ export async function createDataSample(
120
105
 
121
106
  if (ooc || oos) {
122
107
  const dataOoc = await tx.getRepository(DataOoc).save({
123
- name: dataSet.name,
124
- description: dataSet.description,
125
- useCase: dataSet.useCase,
126
- dataSet,
127
- dataSetVersion: dataSet.version,
128
- dataSample: result,
129
- data: dataSample.data,
130
- rawData: dataSample.rawData,
131
- domain,
132
- partitionKeys,
133
- // spec, // TODO spec should be removed
134
- ooc,
135
- oos,
108
+ ...result,
136
109
  history: [
137
110
  {
138
111
  user: {
@@ -143,12 +116,7 @@ export async function createDataSample(
143
116
  timestamp: Date.now()
144
117
  }
145
118
  ],
146
- state: DataOocStatus.CREATED,
147
- workDate,
148
- workShift,
149
- collectedAt,
150
- creator: user,
151
- updater: user
119
+ state: DataOocStatus.CREATED
152
120
  })
153
121
 
154
122
  pubsub.publish('data-ooc', {
@@ -169,4 +137,4 @@ export async function createDataSample(
169
137
  }
170
138
 
171
139
  return result
172
- }
140
+ }
@@ -14,7 +14,11 @@ export type DataItemSpecSet = {
14
14
  specs: DataItemSpec[]
15
15
  }
16
16
 
17
- export type EvaluationResult = { oos: boolean; ooc: boolean }
17
+ export type EvaluationResult = {
18
+ oos: boolean
19
+ ooc: boolean
20
+ judgment?: { [tag: string]: { ooc: boolean; oos: boolean } }
21
+ }
18
22
 
19
23
  export abstract class DataUseCase {
20
24
  static registry: { [name: string]: DataUseCase } = {}
@@ -34,6 +38,7 @@ export abstract class DataUseCase {
34
38
  public static evaluate(dataSet: DataSet, dataItems: DataItem[], data: any): EvaluationResult {
35
39
  var ooc = false
36
40
  var oos = false
41
+ var judgment: { [tag: string]: { ooc: boolean; oos: boolean } } = {}
37
42
 
38
43
  if (!dataSet.useCase) {
39
44
  return { ooc, oos }
@@ -50,7 +55,7 @@ export abstract class DataUseCase {
50
55
  }
51
56
 
52
57
  let values: any | any[] = data[tag]
53
- if (typeof values === 'undefined') {
58
+ if (values == null) {
54
59
  continue // TODO what if in case no value ?
55
60
  }
56
61
 
@@ -58,6 +63,9 @@ export abstract class DataUseCase {
58
63
  values = [values]
59
64
  }
60
65
 
66
+ let oocForTag = false
67
+ let oosForTag = false
68
+
61
69
  for (let j = 0; j < useCases.length; j++) {
62
70
  const useCase = useCases[j]
63
71
 
@@ -69,17 +77,20 @@ export abstract class DataUseCase {
69
77
  const result = useCase.evaluate(specs, values)
70
78
 
71
79
  if (result) {
80
+ oocForTag ||= result.ooc
81
+ oosForTag ||= result.oos
72
82
  ooc ||= result.ooc
73
83
  oos ||= result.oos
74
84
  }
85
+ }
75
86
 
76
- // if (ooc && oos) {
77
- // return { ooc, oos }
78
- // }
87
+ judgment[tag] = {
88
+ ooc: oocForTag,
89
+ oos: oosForTag
79
90
  }
80
91
  }
81
92
 
82
- return { ooc, oos }
93
+ return { ooc, oos, judgment }
83
94
  }
84
95
 
85
96
  public abstract evaluate(specs: any, values: any[]): EvaluationResult
@@ -6,47 +6,53 @@ import { AthenaController } from '@things-factory/aws-base'
6
6
  import { config } from '@things-factory/env'
7
7
 
8
8
  const dataReportConfig = config.get('dataReport')
9
- const { jasper: {
10
- endpoint: { protocol: PROTOCOL, host:HOST, port:PORT },
11
- datasource: { database: DATABASE } }
12
- } = dataReportConfig
9
+ const {
10
+ jasper: {
11
+ endpoint: { protocol: PROTOCOL, host: HOST, port: PORT },
12
+ datasource: { database: DATABASE }
13
+ }
14
+ } = dataReportConfig || {
15
+ jasper: {
16
+ endpoint: {},
17
+ datasource: {}
18
+ }
19
+ }
13
20
 
14
- /** author: ywnam123 */
15
21
  function transformValuesToRows(queryResult) {
16
22
  var parseData = []
17
- let index = 1
18
- for (let i = 0; i < queryResult.Items.length; i++) {
19
- var j = 0
20
- const data = JSON.parse(queryResult.Items[i].data)
21
- const spec = JSON.parse(queryResult.Items[i].spec)
22
-
23
- for (let key in data) {
24
- if (Array.isArray(data[key])) {
25
- for (j = 0; j < data[key].length; j++) {
26
- for (let specKey in spec) {
27
- if (key === specKey) {
28
- parseData.push({
29
- item: spec[specKey].name,
30
- index: index + j,
31
- value: String(data[key][j])
32
- })
33
- }
23
+ let index = 1
24
+ for (let i = 0; i < queryResult.Items.length; i++) {
25
+ var j = 0
26
+ const data = JSON.parse(queryResult.Items[i].data)
27
+ const spec = JSON.parse(queryResult.Items[i].spec)
28
+
29
+ for (let key in data) {
30
+ if (Array.isArray(data[key])) {
31
+ for (j = 0; j < data[key].length; j++) {
32
+ for (let specKey in spec) {
33
+ if (key === specKey) {
34
+ parseData.push({
35
+ item: spec[specKey].name,
36
+ index: index + j,
37
+ value: String(data[key][j])
38
+ })
34
39
  }
35
40
  }
36
- } else {
37
- parseData.push({
38
- item: key,
39
- index,
40
- value: String(data[key])
41
- })
42
41
  }
43
- }
44
- if (j !== 0) {
45
- index = index + j
46
42
  } else {
47
- index = index + 1
43
+ parseData.push({
44
+ item: key,
45
+ index,
46
+ value: String(data[key])
47
+ })
48
48
  }
49
49
  }
50
+ if (j !== 0) {
51
+ index = index + j
52
+ } else {
53
+ index = index + 1
54
+ }
55
+ }
50
56
  }
51
57
 
52
58
  /** @todo considering trasformation in lambda, as massive dataset */
@@ -61,11 +67,12 @@ function pivotData(rows) {
61
67
  for (let key in data) {
62
68
  /** @todo rule to display or not, about unspecified spec */
63
69
  const value = data[key]
64
- !(spec[key]?.hidden) && parsedData.push({
65
- item: spec[key]?.name || key,
66
- index,
67
- value: Array.isArray(value) ? value.join(', ') : value
68
- })
70
+ !spec[key]?.hidden &&
71
+ parsedData.push({
72
+ item: spec[key]?.name || key,
73
+ index,
74
+ value: Array.isArray(value) ? value.join(', ') : value
75
+ })
69
76
  }
70
77
  if (j !== 0) {
71
78
  index = index + j
@@ -95,6 +102,7 @@ function parseJsonDataField(rows) {
95
102
  }
96
103
 
97
104
  const athenaClient = new AthenaController()
105
+
98
106
  async function queryAthena(params) {
99
107
  const { table, domain, dataSetId, fromWorkDate, toWorkDate, workShift, timezone } = params
100
108
  const queryData = {
@@ -108,7 +116,7 @@ async function queryAthena(params) {
108
116
  AND datasetid = '${dataSetId}'
109
117
  AND workdate >= '${fromWorkDate}'
110
118
  AND workdate <= '${toWorkDate}'
111
- ${workShift ? 'AND workshift = \'' + workShift + '\'' : ''}
119
+ ${workShift ? "AND workshift = '" + workShift + "'" : ''}
112
120
  ORDER BY collected_at`,
113
121
  db: DATABASE
114
122
  }
@@ -116,19 +124,23 @@ async function queryAthena(params) {
116
124
 
117
125
  return await athenaClient.query(queryData)
118
126
  }
119
- export async function renderJasperReport(context: any) {
120
- const { state: { domain }, query } = context
127
+
128
+ export async function renderJasperReport(context: any) {
129
+ const {
130
+ state: { domain },
131
+ query
132
+ } = context
121
133
 
122
134
  const template = await STORAGE.readFile(query['template'] || 'dynamic_header_sample.jrxml', 'utf-8')
123
135
  let templateType = query['templateType'] || 'crosstab'
124
136
  let parsedData = []
125
137
 
126
138
  // @todo: get dataset timezone
127
- /**
139
+ /**
128
140
  * const variables = await gql(dataSet(id:${dataSetId}) {
129
141
  * name, description, partition_keys, timezone
130
142
  * })
131
- */
143
+ */
132
144
 
133
145
  query['domain'] = domain?.subdomain
134
146
  query['timezone'] = domain?.timezone
@@ -137,8 +149,7 @@ export async function renderJasperReport(context: any) {
137
149
 
138
150
  if (!rows.length) {
139
151
  return '<h3>Not found result.</h3>'
140
- }
141
- else {
152
+ } else {
142
153
  const firstRow = rows[0]
143
154
  // uses the first row values as data-set has no history data.
144
155
  const parameters = {
@@ -146,18 +157,18 @@ export async function renderJasperReport(context: any) {
146
157
  description: firstRow.description,
147
158
  ...query
148
159
  }
149
-
160
+
150
161
  if (templateType === 'crosstab') {
151
162
  parsedData = pivotData(rows)
152
163
  } else {
153
164
  parsedData = parseJsonDataField(rows)
154
165
  }
155
-
166
+
156
167
  const formData = new FormData()
157
168
  formData.append('template', template)
158
169
  formData.append('jsonString', JSON.stringify(parsedData))
159
170
  formData.append('parameters', JSON.stringify(parameters))
160
-
171
+
161
172
  const reportUrl = `${PROTOCOL || 'http'}://${HOST}:${PORT}/rest/report/show_html`
162
173
  const response = await fetch(reportUrl, {
163
174
  method: 'POST',
@@ -166,5 +177,4 @@ export async function renderJasperReport(context: any) {
166
177
 
167
178
  return await response.text()
168
179
  }
169
-
170
180
  }
@@ -4,7 +4,6 @@ import { getRepository } from 'typeorm'
4
4
  import { User } from '@things-factory/auth-base'
5
5
  import { Domain, getQueryBuilderFromListParams, ListParam } from '@things-factory/shell'
6
6
 
7
- import { DataSample } from '../data-sample/data-sample'
8
7
  import { DataSetHistory } from '../data-set-history/data-set-history'
9
8
  import { DataItem } from '../data-set/data-item-type'
10
9
  import { DataSet } from '../data-set/data-set'
@@ -41,14 +40,14 @@ export class DataOocQuery {
41
40
  }
42
41
 
43
42
  @FieldResolver(type => [DataItem])
44
- async spec(@Root() dataOoc: DataOoc): Promise<[DataItem]> {
43
+ async dataItems(@Root() dataOoc: DataOoc): Promise<DataItem[]> {
45
44
  const dataSetHistory: DataSetHistory = await getRepository(DataSetHistory).findOne({
46
45
  where: {
47
- id: dataOoc.dataSetId,
46
+ originalId: dataOoc.dataSetId,
48
47
  version: dataOoc.dataSetVersion
49
48
  }
50
49
  })
51
- return dataSetHistory?.dataItems || dataOoc.spec || []
50
+ return dataSetHistory?.dataItems || []
52
51
  }
53
52
 
54
53
  @FieldResolver(type => DataSet)
@@ -58,13 +57,6 @@ export class DataOocQuery {
58
57
  })
59
58
  }
60
59
 
61
- @FieldResolver(type => DataSample)
62
- async dataSample(@Root() dataOoc: DataOoc): Promise<DataSample> {
63
- return await getRepository(DataSample).findOne({
64
- id: dataOoc.dataSampleId
65
- })
66
- }
67
-
68
60
  @FieldResolver(type => Domain)
69
61
  async domain(@Root() dataOoc: DataOoc): Promise<Domain> {
70
62
  return await getRepository(Domain).findOne(dataOoc.domainId)
@@ -4,9 +4,7 @@ import {
4
4
  CreateDateColumn,
5
5
  Entity,
6
6
  Index,
7
- JoinColumn,
8
7
  ManyToOne,
9
- OneToOne,
10
8
  PrimaryGeneratedColumn,
11
9
  RelationId,
12
10
  UpdateDateColumn
@@ -16,7 +14,7 @@ import { User } from '@things-factory/auth-base'
16
14
  import { config } from '@things-factory/env'
17
15
  import { Domain, ScalarObject } from '@things-factory/shell'
18
16
 
19
- import { DataSample } from '../data-sample/data-sample'
17
+ import { DataItem } from '../data-set/data-item-type'
20
18
  import { DataSet } from '../data-set/data-set'
21
19
 
22
20
  const ORMCONFIG = config.get('ormconfig', {})
@@ -34,9 +32,7 @@ registerEnumType(DataOocStatus, {
34
32
  })
35
33
 
36
34
  @Entity()
37
- @Index('ix_data_ooc_0', (dataOoc: DataOoc) => [dataOoc.domain, dataOoc.dataSet], { unique: false })
38
- @Index('ix_data_ooc_1', (dataOoc: DataOoc) => [dataOoc.domain, dataOoc.dataSample], { unique: true })
39
- @Index('ix_data_ooc_2', (dataOoc: DataOoc) => [dataOoc.domain, dataOoc.collectedAt], { unique: false })
35
+ @Index('ix_data_ooc_0', (dataOoc: DataOoc) => [dataOoc.domain, dataOoc.dataSet, dataOoc.collectedAt], { unique: false })
40
36
  @ObjectType({ description: 'Entity for Out of control data' })
41
37
  export class DataOoc {
42
38
  @PrimaryGeneratedColumn('uuid')
@@ -71,14 +67,6 @@ export class DataOoc {
71
67
  @Field({ nullable: true })
72
68
  dataSetVersion?: number
73
69
 
74
- @OneToOne(type => DataSample)
75
- @JoinColumn()
76
- @Field(type => DataSample, { nullable: true })
77
- dataSample?: DataSample
78
-
79
- @RelationId((dataOoc: DataOoc) => dataOoc.dataSample)
80
- dataSampleId?: string
81
-
82
70
  @Column({
83
71
  nullable: true
84
72
  })
@@ -129,10 +117,12 @@ export class DataOoc {
129
117
  @Field(type => ScalarObject, { nullable: true })
130
118
  data?: ScalarObject
131
119
 
132
- // TODO spec should be removed
133
120
  @Column('simple-json', { nullable: true })
134
121
  @Field(type => ScalarObject, { nullable: true })
135
- spec?: ScalarObject
122
+ judgment?: ScalarObject
123
+
124
+ @Field(type => [DataItem], { nullable: true })
125
+ dataItems?: DataItem[]
136
126
 
137
127
  @Column('simple-json', { nullable: true })
138
128
  @Field(type => ScalarObject, { nullable: true })
@@ -40,14 +40,14 @@ export class DataSampleQuery {
40
40
  }
41
41
 
42
42
  @FieldResolver(type => [DataItem])
43
- async spec(@Root() dataSample: DataSample): Promise<[DataItem]> {
43
+ async dataItems(@Root() dataSample: DataSample): Promise<DataItem[]> {
44
44
  const dataSetHistory: DataSetHistory = await getRepository(DataSetHistory).findOne({
45
45
  where: {
46
- id: dataSample.dataSetId,
46
+ originalId: dataSample.dataSetId,
47
47
  version: dataSample.dataSetVersion
48
48
  }
49
49
  })
50
- return dataSetHistory?.dataItems || dataSample.spec || []
50
+ return dataSetHistory?.dataItems || []
51
51
  }
52
52
 
53
53
  @FieldResolver(type => DataSet)
@@ -14,14 +14,14 @@ import { User } from '@things-factory/auth-base'
14
14
  import { config } from '@things-factory/env'
15
15
  import { Domain, ScalarObject } from '@things-factory/shell'
16
16
 
17
+ import { DataItem } from '../data-set/data-item-type'
17
18
  import { DataSet } from '../data-set/data-set'
18
19
 
19
20
  const ORMCONFIG = config.get('ormconfig', {})
20
21
  const DATABASE_TYPE = ORMCONFIG.type
21
22
  @Entity()
22
- @Index('ix_data_sample_0', (dataSample: DataSample) => [dataSample.domain, dataSample.dataSet], { unique: false })
23
23
  @Index(
24
- 'ix_data_sample_2',
24
+ 'ix_data_sample_0',
25
25
  (dataSample: DataSample) => [dataSample.domain, dataSample.dataSet, dataSample.collectedAt],
26
26
  { unique: false }
27
27
  )
@@ -79,10 +79,12 @@ export class DataSample {
79
79
  @Field(type => ScalarObject, { nullable: true })
80
80
  data?: ScalarObject
81
81
 
82
- // TODO spec should be removed
83
82
  @Column('simple-json', { nullable: true })
84
83
  @Field(type => ScalarObject, { nullable: true })
85
- spec?: ScalarObject
84
+ judgment?: ScalarObject
85
+
86
+ @Field(type => [DataItem], { nullable: true })
87
+ dataItems?: DataItem[]
86
88
 
87
89
  @Column({
88
90
  nullable: true,