@things-factory/id-rule-base 7.0.1-beta.14 → 7.0.1-beta.22
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/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/service/doc-number/doc-number-query.js +5 -3
- package/dist-server/service/doc-number/doc-number-query.js.map +1 -1
- package/dist-server/service/doc-number/doc-number.js +2 -2
- package/dist-server/service/doc-number/doc-number.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/server/service/doc-number/doc-number-query.ts +30 -34
- package/server/service/doc-number/doc-number.ts +13 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/id-rule-base",
|
|
3
|
-
"version": "7.0.1-beta.
|
|
3
|
+
"version": "7.0.1-beta.22",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "dist-client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@operato/data-grist": "^2.0.0-beta.0",
|
|
31
31
|
"@operato/input": "^2.0.0-beta.0",
|
|
32
|
-
"@things-factory/i18n-base": "^7.0.1-beta.
|
|
33
|
-
"@things-factory/setting-base": "^7.0.1-beta.
|
|
34
|
-
"@things-factory/shell": "^7.0.1-beta.
|
|
32
|
+
"@things-factory/i18n-base": "^7.0.1-beta.22",
|
|
33
|
+
"@things-factory/setting-base": "^7.0.1-beta.22",
|
|
34
|
+
"@things-factory/shell": "^7.0.1-beta.22"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "60c6bc4d55359465636a549687fc3e3f03d44a18"
|
|
37
37
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'
|
|
3
2
|
import { ListParam, convertListParams, getRepository, getQueryBuilderFromListParams } from '@things-factory/shell'
|
|
4
3
|
import { DocNumber } from './doc-number'
|
|
@@ -7,7 +6,6 @@ import { DocNumberList } from './doc-number-type'
|
|
|
7
6
|
import { User } from '@things-factory/auth-base'
|
|
8
7
|
import { Domain } from '@things-factory/shell'
|
|
9
8
|
|
|
10
|
-
|
|
11
9
|
@Resolver(DocNumber)
|
|
12
10
|
export class DocNumberQuery {
|
|
13
11
|
@Query(returns => DocNumber, { description: 'To fetch a DocNumber' })
|
|
@@ -19,7 +17,7 @@ export class DocNumberQuery {
|
|
|
19
17
|
}
|
|
20
18
|
|
|
21
19
|
@Query(returns => DocNumberList, { description: 'To fetch multiple DocNumbers' })
|
|
22
|
-
async docNumbers(@Args() params: ListParam, @Ctx() context: any): Promise<DocNumberList> {
|
|
20
|
+
async docNumbers(@Args(type => ListParam) params: ListParam, @Ctx() context: any): Promise<DocNumberList> {
|
|
23
21
|
const { domain } = context.state
|
|
24
22
|
|
|
25
23
|
const queryBuilder = getQueryBuilderFromListParams({
|
|
@@ -43,21 +41,21 @@ export class DocNumberQuery {
|
|
|
43
41
|
})
|
|
44
42
|
|
|
45
43
|
// 2. find one by code - TODO by Lock
|
|
46
|
-
if(docNumber == null) {
|
|
44
|
+
if (docNumber == null) {
|
|
47
45
|
docNumber = await getRepository(DocNumber).findOne({
|
|
48
|
-
where: { domain: { id: domain.id }, code
|
|
46
|
+
where: { domain: { id: domain.id }, code: id }
|
|
49
47
|
})
|
|
50
48
|
}
|
|
51
49
|
|
|
52
50
|
// 3. TODO throw exception
|
|
53
|
-
if(docNumber == null) {
|
|
51
|
+
if (docNumber == null) {
|
|
54
52
|
return null
|
|
55
|
-
}
|
|
53
|
+
}
|
|
56
54
|
|
|
57
55
|
// 4. 시퀀스 증가
|
|
58
56
|
let newDocNum = docNumber.currentNo
|
|
59
57
|
|
|
60
|
-
if(docNumber.useDbSeqFlag) {
|
|
58
|
+
if (docNumber.useDbSeqFlag) {
|
|
61
59
|
// TODO DATABASE SEQUENCE 호출
|
|
62
60
|
newDocNum += 1
|
|
63
61
|
} else {
|
|
@@ -65,14 +63,14 @@ export class DocNumberQuery {
|
|
|
65
63
|
}
|
|
66
64
|
|
|
67
65
|
// 5. 문서 번호 expression 구성
|
|
68
|
-
if(!docNumber.expression) {
|
|
66
|
+
if (!docNumber.expression) {
|
|
69
67
|
docNumber.updateExpression()
|
|
70
68
|
}
|
|
71
69
|
|
|
72
|
-
let expression =
|
|
70
|
+
let expression = docNumber.expression
|
|
73
71
|
|
|
74
72
|
// 6. 시퀀스 번호 사이클 처리
|
|
75
|
-
if(newDocNum > docNumber.endNo) {
|
|
73
|
+
if (newDocNum > docNumber.endNo) {
|
|
76
74
|
newDocNum = docNumber.startNo
|
|
77
75
|
}
|
|
78
76
|
|
|
@@ -82,37 +80,35 @@ export class DocNumberQuery {
|
|
|
82
80
|
let docNoDigit = docNumber.seqDigitNum ? docNumber.seqDigitNum : 1
|
|
83
81
|
|
|
84
82
|
// 8. 시퀀스 번호가 시퀀스 번호 사이즈보다 작은 경우 앞에 0을 붙임
|
|
85
|
-
if(docNoDigit > docNumLength) {
|
|
83
|
+
if (docNoDigit > docNumLength) {
|
|
86
84
|
let addZeroCnt = docNoDigit - docNumLength
|
|
87
|
-
for(let i = 0
|
|
85
|
+
for (let i = 0; i < addZeroCnt; i++) {
|
|
88
86
|
newDocNoStr = '0' + newDocNoStr
|
|
89
87
|
}
|
|
90
|
-
}
|
|
88
|
+
}
|
|
91
89
|
|
|
92
90
|
// 9. 문서 번호 구성
|
|
93
91
|
let newDocNumber = expression.replace('${SEQ}', newDocNoStr)
|
|
94
92
|
let docUpdateInterval = docNumber.updateInterval
|
|
95
|
-
if(docUpdateInterval && docUpdateInterval != 'NONE') {
|
|
96
|
-
const today = new Date()
|
|
97
|
-
let todayStr =
|
|
93
|
+
if (docUpdateInterval && docUpdateInterval != 'NONE') {
|
|
94
|
+
const today = new Date()
|
|
95
|
+
let todayStr =
|
|
96
|
+
today.getFullYear() +
|
|
97
|
+
(today.getMonth() > 9 ? '' + today.getMonth() + 1 : '0' + today.getMonth() + 1) +
|
|
98
|
+
today.getDate()
|
|
98
99
|
let intervalVal = ''
|
|
99
100
|
|
|
100
|
-
if(docUpdateInterval == 'yy') {
|
|
101
|
+
if (docUpdateInterval == 'yy') {
|
|
101
102
|
intervalVal = todayStr.substring(2, 4)
|
|
102
|
-
|
|
103
|
-
} else if(docUpdateInterval == 'yyyy') {
|
|
103
|
+
} else if (docUpdateInterval == 'yyyy') {
|
|
104
104
|
intervalVal = todayStr.substring(0, 4)
|
|
105
|
-
|
|
106
|
-
} else if(docUpdateInterval == 'yyMM') {
|
|
105
|
+
} else if (docUpdateInterval == 'yyMM') {
|
|
107
106
|
intervalVal = todayStr.substring(2, 6)
|
|
108
|
-
|
|
109
|
-
} else if(docUpdateInterval == 'yyyyMM') {
|
|
107
|
+
} else if (docUpdateInterval == 'yyyyMM') {
|
|
110
108
|
intervalVal = todayStr.substring(0, 6)
|
|
111
|
-
|
|
112
|
-
} else if(docUpdateInterval == 'yyMMdd') {
|
|
109
|
+
} else if (docUpdateInterval == 'yyMMdd') {
|
|
113
110
|
intervalVal = todayStr.substring(2, 8)
|
|
114
|
-
|
|
115
|
-
} else if(docUpdateInterval == 'yyyyMMdd') {
|
|
111
|
+
} else if (docUpdateInterval == 'yyyyMMdd') {
|
|
116
112
|
intervalVal = todayStr
|
|
117
113
|
}
|
|
118
114
|
|
|
@@ -125,22 +121,22 @@ export class DocNumberQuery {
|
|
|
125
121
|
docNumber.lastDocNumber = newDocNumber
|
|
126
122
|
await getRepository(DocNumber).save(docNumber)
|
|
127
123
|
|
|
128
|
-
// 11. 최종
|
|
124
|
+
// 11. 최종
|
|
129
125
|
return docNumber
|
|
130
126
|
}
|
|
131
127
|
|
|
132
128
|
@FieldResolver(type => Domain)
|
|
133
129
|
async domain(@Root() docNumber: DocNumber): Promise<Domain> {
|
|
134
|
-
return await getRepository(Domain).findOneBy({id:docNumber.domainId})
|
|
130
|
+
return await getRepository(Domain).findOneBy({ id: docNumber.domainId })
|
|
135
131
|
}
|
|
136
132
|
|
|
137
133
|
@FieldResolver(type => User)
|
|
138
|
-
async creator(@Root()
|
|
139
|
-
return await getRepository(User).findOneBy({id:docNumber.creatorId})
|
|
134
|
+
async creator(@Root() docNumber: DocNumber): Promise<User> {
|
|
135
|
+
return await getRepository(User).findOneBy({ id: docNumber.creatorId })
|
|
140
136
|
}
|
|
141
137
|
|
|
142
138
|
@FieldResolver(type => User)
|
|
143
|
-
async updater(@Root()
|
|
144
|
-
return await getRepository(User).findOneBy({id:docNumber.updaterId})
|
|
139
|
+
async updater(@Root() docNumber: DocNumber): Promise<User> {
|
|
140
|
+
return await getRepository(User).findOneBy({ id: docNumber.updaterId })
|
|
145
141
|
}
|
|
146
142
|
}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
CreateDateColumn,
|
|
3
|
+
UpdateDateColumn,
|
|
4
|
+
Entity,
|
|
5
|
+
Index,
|
|
6
|
+
Column,
|
|
7
|
+
RelationId,
|
|
8
|
+
ManyToOne,
|
|
9
|
+
PrimaryGeneratedColumn,
|
|
10
|
+
BeforeInsert
|
|
11
|
+
} from 'typeorm'
|
|
2
12
|
import { ObjectType, Field, Int, ID } from 'type-graphql'
|
|
3
13
|
|
|
4
14
|
import { User } from '@things-factory/auth-base'
|
|
@@ -80,14 +90,14 @@ export class DocNumber {
|
|
|
80
90
|
domainId: string
|
|
81
91
|
|
|
82
92
|
@ManyToOne(type => User, { createForeignKeyConstraints: false, nullable: true })
|
|
83
|
-
@Field({ nullable: true })
|
|
93
|
+
@Field(type => User, { nullable: true })
|
|
84
94
|
creator?: User
|
|
85
95
|
|
|
86
96
|
@RelationId((docNumber: DocNumber) => docNumber.creator)
|
|
87
97
|
creatorId?: string
|
|
88
98
|
|
|
89
99
|
@ManyToOne(type => User, { createForeignKeyConstraints: false, nullable: true })
|
|
90
|
-
@Field({ nullable: true })
|
|
100
|
+
@Field(type => User, { nullable: true })
|
|
91
101
|
updater?: User
|
|
92
102
|
|
|
93
103
|
@RelationId((docNumber: DocNumber) => docNumber.updater)
|