From 2d422de102eac884029d785f73535bfc63eba883 Mon Sep 17 00:00:00 2001 From: AdisakKanthawilang Date: Tue, 30 Jan 2024 11:53:29 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=80=E0=B8=9E=E0=B8=B4=E0=B9=88=E0=B8=A1?= =?UTF-8?q?=E0=B8=82=E0=B9=89=E0=B8=AD=E0=B8=A1=E0=B8=B9=E0=B8=A5=E0=B9=80?= =?UTF-8?q?=E0=B8=AA=E0=B9=89=E0=B8=99=20org=5F023=20[orgRootId,orgChild1I?= =?UTF-8?q?d,orgChild2Id,,orgChild3Id]=20=E0=B8=95=E0=B8=B2=E0=B8=A1?= =?UTF-8?q?=E0=B8=A5=E0=B8=B3=E0=B8=94=E0=B8=B1=E0=B8=9A=20Root?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/OrgRootController.ts | 196 ++++++++++++---------- src/controllers/OrganizationController.ts | 4 + 2 files changed, 111 insertions(+), 89 deletions(-) diff --git a/src/controllers/OrgRootController.ts b/src/controllers/OrgRootController.ts index 7698db16..7af651de 100644 --- a/src/controllers/OrgRootController.ts +++ b/src/controllers/OrgRootController.ts @@ -38,23 +38,23 @@ export class OrgRootController extends Controller { */ @Get("{id}") async GetRoot(@Path() id: string) { + const orgRoot = await this.orgRootRepository.findOne({ where: { id } }); + if (!orgRoot) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล โครงสร้างระดับ Root"); + } try { - const orgRoot = await this.orgRootRepository.findOne({ where: { id } }); - if (!orgRoot) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล โครงสร้างระดับ Root"); - } const getOrgRoot = { - "orgRootId" : orgRoot.id, - "orgRootName" : orgRoot.orgRootName, - "orgRootShortName" : orgRoot.orgRootShortName, - "orgRootCode" : orgRoot.orgRootCode, - "orgRootRank" : orgRoot.orgRootRank, - "orgRootOrder" : orgRoot.orgRootOrder, - "orgRootPhoneEx" : orgRoot.orgRootPhoneEx, - "orgRootPhoneIn" : orgRoot.orgRootPhoneIn, - "orgRootFax" : orgRoot.orgRootFax, - "orgRevisionId" : orgRoot.orgRevisionId, - "orgCode" : orgRoot.orgRootCode + "00", + orgRootId: orgRoot.id, + orgRootName: orgRoot.orgRootName, + orgRootShortName: orgRoot.orgRootShortName, + orgRootCode: orgRoot.orgRootCode, + orgRootRank: orgRoot.orgRootRank, + orgRootOrder: orgRoot.orgRootOrder, + orgRootPhoneEx: orgRoot.orgRootPhoneEx, + orgRootPhoneIn: orgRoot.orgRootPhoneIn, + orgRootFax: orgRoot.orgRootFax, + orgRevisionId: orgRoot.orgRevisionId, + orgCode: orgRoot.orgRootCode + "00", }; return new HttpSuccess(getOrgRoot); } catch (error) { @@ -86,38 +86,43 @@ export class OrgRootController extends Controller { requestBody: CreateOrgRoot, @Request() request: { user: Record }, ) { + const validOrgRootRanks = ["DEPARTMENT", "OFFICE", "DIVISION", "SECTION"]; + if (!validOrgRootRanks.includes(requestBody.orgRootRank.toUpperCase())) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. orgRootRank"); + } + + const orgRoot = Object.assign(new OrgRoot(), requestBody); + if (!orgRoot) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + } + + const chkCode = await this.orgRootRepository.findOne({ + where: { orgRootCode: requestBody.orgRootCode }, + }); + if (chkCode != null) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "รหัสหน่วยงานนี้มีอยู่ในระบบแล้ว"); + } + + const orgRevision = await this.orgRevisionRepository.findOne({ + where: { id: requestBody.orgRevisionId }, + }); + if (!orgRevision) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. RevisionId"); + } + + if (orgRevision.orgRevisionIsDraft != true && orgRevision.orgRevisionIsCurrent != false) { + throw new HttpError( + HttpStatusCode.NOT_FOUND, + "not found. orgRevisionIsDraft:true, orgRevisionIsCurrent:false", + ); + } try { - const validOrgRootRanks = ["DEPARTMENT", "OFFICE", "DIVISION", "SECTION"]; - if (!validOrgRootRanks.includes(requestBody.orgRootRank.toUpperCase())) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. orgRootRank"); - } - - const orgRoot = Object.assign(new OrgRoot(), requestBody); - if (!orgRoot) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const chkCode = await this.orgRootRepository.findOne({ - where: { orgRootCode: requestBody.orgRootCode }, - }); - if (chkCode != null) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "รหัสหน่วยงานนี้มีอยู่ในระบบแล้ว"); - } - - const orgRevision = await this.orgRevisionRepository.findOne({ where: { id: requestBody.orgRevisionId }}); - if (!orgRevision) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. RevisionId"); - } - - if(orgRevision.orgRevisionIsDraft != true && orgRevision.orgRevisionIsCurrent != false){ - throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. orgRevisionIsDraft:true, orgRevisionIsCurrent:false"); - } - orgRoot.createdUserId = request.user.sub; orgRoot.createdFullName = request.user.name; orgRoot.lastUpdateUserId = request.user.sub; orgRoot.lastUpdateFullName = request.user.name; await this.orgRootRepository.save(orgRoot); + return new HttpSuccess(); } catch (error) { return error; @@ -149,32 +154,39 @@ export class OrgRootController extends Controller { requestBody: CreateOrgRoot, @Request() request: { user: Record }, ) { + const validOrgRootRanks = ["DEPARTMENT", "OFFICE", "DIVISION", "SECTION"]; + if (!validOrgRootRanks.includes(requestBody.orgRootRank.toUpperCase())) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. orgRootRank"); + } + + const revisionIdExits = await this.orgRevisionRepository.findOne({ + where: { id: requestBody.orgRevisionId }, + }); + if (!revisionIdExits) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. RevisionId"); + } + if ( + revisionIdExits.orgRevisionIsDraft != true && + revisionIdExits.orgRevisionIsCurrent != false + ) { + throw new HttpError( + HttpStatusCode.NOT_FOUND, + "not found. orgRevisionIsDraft:true, orgRevisionIsCurrent:false", + ); + } + + const chkCode = await this.orgRootRepository.findOne({ + where: { orgRootCode: requestBody.orgRootCode }, + }); + if (chkCode?.id != id && chkCode != null) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "รหัสหน่วยงานนี้มีอยู่ในระบบแล้ว"); + } + + const orgRoot = await this.orgRootRepository.findOne({ where: { id } }); + if (!orgRoot) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + } try { - const validOrgRootRanks = ["DEPARTMENT", "OFFICE", "DIVISION", "SECTION"]; - if (!validOrgRootRanks.includes(requestBody.orgRootRank.toUpperCase())) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. orgRootRank"); - } - - const revisionIdExits = await this.orgRevisionRepository.findOne({ where: {id: requestBody.orgRevisionId} }); - if (!revisionIdExits) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. RevisionId"); - } - if(revisionIdExits.orgRevisionIsDraft != true && revisionIdExits.orgRevisionIsCurrent != false){ - throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. orgRevisionIsDraft:true, orgRevisionIsCurrent:false"); - } - - const chkCode = await this.orgRootRepository.findOne({ - where: { orgRootCode: requestBody.orgRootCode }, - }); - if (chkCode?.id != id && chkCode != null) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "รหัสหน่วยงานนี้มีอยู่ในระบบแล้ว"); - } - - const orgRoot = await this.orgRootRepository.findOne({ where: { id } }); - if (!orgRoot) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - orgRoot.lastUpdateUserId = request.user.sub; orgRoot.lastUpdateFullName = request.user.name; orgRoot.lastUpdatedAt = new Date(); @@ -196,31 +208,37 @@ export class OrgRootController extends Controller { */ @Delete("{id}") async delete(@Path() id: string) { + const orgRoot = await this.orgRootRepository.findOne({ where: { id } }); + if (!orgRoot) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); + } + + const orgChild1 = await this.orgChild1Repository.findOne({ where: { orgRootId: id } }); + if (orgChild1 != null) { + throw new HttpError( + HttpStatusCode.INTERNAL_SERVER_ERROR, + "ไม่สามารถลบข้อมูลได้เมื่อมีข้อมูลโครงสร้างระดับ1", + ); + } + + const revisionIdExits = await this.orgRevisionRepository.findOne({ + where: { id: orgRoot.orgRevisionId }, + }); + if (!revisionIdExits) { + throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. RevisionId"); + } + if ( + revisionIdExits.orgRevisionIsDraft != true && + revisionIdExits.orgRevisionIsCurrent != false + ) { + throw new HttpError( + HttpStatusCode.NOT_FOUND, + "not found. orgRevisionIsDraft:true, orgRevisionIsCurrent:false", + ); + } try { - const orgRoot = await this.orgRootRepository.findOne({ where: { id } }); - if (!orgRoot) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); - } - - const orgChild1 = await this.orgChild1Repository.findOne({ where: { orgRootId: id } }); - if (orgChild1 != null) { - throw new HttpError( - HttpStatusCode.INTERNAL_SERVER_ERROR, - "ไม่สามารถลบข้อมูลได้เมื่อมีข้อมูลโครงสร้างระดับ1", - ); - } - - const revisionIdExits = await this.orgRevisionRepository.findOne({ - where: { id: orgRoot.orgRevisionId } - }); - if (!revisionIdExits) { - throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. RevisionId"); - } - if(revisionIdExits.orgRevisionIsDraft != true && revisionIdExits.orgRevisionIsCurrent != false){ - throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. orgRevisionIsDraft:true, orgRevisionIsCurrent:false"); - } - await this.orgRootRepository.remove(orgRoot); + return new HttpSuccess(); } catch (error) { return error; diff --git a/src/controllers/OrganizationController.ts b/src/controllers/OrganizationController.ts index c5d959cb..43b0c9d8 100644 --- a/src/controllers/OrganizationController.ts +++ b/src/controllers/OrganizationController.ts @@ -419,6 +419,7 @@ export class OrganizationController extends Controller { .filter((orgChild1) => orgChild1.orgRootId === orgRoot.id) .map((orgChild1) => ({ orgTreeId: orgChild1.id, + orgRootId: orgRoot.id, orgLevel: 1, orgTreeName: orgChild1.orgChild1Name, orgTreeShortName: orgChild1.orgChild1ShortName, @@ -435,6 +436,7 @@ export class OrganizationController extends Controller { .filter((orgChild2) => orgChild2.orgChild1Id === orgChild1.id) .map((orgChild2) => ({ orgTreeId: orgChild2.id, + orgChild1Id: orgChild1.id, orgLevel: 2, orgTreeName: orgChild2.orgChild2Name, orgTreeShortName: orgChild2.orgChild2ShortName, @@ -451,6 +453,7 @@ export class OrganizationController extends Controller { .filter((orgChild3) => orgChild3.orgChild2Id === orgChild2.id) .map((orgChild3) => ({ orgTreeId: orgChild3.id, + orgChild2Id: orgChild2.id, orgLevel: 3, orgTreeName: orgChild3.orgChild3Name, orgTreeShortName: orgChild3.orgChild3ShortName, @@ -467,6 +470,7 @@ export class OrganizationController extends Controller { .filter((orgChild4) => orgChild4.orgChild3Id === orgChild3.id) .map((orgChild4) => ({ orgTreeId: orgChild4.id, + orgChild3Id: orgChild3.id, orgLevel: 4, orgTreeName: orgChild4.orgChild4Name, orgTreeShortName: orgChild4.orgChild4ShortName,