@things-factory/id-rule-base 7.0.1-beta.14 → 7.0.1-beta.18
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-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
|
@@ -76,7 +76,9 @@ let DocNumberQuery = class DocNumberQuery {
|
|
|
76
76
|
let docUpdateInterval = docNumber.updateInterval;
|
|
77
77
|
if (docUpdateInterval && docUpdateInterval != 'NONE') {
|
|
78
78
|
const today = new Date();
|
|
79
|
-
let todayStr = today.getFullYear() +
|
|
79
|
+
let todayStr = today.getFullYear() +
|
|
80
|
+
(today.getMonth() > 9 ? '' + today.getMonth() + 1 : '0' + today.getMonth() + 1) +
|
|
81
|
+
today.getDate();
|
|
80
82
|
let intervalVal = '';
|
|
81
83
|
if (docUpdateInterval == 'yy') {
|
|
82
84
|
intervalVal = todayStr.substring(2, 4);
|
|
@@ -103,7 +105,7 @@ let DocNumberQuery = class DocNumberQuery {
|
|
|
103
105
|
docNumber.currentNo = newDocNum;
|
|
104
106
|
docNumber.lastDocNumber = newDocNumber;
|
|
105
107
|
await (0, shell_1.getRepository)(doc_number_1.DocNumber).save(docNumber);
|
|
106
|
-
// 11. 최종
|
|
108
|
+
// 11. 최종
|
|
107
109
|
return docNumber;
|
|
108
110
|
}
|
|
109
111
|
async domain(docNumber) {
|
|
@@ -127,7 +129,7 @@ tslib_1.__decorate([
|
|
|
127
129
|
], DocNumberQuery.prototype, "docNumber", null);
|
|
128
130
|
tslib_1.__decorate([
|
|
129
131
|
(0, type_graphql_1.Query)(returns => doc_number_type_1.DocNumberList, { description: 'To fetch multiple DocNumbers' }),
|
|
130
|
-
tslib_1.__param(0, (0, type_graphql_1.Args)()),
|
|
132
|
+
tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
131
133
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
132
134
|
tslib_1.__metadata("design:type", Function),
|
|
133
135
|
tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-number-query.js","sourceRoot":"","sources":["../../../server/service/doc-number/doc-number-query.ts"],"names":[],"mappings":"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","sourcesContent":["\nimport { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { ListParam, convertListParams, getRepository, getQueryBuilderFromListParams } from '@things-factory/shell'\nimport { DocNumber } from './doc-number'\nimport { DocNumberList } from './doc-number-type'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\n\n@Resolver(DocNumber)\nexport class DocNumberQuery {\n @Query(returns => DocNumber, { description: 'To fetch a DocNumber' })\n async docNumber(@Arg('id') id: string, @Ctx() context: any): Promise<DocNumber> {\n const { domain } = context.state\n return await getRepository(DocNumber).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => DocNumberList, { description: 'To fetch multiple DocNumbers' })\n async docNumbers(@Args() params: ListParam, @Ctx() context: any): Promise<DocNumberList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(DocNumber),\n searchables: ['code', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n return { items, total }\n }\n\n @Query(returns => DocNumber, { description: 'To generate a new DocNumber' })\n async getNewDocNumber(@Arg('id') id: string, @Ctx() context: any): Promise<DocNumber> {\n const { domain } = context.state\n\n // 1. find one by id - TODO by Lock\n let docNumber = await getRepository(DocNumber).findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n // 2. find one by code - TODO by Lock\n if(docNumber == null) {\n docNumber = await getRepository(DocNumber).findOne({\n where: { domain: { id: domain.id }, code : id }\n })\n }\n\n // 3. TODO throw exception\n if(docNumber == null) {\n return null\n } \n\n // 4. 시퀀스 증가\n let newDocNum = docNumber.currentNo\n\n if(docNumber.useDbSeqFlag) {\n // TODO DATABASE SEQUENCE 호출\n newDocNum += 1\n } else {\n newDocNum = docNumber.currentNo ? docNumber.currentNo + 1 : 1\n }\n\n // 5. 문서 번호 expression 구성\n if(!docNumber.expression) {\n docNumber.updateExpression()\n }\n\n let expression = docNumber.expression\n\n // 6. 시퀀스 번호 사이클 처리\n if(newDocNum > docNumber.endNo) {\n newDocNum = docNumber.startNo\n }\n\n // 7. 자리수 설정\n let newDocNoStr = newDocNum.toString()\n let docNumLength = newDocNoStr.length\n let docNoDigit = docNumber.seqDigitNum ? docNumber.seqDigitNum : 1\n\n // 8. 시퀀스 번호가 시퀀스 번호 사이즈보다 작은 경우 앞에 0을 붙임\n if(docNoDigit > docNumLength) {\n let addZeroCnt = docNoDigit - docNumLength\n for(let i = 0 ; i < addZeroCnt ; i++) {\n newDocNoStr = '0' + newDocNoStr\n }\n } \n\n // 9. 문서 번호 구성\n let newDocNumber = expression.replace('${SEQ}', newDocNoStr)\n let docUpdateInterval = docNumber.updateInterval\n if(docUpdateInterval && docUpdateInterval != 'NONE') {\n const today = new Date();\n let todayStr = today.getFullYear() + (today.getMonth() > 9 ? '' + today.getMonth() + 1 : '0' + today.getMonth() + 1) + today.getDate()\n let intervalVal = ''\n\n if(docUpdateInterval == 'yy') {\n intervalVal = todayStr.substring(2, 4)\n\n } else if(docUpdateInterval == 'yyyy') {\n intervalVal = todayStr.substring(0, 4)\n\n } else if(docUpdateInterval == 'yyMM') {\n intervalVal = todayStr.substring(2, 6)\n\n } else if(docUpdateInterval == 'yyyyMM') {\n intervalVal = todayStr.substring(0, 6)\n\n } else if(docUpdateInterval == 'yyMMdd') {\n intervalVal = todayStr.substring(2, 8)\n\n } else if(docUpdateInterval == 'yyyyMMdd') {\n intervalVal = todayStr\n }\n\n newDocNumber = newDocNumber.replace('${' + docUpdateInterval + '}', intervalVal)\n }\n\n // 10. 현재 시퀀스 번호 저장\n docNumber.domain = domain\n docNumber.currentNo = newDocNum\n docNumber.lastDocNumber = newDocNumber\n await getRepository(DocNumber).save(docNumber)\n\n // 11. 최종 \n return docNumber\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() docNumber: DocNumber): Promise<Domain> {\n return await getRepository(Domain).findOneBy({id:docNumber.domainId})\n }\n\n @FieldResolver(type => User)\n async creator(@Root() docNumber: DocNumber): Promise<User> {\n return await getRepository(User).findOneBy({id:docNumber.creatorId})\n }\n\n @FieldResolver(type => User)\n async updater(@Root() docNumber: DocNumber): Promise<User> {\n return await getRepository(User).findOneBy({id:docNumber.updaterId})\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"doc-number-query.js","sourceRoot":"","sources":["../../../server/service/doc-number/doc-number-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { ListParam, convertListParams, getRepository, getQueryBuilderFromListParams } from '@things-factory/shell'\nimport { DocNumber } from './doc-number'\nimport { DocNumberList } from './doc-number-type'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\n@Resolver(DocNumber)\nexport class DocNumberQuery {\n @Query(returns => DocNumber, { description: 'To fetch a DocNumber' })\n async docNumber(@Arg('id') id: string, @Ctx() context: any): Promise<DocNumber> {\n const { domain } = context.state\n return await getRepository(DocNumber).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => DocNumberList, { description: 'To fetch multiple DocNumbers' })\n async docNumbers(@Args(type => ListParam) params: ListParam, @Ctx() context: any): Promise<DocNumberList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(DocNumber),\n searchables: ['code', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n return { items, total }\n }\n\n @Query(returns => DocNumber, { description: 'To generate a new DocNumber' })\n async getNewDocNumber(@Arg('id') id: string, @Ctx() context: any): Promise<DocNumber> {\n const { domain } = context.state\n\n // 1. find one by id - TODO by Lock\n let docNumber = await getRepository(DocNumber).findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n // 2. find one by code - TODO by Lock\n if (docNumber == null) {\n docNumber = await getRepository(DocNumber).findOne({\n where: { domain: { id: domain.id }, code: id }\n })\n }\n\n // 3. TODO throw exception\n if (docNumber == null) {\n return null\n }\n\n // 4. 시퀀스 증가\n let newDocNum = docNumber.currentNo\n\n if (docNumber.useDbSeqFlag) {\n // TODO DATABASE SEQUENCE 호출\n newDocNum += 1\n } else {\n newDocNum = docNumber.currentNo ? docNumber.currentNo + 1 : 1\n }\n\n // 5. 문서 번호 expression 구성\n if (!docNumber.expression) {\n docNumber.updateExpression()\n }\n\n let expression = docNumber.expression\n\n // 6. 시퀀스 번호 사이클 처리\n if (newDocNum > docNumber.endNo) {\n newDocNum = docNumber.startNo\n }\n\n // 7. 자리수 설정\n let newDocNoStr = newDocNum.toString()\n let docNumLength = newDocNoStr.length\n let docNoDigit = docNumber.seqDigitNum ? docNumber.seqDigitNum : 1\n\n // 8. 시퀀스 번호가 시퀀스 번호 사이즈보다 작은 경우 앞에 0을 붙임\n if (docNoDigit > docNumLength) {\n let addZeroCnt = docNoDigit - docNumLength\n for (let i = 0; i < addZeroCnt; i++) {\n newDocNoStr = '0' + newDocNoStr\n }\n }\n\n // 9. 문서 번호 구성\n let newDocNumber = expression.replace('${SEQ}', newDocNoStr)\n let docUpdateInterval = docNumber.updateInterval\n if (docUpdateInterval && docUpdateInterval != 'NONE') {\n const today = new Date()\n let todayStr =\n today.getFullYear() +\n (today.getMonth() > 9 ? '' + today.getMonth() + 1 : '0' + today.getMonth() + 1) +\n today.getDate()\n let intervalVal = ''\n\n if (docUpdateInterval == 'yy') {\n intervalVal = todayStr.substring(2, 4)\n } else if (docUpdateInterval == 'yyyy') {\n intervalVal = todayStr.substring(0, 4)\n } else if (docUpdateInterval == 'yyMM') {\n intervalVal = todayStr.substring(2, 6)\n } else if (docUpdateInterval == 'yyyyMM') {\n intervalVal = todayStr.substring(0, 6)\n } else if (docUpdateInterval == 'yyMMdd') {\n intervalVal = todayStr.substring(2, 8)\n } else if (docUpdateInterval == 'yyyyMMdd') {\n intervalVal = todayStr\n }\n\n newDocNumber = newDocNumber.replace('${' + docUpdateInterval + '}', intervalVal)\n }\n\n // 10. 현재 시퀀스 번호 저장\n docNumber.domain = domain\n docNumber.currentNo = newDocNum\n docNumber.lastDocNumber = newDocNumber\n await getRepository(DocNumber).save(docNumber)\n\n // 11. 최종\n return docNumber\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() docNumber: DocNumber): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: docNumber.domainId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() docNumber: DocNumber): Promise<User> {\n return await getRepository(User).findOneBy({ id: docNumber.creatorId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() docNumber: DocNumber): Promise<User> {\n return await getRepository(User).findOneBy({ id: docNumber.updaterId })\n }\n}\n"]}
|
|
@@ -135,7 +135,7 @@ tslib_1.__decorate([
|
|
|
135
135
|
], DocNumber.prototype, "domainId", void 0);
|
|
136
136
|
tslib_1.__decorate([
|
|
137
137
|
(0, typeorm_1.ManyToOne)(type => auth_base_1.User, { createForeignKeyConstraints: false, nullable: true }),
|
|
138
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
138
|
+
(0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
|
|
139
139
|
tslib_1.__metadata("design:type", auth_base_1.User)
|
|
140
140
|
], DocNumber.prototype, "creator", void 0);
|
|
141
141
|
tslib_1.__decorate([
|
|
@@ -144,7 +144,7 @@ tslib_1.__decorate([
|
|
|
144
144
|
], DocNumber.prototype, "creatorId", void 0);
|
|
145
145
|
tslib_1.__decorate([
|
|
146
146
|
(0, typeorm_1.ManyToOne)(type => auth_base_1.User, { createForeignKeyConstraints: false, nullable: true }),
|
|
147
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
147
|
+
(0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
|
|
148
148
|
tslib_1.__metadata("design:type", auth_base_1.User)
|
|
149
149
|
], DocNumber.prototype, "updater", void 0);
|
|
150
150
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-number.js","sourceRoot":"","sources":["../../../server/service/doc-number/doc-number.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"doc-number.js","sourceRoot":"","sources":["../../../server/service/doc-number/doc-number.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n PrimaryGeneratedColumn,\n BeforeInsert\n} from 'typeorm'\nimport { ObjectType, Field, Int, ID } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\n@Entity('doc_numbers')\n@Index('ix_doc_number_0', (docNumber: DocNumber) => [docNumber.domain, docNumber.code], { unique: true })\n@ObjectType({ description: 'Entity for DocNumber' })\nexport class DocNumber {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @Column()\n @Field()\n code: string\n\n @Column()\n @Field()\n description: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n prefix?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n suffix?: string\n\n @Column({ type: 'integer', nullable: true })\n @Field(type => Int, { nullable: true })\n startNo?: number\n\n @Column({ type: 'integer', nullable: true })\n @Field(type => Int, { nullable: true })\n endNo?: number\n\n @Column({ type: 'integer', nullable: true })\n @Field(type => Int, { nullable: true })\n currentNo?: number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n updateInterval?: string\n\n @Column({ nullable: true, default: false })\n @Field({ nullable: true })\n useDbSeqFlag?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n seqName?: string\n\n @Column({ type: 'integer', nullable: false })\n @Field(type => Int, { nullable: false })\n seqDigitNum: number\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n separator?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n expression?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n lastDocNumber?: string\n\n @Column({ type: 'boolean', nullable: true, default: false })\n @Field({ nullable: true })\n activeFlag?: boolean\n\n @ManyToOne(type => Domain, { createForeignKeyConstraints: false, nullable: false })\n @Field({ nullable: false })\n domain: Domain\n\n @RelationId((docNumber: DocNumber) => docNumber.domain)\n domainId: string\n\n @ManyToOne(type => User, { createForeignKeyConstraints: false, nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((docNumber: DocNumber) => docNumber.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { createForeignKeyConstraints: false, nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((docNumber: DocNumber) => docNumber.updater)\n updaterId?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @BeforeInsert()\n updateExpression() {\n if (!this.expression || this.expression.length == 0) {\n if (!this.startNo || this.startNo < 1) {\n this.startNo = 1\n }\n\n if (!this.endNo || this.endNo <= 1) {\n let maxNo = ''\n for (let i = 0; i < this.seqDigitNum; i++) {\n maxNo = maxNo + '9'\n }\n this.endNo = Number(maxNo)\n }\n\n let expr = ''\n\n if (this.prefix) {\n expr = this.prefix\n\n if (this.separator) {\n expr += this.separator\n }\n }\n\n if (this.updateInterval && this.updateInterval != 'NONE') {\n expr += '${' + this.updateInterval + '}'\n\n if (this.separator) {\n expr += this.separator\n }\n }\n\n expr += '${SEQ}'\n\n if (this.suffix) {\n if (this.separator) {\n expr += this.separator\n }\n\n expr += this.suffix\n }\n\n this.expression = expr\n }\n }\n}\n"]}
|