diff --git a/src/controllers/OrgChild1Controller.ts b/src/controllers/OrgChild1Controller.ts index 75c8c8ed..e4933fb5 100644 --- a/src/controllers/OrgChild1Controller.ts +++ b/src/controllers/OrgChild1Controller.ts @@ -67,6 +67,7 @@ export class OrgChild1Controller { orgChild1Fax: orgChild1.orgChild1Fax, orgRevisionId: orgChild1.orgRevisionId, isOfficer: orgChild1.isOfficer, + isInformation: orgChild1.isInformation, misId: orgChild1.misId, orgCode: orgChild1.orgRoot.orgRootCode + orgChild1.orgChild1Code, }; @@ -107,6 +108,23 @@ export class OrgChild1Controller { } } + if (requestBody.isInformation == true) { + const orgRevision = await this.orgRevisionRepository.findOne({ + where: { id: rootIdExits.orgRevisionId }, + relations: ["orgChild1s"], + }); + if (orgRevision != null) { + await Promise.all( + orgRevision.orgChild1s + .filter((x: OrgChild1) => x.isInformation == true) + .map(async (item: OrgChild1) => { + item.isInformation = false; + await this.child1Repository.save(item); + }), + ); + } + } + const revisionIdExits = await this.orgRevisionRepository.findOne({ where: { id: rootIdExits.orgRevisionId }, }); @@ -224,6 +242,23 @@ export class OrgChild1Controller { } } + if (requestBody.isInformation == true) { + const orgRevision = await this.orgRevisionRepository.findOne({ + where: { id: rootIdExits.orgRevisionId }, + relations: ["orgChild1s"], + }); + if (orgRevision != null) { + await Promise.all( + orgRevision.orgChild1s + .filter((x: OrgChild1) => x.isInformation == true) + .map(async (item: OrgChild1) => { + item.isInformation = false; + await this.child1Repository.save(item); + }), + ); + } + } + const revisionIdExits = await this.orgRevisionRepository.findOne({ where: { id: rootIdExits.orgRevisionId }, }); diff --git a/src/controllers/OrgRootController.ts b/src/controllers/OrgRootController.ts index d7529bb3..41327268 100644 --- a/src/controllers/OrgRootController.ts +++ b/src/controllers/OrgRootController.ts @@ -73,6 +73,7 @@ export class OrgRootController extends Controller { orgRootFax: orgRoot.orgRootFax, orgRevisionId: orgRoot.orgRevisionId, isDeputy: orgRoot.isDeputy, + isCommission: orgRoot.isCommission, misId: orgRoot.misId, orgCode: orgRoot.orgRootCode + "00", }; @@ -122,6 +123,23 @@ export class OrgRootController extends Controller { } } + if (requestBody.isCommission == true) { + const orgRevision = await this.orgRevisionRepository.findOne({ + where: { id: requestBody.orgRevisionId }, + relations: ["orgRoots"], + }); + if (orgRevision != null) { + await Promise.all( + orgRevision.orgRoots + .filter((x: OrgRoot) => x.isCommission == true) + .map(async (item: OrgRoot) => { + item.isCommission = false; + await this.orgRootRepository.save(item); + }), + ); + } + } + const validOrgRootRanks = ["DEPARTMENT", "OFFICE", "DIVISION", "SECTION"]; if (!validOrgRootRanks.includes(requestBody.orgRootRank.toUpperCase())) { throw new HttpError(HttpStatusCode.NOT_FOUND, "not found. orgRootRank"); @@ -230,6 +248,23 @@ export class OrgRootController extends Controller { } } + if (requestBody.isCommission == true) { + const orgRevision = await this.orgRevisionRepository.findOne({ + where: { id: requestBody.orgRevisionId }, + relations: ["orgRoots"], + }); + if (orgRevision != null) { + await Promise.all( + orgRevision.orgRoots + .filter((x: OrgRoot) => x.isCommission == true) + .map(async (item: OrgRoot) => { + item.isCommission = false; + await this.orgRootRepository.save(item); + }), + ); + } + } + const revisionIdExits = await this.orgRevisionRepository.findOne({ where: { id: requestBody.orgRevisionId }, }); diff --git a/src/controllers/OrganizationController.ts b/src/controllers/OrganizationController.ts index 976ad9b0..0cee1ae4 100644 --- a/src/controllers/OrganizationController.ts +++ b/src/controllers/OrganizationController.ts @@ -783,6 +783,7 @@ export class OrganizationController extends Controller { .select([ "orgRoot.id", "orgRoot.isDeputy", + "orgRoot.isCommission", "orgRoot.orgRootName", "orgRoot.orgRootShortName", "orgRoot.orgRootCode", @@ -816,6 +817,7 @@ export class OrganizationController extends Controller { .select([ "orgChild1.id", "orgChild1.isOfficer", + "orgChild1.isInformation", "orgChild1.orgChild1Name", "orgChild1.orgChild1ShortName", "orgChild1.orgChild1Code", @@ -958,6 +960,7 @@ export class OrganizationController extends Controller { responsibility: orgRoot.responsibility, isOfficer: false, isDeputy: orgRoot.isDeputy, + isCommission: orgRoot.isCommission, labelName: orgRoot.orgRootName + " " + orgRoot.orgRootCode + "00" + " " + orgRoot.orgRootShortName, totalPosition: await this.posMasterRepository.count({ @@ -1069,6 +1072,7 @@ export class OrganizationController extends Controller { orgRootName: orgRoot.orgRootName, responsibility: orgChild1.responsibility, isOfficer: orgChild1.isOfficer, + isInformation: orgChild1.isInformation, labelName: orgChild1.orgChild1Name + " " + @@ -1605,6 +1609,7 @@ export class OrganizationController extends Controller { .select([ "orgRoot.id", "orgRoot.isDeputy", + "orgRoot.isCommission", "orgRoot.orgRootName", "orgRoot.orgRootShortName", "orgRoot.orgRootCode", @@ -1628,6 +1633,7 @@ export class OrganizationController extends Controller { .select([ "orgChild1.id", "orgChild1.isOfficer", + "orgChild1.isInformation", "orgChild1.orgChild1Name", "orgChild1.orgChild1ShortName", "orgChild1.orgChild1Code", @@ -1739,6 +1745,7 @@ export class OrganizationController extends Controller { orgRevisionId: orgRoot.orgRevisionId, orgRootName: orgRoot.orgRootName, isDeputy: orgRoot.isDeputy, + isCommission: orgRoot.isCommission, responsibility: orgRoot.responsibility, labelName: orgRoot.orgRootName + " " + orgRoot.orgRootCode + "00" + " " + orgRoot.orgRootShortName, @@ -1851,6 +1858,7 @@ export class OrganizationController extends Controller { orgRootName: orgRoot.orgRootName, responsibility: orgChild1.responsibility, isOfficer: orgChild1.isOfficer, + isInformation: orgChild1.isInformation, labelName: orgChild1.orgChild1Name + " " + @@ -2383,6 +2391,7 @@ export class OrganizationController extends Controller { "orgRoot.id", "orgRoot.misId", "orgRoot.isDeputy", + "orgRoot.isCommission", "orgRoot.orgRootName", "orgRoot.orgRootShortName", "orgRoot.orgRootCode", @@ -2417,6 +2426,7 @@ export class OrganizationController extends Controller { "orgChild1.id", "orgChild1.misId", "orgChild1.isOfficer", + "orgChild1.isInformation", "orgChild1.orgChild1Name", "orgChild1.orgChild1ShortName", "orgChild1.orgChild1Code", @@ -2562,6 +2572,7 @@ export class OrganizationController extends Controller { orgRevisionId: orgRoot.orgRevisionId, orgRootName: orgRoot.orgRootName, isDeputy: orgRoot.isDeputy, + isCommission: orgRoot.isCommission, responsibility: orgRoot.responsibility, labelName: orgRoot.orgRootName + " " + orgRoot.orgRootCode + "00" + " " + orgRoot.orgRootShortName, @@ -2675,6 +2686,7 @@ export class OrganizationController extends Controller { orgRootName: orgRoot.orgRootName, responsibility: orgChild1.responsibility, isOfficer: orgChild1.isOfficer, + isInformation: orgChild1.isInformation, labelName: orgChild1.orgChild1Name + " " + diff --git a/src/entities/OrgChild1.ts b/src/entities/OrgChild1.ts index b38273f6..5cbce316 100644 --- a/src/entities/OrgChild1.ts +++ b/src/entities/OrgChild1.ts @@ -130,6 +130,12 @@ export class OrgChild1 extends EntityBase { }) isOfficer: boolean; + @Column({ + comment: "ศูนย์สารสนเทศทรัพยากรบุคคล", + default: false, + }) + isInformation: boolean; + @ManyToOne(() => OrgRevision, (orgRevision) => orgRevision.orgChild1s) @JoinColumn({ name: "orgRevisionId" }) orgRevision: OrgRevision; @@ -185,6 +191,9 @@ export class CreateOrgChild1 { @Column() isOfficer: boolean; + @Column() + isInformation: boolean; + @Column() misId?: string; } diff --git a/src/entities/OrgRoot.ts b/src/entities/OrgRoot.ts index b3c3e0bd..ce370fc4 100644 --- a/src/entities/OrgRoot.ts +++ b/src/entities/OrgRoot.ts @@ -119,6 +119,12 @@ export class OrgRoot extends EntityBase { }) isDeputy: boolean; + @Column({ + comment: "สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร", + default: false, + }) + isCommission: boolean; + @Column({ length: 40, comment: "คีย์นอก(FK)ของตาราง orgRevision", @@ -182,6 +188,9 @@ export class CreateOrgRoot { @Column() isDeputy: boolean; + @Column() + isCommission: boolean; + @Column() misId?: string; } diff --git a/src/migration/1737360654848-update_table_add_isCommission.ts b/src/migration/1737360654848-update_table_add_isCommission.ts new file mode 100644 index 00000000..d071e318 --- /dev/null +++ b/src/migration/1737360654848-update_table_add_isCommission.ts @@ -0,0 +1,16 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class UpdateTableAddIsCommission1737360654848 implements MigrationInterface { + name = 'UpdateTableAddIsCommission1737360654848' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`orgChild1\` ADD \`isInformation\` tinyint NOT NULL COMMENT 'ศูนย์สารสนเทศทรัพยากรบุคคล' DEFAULT 0`); + await queryRunner.query(`ALTER TABLE \`orgRoot\` ADD \`isCommission\` tinyint NOT NULL COMMENT 'สำนักงานคณะกรรมการข้าราชการกรุงเทพมหานคร' DEFAULT 0`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE \`orgRoot\` DROP COLUMN \`isCommission\``); + await queryRunner.query(`ALTER TABLE \`orgChild1\` DROP COLUMN \`isInformation\``); + } + +}