@things-factory/transport-base 8.0.0-beta.1 → 8.0.0-beta.4
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/package.json +3 -3
- package/server/constants/index.ts +0 -1
- package/server/constants/transport.ts +0 -10
- package/server/controllers/index.ts +0 -0
- package/server/index.ts +0 -3
- package/server/middlewares/index.ts +0 -0
- package/server/migrations/index.ts +0 -9
- package/server/service/index.ts +0 -25
- package/server/service/transport-driver/index.ts +0 -6
- package/server/service/transport-driver/transport-driver-mutation.ts +0 -161
- package/server/service/transport-driver/transport-driver-query.ts +0 -103
- package/server/service/transport-driver/transport-driver-types.ts +0 -75
- package/server/service/transport-driver/transport-driver.ts +0 -118
- package/server/service/transport-vehicle/index.ts +0 -6
- package/server/service/transport-vehicle/transport-vehicle-mutation.ts +0 -213
- package/server/service/transport-vehicle/transport-vehicle-query.ts +0 -96
- package/server/service/transport-vehicle/transport-vehicle-types.ts +0 -53
- package/server/service/transport-vehicle/transport-vehicle.ts +0 -111
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/transport-base",
|
|
3
|
-
"version": "8.0.0-beta.
|
|
3
|
+
"version": "8.0.0-beta.4",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create ./server/migrations/migration"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@things-factory/biz-base": "^8.0.0-beta.
|
|
27
|
+
"@things-factory/biz-base": "^8.0.0-beta.4"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "d83d12ed4ba07177dff1dac26e37be347d156b43"
|
|
30
30
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './transport'
|
|
File without changes
|
package/server/index.ts
DELETED
|
File without changes
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const glob = require('glob')
|
|
2
|
-
const path = require('path')
|
|
3
|
-
|
|
4
|
-
export var migrations = []
|
|
5
|
-
|
|
6
|
-
glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {
|
|
7
|
-
if (file.indexOf('index.js') !== -1) return
|
|
8
|
-
migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])
|
|
9
|
-
})
|
package/server/service/index.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/* IMPORT ENTITIES AND RESOLVERS */
|
|
2
|
-
import { entities as TransportDriverEntity, resolvers as TransportDriverResolvers } from './transport-driver'
|
|
3
|
-
import { entities as TransportVehicleEntity, resolvers as TransportVehicleResolvers } from './transport-vehicle'
|
|
4
|
-
|
|
5
|
-
/* EXPORT ENTITY TYPES */
|
|
6
|
-
export * from './transport-driver/transport-driver'
|
|
7
|
-
export * from './transport-vehicle/transport-vehicle'
|
|
8
|
-
|
|
9
|
-
/* EXPORT TYPES */
|
|
10
|
-
export * from './transport-driver/transport-driver-types'
|
|
11
|
-
export * from './transport-vehicle/transport-vehicle-types'
|
|
12
|
-
|
|
13
|
-
export const entities = [
|
|
14
|
-
/* ENTITIES */
|
|
15
|
-
...TransportDriverEntity,
|
|
16
|
-
...TransportVehicleEntity
|
|
17
|
-
]
|
|
18
|
-
|
|
19
|
-
export const schema = {
|
|
20
|
-
resolverClasses: [
|
|
21
|
-
/* RESOLVER CLASSES */
|
|
22
|
-
...TransportDriverResolvers,
|
|
23
|
-
...TransportVehicleResolvers
|
|
24
|
-
]
|
|
25
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { TransportDriver } from './transport-driver'
|
|
2
|
-
import { TransportDriverMutation } from './transport-driver-mutation'
|
|
3
|
-
import { TransportDriverQuery } from './transport-driver-query'
|
|
4
|
-
|
|
5
|
-
export const entities = [TransportDriver]
|
|
6
|
-
export const resolvers = [TransportDriverQuery, TransportDriverMutation]
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
2
|
-
import { EntityManager, In, Repository } from 'typeorm'
|
|
3
|
-
|
|
4
|
-
import { User } from '@things-factory/auth-base'
|
|
5
|
-
import { Domain, getRepository } from '@things-factory/shell'
|
|
6
|
-
|
|
7
|
-
import { NewTransportDriver, TransportDriverPatch } from '../'
|
|
8
|
-
import { TransportDriver } from './transport-driver'
|
|
9
|
-
|
|
10
|
-
const debug = require('debug')('things-factory:operato-wms:addTransportDriver')
|
|
11
|
-
|
|
12
|
-
@Resolver(TransportDriver)
|
|
13
|
-
export class TransportDriverMutation {
|
|
14
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
15
|
-
@Directive('@transaction')
|
|
16
|
-
@Mutation(returns => TransportDriver)
|
|
17
|
-
async createTransportDriver(
|
|
18
|
-
@Arg('transportDriver', type => NewTransportDriver) transportDriver: NewTransportDriver,
|
|
19
|
-
@Ctx() context: ResolverContext
|
|
20
|
-
): Promise<TransportDriver> {
|
|
21
|
-
const { tx, domain, user } = context.state
|
|
22
|
-
return await createTransportDriver(transportDriver, domain, user, tx)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
26
|
-
@Directive('@transaction')
|
|
27
|
-
@Mutation(returns => TransportDriver)
|
|
28
|
-
async updateTransportDriver(
|
|
29
|
-
@Arg('id') id: string,
|
|
30
|
-
@Arg('patch', type => TransportDriverPatch) patch: TransportDriverPatch,
|
|
31
|
-
@Ctx() context: ResolverContext
|
|
32
|
-
): Promise<TransportDriver> {
|
|
33
|
-
const { tx, domain, user } = context.state
|
|
34
|
-
|
|
35
|
-
return await updateTransportDriver(id, patch, domain, user, tx)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
39
|
-
@Directive('@transaction')
|
|
40
|
-
@Mutation(returns => Boolean)
|
|
41
|
-
async deleteTransportDriver(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
|
|
42
|
-
const { tx } = context.state
|
|
43
|
-
|
|
44
|
-
return await deleteTransportDriver(id, tx)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
48
|
-
@Directive('@transaction')
|
|
49
|
-
@Mutation(returns => Boolean)
|
|
50
|
-
async deleteTransportDrivers(
|
|
51
|
-
@Arg('ids', type => [String]) ids: string[],
|
|
52
|
-
@Ctx() context: ResolverContext
|
|
53
|
-
): Promise<boolean> {
|
|
54
|
-
return await deleteTransportDrivers(ids, context)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
58
|
-
@Directive('@transaction')
|
|
59
|
-
@Mutation(returns => [TransportDriver])
|
|
60
|
-
async updateMultipleTransportDriver(
|
|
61
|
-
@Arg('patches', type => [TransportDriverPatch]) patches: TransportDriverPatch[],
|
|
62
|
-
@Ctx() context: ResolverContext
|
|
63
|
-
): Promise<TransportDriver[]> {
|
|
64
|
-
const { tx, domain, user } = context.state
|
|
65
|
-
|
|
66
|
-
let results = []
|
|
67
|
-
const _createRecords = patches.filter((patch: any) => patch.cuFlag === '+')
|
|
68
|
-
const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
|
|
69
|
-
|
|
70
|
-
if (_createRecords.length > 0) {
|
|
71
|
-
for (let i = 0; i < _createRecords.length; i++) {
|
|
72
|
-
const patch: TransportDriverPatch = _createRecords[i]
|
|
73
|
-
const result = await createTransportDriver(patch as NewTransportDriver, domain, user, tx)
|
|
74
|
-
results.push({ ...result, cuFlag: '+' })
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (_updateRecords.length > 0) {
|
|
79
|
-
for (let i = 0; i < _updateRecords.length; i++) {
|
|
80
|
-
const patch: TransportDriverPatch = _updateRecords[i]
|
|
81
|
-
const result = await updateTransportDriver(patch.id, patch, domain, user, tx)
|
|
82
|
-
results.push({ ...result, cuFlag: 'M' })
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return results
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export async function createTransportDriver(
|
|
91
|
-
transportDriver: NewTransportDriver,
|
|
92
|
-
domain: Domain,
|
|
93
|
-
user: User,
|
|
94
|
-
tx?: EntityManager
|
|
95
|
-
) {
|
|
96
|
-
const repository: Repository<TransportDriver> = tx
|
|
97
|
-
? tx.getRepository(TransportDriver)
|
|
98
|
-
: getRepository(TransportDriver)
|
|
99
|
-
|
|
100
|
-
const existingUsers: string[] = (
|
|
101
|
-
await tx.getRepository(TransportDriver).find({ where: { domain: { id: domain.id } }, relations: ['user'] })
|
|
102
|
-
).map(driver => driver.userId)
|
|
103
|
-
if (existingUsers.includes(transportDriver.userId)) throw new Error('driver user already exists')
|
|
104
|
-
|
|
105
|
-
const driverUser = await tx.getRepository(User).findOne({ where: { id: transportDriver.userId } })
|
|
106
|
-
|
|
107
|
-
return await repository.save({
|
|
108
|
-
...transportDriver,
|
|
109
|
-
user: driverUser,
|
|
110
|
-
domain,
|
|
111
|
-
creator: user,
|
|
112
|
-
updater: user
|
|
113
|
-
})
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
export async function updateTransportDriver(
|
|
117
|
-
id: string,
|
|
118
|
-
patch: TransportDriver | TransportDriverPatch,
|
|
119
|
-
domain: Domain,
|
|
120
|
-
user: User,
|
|
121
|
-
tx?: EntityManager
|
|
122
|
-
): Promise<TransportDriver> {
|
|
123
|
-
const repository: Repository<TransportDriver> = tx
|
|
124
|
-
? tx.getRepository(TransportDriver)
|
|
125
|
-
: getRepository(TransportDriver)
|
|
126
|
-
const transportDriver = await repository.findOne({
|
|
127
|
-
where: { domain: { id: domain.id }, id }
|
|
128
|
-
})
|
|
129
|
-
|
|
130
|
-
return await repository.save({
|
|
131
|
-
...transportDriver,
|
|
132
|
-
...patch,
|
|
133
|
-
updater: user
|
|
134
|
-
})
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export async function deleteTransportDriver(id: string, tx?: EntityManager) {
|
|
138
|
-
const repository: Repository<TransportDriver> = tx
|
|
139
|
-
? tx.getRepository(TransportDriver)
|
|
140
|
-
: getRepository(TransportDriver)
|
|
141
|
-
await repository.delete(id)
|
|
142
|
-
return true
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export async function deleteTransportDrivers(ids: string[], context: ResolverContext) {
|
|
146
|
-
const { tx, user } = context.state
|
|
147
|
-
|
|
148
|
-
const transportDrivers = await tx.getRepository(TransportDriver).find({ where: { id: In(ids) } })
|
|
149
|
-
|
|
150
|
-
let deletedTransportDrivers: TransportDriver[] = []
|
|
151
|
-
deletedTransportDrivers = await Promise.all(
|
|
152
|
-
transportDrivers.map((transportDriver: TransportDriver) => {
|
|
153
|
-
transportDriver.deletedAt = new Date()
|
|
154
|
-
transportDriver.updater = user
|
|
155
|
-
|
|
156
|
-
return transportDriver
|
|
157
|
-
})
|
|
158
|
-
)
|
|
159
|
-
await tx.getRepository(TransportDriver).save(deletedTransportDrivers)
|
|
160
|
-
return true
|
|
161
|
-
}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { Arg, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
-
import { EntityManager, IsNull } from 'typeorm'
|
|
3
|
-
|
|
4
|
-
import { User } from '@things-factory/auth-base'
|
|
5
|
-
import { Bizplace } from '@things-factory/biz-base'
|
|
6
|
-
import { buildQuery, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'
|
|
7
|
-
|
|
8
|
-
import { TransportVehicle } from '../transport-vehicle/transport-vehicle'
|
|
9
|
-
import { TransportDriver } from './transport-driver'
|
|
10
|
-
import { TransportDriverList } from './transport-driver-types'
|
|
11
|
-
|
|
12
|
-
@Resolver(TransportDriver)
|
|
13
|
-
export class TransportDriverQuery {
|
|
14
|
-
@Directive('@transaction')
|
|
15
|
-
@Directive('@privilege(category: "transport", privilege: "query", domainOwnerGranted: true)')
|
|
16
|
-
@Query(returns => TransportDriverList)
|
|
17
|
-
async transportDrivers(
|
|
18
|
-
@Ctx() context: ResolverContext,
|
|
19
|
-
@Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
|
|
20
|
-
@Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
|
|
21
|
-
@Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
|
|
22
|
-
): Promise<TransportDriverList> {
|
|
23
|
-
const { domain, tx } = context.state
|
|
24
|
-
|
|
25
|
-
const queryBuilder = tx.getRepository(TransportDriver).createQueryBuilder()
|
|
26
|
-
buildQuery(queryBuilder, { filters, pagination, sortings }, context, {
|
|
27
|
-
searchables: ['name', 'userEmail', 'driverCode', 'driverTelNo']
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
queryBuilder
|
|
31
|
-
.leftJoinAndSelect('TransportDriver.domain', 'Domain')
|
|
32
|
-
.leftJoinAndSelect('TransportDriver.creator', 'Creator')
|
|
33
|
-
.leftJoinAndSelect('TransportDriver.updater', 'Updater')
|
|
34
|
-
|
|
35
|
-
if (filters?.length > 0) {
|
|
36
|
-
queryBuilder.andWhere('Domain.id = :domainId', { domainId: domain.id }).andWhere('TransportDriver.deletedAt IS NULL')
|
|
37
|
-
} else {
|
|
38
|
-
queryBuilder.where('TransportDriver.deletedAt IS NULL').andWhere('Domain.id = :domainId', { domainId: domain.id })
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const [items, total] = await queryBuilder.getManyAndCount()
|
|
42
|
-
|
|
43
|
-
return { items, total }
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
@Directive('@transaction')
|
|
47
|
-
@Directive('@privilege(category: "transport", privilege: "query", domainOwnerGranted: true)')
|
|
48
|
-
@Query(returns => TransportDriver)
|
|
49
|
-
async transportDriver(@Arg('driverCode') driverCode: string, @Ctx() context: ResolverContext): Promise<TransportDriver> {
|
|
50
|
-
const { domain, tx } = context.state
|
|
51
|
-
|
|
52
|
-
return await tx.getRepository(TransportDriver).findOne({
|
|
53
|
-
where: { domain: { id: domain.id }, driverCode, deletedAt: IsNull() }
|
|
54
|
-
})
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
@Directive('@transaction')
|
|
58
|
-
@Query(returns => TransportDriver)
|
|
59
|
-
async transportDriverByUser(@Ctx() context: ResolverContext): Promise<TransportDriver> {
|
|
60
|
-
const { domain, tx, user }: { domain: Domain; tx?: EntityManager; user: User } = context.state
|
|
61
|
-
|
|
62
|
-
const driver = await tx.getRepository(TransportDriver).findOne({
|
|
63
|
-
where: { domain: { id: domain.id }, user: { id: user.id } }
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
return driver
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
@FieldResolver(type => Domain)
|
|
70
|
-
async domain(@Root() transportDriver: TransportDriver): Promise<Domain> {
|
|
71
|
-
return await getRepository(Domain).findOneBy({ id: transportDriver.domainId })
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@FieldResolver(type => User)
|
|
75
|
-
async user(@Root() transportDriver: TransportDriver): Promise<User> {
|
|
76
|
-
return await getRepository(User).findOneBy({ id: transportDriver.userId })
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
@FieldResolver(type => Bizplace)
|
|
80
|
-
async bizplace(@Root() transportDriver: TransportDriver): Promise<Bizplace> {
|
|
81
|
-
return await getRepository(Bizplace).findOneBy({ id: transportDriver.bizplaceId })
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
@FieldResolver(type => User)
|
|
85
|
-
async updater(@Root() transportDriver: TransportDriver): Promise<User> {
|
|
86
|
-
return await getRepository(User).findOneBy({ id: transportDriver.updaterId })
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
@FieldResolver(type => User)
|
|
90
|
-
async creator(@Root() transportDriver: TransportDriver): Promise<User> {
|
|
91
|
-
return await getRepository(User).findOneBy({ id: transportDriver.creatorId })
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
@FieldResolver(type => [TransportVehicle])
|
|
95
|
-
async transportVehicles(@Root() transportDriver: TransportDriver): Promise<TransportVehicle[]> {
|
|
96
|
-
return await (
|
|
97
|
-
await getRepository(TransportDriver).findOne({
|
|
98
|
-
where: { id: transportDriver.id },
|
|
99
|
-
relations: ['transportVehicles']
|
|
100
|
-
})
|
|
101
|
-
).transportVehicles
|
|
102
|
-
}
|
|
103
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { Field, InputType, Int, ObjectType } from 'type-graphql'
|
|
2
|
-
|
|
3
|
-
import { TransportDriver } from './transport-driver'
|
|
4
|
-
|
|
5
|
-
@ObjectType()
|
|
6
|
-
export class TransportDriverList {
|
|
7
|
-
@Field(type => [TransportDriver])
|
|
8
|
-
items: TransportDriver[]
|
|
9
|
-
|
|
10
|
-
@Field(type => Int)
|
|
11
|
-
total: number
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
@InputType()
|
|
15
|
-
export class NewTransportDriver {
|
|
16
|
-
@Field()
|
|
17
|
-
name: string
|
|
18
|
-
|
|
19
|
-
@Field({ nullable: true })
|
|
20
|
-
description?: string
|
|
21
|
-
|
|
22
|
-
@Field()
|
|
23
|
-
userId: string
|
|
24
|
-
|
|
25
|
-
@Field()
|
|
26
|
-
driverCode: string
|
|
27
|
-
|
|
28
|
-
@Field({ nullable: true })
|
|
29
|
-
driverTelNo?: string
|
|
30
|
-
|
|
31
|
-
@Field({ nullable: true })
|
|
32
|
-
licenseType?: string
|
|
33
|
-
|
|
34
|
-
@Field({ nullable: true })
|
|
35
|
-
licenseNo?: string
|
|
36
|
-
|
|
37
|
-
@Field({ nullable: true })
|
|
38
|
-
licContDate?: string
|
|
39
|
-
|
|
40
|
-
@Field({ nullable: true })
|
|
41
|
-
licExpiDate?: string
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@InputType()
|
|
45
|
-
export class TransportDriverPatch {
|
|
46
|
-
@Field({ nullable: true })
|
|
47
|
-
id?: string
|
|
48
|
-
|
|
49
|
-
@Field({ nullable: true })
|
|
50
|
-
name?: string
|
|
51
|
-
|
|
52
|
-
@Field({ nullable: true })
|
|
53
|
-
description?: string
|
|
54
|
-
|
|
55
|
-
@Field({ nullable: true })
|
|
56
|
-
driverCode?: string
|
|
57
|
-
|
|
58
|
-
@Field({ nullable: true })
|
|
59
|
-
driverTelNo?: string
|
|
60
|
-
|
|
61
|
-
@Field({ nullable: true })
|
|
62
|
-
licenseType?: string
|
|
63
|
-
|
|
64
|
-
@Field({ nullable: true })
|
|
65
|
-
licenseNo?: string
|
|
66
|
-
|
|
67
|
-
@Field({ nullable: true })
|
|
68
|
-
licContDate?: string
|
|
69
|
-
|
|
70
|
-
@Field({ nullable: true })
|
|
71
|
-
licExpiDate?: string
|
|
72
|
-
|
|
73
|
-
@Field({ nullable: true })
|
|
74
|
-
cuFlag?: string
|
|
75
|
-
}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { Field, ID, ObjectType } from 'type-graphql'
|
|
2
|
-
import {
|
|
3
|
-
Column,
|
|
4
|
-
CreateDateColumn,
|
|
5
|
-
Entity,
|
|
6
|
-
Index,
|
|
7
|
-
JoinTable,
|
|
8
|
-
ManyToMany,
|
|
9
|
-
ManyToOne,
|
|
10
|
-
PrimaryGeneratedColumn,
|
|
11
|
-
RelationId,
|
|
12
|
-
UpdateDateColumn
|
|
13
|
-
} from 'typeorm'
|
|
14
|
-
|
|
15
|
-
import { User } from '@things-factory/auth-base'
|
|
16
|
-
import { Bizplace } from '@things-factory/biz-base'
|
|
17
|
-
import { Domain } from '@things-factory/shell'
|
|
18
|
-
|
|
19
|
-
import { TransportVehicle } from '../transport-vehicle/transport-vehicle'
|
|
20
|
-
|
|
21
|
-
@Entity()
|
|
22
|
-
@Index(
|
|
23
|
-
'ix_transport-driver_0',
|
|
24
|
-
(transportDriver: TransportDriver) => [transportDriver.domain, transportDriver.driverCode, transportDriver.id],
|
|
25
|
-
{
|
|
26
|
-
unique: true
|
|
27
|
-
}
|
|
28
|
-
)
|
|
29
|
-
@ObjectType()
|
|
30
|
-
export class TransportDriver {
|
|
31
|
-
@PrimaryGeneratedColumn('uuid')
|
|
32
|
-
@Field(type => ID)
|
|
33
|
-
readonly id: string
|
|
34
|
-
|
|
35
|
-
@ManyToOne(type => Domain)
|
|
36
|
-
@Field(type => Domain)
|
|
37
|
-
domain: Domain
|
|
38
|
-
|
|
39
|
-
@RelationId((transportDriver: TransportDriver) => transportDriver.domain)
|
|
40
|
-
domainId: string
|
|
41
|
-
|
|
42
|
-
@ManyToOne(type => Bizplace, { nullable: true })
|
|
43
|
-
@Field(type => Bizplace, { nullable: true })
|
|
44
|
-
bizplace?: Bizplace
|
|
45
|
-
|
|
46
|
-
@RelationId((transportDriver: TransportDriver) => transportDriver.bizplace)
|
|
47
|
-
bizplaceId?: string
|
|
48
|
-
|
|
49
|
-
@ManyToOne(type => User)
|
|
50
|
-
@Field(type => User)
|
|
51
|
-
user: User
|
|
52
|
-
|
|
53
|
-
@RelationId((transportDriver: TransportDriver) => transportDriver.user)
|
|
54
|
-
userId: string
|
|
55
|
-
|
|
56
|
-
@Column()
|
|
57
|
-
@Field()
|
|
58
|
-
name: string
|
|
59
|
-
|
|
60
|
-
@Column()
|
|
61
|
-
@Field()
|
|
62
|
-
driverCode: string
|
|
63
|
-
|
|
64
|
-
@ManyToMany(type => TransportVehicle, transportVehicle => transportVehicle.transportDrivers)
|
|
65
|
-
@JoinTable({ name: 'drivers_vehicles' })
|
|
66
|
-
@Field(type => [TransportVehicle], { nullable: true })
|
|
67
|
-
transportVehicles: TransportVehicle[]
|
|
68
|
-
|
|
69
|
-
@Column({ nullable: true })
|
|
70
|
-
@Field({ nullable: true })
|
|
71
|
-
driverTelNo: string
|
|
72
|
-
|
|
73
|
-
@Column({ nullable: true })
|
|
74
|
-
@Field({ nullable: true })
|
|
75
|
-
liceseType: string
|
|
76
|
-
|
|
77
|
-
@Column({ nullable: true })
|
|
78
|
-
@Field({ nullable: true })
|
|
79
|
-
licenseNo: string
|
|
80
|
-
|
|
81
|
-
@Column({ nullable: true })
|
|
82
|
-
@Field({ nullable: true })
|
|
83
|
-
licContDate: string
|
|
84
|
-
|
|
85
|
-
@Column({ nullable: true })
|
|
86
|
-
@Field({ nullable: true })
|
|
87
|
-
licExpiDate: string
|
|
88
|
-
|
|
89
|
-
@Column({ nullable: true })
|
|
90
|
-
@Field({ nullable: true })
|
|
91
|
-
description: string
|
|
92
|
-
|
|
93
|
-
@ManyToOne(type => User)
|
|
94
|
-
@Field(type => User, { nullable: true })
|
|
95
|
-
creator: User
|
|
96
|
-
|
|
97
|
-
@RelationId((transportDriver: TransportDriver) => transportDriver.creator)
|
|
98
|
-
creatorId: string
|
|
99
|
-
|
|
100
|
-
@ManyToOne(type => User)
|
|
101
|
-
@Field(type => User, { nullable: true })
|
|
102
|
-
updater: User
|
|
103
|
-
|
|
104
|
-
@RelationId((transportDriver: TransportDriver) => transportDriver.updater)
|
|
105
|
-
updaterId: string
|
|
106
|
-
|
|
107
|
-
@CreateDateColumn()
|
|
108
|
-
@Field()
|
|
109
|
-
createdAt: Date
|
|
110
|
-
|
|
111
|
-
@UpdateDateColumn()
|
|
112
|
-
@Field()
|
|
113
|
-
updatedAt: Date
|
|
114
|
-
|
|
115
|
-
@Column({ nullable: true })
|
|
116
|
-
@Field({ nullable: true })
|
|
117
|
-
deletedAt: Date
|
|
118
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { TransportVehicle } from './transport-vehicle'
|
|
2
|
-
import { TransportVehicleMutation } from './transport-vehicle-mutation'
|
|
3
|
-
import { TransportVehicleQuery } from './transport-vehicle-query'
|
|
4
|
-
|
|
5
|
-
export const entities = [TransportVehicle]
|
|
6
|
-
export const resolvers = [TransportVehicleQuery, TransportVehicleMutation]
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
2
|
-
import { EntityManager, In, Repository } from 'typeorm'
|
|
3
|
-
|
|
4
|
-
import { User } from '@things-factory/auth-base'
|
|
5
|
-
import { Domain, getRepository } from '@things-factory/shell'
|
|
6
|
-
|
|
7
|
-
import { NewTransportVehicle, TransportVehiclePatch } from '../'
|
|
8
|
-
import { TransportDriver } from '../transport-driver/transport-driver'
|
|
9
|
-
import { TransportVehicle } from './transport-vehicle'
|
|
10
|
-
|
|
11
|
-
const debug = require('debug')('things-factory:operato-wms:addTransportVehicle')
|
|
12
|
-
|
|
13
|
-
@Resolver(TransportVehicle)
|
|
14
|
-
export class TransportVehicleMutation {
|
|
15
|
-
@Directive('@transaction')
|
|
16
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
17
|
-
@Mutation(returns => TransportVehicle)
|
|
18
|
-
async createTransportVehicle(
|
|
19
|
-
@Arg('transportVehicle', type => NewTransportVehicle) transportVehicle: NewTransportVehicle,
|
|
20
|
-
@Ctx() context: ResolverContext
|
|
21
|
-
): Promise<TransportVehicle> {
|
|
22
|
-
const { tx, domain, user } = context.state
|
|
23
|
-
|
|
24
|
-
return await createTransportVehicle(transportVehicle, domain, user, tx)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
@Directive('@transaction')
|
|
28
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
29
|
-
@Mutation(returns => [TransportVehicle])
|
|
30
|
-
async updateTransportVehicle(
|
|
31
|
-
@Arg('patch', type => TransportVehiclePatch) patch: TransportVehiclePatch,
|
|
32
|
-
@Ctx() context: ResolverContext
|
|
33
|
-
): Promise<TransportVehicle> {
|
|
34
|
-
const { tx, domain, user } = context.state
|
|
35
|
-
|
|
36
|
-
return await updateTransportVehicle(patch, domain, user, tx)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@Directive('@transaction')
|
|
40
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
41
|
-
@Mutation(returns => [TransportVehicle])
|
|
42
|
-
async updateMultipleTransportVehicle(
|
|
43
|
-
@Arg('patches', type => [TransportVehiclePatch]) patches: TransportVehiclePatch[],
|
|
44
|
-
@Ctx() context: ResolverContext
|
|
45
|
-
): Promise<TransportVehicle[]> {
|
|
46
|
-
const { tx, domain, user } = context.state
|
|
47
|
-
|
|
48
|
-
let results = []
|
|
49
|
-
const _createRecords = patches.filter((patch: any) => patch.cuFlag === '+')
|
|
50
|
-
const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
|
|
51
|
-
|
|
52
|
-
if (_createRecords.length > 0) {
|
|
53
|
-
for (let i = 0; i < _createRecords.length; i++) {
|
|
54
|
-
const patch: TransportVehiclePatch = _createRecords[i]
|
|
55
|
-
const result = await createTransportVehicle(patch, domain, user, tx)
|
|
56
|
-
results.push({ ...result, cuFlag: '+' })
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
if (_updateRecords.length > 0) {
|
|
61
|
-
for (let i = 0; i < _updateRecords.length; i++) {
|
|
62
|
-
const patch: TransportVehiclePatch = _updateRecords[i]
|
|
63
|
-
const result = await updateTransportVehicle(patch, domain, user, tx)
|
|
64
|
-
results.push({ ...result, cuFlag: 'M' })
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
return results
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
@Directive('@transaction')
|
|
72
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
73
|
-
@Mutation(returns => Boolean)
|
|
74
|
-
async deleteTransportVehicle(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
|
|
75
|
-
const { tx } = context.state
|
|
76
|
-
|
|
77
|
-
return await deleteTransportVehicle(id, tx)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
@Directive('@transaction')
|
|
81
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
82
|
-
@Mutation(returns => Boolean)
|
|
83
|
-
async deleteTransportVehicles(
|
|
84
|
-
@Arg('ids', type => [String]) ids: string[],
|
|
85
|
-
@Ctx() context: ResolverContext
|
|
86
|
-
): Promise<boolean> {
|
|
87
|
-
return await deleteTransportVehicles(ids, context)
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
@Directive('@transaction')
|
|
91
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
92
|
-
@Mutation(returns => TransportVehicle)
|
|
93
|
-
async addTransportVehicleDriver(
|
|
94
|
-
@Arg('id') id: string,
|
|
95
|
-
@Arg('driverId', type => String) driverId: string,
|
|
96
|
-
@Ctx() context: ResolverContext
|
|
97
|
-
): Promise<TransportVehicle> {
|
|
98
|
-
const { domain, user, tx } = context.state
|
|
99
|
-
const transportVehicleRepo = tx.getRepository(TransportVehicle)
|
|
100
|
-
const transportVehicle = await transportVehicleRepo.findOne({
|
|
101
|
-
where: { domain: { id: domain.id }, id },
|
|
102
|
-
relations: ['domain', 'transportDrivers']
|
|
103
|
-
})
|
|
104
|
-
|
|
105
|
-
if (!transportVehicle) throw new Error('Failed to find vehicle')
|
|
106
|
-
|
|
107
|
-
transportVehicle.transportDrivers = []
|
|
108
|
-
|
|
109
|
-
const newDriver = await tx
|
|
110
|
-
.getRepository(TransportDriver)
|
|
111
|
-
.findOne({ where: { id: driverId, domain: { id: domain.id } } })
|
|
112
|
-
if (!newDriver) throw new Error('driver not found')
|
|
113
|
-
|
|
114
|
-
transportVehicle.transportDrivers.push(newDriver)
|
|
115
|
-
|
|
116
|
-
return await transportVehicleRepo.save({
|
|
117
|
-
...transportVehicle,
|
|
118
|
-
updater: user
|
|
119
|
-
})
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
@Directive('@transaction')
|
|
123
|
-
@Directive('@privilege(category: "transport", privilege: "mutation")')
|
|
124
|
-
@Mutation(returns => TransportVehicle)
|
|
125
|
-
async deleteTransportVehicleDrivers(
|
|
126
|
-
@Arg('vehicleId') vehicleId: string,
|
|
127
|
-
@Arg('ids', type => [String]) ids: string[],
|
|
128
|
-
@Ctx() context: ResolverContext
|
|
129
|
-
): Promise<TransportVehicle> {
|
|
130
|
-
const { domain, user, tx } = context.state
|
|
131
|
-
const transportVehicleRepo = tx.getRepository(TransportVehicle)
|
|
132
|
-
const transportVehicle = await transportVehicleRepo.findOne({
|
|
133
|
-
where: { domain: { id: domain.id }, id: vehicleId },
|
|
134
|
-
relations: ['domain', 'transportDrivers']
|
|
135
|
-
})
|
|
136
|
-
|
|
137
|
-
if (!transportVehicle) throw new Error('Failed to find vehicle')
|
|
138
|
-
|
|
139
|
-
const existedDriverIds: string[] = transportVehicle.transportDrivers.map(transportDriver => transportDriver.id)
|
|
140
|
-
const newDriverIds: string[] = existedDriverIds.filter(existedDriverId => !ids.includes(existedDriverId))
|
|
141
|
-
|
|
142
|
-
return await transportVehicleRepo.save({
|
|
143
|
-
...transportVehicle,
|
|
144
|
-
transportDrivers: await getRepository(TransportDriver).findByIds(newDriverIds),
|
|
145
|
-
updater: user
|
|
146
|
-
})
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
export async function createTransportVehicle(
|
|
151
|
-
transportVehicle: TransportVehicle | NewTransportVehicle,
|
|
152
|
-
domain: Domain,
|
|
153
|
-
user: User,
|
|
154
|
-
tx?: EntityManager
|
|
155
|
-
) {
|
|
156
|
-
const repository: Repository<TransportVehicle> = tx
|
|
157
|
-
? tx.getRepository(TransportVehicle)
|
|
158
|
-
: getRepository(TransportVehicle)
|
|
159
|
-
return await repository.save({
|
|
160
|
-
...transportVehicle,
|
|
161
|
-
regNumber: transportVehicle.name,
|
|
162
|
-
domain,
|
|
163
|
-
creator: user,
|
|
164
|
-
updater: user
|
|
165
|
-
})
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export async function updateTransportVehicle(
|
|
169
|
-
patch: TransportVehicle | TransportVehiclePatch,
|
|
170
|
-
domain: Domain,
|
|
171
|
-
user: User,
|
|
172
|
-
tx?: EntityManager
|
|
173
|
-
): Promise<TransportVehicle> {
|
|
174
|
-
const repository: Repository<TransportVehicle> = tx
|
|
175
|
-
? tx.getRepository(TransportVehicle)
|
|
176
|
-
: getRepository(TransportVehicle)
|
|
177
|
-
const transportVehicle = await repository.findOne({
|
|
178
|
-
where: { domain: { id: domain.id }, id: patch.id }
|
|
179
|
-
})
|
|
180
|
-
|
|
181
|
-
return await repository.save({
|
|
182
|
-
...transportVehicle,
|
|
183
|
-
...patch,
|
|
184
|
-
regNumber: patch.name,
|
|
185
|
-
updater: user
|
|
186
|
-
})
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
export async function deleteTransportVehicle(id: string, tx?: EntityManager) {
|
|
190
|
-
const repository: Repository<TransportVehicle> = tx
|
|
191
|
-
? tx.getRepository(TransportVehicle)
|
|
192
|
-
: getRepository(TransportVehicle)
|
|
193
|
-
await repository.delete(id)
|
|
194
|
-
return true
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
export async function deleteTransportVehicles(ids: string[], context: ResolverContext) {
|
|
198
|
-
const { tx, user } = context.state
|
|
199
|
-
|
|
200
|
-
const transportVehicles = await tx.getRepository(TransportVehicle).find({ where: { id: In(ids) } })
|
|
201
|
-
|
|
202
|
-
let deletedTransportVehicles: TransportVehicle[] = []
|
|
203
|
-
deletedTransportVehicles = await Promise.all(
|
|
204
|
-
transportVehicles.map((transportVehicle: TransportVehicle) => {
|
|
205
|
-
transportVehicle.deletedAt = new Date()
|
|
206
|
-
transportVehicle.updater = user
|
|
207
|
-
|
|
208
|
-
return transportVehicle
|
|
209
|
-
})
|
|
210
|
-
)
|
|
211
|
-
await tx.getRepository(TransportVehicle).save(deletedTransportVehicles)
|
|
212
|
-
return true
|
|
213
|
-
}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { Arg, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
-
import { IsNull } from 'typeorm'
|
|
3
|
-
|
|
4
|
-
import { User } from '@things-factory/auth-base'
|
|
5
|
-
import { Bizplace } from '@things-factory/biz-base'
|
|
6
|
-
import { buildQuery, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'
|
|
7
|
-
|
|
8
|
-
import { TransportVehicleList } from '../'
|
|
9
|
-
import { TransportDriver } from '../transport-driver/transport-driver'
|
|
10
|
-
import { TransportVehicle } from './transport-vehicle'
|
|
11
|
-
|
|
12
|
-
@Resolver(TransportVehicle)
|
|
13
|
-
export class TransportVehicleQuery {
|
|
14
|
-
@Directive('@transaction')
|
|
15
|
-
@Directive('@privilege(category: "transport", privilege: "query", domainOwnerGranted: true)')
|
|
16
|
-
@Query(returns => TransportVehicleList)
|
|
17
|
-
async transportVehicles(
|
|
18
|
-
@Ctx() context: ResolverContext,
|
|
19
|
-
@Arg('filters', type => [Filter], { nullable: true }) filters?: [Filter],
|
|
20
|
-
@Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
|
|
21
|
-
@Arg('sortings', type => [Sorting], { nullable: true }) sortings?: [Sorting]
|
|
22
|
-
): Promise<TransportVehicleList> {
|
|
23
|
-
const { domain, tx } = context.state
|
|
24
|
-
|
|
25
|
-
const queryBuilder = tx.getRepository(TransportVehicle).createQueryBuilder()
|
|
26
|
-
buildQuery(queryBuilder, { filters, pagination, sortings }, context, {
|
|
27
|
-
searchables: ['name', 'description', 'size']
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
queryBuilder
|
|
31
|
-
.leftJoinAndSelect('TransportVehicle.domain', 'Domain')
|
|
32
|
-
.leftJoinAndSelect('TransportVehicle.creator', 'Creator')
|
|
33
|
-
.leftJoinAndSelect('TransportVehicle.updater', 'Updater')
|
|
34
|
-
|
|
35
|
-
if (filters?.length > 0) {
|
|
36
|
-
queryBuilder
|
|
37
|
-
.andWhere('Domain.id = :domainId', { domainId: domain.id })
|
|
38
|
-
.andWhere('TransportVehicle.deletedAt IS NULL')
|
|
39
|
-
} else {
|
|
40
|
-
queryBuilder
|
|
41
|
-
.where('TransportVehicle.deletedAt IS NULL')
|
|
42
|
-
.andWhere('Domain.id = :domainId', { domainId: domain.id })
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const [items, total] = await queryBuilder.getManyAndCount()
|
|
46
|
-
|
|
47
|
-
return { items, total }
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
@Directive('@transaction')
|
|
51
|
-
@Directive('@privilege(category: "transport", privilege: "query", domainOwnerGranted: true)')
|
|
52
|
-
@Query(returns => TransportVehicle)
|
|
53
|
-
async transportVehicleById(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<TransportVehicle> {
|
|
54
|
-
const { domain, user, tx } = context.state
|
|
55
|
-
|
|
56
|
-
return await tx.getRepository(TransportVehicle).findOne({
|
|
57
|
-
where: {
|
|
58
|
-
id,
|
|
59
|
-
domain: { id: domain.id },
|
|
60
|
-
deletedAt: IsNull()
|
|
61
|
-
}
|
|
62
|
-
})
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
@FieldResolver(type => Domain)
|
|
66
|
-
async domain(@Root() transportVehicle: TransportVehicle): Promise<Domain> {
|
|
67
|
-
return await getRepository(Domain).findOneBy({ id: transportVehicle.domainId })
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
@FieldResolver(type => Bizplace)
|
|
71
|
-
async bizplace(@Root() transportVehicle: TransportVehicle): Promise<Bizplace> {
|
|
72
|
-
return await getRepository(Bizplace).findOneBy({ id: transportVehicle.bizplaceId })
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
@FieldResolver(type => User)
|
|
76
|
-
async updater(@Root() transportVehicle: TransportVehicle): Promise<User> {
|
|
77
|
-
return await getRepository(User).findOneBy({ id: transportVehicle.updaterId })
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
@FieldResolver(type => User)
|
|
81
|
-
async creator(@Root() transportVehicle: TransportVehicle): Promise<User> {
|
|
82
|
-
return await getRepository(User).findOneBy({ id: transportVehicle.creatorId })
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
@FieldResolver(type => [TransportDriver])
|
|
86
|
-
async transportDrivers(@Root() transportVehicle: TransportVehicle): Promise<TransportDriver[]> {
|
|
87
|
-
return await (
|
|
88
|
-
await getRepository(TransportVehicle).findOne({
|
|
89
|
-
where: {
|
|
90
|
-
id: transportVehicle.id
|
|
91
|
-
},
|
|
92
|
-
relations: ['transportDrivers']
|
|
93
|
-
})
|
|
94
|
-
).transportDrivers
|
|
95
|
-
}
|
|
96
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Field, InputType, Int, ObjectType } from 'type-graphql'
|
|
2
|
-
import { TransportVehicle } from './transport-vehicle'
|
|
3
|
-
|
|
4
|
-
@ObjectType()
|
|
5
|
-
export class TransportVehicleList {
|
|
6
|
-
@Field(type => [TransportVehicle])
|
|
7
|
-
items: TransportVehicle[]
|
|
8
|
-
|
|
9
|
-
@Field(type => Int)
|
|
10
|
-
total: number
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
@InputType()
|
|
14
|
-
export class NewTransportVehicle {
|
|
15
|
-
@Field()
|
|
16
|
-
name: string
|
|
17
|
-
|
|
18
|
-
@Field()
|
|
19
|
-
regNumber: string
|
|
20
|
-
|
|
21
|
-
@Field()
|
|
22
|
-
size: string
|
|
23
|
-
|
|
24
|
-
@Field()
|
|
25
|
-
status: string
|
|
26
|
-
|
|
27
|
-
@Field({ nullable: true })
|
|
28
|
-
description: string
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
@InputType()
|
|
32
|
-
export class TransportVehiclePatch {
|
|
33
|
-
@Field({ nullable: true })
|
|
34
|
-
id: string
|
|
35
|
-
|
|
36
|
-
@Field({ nullable: true })
|
|
37
|
-
name: string
|
|
38
|
-
|
|
39
|
-
@Field({ nullable: true })
|
|
40
|
-
regNumber: string
|
|
41
|
-
|
|
42
|
-
@Field({ nullable: true })
|
|
43
|
-
size: string
|
|
44
|
-
|
|
45
|
-
@Field({ nullable: true })
|
|
46
|
-
status: string
|
|
47
|
-
|
|
48
|
-
@Field({ nullable: true })
|
|
49
|
-
description: string
|
|
50
|
-
|
|
51
|
-
@Field({ nullable: true })
|
|
52
|
-
cuFlag: string
|
|
53
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { Field, ID, ObjectType } from 'type-graphql'
|
|
2
|
-
import {
|
|
3
|
-
Column,
|
|
4
|
-
CreateDateColumn,
|
|
5
|
-
Entity,
|
|
6
|
-
Index,
|
|
7
|
-
ManyToMany,
|
|
8
|
-
ManyToOne,
|
|
9
|
-
PrimaryGeneratedColumn,
|
|
10
|
-
RelationId,
|
|
11
|
-
UpdateDateColumn
|
|
12
|
-
} from 'typeorm'
|
|
13
|
-
|
|
14
|
-
import { User } from '@things-factory/auth-base'
|
|
15
|
-
import { Bizplace } from '@things-factory/biz-base'
|
|
16
|
-
import { Domain } from '@things-factory/shell'
|
|
17
|
-
|
|
18
|
-
import { TransportDriver } from '../transport-driver/transport-driver'
|
|
19
|
-
|
|
20
|
-
@Entity()
|
|
21
|
-
@Index(
|
|
22
|
-
'ix_transport-vehicle_0',
|
|
23
|
-
(transportVehicle: TransportVehicle) => [transportVehicle.domain, transportVehicle.name],
|
|
24
|
-
{ unique: true }
|
|
25
|
-
)
|
|
26
|
-
@ObjectType()
|
|
27
|
-
export class TransportVehicle {
|
|
28
|
-
@PrimaryGeneratedColumn('uuid')
|
|
29
|
-
@Field(type => ID)
|
|
30
|
-
readonly id: string
|
|
31
|
-
|
|
32
|
-
@ManyToOne(type => Domain, { nullable: false })
|
|
33
|
-
@Field(type => Domain)
|
|
34
|
-
domain: Domain
|
|
35
|
-
|
|
36
|
-
@RelationId((transportVehicle: TransportVehicle) => transportVehicle.domain)
|
|
37
|
-
domainId: string
|
|
38
|
-
|
|
39
|
-
@ManyToOne(type => Bizplace, { nullable: true })
|
|
40
|
-
@Field(type => Bizplace, { nullable: true })
|
|
41
|
-
bizplace?: Bizplace
|
|
42
|
-
|
|
43
|
-
@RelationId((transportVehicle: TransportVehicle) => transportVehicle.bizplace)
|
|
44
|
-
bizplaceId?: string
|
|
45
|
-
|
|
46
|
-
@Column()
|
|
47
|
-
@Field()
|
|
48
|
-
name: string
|
|
49
|
-
|
|
50
|
-
@ManyToMany(type => TransportDriver, transportDriver => transportDriver.transportVehicles)
|
|
51
|
-
@Field(type => [TransportDriver], { nullable: true })
|
|
52
|
-
transportDrivers: TransportDriver[]
|
|
53
|
-
|
|
54
|
-
@Column()
|
|
55
|
-
@Field()
|
|
56
|
-
regNumber: string
|
|
57
|
-
|
|
58
|
-
@Column({ comment: '1ton, 3ton, 5ton, 8ton, 10ton' })
|
|
59
|
-
@Field()
|
|
60
|
-
size: string
|
|
61
|
-
|
|
62
|
-
@Column()
|
|
63
|
-
@Field()
|
|
64
|
-
status: string
|
|
65
|
-
|
|
66
|
-
@Column({ nullable: true })
|
|
67
|
-
@Field({ nullable: true })
|
|
68
|
-
description: string
|
|
69
|
-
|
|
70
|
-
@Column({ nullable: true })
|
|
71
|
-
@Field({ nullable: true })
|
|
72
|
-
ownerType: string
|
|
73
|
-
|
|
74
|
-
@Column({ nullable: true })
|
|
75
|
-
@Field({ nullable: true })
|
|
76
|
-
serviceStartDate: Date
|
|
77
|
-
|
|
78
|
-
@Column({ nullable: true })
|
|
79
|
-
@Field({ nullable: true })
|
|
80
|
-
serviceEndDate: Date
|
|
81
|
-
|
|
82
|
-
@Column({ nullable: true })
|
|
83
|
-
@Field({ nullable: true })
|
|
84
|
-
isEnabled: boolean
|
|
85
|
-
|
|
86
|
-
@ManyToOne(type => User)
|
|
87
|
-
@Field(type => User, { nullable: true })
|
|
88
|
-
creator: User
|
|
89
|
-
|
|
90
|
-
@RelationId((transportVehicle: TransportVehicle) => transportVehicle.creator)
|
|
91
|
-
creatorId: string
|
|
92
|
-
|
|
93
|
-
@ManyToOne(type => User)
|
|
94
|
-
@Field(type => User, { nullable: true })
|
|
95
|
-
updater: User
|
|
96
|
-
|
|
97
|
-
@RelationId((transportVehicle: TransportVehicle) => transportVehicle.updater)
|
|
98
|
-
updaterId: string
|
|
99
|
-
|
|
100
|
-
@CreateDateColumn()
|
|
101
|
-
@Field()
|
|
102
|
-
createdAt: Date
|
|
103
|
-
|
|
104
|
-
@UpdateDateColumn()
|
|
105
|
-
@Field()
|
|
106
|
-
updatedAt: Date
|
|
107
|
-
|
|
108
|
-
@Column({ nullable: true })
|
|
109
|
-
@Field({ nullable: true })
|
|
110
|
-
deletedAt: Date
|
|
111
|
-
}
|