@things-factory/dataset 5.0.0-zeta.19 → 5.0.0-zeta.21
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-entry/data-entry-list-page.js +1 -1
- package/client/pages/data-ooc/data-ooc-list-page.js +2 -2
- package/client/pages/data-report/data-report-list-page.js +1 -1
- package/client/pages/data-sample/data-sample-list-page.js +1 -1
- package/client/pages/data-sensor/data-sensor-list-page.js +1 -1
- package/client/pages/data-set/data-set-list-page.js +1 -1
- package/dist-server/controllers/jasper-report.js +14 -9
- package/dist-server/controllers/jasper-report.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-query.js +1 -1
- package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
- package/dist-server/service/data-set/data-set-mutation.js +0 -17
- package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
- package/dist-server/service/data-set/data-set-type.js +12 -9
- package/dist-server/service/data-set/data-set-type.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history-query.js +2 -2
- package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history.js +43 -55
- package/dist-server/service/data-set-history/data-set-history.js.map +1 -1
- package/dist-server/service/data-set-history/event-subscriber.js +26 -0
- package/dist-server/service/data-set-history/event-subscriber.js.map +1 -0
- package/dist-server/service/data-set-history/index.js +3 -1
- package/dist-server/service/data-set-history/index.js.map +1 -1
- package/dist-server/service/index.js +5 -1
- package/dist-server/service/index.js.map +1 -1
- package/package.json +18 -18
- package/server/controllers/jasper-report.ts +58 -48
- package/server/service/data-ooc/data-ooc-query.ts +1 -1
- package/server/service/data-sample/data-sample-query.ts +1 -1
- package/server/service/data-set/data-set-mutation.ts +0 -26
- package/server/service/data-set/data-set-type.ts +2 -1
- package/server/service/data-set-history/data-set-history-query.ts +2 -2
- package/server/service/data-set-history/data-set-history.ts +60 -59
- package/server/service/data-set-history/event-subscriber.ts +17 -0
- package/server/service/data-set-history/index.ts +2 -0
- package/server/service/index.ts +10 -1
- package/translations/en.json +2 -2
- package/translations/ko.json +2 -2
- package/translations/ms.json +1 -1
- package/translations/zh.json +1 -1
@@ -3,7 +3,6 @@ import { In } from 'typeorm'
|
|
3
3
|
|
4
4
|
import { createAttachment, deleteAttachmentsByRef } from '@things-factory/attachment-base'
|
5
5
|
|
6
|
-
import { DataSetHistory } from '../data-set-history/data-set-history'
|
7
6
|
import { DataSet } from './data-set'
|
8
7
|
import { DataSetPatch, NewDataSet } from './data-set-type'
|
9
8
|
|
@@ -17,7 +16,6 @@ export class DataSetMutation {
|
|
17
16
|
async createDataSet(@Arg('dataSet') dataSet: NewDataSet, @Ctx() context: any): Promise<DataSet> {
|
18
17
|
const { domain, user, tx } = context.state
|
19
18
|
const dataSetRepo = tx.getRepository(DataSet)
|
20
|
-
const dataSetHistoryRepo = tx.getRepository(DataSetHistory)
|
21
19
|
|
22
20
|
const result = await dataSetRepo.save({
|
23
21
|
...dataSet,
|
@@ -29,12 +27,6 @@ export class DataSetMutation {
|
|
29
27
|
|
30
28
|
await this._createAttachment(context, dataSet.reportTemplate, { refId: result.id, cuFlag: '+' })
|
31
29
|
|
32
|
-
await dataSetHistoryRepo.save(
|
33
|
-
await dataSetRepo.findOne(result.id, {
|
34
|
-
relations: ['domain', 'creator', 'updater', 'supervisoryRole', 'entryRole']
|
35
|
-
})
|
36
|
-
)
|
37
|
-
|
38
30
|
return result
|
39
31
|
}
|
40
32
|
|
@@ -44,7 +36,6 @@ export class DataSetMutation {
|
|
44
36
|
async updateDataSet(@Arg('id') id: string, @Arg('patch') patch: DataSetPatch, @Ctx() context: any): Promise<DataSet> {
|
45
37
|
const { domain, user, tx } = context.state
|
46
38
|
const dataSetRepo = tx.getRepository(DataSet)
|
47
|
-
const dataSetHistoryRepo = tx.getRepository(DataSetHistory)
|
48
39
|
|
49
40
|
const dataSet = await dataSetRepo.findOne({
|
50
41
|
where: { domain, id }
|
@@ -58,12 +49,6 @@ export class DataSetMutation {
|
|
58
49
|
|
59
50
|
await this._createAttachment(context, dataSet.reportTemplate, { refId: result.id, cuFlag: 'M' })
|
60
51
|
|
61
|
-
await dataSetHistoryRepo.save(
|
62
|
-
await dataSetRepo.findOne(id, {
|
63
|
-
relations: ['domain', 'creator', 'updater', 'supervisoryRole', 'entryRole']
|
64
|
-
})
|
65
|
-
)
|
66
|
-
|
67
52
|
return result
|
68
53
|
}
|
69
54
|
|
@@ -76,7 +61,6 @@ export class DataSetMutation {
|
|
76
61
|
): Promise<DataSet[]> {
|
77
62
|
const { domain, user, tx } = context.state
|
78
63
|
const dataSetRepo = tx.getRepository(DataSet)
|
79
|
-
const dataSetHistoryRepo = tx.getRepository(DataSetHistory)
|
80
64
|
|
81
65
|
let results = []
|
82
66
|
const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
|
@@ -128,8 +112,6 @@ export class DataSetMutation {
|
|
128
112
|
}
|
129
113
|
}
|
130
114
|
|
131
|
-
results.forEach(result => dataSetHistoryRepo.save({ ...result }))
|
132
|
-
|
133
115
|
return results
|
134
116
|
}
|
135
117
|
|
@@ -169,7 +151,6 @@ export class DataSetMutation {
|
|
169
151
|
): Promise<boolean> {
|
170
152
|
const { domain, tx } = context.state
|
171
153
|
const dataSetRepo = tx.getRepository(DataSet)
|
172
|
-
const dataSetHistoryRepo = tx.getRepository(DataSetHistory)
|
173
154
|
|
174
155
|
await Promise.all(
|
175
156
|
dataSets.map(async (dataSet: DataSet) => {
|
@@ -177,11 +158,6 @@ export class DataSetMutation {
|
|
177
158
|
domain,
|
178
159
|
...dataSet
|
179
160
|
})
|
180
|
-
await dataSetHistoryRepo.save(
|
181
|
-
...(await dataSetRepo.findOne(createdDataSet.id, {
|
182
|
-
relations: ['domain', 'creator', 'updater', 'supervisoryRole', 'entryRole']
|
183
|
-
}))
|
184
|
-
)
|
185
161
|
})
|
186
162
|
)
|
187
163
|
|
@@ -194,7 +170,6 @@ export class DataSetMutation {
|
|
194
170
|
async copyDataSets(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<DataSet[]> {
|
195
171
|
const { domain, user, tx } = context.state
|
196
172
|
const dataSetRepo = tx.getRepository(DataSet)
|
197
|
-
const dataSetHistoryRepo = tx.getRepository(DataSetHistory)
|
198
173
|
|
199
174
|
const originals = await dataSetRepo.find({
|
200
175
|
where: {
|
@@ -223,7 +198,6 @@ export class DataSetMutation {
|
|
223
198
|
})
|
224
199
|
|
225
200
|
var copiedDataSets = await dataSetRepo.save(newCopys)
|
226
|
-
await dataSetHistoryRepo.save(copiedDataSets)
|
227
201
|
|
228
202
|
return copiedDataSets
|
229
203
|
}
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import { FileUpload
|
1
|
+
import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'
|
2
|
+
import GraphQLUpload from 'graphql-upload/GraphQLUpload.js'
|
2
3
|
import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
|
3
4
|
|
4
5
|
import { ObjectRef, ScalarObject } from '@things-factory/shell'
|
@@ -21,7 +21,7 @@ export class DataSetHistoryQuery {
|
|
21
21
|
const { domain } = context.state
|
22
22
|
|
23
23
|
return await getRepository(DataSetHistory).findOne({
|
24
|
-
where: { domain, id, updatedAt: timestamp }
|
24
|
+
where: { domain, originalId: id, updatedAt: timestamp }
|
25
25
|
})
|
26
26
|
}
|
27
27
|
|
@@ -101,7 +101,7 @@ export class DataSetHistoryQuery {
|
|
101
101
|
const attachment: Attachment = await getRepository(Attachment).findOne({
|
102
102
|
where: {
|
103
103
|
domain: dataSetHistory.domainId,
|
104
|
-
refBy: `report-${dataSetHistory.
|
104
|
+
refBy: `report-${dataSetHistory.originalId}`
|
105
105
|
}
|
106
106
|
})
|
107
107
|
|
@@ -1,21 +1,41 @@
|
|
1
1
|
import { Field, ID, ObjectType } from 'type-graphql'
|
2
|
-
import { Column, Entity, ManyToOne,
|
3
|
-
|
2
|
+
import { Column, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId } from 'typeorm'
|
3
|
+
|
4
|
+
import {
|
5
|
+
HistoryActionColumn,
|
6
|
+
HistoryActionType,
|
7
|
+
HistoryEntityInterface,
|
8
|
+
HistoryOriginalIdColumn
|
9
|
+
} from '@anchan828/typeorm-history'
|
4
10
|
import { Role, User } from '@things-factory/auth-base'
|
11
|
+
import { config } from '@things-factory/env'
|
5
12
|
import { Domain, ScalarObject } from '@things-factory/shell'
|
6
13
|
|
7
14
|
import { DataItem } from '../data-set/data-item-type'
|
8
|
-
import { DataSetEntryType, DataSetMonitorType, DataSetReportType } from '../data-set/data-set'
|
15
|
+
import { DataSet, DataSetEntryType, DataSetMonitorType, DataSetReportType } from '../data-set/data-set'
|
16
|
+
|
17
|
+
const ORMCONFIG = config.get('ormconfig', {})
|
18
|
+
const DATABASE_TYPE = ORMCONFIG.type
|
9
19
|
|
10
20
|
@Entity()
|
21
|
+
@Index(
|
22
|
+
'ix_data_set_history_0',
|
23
|
+
(dataSetHistory: DataSetHistory) => [dataSetHistory.originalId, dataSetHistory.version],
|
24
|
+
{ unique: true }
|
25
|
+
)
|
26
|
+
@Index(
|
27
|
+
'ix_data_set_history_1',
|
28
|
+
(dataSetHistory: DataSetHistory) => [dataSetHistory.domain, dataSetHistory.originalId, dataSetHistory.version],
|
29
|
+
{ unique: true }
|
30
|
+
)
|
11
31
|
@ObjectType({ description: 'Entity for DataSetHistory' })
|
12
|
-
export class DataSetHistory {
|
13
|
-
@
|
32
|
+
export class DataSetHistory implements HistoryEntityInterface<DataSet> {
|
33
|
+
@PrimaryGeneratedColumn('uuid')
|
14
34
|
@Field(type => ID)
|
15
35
|
readonly id: string
|
16
36
|
|
17
|
-
@
|
18
|
-
@Field()
|
37
|
+
@Column({ default: 1 })
|
38
|
+
@Field({ nullable: true })
|
19
39
|
readonly version: number = 1
|
20
40
|
|
21
41
|
@ManyToOne(type => Domain)
|
@@ -29,84 +49,60 @@ export class DataSetHistory {
|
|
29
49
|
@Field()
|
30
50
|
name: string
|
31
51
|
|
32
|
-
@Column({
|
33
|
-
nullable: true
|
34
|
-
})
|
52
|
+
@Column({ nullable: true })
|
35
53
|
@Field({ nullable: true })
|
36
54
|
description?: string
|
37
55
|
|
38
|
-
@Column({
|
39
|
-
nullable: true
|
40
|
-
})
|
56
|
+
@Column({ nullable: true })
|
41
57
|
@Field({ nullable: true })
|
42
58
|
active?: boolean
|
43
59
|
|
44
|
-
@ManyToOne(type => Role, {
|
45
|
-
nullable: true
|
46
|
-
})
|
60
|
+
@ManyToOne(type => Role, { nullable: true })
|
47
61
|
@Field(type => Role, { nullable: true })
|
48
62
|
entryRole?: Role
|
49
63
|
|
50
64
|
@RelationId((dataSetHistory: DataSetHistory) => dataSetHistory.entryRole)
|
51
65
|
entryRoleId?: string
|
52
66
|
|
53
|
-
@ManyToOne(type => Role, {
|
54
|
-
nullable: true
|
55
|
-
})
|
67
|
+
@ManyToOne(type => Role, { nullable: true })
|
56
68
|
@Field(type => Role, { nullable: true })
|
57
69
|
supervisoryRole?: Role
|
58
70
|
|
59
71
|
@RelationId((dataSetHistory: DataSetHistory) => dataSetHistory.supervisoryRole)
|
60
72
|
supervisoryRoleId?: string
|
61
73
|
|
62
|
-
@Column({
|
63
|
-
nullable: true
|
64
|
-
})
|
74
|
+
@Column({ nullable: true })
|
65
75
|
@Field({ nullable: true })
|
66
76
|
type?: 'manual' | 'automatic' | string
|
67
77
|
|
68
|
-
@Column({
|
69
|
-
nullable: true
|
70
|
-
})
|
78
|
+
@Column({ nullable: true })
|
71
79
|
@Field({ nullable: true })
|
72
80
|
entryType?: DataSetEntryType
|
73
81
|
|
74
|
-
@Column({
|
75
|
-
nullable: true
|
76
|
-
})
|
82
|
+
@Column({ nullable: true })
|
77
83
|
@Field({ nullable: true })
|
78
84
|
entryView?: string
|
79
85
|
|
80
|
-
@Column({
|
81
|
-
nullable: true
|
82
|
-
})
|
86
|
+
@Column({ nullable: true })
|
83
87
|
@Field({ nullable: true })
|
84
88
|
monitorType?: DataSetMonitorType
|
85
89
|
|
86
|
-
@Column({
|
87
|
-
nullable: true
|
88
|
-
})
|
90
|
+
@Column({ nullable: true })
|
89
91
|
@Field({ nullable: true })
|
90
92
|
monitorView?: string
|
91
93
|
|
92
|
-
@Column({
|
93
|
-
nullable: true
|
94
|
-
})
|
94
|
+
@Column({ nullable: true })
|
95
95
|
@Field({ nullable: true })
|
96
96
|
reportType?: DataSetReportType
|
97
97
|
|
98
|
-
@Column({
|
99
|
-
nullable: true
|
100
|
-
})
|
98
|
+
@Column({ nullable: true })
|
101
99
|
@Field({ nullable: true })
|
102
100
|
reportView?: string
|
103
101
|
|
104
102
|
@Field({ nullable: true })
|
105
103
|
reportTemplate?: string
|
106
104
|
|
107
|
-
@Column({
|
108
|
-
nullable: true
|
109
|
-
})
|
105
|
+
@Column({ nullable: true })
|
110
106
|
@Field({ nullable: true })
|
111
107
|
useCase?: string
|
112
108
|
|
@@ -118,43 +114,48 @@ export class DataSetHistory {
|
|
118
114
|
@Field(type => [DataItem], { nullable: true })
|
119
115
|
dataItems: DataItem[]
|
120
116
|
|
121
|
-
@Column({
|
122
|
-
nullable: true
|
123
|
-
})
|
117
|
+
@Column({ nullable: true })
|
124
118
|
@Field({ nullable: true })
|
125
119
|
schedule?: string
|
126
120
|
|
127
|
-
@Column({
|
128
|
-
nullable: true
|
129
|
-
})
|
121
|
+
@Column({ nullable: true })
|
130
122
|
@Field({ nullable: true })
|
131
123
|
timezone?: string
|
132
124
|
|
133
|
-
@Column({
|
134
|
-
nullable: true
|
135
|
-
})
|
125
|
+
@Column({ nullable: true })
|
136
126
|
@Field({ nullable: true })
|
137
127
|
createdAt?: Date
|
138
128
|
|
139
|
-
@
|
129
|
+
@Column({ nullable: true })
|
140
130
|
@Field({ nullable: true })
|
141
131
|
updatedAt?: Date
|
142
132
|
|
143
|
-
@ManyToOne(type => User, {
|
144
|
-
nullable: true
|
145
|
-
})
|
133
|
+
@ManyToOne(type => User, { nullable: true })
|
146
134
|
@Field({ nullable: true })
|
147
135
|
creator?: User
|
148
136
|
|
149
137
|
@RelationId((dataSetHistory: DataSetHistory) => dataSetHistory.creator)
|
150
138
|
creatorId?: string
|
151
139
|
|
152
|
-
@ManyToOne(type => User, {
|
153
|
-
nullable: true
|
154
|
-
})
|
140
|
+
@ManyToOne(type => User, { nullable: true })
|
155
141
|
@Field({ nullable: true })
|
156
142
|
updater?: User
|
157
143
|
|
158
144
|
@RelationId((dataSetHistory: DataSetHistory) => dataSetHistory.creator)
|
159
145
|
updaterId?: string
|
146
|
+
|
147
|
+
@HistoryOriginalIdColumn({ nullable: true })
|
148
|
+
public originalId!: string
|
149
|
+
|
150
|
+
@HistoryActionColumn({
|
151
|
+
nullable: false,
|
152
|
+
type:
|
153
|
+
DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
|
154
|
+
? 'enum'
|
155
|
+
: DATABASE_TYPE == 'oracle'
|
156
|
+
? 'varchar2'
|
157
|
+
: 'smallint',
|
158
|
+
enum: HistoryActionType
|
159
|
+
})
|
160
|
+
public action!: HistoryActionType
|
160
161
|
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { EventSubscriber } from 'typeorm'
|
2
|
+
|
3
|
+
import { HistoryEntitySubscriber } from '@anchan828/typeorm-history'
|
4
|
+
|
5
|
+
import { DataSet } from '../data-set/data-set'
|
6
|
+
import { DataSetHistory } from './data-set-history'
|
7
|
+
|
8
|
+
@EventSubscriber()
|
9
|
+
export class DataSetHistoryEntitySubscriber extends HistoryEntitySubscriber<DataSet, DataSetHistory> {
|
10
|
+
public get entity() {
|
11
|
+
return DataSet
|
12
|
+
}
|
13
|
+
|
14
|
+
public get historyEntity() {
|
15
|
+
return DataSetHistory
|
16
|
+
}
|
17
|
+
}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import { DataSetHistory } from './data-set-history'
|
2
2
|
import { DataSetHistoryQuery } from './data-set-history-query'
|
3
|
+
import { DataSetHistoryEntitySubscriber } from './event-subscriber'
|
3
4
|
|
4
5
|
export const entities = [DataSetHistory]
|
5
6
|
export const resolvers = [DataSetHistoryQuery]
|
7
|
+
export const subscribers = [DataSetHistoryEntitySubscriber]
|
package/server/service/index.ts
CHANGED
@@ -4,7 +4,11 @@ import { entities as DataOocEntities, resolvers as DataOocResolvers } from './da
|
|
4
4
|
import { entities as DataSampleEntities, resolvers as DataSampleResolvers } from './data-sample'
|
5
5
|
import { entities as DataSensorEntities, resolvers as DataSensorResolvers } from './data-sensor'
|
6
6
|
import { entities as DataSetEntities, resolvers as DataSetResolvers } from './data-set'
|
7
|
-
import {
|
7
|
+
import {
|
8
|
+
entities as DataSetHistoryEntities,
|
9
|
+
resolvers as DataSetHistoryResolvers,
|
10
|
+
subscribers as DataSetHistorySubscribers
|
11
|
+
} from './data-set-history'
|
8
12
|
import { entities as DataSpecEntities, resolvers as DataSpecResolvers } from './data-spec'
|
9
13
|
|
10
14
|
/* EXPORT ENTITY TYPES */
|
@@ -27,6 +31,11 @@ export const entities = [
|
|
27
31
|
...DataSpecEntities
|
28
32
|
]
|
29
33
|
|
34
|
+
export const subscribers = [
|
35
|
+
/* SUBSCRIBERS */
|
36
|
+
...DataSetHistorySubscribers
|
37
|
+
]
|
38
|
+
|
30
39
|
export const schema = {
|
31
40
|
resolverClasses: [
|
32
41
|
/* RESOLVER CLASSES */
|
package/translations/en.json
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
"field.report-view": "report view",
|
33
33
|
"field.serial-no": "serial #",
|
34
34
|
"field.spec": "spec",
|
35
|
-
"field.
|
35
|
+
"field.status": "status",
|
36
36
|
"field.supervisory-role": "supervisory role",
|
37
37
|
"field.tag": "tag name",
|
38
38
|
"field.unit": "unit",
|
@@ -61,4 +61,4 @@
|
|
61
61
|
"title.data-sensor list": "data sensor list",
|
62
62
|
"title.data-set list": "data set list",
|
63
63
|
"title.edit code": "edit code"
|
64
|
-
}
|
64
|
+
}
|
package/translations/ko.json
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
"field.report-view": "리포트용 화면",
|
33
33
|
"field.serial-no": "시리얼번호",
|
34
34
|
"field.spec": "명세",
|
35
|
-
"field.
|
35
|
+
"field.status": "상태",
|
36
36
|
"field.supervisory-role": "관리자 역할",
|
37
37
|
"field.tag": "태그이름",
|
38
38
|
"field.unit": "단위",
|
@@ -60,4 +60,4 @@
|
|
60
60
|
"title.data-sensor list": "데이타 센서 조회",
|
61
61
|
"title.data-set list": "데이타 셋 조회",
|
62
62
|
"title.edit code": "코드 편집"
|
63
|
-
}
|
63
|
+
}
|
package/translations/ms.json
CHANGED
package/translations/zh.json
CHANGED